- PVSM.RU - https://www.pvsm.ru -

Разработка R&D-проектов в сферах машинного обучения и искусственного интеллекта — задача, к которой следует подходить основательно, используя эффективную и проверенную схему работы. Рассказываем, какую методологию использует команда MIL team (среди клиентов — Huawei, Сбербанк, Ростелеком и другие) и как здесь помогут решения от Selectel.
Для начала стоит определиться, чем является R&D-проект. Это проект, в котором очень много работы с кодом, а инфраструктуре уделяется намного меньше внимания. Стратегия следующая: в основном концентрироваться на разработке самих моделей и их дальнейшей работе. При этом используется мало инструментов, чтобы поставлять и поддерживать решение. Как правило, все проекты имеют три ограничения:
Инструменты разработки:
Для организации инфраструктуры предназначены репозитории, системы поддержки версионности моделей, для поставки же используются стандартные библиотеки Python или Docker-контейнеры.
Типичный клиентский запрос: для экономии средств и ускорения обработки данных нужно провести компрессию данных без потери качества. Для этого берется модель на вход, с ней проводятся определенные операции, и она возвращается клиенту. В результате модель будет работать оптимальнее. Эти задачи могут относиться к разным сферам — машинному зрению, обработке естественного языка, обработке сигналов и другим.
Необходимо выстроить работу через понятные итерации и блоки, чтобы снизить риски и ответить на вопросы. Одна из реалий — методологии, представленные на рынке, не очень подходят для R&D-проектов. Основная причина этого — достаточно непрогнозируемый результат тестируемых идей. Никогда не известно наверняка, какое именно количество идей нужно проверить и какая именно сработает. При этом есть требования рынка и заказчиков — они хотят, чтобы разработка двигалась понятными для них итерациями и выдавала прогнозируемый результат в конце каждого спринта.
Где возникают похожие сложности? В построении продуктов. Когда команда работает над новым продуктом, у них есть очень много гипотез, заранее предсказать успешность которых практически невозможно. При этом у команды есть ограничения: время, финансирование, целевой результат.
Хотите больше реального опыта представителей индустрии, регистрируйтесь на митап Selectel [1], где соберутся лидеры MLOps-комьюнити.

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

Этапы Triple Diamond в визуальном виде
В подобных командах есть разделение R&D-работы на два процесса — Discovery и Delivery.
Discovery-трек — это зона полной неопределенности: открытие чего-то нового, подтверждение своих идей и гипотез, подтверждение того, что они работают, проверка их работоспособности.
Delivery-трек — зона определенности, когда команда уже занимается реализацией идей.
Два этих трека существуют и работают параллельно. Delivery всегда двигается прогнозируемыми итерациями, потому что точно известно, что нужно делать. А цель Discovery — проверить в единицу времени максимальное число гипотез и выбрать те, которые с наибольшей вероятностью дадут результат. По сути, это генерация, приоритизация и проверка идей.
Как генерируется идея, которая сработает? Для этого нужно следующее.
Сформулируем ответ на вопрос: какая существует понятная работа, которую можно прогнозировать и которая дает понятные итерации в определенный срок?
К созданию своей методологии MIL Team подошла с постановки целей. Нужно было, чтобы схема включала и ролевую, и функциональную модель проекта, для понимания того, кто и чем занимается. Также было необходимо, чтобы этапность спринта и проекта была понятной, так методологию реально масштабировать на несколько проектов.
Команда MIL Teам проанализировала свою обычную работу над проектами, выписала 50 процессов внутри команд, сгруппировала их до 4 уровней и сделала первую версию. Она состоит [3] из следующих блоков: management, vision, development, capitalisation. Они хорошо описывали актуальный способ работы, учитывали риски ожидания и видение решения. Это был итеративный, понятный и измеримый процесс. Но он не позволял продвинуться вперед, привнести что-то новое и решить те проблемы, которые есть.

