Современная инфраструктура искусственного интеллекта может ускорить жизненный цикл машинного обучения и создать мирное взаимодействие между специалистами по данным и инженерами. Но что они? А чем они отличаются от MLOps?

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

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

Хотя методологии Scrum и Agile стали популярными в технологической индустрии, эти методологии нельзя применять при разработке продуктов на основе машинного обучения из-за хрупких зависимостей между этапами:

  1. Обнаружение данных - группы данных собирают информацию из внутренних и внешних ресурсов.
  2. Подготовка данных - группы обработки данных преобразуют необработанные данные и подбирают соответствующие точки данных, относящиеся к проблеме (также известные как «характеристики данных»).
  3. Модельное обучение. Специалисты по обработке данных экспериментируют с данными для решения поставленной задачи.
  4. Проверка моделей. Специалисты по обработке данных отслеживают модельные эксперименты и находят наиболее эффективную модель.
  5. Производственный код - инженеры пишут микросервис, который использует модель для обслуживания прогнозов в производственной среде.
  6. Развертывание и тестирование - производственный код должен быть рассчитан на масштабирование, развертываться и тестироваться с использованием системы CI / CD организации.
  7. Непрерывный мониторинг и обучение

Хотя цикл разработки продукта на основе машинного обучения (он же рабочий процесс машинного обучения) - очень сложный процесс, мы можем разделить его на три основных этапа: (1) Подготовка, (2) Обучение, (3) Производство.

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

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

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

Для создания такого решения обычной практикой является написание нового микросервисного приложения, которое:

  1. Оберните модель внутри кода вывода.
  2. Он-лайн преобразование данных из источников производственных данных в «функции по требованию» так же точно, как мы это делали в процессе подготовки.
  3. Предоставьте модели функции по запросу.
  4. Служите предсказанию

Текущие архитектуры

Современные архитектуры построены как монолитная доменно-ориентированная служба (т. Е. «Служба обнаружения мошенничества»), отвечающая за преобразование доменно-ориентированного запроса (т. Е. Транзакции), преобразование данных, прогнозирование, мониторинг и управление моделями.
Подобные архитектуры предполагают активное сотрудничество инженеров DS и SW для создания такой службы.

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

В 2017 году Uber опубликовал статью о Michaellangello - платформе машинного обучения Uber. В статье описываются инициативы Uber по ускорению разработки продуктов на основе машинного обучения и уникальный уровень управления данными - Feature Store.

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

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

Разработка функций считается наиболее итеративной, трудоемкой и ресурсоемкой фазой рабочего процесса. Фактически, группы обработки данных тратят на это около 80% своего времени. Таким образом, ее упрощение выглядит необходимым шагом в эволюции инфраструктуры искусственного интеллекта.

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

Эта новая архитектура позволяет организациям разделять функции и проблемы модели, стандартизировать контракт между моделью и данными и уменьшать трение DS и SW Engineering. Подобно революции «микросервисов», стандартизация единиц в рабочем процессе позволила нам обобщить новые части и ускорить нашу разработку.

Новый горизонт сияет.

По сравнению с текущими архитектурами современные инфраструктуры ИИ будут отделять операционные усилия по развертыванию модели от развертывания функций и частично снимать границу между инженерами DS и SW.

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

Платформы Data Science (также известные как платформы MLOps)

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

Платформы MLOps предоставляют общий сервер вывода, который может предоставить уровень вывода для решения с учетом набора входных функций. Эти серверы могут также реализовать слой преобразователя, который позволяет подключаться к функциональным платформам. Некоторые продукты на рынке уже предоставляют такой слой: KFServing, TensorFlow serve, Seldon, SageMaker, GCP и другие.

Многие писали о важности систем MLOps и их способности уменьшить зависимость от Ops. Тем не менее, жизненно важно не путать их с инфраструктурными решениями из-за их различной роли.
Отличная аналогия - Kafka и Jenkins: Kafka - это инфраструктурная система, а Jenkins - это DevOps-система.

Функциональные (инженерные) платформы

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

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

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

В отличие от платформ MLOps, функциональные платформы несут ответственность не за операционную экосистему, а за доступ к потоку производственных данных.

Платформы функций отвечают за достижение следующих целей:

  1. Доступ и сохранение значений функций и наборов функций
  2. Управление и мониторинг метаданных функций
  3. Включение и управление технологическими процессами с сахаром
  4. Действовать как оперативная функция и обеспечивать масштабное соглашение об уровне обслуживания

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

Для достижения своей цели платформы функций должны включать в себя следующие функции: Уровень управления, Магазин функций, Трансформация и Операция слой.

Управление

Платформы функций должны обеспечивать единое управление такими функциями, как:

  • Реестр метаданных и функций - то есть, название функции, текстовое объяснение ее логики, владельца и т. д.
  • Каталог функций. Обеспечивает совместную работу и возможность многократного использования функций в рамках всей организации.
  • Мониторинг - позволяет отслеживать работу функции и обнаруживать отклонения в данных.
  • Контроль версий - отслеживание различных реализаций преобразования данных.

Магазин функций (хранилище)

Магазин функций отвечает за обслуживание функций как для обслуживания, так и для обучения. Он также должен служить единственной точкой истины в отношении обучения и обслуживания функций, а также обеспечения согласованности между онлайн / офлайн ценностями.

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

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

Фреймворк трансформации

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

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

Уровень операций

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

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

Большая картинка

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

Как и в случае с традиционным программным процессом, мы ожидаем перерыва в рабочем процессе, что снизит операционные и инженерные издержки при разработке и развертывании новых сервисов.

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

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

Последние мысли

При нынешних решениях на рынке по-прежнему трудно различать разные части архитектуры. Таким образом, важно различать MLOps и инфраструктуру AI из-за очень разных ролей каждой системы.

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

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

Что вы думаете? Сообщите мне о вариантах использования, для которых вы применяете инфраструктуру, и о проблемах, с которыми вы сталкиваетесь (или если вам нужна помощь в настройке такой системы). Вы можете написать мне письмо по электронной почте или в LinkedIn.