MLOps мертв?

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

Что такое операционный ИИ?

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

Что такое искусственный интеллект?

Искусственный интеллект — это дисциплина в области компьютерных наук, целью которой является воспроизведение процесса принятия решений человеком с использованием компьютерных систем или «машин».

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

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

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

Что такое машинное обучение?

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

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

Бум исследований в области машинного обучения пришелся на вторую половину 20-го века, и большинство методов, которые мы используем сегодня, были изобретены в этот период времени: К ближайших соседей (1951 г.), Кластеризация k-средних (1956 г.), Опорный вектор. Machines» (1963 г.), Random Forests (1995 г.) и т. д. Черт возьми, даже нейронные сети берут свое начало в 1940-х годах, а линейной регрессии более 200 лет. Несмотря на то, что вся эта великая теория была доступна, потребность в этой работе и ее применение, как правило, отсутствовали за пределами избранных организаций, а это означало, что машинное обучение и связанные с ним области будут оставаться в относительной безвестности до конца века. Появление ПК, Интернета и последующий взрыв данных спровоцировали вновь обретенный интерес к этой области, вплоть до создания новой дисциплины данных в начале 21 века: науки о данных.

Что такое наука о данных?

Наука о данных – это дисциплина в рамках анализа данных, которая фокусируется на извлечении прогнозных выводов из данных.

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

На рубеже веков все больше и больше компаний обнаруживали, что обладают все большими объемами данных. Самые сообразительные из нас поняли, что эти данные имеют большую ценность. Мы могли бы применять методы искусственного интеллекта к этим данным, чтобы лучше принимать решения о продажах, маркетинге, разработке продуктов, бизнес-операциях и т. д. Нет предела возможностям! Однако главная проблема в то время заключалась в том, что знание этих методов было отгорожено академическими кругами. Применять исследовательские работы к необработанным данным компании довольно сложно (не говоря уже о чтении упомянутых статей!), поэтому самые предприимчивые компании начали ухаживать за этими экспертами по искусственному интеллекту и машинному обучению, чтобы они покинули академию и вошли в корпоративный мир, эффективно создавая роль специалиста по данным.

Кто такой специалист по данным?

Специалист по данным — это тот, кто занимается наукой о данных!

Хотя обязанности специалиста по данным (и инженера по машинному обучению) могут сильно различаться от компании к компании, я хочу сделать здесь обобщение, которое поможет нам лучше контекстуализировать операционный ИИ: специалистам по данным обычно поручают решить сценарий использования науки о данных. — т. е. генерировать прогнозные или предписывающие идеи для бизнеса — однако они не несут ответственность за долгосрочное обслуживание этих идей.

Специалисты по данным вошли в корпоративный мир с большим удовольствием и помпой. Специалисты по данным были названы самой сексуальной профессией 21 века, а также одной из самых высокооплачиваемых и лучших профессий, и даже президент решил нанять главного специалиста по данным. Жизнь была прекрасна… до тех пор, пока специалист по данным не закончил работу над своей первой моделью машинного обучения, и кто-то из ИТ-специалистов не спросил, как это должно работать в производстве. Производство никогда не было частью уравнения в лаборатории; все было теорией и идеализированными, чистыми данными. Поддержание производственных моделей машинного обучения оказалось сложной задачей и выходило за рамки компетенции специалиста по данным, что привело к созданию еще одной роли: инженера по машинному обучению.

Кто такой инженер по машинному обучению?

Инженер по машинному обучению — это инженер, который отвечает за создание и поддержку продуктов и процессов, использующих ML.

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

На практике инженеры машинного обучения находятся где-то между учеными данных и инженерами-программистами. За последнее десятилетие инженеры по машинному обучению усердно работали над созданием и поддержкой производственных процессов для рабочих нагрузок AI/ML. Существует много нюансов в правильном развертывании и обслуживании производственных моделей; Инженерам машинного обучения приходится беспокоиться о всевозможных забавных вещах, таких как: отслеживание экспериментов, моделей и версий данных; обнаружение дрейфа модели и данных; обновление устаревших моделей; анализ новых моделей и сравнение их с существующими моделями; понимание важности и предвзятости признаков и других аспектов объяснимости (XAI); поддержка контейнеров и сред Python, кластеров Kubernetes и так далее и тому подобное.

Работа инженера по машинному обучению может очень быстро усложниться, и легко понять, почему желательно отделить ее от роли специалиста по данным, которого мы хотим сосредоточить на решении проблем. Со временем инженеры ML создали множество инструментов, помогающих им поддерживать все эти различные процессы, и этот набор стал известен как ML Operations или MLOps.

Что такое операции машинного обучения(MLOps)?

MLOps — это подмножество прикладного искусственного интеллекта, предназначенного для развертывания и поддержки моделей прогнозирования в производственной среде.

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

Больше инструментов означает большую сложность, а это означает, что рабочий процесс ML/AI становится обременительным для управления. Настолько, что многие проекты ИИ во многих компаниях просто терпят неудачу и никогда не достигают значимой стадии производства. Однако там, где есть сложность компаундирования, есть также возможность грубого упрощения стека. Высокотехнологичные компании (Uber, Facebook, Google, Netflix, Tesla и т. д.), которые находятся на острие пресловутого копья с внедрением AI/ML, осознали это во второй половине 2010-х годов и начали создавать системы, которые переосмысливают Рабочий процесс ИИ в тот, который действительно был продуктивным и мог использоваться для создания и поддержки рабочих процессов за короткий промежуток времени. Это приводит нас прямо к операционному ИИ.