Поэтому была создана вторая, более сложная версия. Озвучим основные особенности:
Но все еще не хватало практик, которые были заимствованы у процесса создания продукта. Поэтому была взята модель Triple Diamond и на нее была нанесена методология [4]. Здесь тоже есть блок с анализом и определением проблем, которые проводятся на основе анализа ошибок, ТЗ от клиентов и обратной связи от заказчиков. Также есть блоки с генерацией и проверкой идей. Идеи берутся из статей, результатов брейнштормов, общих практик в глубоком обучении и сработавших ранее гипотез.
Существует и блок с Delivery, где реализуется определенная функциональность для библиотеки. Здесь внедряются результаты проверки идей, либо формируется набор требований для тех функций, которые есть в технических заданиях, в стандартных практиках software engineering или же на основе рефакторинга кода для его оптимизации.
Как понять, что работа идет хорошо? Для этого нужно наложить на процесс определенные метрики, чтобы он стал более прозрачным. Нужно сформулировать критерии, которые могли бы сигнализировать о проблемах.
Вот три метрики, с помощью которых команда MIL Team оцифровала процесс:
Остальные метрики можно посмотреть в материалах презентации [5]. Эти метрики позволяют понимать, что уже сделано, оценить ритм работы команды и качество исследовательского процесса, который идет внутри проекта. Метрики измеряются с помощью специального фильтра в базе идей в Notion.
Если в базе есть 10 готовых идей для работы, то это нормально. Если за спринт проверяются три идеи и одна из них успешна, это хорошо. Если у этих метрик низкие значения, становится ясно, что ритм работы достаточно низкий и, возможно, отсутствует общая актуальная база кода. Что можно сделать, чтобы исправить ситуацию? Можно провести брейншторм с генерацией дополнительных идей и сразу же провести их приоритизацию.
Помимо этапов методологии и метрик, с помощью которых отслеживается качество работы, есть также список артефактов, которые позволяют смотреть на проект. Это данные, которые в любом случае генерируются в ходе проекта и которые позволяют понять, какая работа проделана, какие результаты достигнуты и прочее.

Каких результатов помогает достичь методология?
Реализацию методологии в деле можно посмотреть в workspace [6] в Notion. Здесь же вы можете отправить свои вопросы и предложения через специальную форму. Также вы можете написать Алексею Гончарову напрямую в Telegram [7] или же посетить сайт [8]. Вебинар с рассказом о методологии можно посмотреть здесь [9].
Вот какие элементы вычислительной инфраструктуры можно использовать:
И несколько анонсов.
Чтобы не пропустить релиз этих (и многих других) продуктов, подписывайтесь на наш блог [14] и оставайтесь в курсе всех новостей.
Автор: softley
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/367532
Ссылки в тексте:
[1] на митап Selectel: https://slc.tl/rnFkD
[2] Triple Diamond: https://medium.com/zendesk-creative-blog/the-zendesk-triple-diamond-process-fd857a11c179
[3] состоит: https://medium.com/@lyoshamipt/mvdc-intro-a-methodology-for-artificial-intelligence-research-1ed86ad5d5e8
[4] методология: https://miro.com/app/board/o9J_l5Hzsro=/
[5] презентации: https://docs.google.com/presentation/d/14IkcZAQT1SQEx72-aK3TLzlmI68m2W8qWpQMkg61GPc/edit?usp=sharing
[6] workspace: https://lyoshamipt.notion.site/MIL-Team-R-D-Project-Workspace-cd786b06a84b4a7986d5bc6705621a0b
[7] напрямую в Telegram: https://t.me/lyoshamipt
[8] сайт: https://machine-intelligence.ru
[9] здесь: https://youtu.be/5I2FJi8x2Js
[10] Выделенный сервер с GPU: https://slc.tl/oi-ok
[11] PaaS-продукты: https://slc.tl/G70R0
[12] DSVM: https://slc.tl/pytPl
[13] DSDC: https://slc.tl/CPGjT
[14] наш блог: https://habr.com/ru/company/selectel/blog/
[15] Источник: https://habr.com/ru/post/575692/?utm_source=habrahabr&utm_medium=rss&utm_campaign=575692
Нажмите здесь для печати.