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-кластерах через набор облачных сервисов, обеспечивая масштабируемость и эффективность машинного обучения.

Видео