Что такое операционный ИИ?

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

Основные цели оперативного ИИ можно резюмировать следующим образом:

  1. Упростите создание и поддержку производственного ИИ. Я могу сосчитать по пальцам одной руки количество людей, которые сказали, что в их компании есть система, упрощающая внедрение ИИ. Мы уже более десяти лет занимаемся этим родео, которое мы называем наукой о данных, поэтому, если старые методы не работают, пришло время изучить что-то новое. Один мудрый человек однажды сказал, что определение безумия — это попытка сделать одно и то же, но ожидать разных результатов.
  2. Разрешить множеству разных пользователей выполнять рабочие процессы ИИ. Мне никогда не нравился термин или идея «гражданского специалиста по данным», но это не означает, что мы не должны пытаться привлечь как можно больше людей к выполнению рабочих процессов машинного обучения. Что, если аналитик данных или инженер-аналитик мог бы легко применить рабочий процесс, созданный специалистом по данным, к своим собственным данным? Некоторые специалисты по данным считают, что это сумасшествие и что все нужно создавать вручную. Что, если бы люди могли водить машины, не будучи профессиональными водителями? Это может просто изменить жизнь, какой мы ее знаем. Возможность запустить рабочий процесс машинного обучения не делает вас (гражданином) специалистом по данным, это просто делает вашу организацию лучше.
  3. Легко масштабируйте работу специалистов по данным. Я регулярно общаюсь с блестящими специалистами по данным, но они тонут в расходах на содержание, поддерживая свои собственные и чужие модели в производстве. В соответствии с приведенным выше определением, специалисты по данным являются строителями и должны быть сосредоточены на создании и выполнении новых вариантов использования. По разным причинам обмен данными между специалистом по данным и инженером по машинному обучению часто прерывается, и специалистам по данным обычно приходится платить по счетам. Оперативный ИИ дает им возможность более легкого масштабирования собственной работы.
  4. Перенесите передовой опыт разработки программного обеспечения в мир науки о данных. Разрыв между инженерами DS и ML также увеличивается из-за отсутствия проверенных передовых практик для специалистов по данным. Их рабочий процесс гораздо больше ориентирован на разработку и исследования, и они часто работают вне строгости чего-то вроде SDLC. Инженеры машинного обучения знают, что без этой строгости производственные процессы — просто бомбы замедленного действия, которые вот-вот взорвутся. Им нужны общие системы, обеспечивающие применение лучших практик во всем рабочем процессе.

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

Непосвященным может показаться, что MLOps и операционный ИИ — это одно и то же, но операционный ИИ использует принципиально другой подход к построению рабочего процесса. Ключевой принцип операционного ИИ заключается в том, что система является декларативной. Декларативная система позволяет пользователям указывать что создавать, а не как это создавать. Чтобы поместить это в контекст варианта использования ML: что варианта использования может быть прогноз продаж на 90 дней, тогда как как может состоять из сотен или тысяч строк кода. Один из этих интерфейсов должен выглядеть проще, чем другой.

Декларативные рабочие процессы превращают простоту использования и воспроизводимость в первоклассные возможности, которые может использовать любой специалист по данным. В каждой цепочке инструментов машинного обучения, которую я видел, есть какой-то императивный компонент. Эти компоненты должны быть четко проинструктированы о том, как обрабатывать различные сценарии. Каждый императивный компонент добавляет новый выбор, который необходимо сделать, что усложняет и вводит способы сбоя рабочего процесса, появления ошибок и возникновения разногласий между учеными данных и инженерами по машинному обучению. Даже когда один компонент MLOps соответствует декларативному мышлению, а весь рабочий процесс не является декларативным сквозным, он не сравнится с опытом эксплуатации ИИ. Где-то рабочий процесс ломается и раскрывает основную сложность для конечного пользователя.

Каждая система MLOps, которую я видел, представляет собой сложное сочетание специализированных инструментов, используемых вместо более элегантной цепочки, которая еще не реализована. Операционный ИИ начинается со сквозного проектирования. Экосистема MLOps превратилась в болото точечных решений. Чрезвычайно сложно и мучительно пытаться решить вариант использования ИИ от начала до конца без операционной системы. Крупные компании, которые должны использовать ИИ, обычно делают это, нанимая десятки или сотни инженеров машинного обучения для поддержки различных вариантов использования (и вы не Google). Персонал напрямую масштабируется с количеством вариантов использования, что никогда не бывает хорошо. Именно поэтому высокотехнологичные компании начали использовать операционные системы искусственного интеллекта внутри компании — это значительно снижает сложность, сохраняя при этом контроль над масштабом.

Существуют целые сообщества, посвященные обсуждению, оценке и устранению неполадок инструментов MLOps. Немногие сообщают, что внедрение MLOps в их компании идет хорошо, и еще меньше, похоже, понимают, что происходит в экосистеме. Мы могли бы обоями комнату со всеми существующими диаграммами экосистемы MLOps, каждая из которых содержала бы десятки и десятки технологий и непересекающихся категорий с небольшим соответствием в продакт-плейсменте между диаграммами (если эксперты не могут договориться о том, что делают инструменты, что надежда есть для остальных из нас?). Если это «правильно», лучше ошибаться. Я понимаю привлекательность гибкого рабочего процесса, но использование комплексного инструмента не означает, что мы должны жертвовать гибкость.

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

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

Во Части 2 мы углубимся в операционный ИИ и предоставим основу для проектирования, на которой можно будет основываться.

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