Data Internals X

Доставка данных для ML в Kubernetes: от S3 до распределенных проектных хранилищ

Системы хранения

Доклад принят в программу конференции

Мнение Программного комитета о докладе

Доклад для тех, кто интересуется распределённым машинным обучением. Чтобы дорогие GPU не простаивали, авторы придумали планировщик задач и слои кеширования в сторадже, которые позволяют им согласовать подготовку данных и запуск задач на обучение - об этом и будет в докладе.

Целевая аудитория

Доклад будет полезен: - Инженерам и DevOps специалистам, работающим с Kubernetes. - Специалистам, занимающимся обучением моделей машинного обучения. - Тем, кто интересуется оптимизацией процессов доставки данных в облачных средах.

Тезисы

В докладе будет рассказано о пути оптимизации процесса доставки данных для обучения моделей в Kubernetes.
Начиная с простой загрузки из S3, мы столкнулись с проблемой увеличения времени запуска задач обучения и решали её путем поэтапного развития.
Мы расскажем, как мы:

- Перешли от простой загрузки из S3 к кешированию на нодах с использованием Kubernetes CSI драйвера.
- Улучшили процесс, внедрив кеширование в кластерах с помощью NFS шар и K8S оператора, и какие ограничения мы встретили.
- Разработали и внедрили проектные хранилища с бекапом в S3, используя NFS Storage API, K8S оператор и CRUD сервис.

План доклада
1. Введение в проблему
- Начальные подходы: простая загрузка из S3 и их ограничения.
- Проблемы с большим временем запуска задач обучения.

2. Первый шаг: кеширование на нодах
- Реализация с помощью Kubernetes CSI драйвера.
- Проблемы с утилизацией ресурсов и наблюдаемостью.

3. Улучшение: кеширование в кластерах с NFS
- Реализация с помощью NFS шар и K8S оператора.
- Ограничения по объему и совместной работе.

4. Развитие: именованные хранилища с бекапом в S3
- Архитектура и реализация с использованием Storage API.
- Создание и управление NFS хранилищами с помощью K8S оператора и CRUD сервиса.

5. Практический опыт и результаты
- Как проектные хранилища изменили наш процесс: метрики эффективности.
- Примеры использования и совместной работы в командах.

Константин Дорошенко

Т-Банк, Отдел технологий искусственного интеллекта

Разработчик с экспертизой в создании высоконагруженных систем: начинал карьеру как системный программист на C++ для встраиваемых решений обработки сигналов, затем перешёл к проектированию отказоустойчивых микросервисных приложений на C++ в международных командах. Сейчас фокусируется на разработке распределённой ML-платформы на Go, управляющей оркестрацией задач в Kubernetes-кластерах через набор облачных сервисов, обеспечивая масштабируемость и эффективность машинного обучения.

Видео