Разработка систем машинного обучения мучительно медленная. На разработку и развертывание моделей машинного обучения (ML) уходят месяцы. К тому времени, когда модели машинного обучения внедряются в производство, скорость разработки снижается. Давайте поймем, почему.

Задний план

Разработка систем ML — сложная задача. Специалисты по машинному обучению (исследователи, разработчики, инженеры, специалисты по данным) призваны спасти положение. Тем не менее, несмотря на самые лучшие намерения, команды машинного обучения изо всех сил пытаются внедрить модели в эксплуатацию и производство. На системы машинного обучения в производственной среде влияют четыре фактора: скорость разработки, сложность, технический долг и рабочие процессы.

Скорость разработчиков машинного обучения

Поскольку разработчики пишут «дерьмовый код», скорость разработки со временем снижается. Скорость разработчиков — это показатель того, насколько быстро разработчики машинного обучения выпускают код. Эта метрика фиксирует, сколько времени тратится на выполнение задачи или выполнение функции. На этапах исследований или прототипирования скорость разработки специалистов по машинному обучению высока. На этапе прототипирования разработчики сосредотачиваются на коде машинного обучения. По мере того, как проекты машинного обучения переходят в производство, скорость разработки снижается. В рабочей среде разработчики тратят большую часть своего времени на код, не связанный с ML.

Практикам машинного обучения часто требуются месяцы, чтобы внедрить модели машинного обучения в производство. В октябре 2019 года Алгоритмия провела исследование о состоянии машинного обучения. Из 745 респондентов 40% компаний потребовалось более месяца для развертывания модели машинного обучения в рабочей среде, 28% респондентов потребовалось от восьми до 30 дней, и только 14% потратили семь дней или меньше.

Сложность машинного обучения

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

На этапе производства большинство систем машинного обучения являются сложными, требующими клеевого кода или вспомогательного кода, написанного для передачи данных в пакеты и среды общего назначения машинного обучения и из них (Tensorflow, PyTorch, Keras). Согласно Google, зрелая система может состоять (максимум) на 5% из кода машинного обучения и (по крайней мере) на 95% из связующего кода. Когда практикующие специалисты по машинному обучению внедряют модели машинного обучения в производство, они сталкиваются с новыми проблемами, которые выходят за рамки кода машинного обучения, включая настройку, сбор данных, извлечение функций, проверку данных, управление машинным обучением, инструменты анализа, инструменты управления процессами, обслуживающую инфраструктуру и мониторинг.

Технический долг машинного обучения и рабочие процессы

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

Сложность машинного обучения приводит к избыточному выделению ресурсов и влияет на скорость разработки. Типичный рабочий процесс машинного обучения состоит из множества шагов, включая, помимо прочего, предварительную обработку, обучение и настройку. Из-за этой сложности специалистам по машинному обучению сложно правильно выделять ресурсы и управлять ими. Эта сложность также является значительным бременем, которое часто приводит к избыточному выделению ресурсов и снижает производительность пользователей и скорость разработчиков.

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

Решение

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

Используйте бессерверные архитектуры, чтобы повысить скорость разработки машинного обучения!

У разработчиков машинного обучения есть выбор: продолжать писать дерьмовый код или перестать писать дерьмовый код (см. рис. ниже). В этом выборе заключается разница между использованием серверной архитектуры (AWS EC2) или бессерверной (AWS Lambda).

Рисунок: скорость и время (Четкое)

Преимущества компании

Какую выгоду получают компании от внедрения бессерверного машинного обучения? Компании, использующие бессерверные архитектуры, развиваются быстрее, чем их конкуренты. Бессерверная технология устраняет ручное масштабирование, упрощает рабочие процессы и повышает скорость работы групп машинного обучения и специалистов-практиков.

Снижение затрат на техническое обслуживание

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

Используя бессерверные вычисления, компании могут сэкономить деньги на инфраструктуре благодаря модели оплаты по факту использования. Если никто не использует вашу модель машинного обучения, вы не платите за модель. Если вашу модель посещает миллион человек, вы платите за вызовы.

Автоматическое масштабирование

Поскольку компании или продукты представлены в Интернете (ProductHunt, Reddit, Hacker News) или в традиционных СМИ, серверы часто перегружены новыми посетителями. Неожиданный всплеск спроса часто приводит к отключению серверов, и клиенты сталкиваются с ошибками 404 или сервер не отвечает. С бессерверными технологиями компании могут сохранить лицо. Благодаря бессерверным технологиям компании автоматически масштабируются в соответствии со спросом.

Конкурентное преимущество

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

Преимущества для разработчиков

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

Низкий технический долг

Команды по машинному обучению сокращают технический долг благодаря продуманной бессерверной архитектуре, упрощенному коду и низкой стоимости. По мере того, как компании пишут больше кода, они накапливают больше технического долга. Благодаря бессерверной системе технический долг значительно сокращается, поскольку облачный провайдер заботится о серверной инфраструктуре. В бессерверных системах техническим долгом управляют поставщики облачных услуг (Amazon Web Services, Google Cloud, Microsoft Azure), у которых есть большие группы разработки и эксплуатации. Бессерверные архитектуры позволяют специалистам по машинному обучению писать меньше кода и иметь меньшую техническую задолженность по сравнению с традиционными командами машинного обучения.

Упрощенные рабочие процессы машинного обучения

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

Высокая скорость разработки

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

Вывод

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

Современные группы машинного обучения используют бессерверные архитектуры для более быстрой доставки.

Следующий шаг

Вы заинтересованы в решении проблем геномики?

Запланируйте ознакомительный звонок со Славой Куриляком, основателем/генеральным директором Produvia.

В Produvia мы сотрудничаем с компаниями с оборотом более 1 миллиона долларов, чтобы ускорить внедрение технологий искусственного интеллекта.

Этот пост первоначально появился в Блоге Produvia 22 сентября 2020 года.