Собственная методология разработки R&D-проектов в AI, от идеи до создания

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Разработка R&D-проектов в сферах машинного обучения и искусственного интеллекта — задача, к которой следует подходить основательно, используя эффективную и проверенную схему работы. Рассказываем, какую методологию использует команда MIL team (среди клиентов — Huawei, Сбербанк, Ростелеком и другие) и как здесь помогут решения от Selectel.

Что такое R&D-проект в AI?


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

  • Время. Нужно выполнить поставку в указанные сроки.
  • Стоимость. Важно уложиться в озвученные цифры.
  • Объем работ. Качество должно быть фиксированным, чтобы заказчик смог пользоваться нашим продуктом.

Инструменты разработки:

  • библиотеки для нейросетевого моделирования, Tensorflow, PyTorch;
  • domain-specific-библиотеки для особых областей машинного обучения, BigARTM, openCV и другие;
  • для написания кода используется Python и C++.

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

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

Почему нужна своя методология работы


Необходимо выстроить работу через понятные итерации и блоки, чтобы снизить риски и ответить на вопросы. Одна из реалий — методологии, представленные на рынке, не очень подходят для R&D-проектов. Основная причина этого — достаточно непрогнозируемый результат тестируемых идей. Никогда не известно наверняка, какое именно количество идей нужно проверить и какая именно сработает. При этом есть требования рынка и заказчиков — они хотят, чтобы разработка двигалась понятными для них итерациями и выдавала прогнозируемый результат в конце каждого спринта.

Где возникают похожие сложности? В построении продуктов. Когда команда работает над новым продуктом, у них есть очень много гипотез, заранее предсказать успешность которых практически невозможно. При этом у команды есть ограничения: время, финансирование, целевой результат.

Хотите больше реального опыта представителей индустрии, регистрируйтесь на митап Selectel, где соберутся лидеры MLOps-комьюнити.


Чем пользовались другие компании


Популярное решение — одна из моделей создания продукта, Triple Diamond от компании Zendesk. Здесь есть этапы работы с проблемой и решением, а также реализации всего этого в продукте.


Этапы Triple Diamond в визуальном виде

В подобных командах есть разделение R&D-работы на два процесса — Discovery и Delivery.

Discovery-трек — это зона полной неопределенности: открытие чего-то нового, подтверждение своих идей и гипотез, подтверждение того, что они работают, проверка их работоспособности.

Delivery-трек — зона определенности, когда команда уже занимается реализацией идей.

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

Поиск своего решения


Как генерируется идея, которая сработает? Для этого нужно следующее.

  • Работа с открытым кодом разных исследователей.
  • Брейнштормы.
  • Проверка приоритетных идей.
  • Анализ ошибки после проверки.
  • Трекинг экспериментов.
  • Работа с данными.
  • Ревью экспериментов для проверки существующих результатов.

Сформулируем ответ на вопрос: какая существует понятная работа, которую можно прогнозировать и которая дает понятные итерации в определенный срок?

  • Проектирование библиотеки для клиента.
  • Интеграция успешно проверенных идей в работу пайплайна.
  • Создание пайплайнов для обработки данных или анализа результатов.
  • Code Review и рефакторинг кода.
  • Работа с инфраструктурой.
  • Упаковка финального результата для заказчика.

Методология


К созданию своей методологии MIL Team подошла с постановки целей. Нужно было, чтобы схема включала и ролевую, и функциональную модель проекта, для понимания того, кто и чем занимается. Также было необходимо, чтобы этапность спринта и проекта была понятной, так методологию реально масштабировать на несколько проектов.

Команда MIL Teам проанализировала свою обычную работу над проектами, выписала 50 процессов внутри команд, сгруппировала их до 4 уровней и сделала первую версию. Она состоит из следующих блоков: management, vision, development, capitalisation. Они хорошо описывали актуальный способ работы, учитывали риски ожидания и видение решения. Это был итеративный, понятный и измеримый процесс. Но он не позволял продвинуться вперед, привнести что-то новое и решить те проблемы, которые есть.


Поэтому была создана вторая, более сложная версия. Озвучим основные особенности:

  • Появились концепции «баз». Это хранилища информации, которые позволяют нам следить за существующими идеями. Есть база кода (то есть репозиторий) и появилась база тестов.
  • Больше внимания уделено итерациям, а также работе в начале и конце спринта.
  • Выделен отдельный блок с тестированием, потому что очень много ошибок проходит в финальное решение из-за отсутствия тестов.
  • Выделены основные роли, которые занимаются треками. Для Discovery это исследователи, а для Delivery — ML-инженеры.

Но все еще не хватало практик, которые были заимствованы у процесса создания продукта. Поэтому была взята модель Triple Diamond и на нее была нанесена методология. Здесь тоже есть блок с анализом и определением проблем, которые проводятся на основе анализа ошибок, ТЗ от клиентов и обратной связи от заказчиков. Также есть блоки с генерацией и проверкой идей. Идеи берутся из статей, результатов брейнштормов, общих практик в глубоком обучении и сработавших ранее гипотез.

Существует и блок с Delivery, где реализуется определенная функциональность для библиотеки. Здесь внедряются результаты проверки идей, либо формируется набор требований для тех функций, которые есть в технических заданиях, в стандартных практиках software engineering или же на основе рефакторинга кода для его оптимизации.

