Речь пойдет о платформе для ML-разработки полного цикла. Работа над ней стартовала с запуска одной из наиболее производительных вычислительных систем в России — суперкомпьютера Christofari. Расскажем, как мы строили ML Space и что предлагает платформа.

Почему мы занялись этой темой

Системы AI постепенно внедряют компании из самых разных отраслей. С их помощью ритейлеры прогнозируют спрос и оптимизируют логистику, медицинские сервисы распознают снимки компьютерной томографии легких, а маркетологи минимизируют дизайнерскую рутину. Профильные проекты развивают и в IT — например, инженеры «Работа.ру» представили систему, которая помогает соискателям находить вакансии, а в SberAutoTech нейросети строят маршруты для беспилотников.

Работа над такими задачами AI и ML подразумевает анализ и обработку крупных сводов данных, которые нужно где-то хранить и оперировать ими. Для этого необходимы серьезные вычислительные мощности, которые сейчас в дефиците, поскольку ряд вендоров покидают российский рынок. При этом одной только технологической базы недостаточно, нужна команда с соответствующей экспертизой не только в области ML-разработки, но и опытные DevOps, а также администраторы для настройки инфраструктуры и инструментов.

Именно поэтому мы в SberCloud решили запустить платформу для коллаборации дата-сайентистов и сочувствующих — ML Space. Здесь создание окружения или деплой модели делается в несколько кликов. А началось все с постройки суперкомпьютера Christofari еще в 2019 году, вот как это было.

Сперва был суперкомпьютер

Высокопроизводительную вычислительную систему мы построили на узлах NVIDIA DGX-2. Каждый из них содержит шестнадцать карт Tesla V100, сами узлы объединены высокоскоростной коммутирующей сетью Infiniband. Также узел имеет 1,5 Тб оперативной памяти и поддерживает интерконнект между GPU на скорости 50 ГБ/c. В качестве источников данных выбрали высокоскоростные СХД, подключенные через выделенные сетевые порты.

После настройки железа мы занялись подготовкой инструментария для запуска распределенных задач. Первым делом подняли кластер Kubernetes, на котором пользователи могли развертывать бесплатные Jupyter-серверы или запускать распределенные задачи машинного обучения.

Для запуска распределенных задач пользователям было достаточно выбрать образ для обучения, выбрать исполняемый скрипт и определить объем вычислительных ресурсов. Первое время платформа поддерживала только скрипты Python, но позже мы расширили её возможности до запуска задач shell-скриптами. Тесты инфраструктуры провели наши коллеги из подразделения SberDevices, обучив языковые модели виртуальных ассистентов «Салют».

Тогда мы обнаружили, что у нашего решения есть ряд недостатков — например, не всем пользователям и клиентам нужно распределенное обучение на десятки видеокарт, а некоторым пользователям еще и нужны Jupyter-ноутбуки с прямым доступом к GPU. В итоге мы добавили возможность запускать контейнеры с Jupyter на ресурсах с GPU и интегрировали предварительно настроенные фреймворки TensorBoard и MLflow, а также добавили мониторинг GPU в привычной Grafana.

На этом этапе решение смогли опробовать «СберЗдоровье» и NLP-команда SberDevices. В результате получился сервис автоматизированного распознавания пневмонии на снимках КТ и ruGPT-3 — самое большое семейство русскоязычных моделей для генерации текста.

Потом был инференс

На предыдущем этапе клиенты успешно использовали нашу инфраструктуру для обучения собственных моделей. Но это — лишь малая часть задач дата-сайентиста. Чтобы вывести модель в продакшн, ему нужно настроить веб-сервер и резервирование, выделить ресурсы, провести нагрузочное тестирование. То есть выполнить большое количество ручной работы.

Чтобы исключить рутину, мы добавили на платформу модуль Inference. Он превращает любую ML-модель в веб-сервер с возможностью автоматического масштабирования при росте нагрузки. Его мы построили на базе Kubernetes с несколькими вариантами развертывания. Пользователь может включить автомасштабирование по нагрузке или поднимать дополнительные поды самостоятельно по мере необходимости (и отключать их за ненадобностью), чтобы сэкономить деньги, а может — держать поды в горячем режиме, чтобы система максимально быстро генерировала прогноз в ответ на запрос.

Демонстрация запущенных деплоев в консоли ML Space

Дальше мы поставили новую цель: трансформировать имеющиеся сервисы в платформу полного цикла для ML-специалистов и их совместной работы — так появилась ML Space.

К платформе ML-разработки

Для поддержки полного цикла разработки — от получения информации до развертывания и мониторинга финального бизнес-решения — нам пришлось модифицировать архитектуру, добавить возможность совместной работы, а также внедрить общие файловые хранилища и новую парадигму биллинга. После мы приступили к разработке сервисов, упрощающих взаимодействие с данными.

Перед обучением ML-модели необходимо получить данные, провести их очистку и дедупликацию, проанализировать выбросы и пропуски в данных. В итоге на непосредственное обучение ML-моделей команды тратят лишь треть своего времени. Чтобы работа с данными стала проще, мы внедрили еще одно нововведение: модуль Data Catalog. Он предлагает интерфейс файлового менеджера, развернутый поверх S3, а также сервис миграции данных с набором коннекторов для переноса данных между HDFS, MySQL, MSSQL и другими популярными источниками.

Также в Data Catalog есть Docker registry, который позволяет управлять пользовательскими docker-контейнерами. Наши дата-сайентисты разработали более тридцати базовых docker-образов с настроенными зависимостями под разные типы видеокарт, а также популярными библиотеками и инструментами. Помимо этого, пользователи могут собирать кастомные образы, в том числе наследуясь от базовых, если для проекта нужны какие-нибудь особо редкие библиотеки или плагины.

