Почему лучшее - враг хорошего в MLOps?

Вы наверняка слышали об исследовании, которое подтвердило, что ML-проекты чаще терпят фиаско, чем оказываются успешными. Даже если статистика провалов в этой сфере кажется вам не совсем правдоподобной, факт остается фактом: множество инициатив, связанных с ИИ, заканчиваются “пшиком”. Даже больше, чем можно было бы ожидать.

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

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

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

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

Не теряйте голову в погоне за идеалом

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

Соревнования Kaggle — яркое тому подтверждение. Лучшие в мире специалисты и инженеры по обработке данных собирают и выдвигают инновационные модели, поражающие воображение (правда, в плане производительности их потенциал оставляет желать лучшего). И что же они получают взамен? Перспективные рабочие места и зарплаты как у рок-звезд в таких компаниях, как Alphabet и Uber!

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

Каждая задача по очистке данных, добавляемая в набор обучения, должна быть отражена системной задачей, разработанной для обеспечения чистоты данных, которые вы намерены использовать в модели. Вы можете получить один из двух противоположных результатов:

  • либо модель, которая работает отлично, проваливается на практике, потому что подаваемые в нее данные оказались не так чисты, как данные в наборе обучения;
  • либо вы понимаете, что есть какое-то препятствие в инфраструктуре конвейера данных.

Любой из этих вариантов может привести к резкой остановке прогресса в разработке проекта.

Не пытайтесь объять необъятное

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

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

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

Если настроить модель на такой широкий охват, ее просто нельзя будет довести до ума из-за сложности процесса. Основные бизнес-факторы, подлежащие отслеживанию, будут постоянно меняться по мере запуска новых продуктов, прорыва новых рекламных и SEO-кампаний и появления новых возможностей в воронке продаж. Любое изменение в верхней части этой воронки будет отражаться на нижних уровнях и влиять на уровень дохода компании. Однако модель не сможет регистрировать изменения до тех пор, пока они не успеют пронизать всю систему. В процессе фиксирования перемен произойдут новые изменения. Таким образом, вы топчетесь на месте и не можете составить более-менее точный прогноз.

Так что же делать? Ставьте цель поскромнее. Умейте радоваться достижимым задачам и смиритесь с мыслью о том, что путь к идеальной модели или конвейеру данных, скорее всего, придется несколько раз повторять сначала.

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

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

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

Красота в глазах смотрящего

Помните еще об одном моменте. Идеал — понятие многозначное, особенно когда речь заходит о создании схем, конвейеров данных и проектов.

Зайдите на ресурс Stack Overflow — там вы найдете много полезных ответов на вопросы участников комьюнити. В частности, многих интересует, существует ли универсальный “ключик” для решения любой проблемы с конвейером данных? А что, если несовершенные конвейеры данных — необходимое условие для постоянного совершенствования?

Возможно, лучший способ подойти к запуску ML-проекта — следовать простой истине: сначала сделай, а потом повторяй.

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Demetrios Brinkmann, Why the perfect is the enemy of the good in MLOps

Предыдущая статьяТоп-5 языков программирования для начинающих
Следующая статья8 советов по улучшению качества кода