Качество и метрики


Как понять, что работа идет хорошо? Для этого нужно наложить на процесс определенные метрики, чтобы он стал более прозрачным. Нужно сформулировать критерии, которые могли бы сигнализировать о проблемах.

Вот три метрики, с помощью которых команда MIL Team оцифровала процесс:

  • 1 метрика. Количество идей из базы, которые готовы для работы.
  • 2 метрика. Число идей, которые полностью завершены, проверены, а результату можно доверять.
  • 3 метрика. Идеи, которые завершены, проверены и успешны.

Остальные метрики можно посмотреть в материалах презентации. Эти метрики позволяют понимать, что уже сделано, оценить ритм работы команды и качество исследовательского процесса, который идет внутри проекта. Метрики измеряются с помощью специального фильтра в базе идей в Notion.
Если в базе есть 10 готовых идей для работы, то это нормально. Если за спринт проверяются три идеи и одна из них успешна, это хорошо. Если у этих метрик низкие значения, становится ясно, что ритм работы достаточно низкий и, возможно, отсутствует общая актуальная база кода. Что можно сделать, чтобы исправить ситуацию? Можно провести брейншторм с генерацией дополнительных идей и сразу же провести их приоритизацию.

Артефакты


Помимо этапов методологии и метрик, с помощью которых отслеживается качество работы, есть также список артефактов, которые позволяют смотреть на проект. Это данные, которые в любом случае генерируются в ходе проекта и которые позволяют понять, какая работа проделана, какие результаты достигнуты и прочее.


Каких результатов помогает достичь методология?

  • повысить прозрачность R&D-команды в области AI;
  • измерить эффективность команды исследователей;
  • увеличить результативность собственной команды.

Реализацию методологии в деле можно посмотреть в workspace в Notion. Здесь же вы можете отправить свои вопросы и предложения через специальную форму. Также вы можете написать Алексею Гончарову напрямую в Telegram или же посетить сайт. Вебинар с рассказом о методологии можно посмотреть здесь.

Решения Selectel для ML-инфраструктуры


Вот какие элементы вычислительной инфраструктуры можно использовать:

  • Выделенный сервер с GPU, который будет готов к работе в течение 30 минут после заказа. Мощный графический ускоритель — ключевой элемент сервера для решения задач Machine Learning. Обучать модели на машине с производительным GPU можно даже в домашних условиях.
  • PaaS-продукты, чтобы упростить развертывание набора сервисов ML. В частности, полноценный Managed Kubernetes, с помощью которого можно запускать задачи по управлению моделями, инференсы, обучение и так далее.
  • Упрощенные платформенные сервисы для data-scientist и ML-разработчиков. Это DSVM (Data Science Virtual Machine) и DSDC (Data Science Data-Container). Здесь вы получаете предустановленный набор библиотек на запущенной виртуальной машине с выбранным GPU или же data-science docker-контейнер, в котором есть необходимые библиотеки. Его можно запустить на той же виртуальной машине (docker) либо в Kubernetes, тем самым изолировав выполнение конкретных операций. Эти сервисы дают вам возможность получить уже установленные фреймворки и инструменты, с помощью которых можно сразу разрабатывать сервисы или же анализировать данные. Среди доступных фреймворков: Keras, TensorFlow, jupyter, PyTorch, OpenCV, pandas, NumPy, XGBoost.

И несколько анонсов.

  • В четвертом квартале этого года появится возможность взять на тест в Selectel суперсистему Nvidia DGX, с восемью самыми мощными видеокартами в мире NVIDIA DGX A100. Это первая в мире универсальная система для задач в области искусственного интеллекта и машинного обучения. Архитектура системы спроектирована так, чтобы вы могли настроить ее за один день и создать первый проект за неделю.
  • В четвертом же квартале Selectel планирует ввести в работу MLOps-платформу полного цикла работы с ML. Она позволит решать разные задачи: агрегацию данных, обучение моделей на данных, мониторинг метрик и деплой моделей. Первоначально платформа будет запущена на VMware, в 1-м квартале 2022 года добавим Kubernetes.

Чтобы не пропустить релиз этих (и многих других) продуктов, подписывайтесь на наш блог и оставайтесь в курсе всех новостей.
Источник: https://habr.com/ru/company/selectel/blog/575692/


Интересные статьи

Интересные статьи

Любой программист, решивший заняться разработкой под Embedded Linux, придя буть-то из высокоуровневых языков программирования, либо из программирования микроконтроллеров на С/С++, неизбежно оказываетс...
Многие компании полностью отказались от работы в офисах — хорошо, что это были не мы. За год удаленки все офисы Haulmont были открыты для сотрудников, хоть и стояли почти...
В программировании очень много вещей, в которых я разбираюсь очень плохо. Настолько много, что меня иногда спрашивают — а в чем ты вообще разбираешься? Я разбираюсь в типах и проектировани...
Предлагаю ознакомиться с рашифровкой доклада Андрей Сальников из Data Egret "Инструменты создания бэкапов PostgreSQL" . В конце обновленная сводная таблица по инстрментам Данный доклад...
Cтатья будет полезна тем, кто думает какую выбрать CMS для интернет-магазина, сравнивает различные движки, ищет в них плюсы и минусы важные для себя.