Для еще большей свободы добавили возможность подключаться к развернутым docker-образам по протоколу SSH. Благодаря этому продвинутые пользователи могут подключаться в контейнер напрямую. Это очень удобно: можно оперативно просматривать информацию о задачах обучения или, например, выполнять отладку кода.

Вторым большим новшеством стал модуль AutoML, который мы реализовали совместно со Sber AI. Он позволяет обучать модели машинного обучения без написания кода. В основе лежит наш open source фреймворк LightAutoML. Еще полтора года назад  показывал результаты на уровне топовых дата-сайентистов, а на бенчмарке OpenML обходил решение H2O.

Сначала он мог работать только с табличными данными, после добавилась возможность работать с задачами компьютерного зрения (CV) и обработкой естественного языка (NLP).

Совсем недавно мы релизнули новую возможность: теперь работать можно еще и с временными рядами (это полезно, например, если надо спрогнозировать биржевой курс). А в рамках компьютерного зрения теперь получится не только решать задачи регрессии и классификации, но и выполнять детекцию и сегментирование объектов на изображении. Еще мы реализовали возможность получения пакетных предсказаний — batch prediction. Он позволяет загрузить csv-файлы без развертывания модели. Задачи AutoML можно запускать через веб-интерфейс без единой строки кода, а также автоматически развертывать обученную модель.

Что еще может ML Space

Очевидно, что с ростом пользовательской базы возросла нагрузка на суперкомпьютер. Поэтому второй суперкомпьютер не заставил себя долго ждать. Новой эрой в развитии платформы стал запуск Christofari Neo. Его производительность почти 12 петафлопс, так как в основе лежат мощнейшие 700+ GPU Tesla A100 80 GB. С ними можно работать на больших объемах данных и масштабных моделях машинного обучения. На этапе проектирования мы учитывали даже параметры нагрева оборудования и его влияние на производительность, определяя оптимальное расположение серверов в стойках. Чтобы пользователи могли начать работу с новым суперкомпьютером, мы загрузили в ML Space готовые образы с последними версиями CUDA и ML-фреймворков.

Выбор региона размещения в консоли ML Space

С созданием второго суперкомпьютера родилась и мультикластерность. Идея в том, что пользователи ML Space теперь могут выбирать любой из доступных кластеров Christofari и других регионов. Например, мультикластерную опцию использовала команда SberDevices при обучении своих языковых моделей ruGPT-3. Так для задач обучения моделей ruGPT-3 использовался Christofari первый с картами Tesla V100, для ruDALL-E и ruCLIP — Сhristofari Neo с Tesla A100, а легкие задачи, не требующие графических карт, запускались на CPU-инстансах, их тоже можно выбрать при создании нового Jupyter Server.

Решение оказалось удачным и полезным: за прошедший год платформой воспользовались 1,5 тыс. человек из более чем 250 команд, было загружено свыше 2,5 ПТ данных, запущенно свыше 30 000 задач обучения и 15 000 ноутбуков. 

Еще из полезного — платформа получила аттестат соответствия требованиям приказа ФСТЭК №21. Теперь она обеспечивает первый уровень защищенности персональных данных в облаке (УЗ-1) — в том числе биометрических — что расширяет спектр задач для клиентов и делает её еще более универсальной.

Так, например, аттестат УЗ-1 открывает новые возможности и для IT-компаний: теперь они могут решать больше задач с самыми чувствительными данными, в том числе связанных с компьютерным зрением (CV), оптическим распознаванием символов (OCR) и автоматизированным переводом неструктурированных документов в структурированную информацию (IDP). В ритейле ML Space позволит буквально узнавать постоянных покупателей «по походке лицу», а в промышленности — провести идентификацию сотрудников, даже если на них надеты маска, очки или респиратор.

Но и это еще не все.

Для работы с моделями машинного обучения нужны большие объёмы данных и вычислительные мощности, и не у каждого бизнеса они есть, а также не каждый бизнес может себе позволить их хранить и обрабатывать. Чтобы помочь компаниям самых разных размеров начать работу с машинным обучением, мы запустили маркетплейс, где собраны предварительно обученные модели. Например, там есть решения для генерации картинок и текста, синтеза и распознавания речи на русском языке.

Однако, даже при использовании готовых решений и предобученных моделей, компании необходимы специалисты, которые будут заниматься вопросами дообучения и интеграции. Выходом из ситуации может стать привлечение экспертизы со стороны. Для тех, у кого нет своих дата-сайентистов, мы запустили консалтинг: наша команда дата-сайентистов погружается в задачу бизнеса, подбирает профильных специалистов и разрабатывает модель машинного обучения «под ключ». А если бюджет проекта строго фиксирован или хочется, например, схантить лучших спецов к себе в штат, мы можем организовать поиск решения в формате хакатона на площадке DS Works. Там группы энтузиастов предложат нестандартные подходы к задаче, а заказчик при этом получит лучшее решение, прошедшее «естественный отбор».

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

Мы в SberCloud со своей стороны хотим, чтобы компании и предприниматели могли свободно экспериментировать, создавать новые инструменты и внедрять технологии машинного обучения в свои продукты и сервисы, поэтому предлагаем гранты для всех желающих протестировать ML Space. Пока опция доступна только для юрлиц, но мы постараемся, чтобы вскоре доступ появился и у независимых специалистов.


Больше материалов о работе в облаке SberCloud: