GenAIOps для практиков MLOps
В этой статье приводятся рекомендации для команд, работающих с нагрузками, которые имеют существующие инвестиции в операции машинного обучения (MLOps) и хотят расширить эти инвестиции, чтобы включить генеративный ИИ в свои рабочие процессы. Чтобы выполнить рабочую нагрузку создания искусственного интеллекта, необходимо расширить инвестиции MLOps с помощью Generative AI Ops (GenAIOps, иногда известного как LLMOps). В этой статье описаны технические шаблоны, которые являются общими для традиционных рабочих нагрузок машинного обучения и создания искусственного интеллекта, а также конкретных шаблонов для создания искусственного интеллекта. Эта статья поможет вам понять, где можно применить существующие инвестиции в эксплуатацию и где необходимо расширить эти инвестиции.
Планирование и реализация MLOps и GenAIOps являются частью основной области проектирования в рабочих нагрузках ИИ в Azure. См. статью MLOps и GenAIOps для рабочих нагрузок ИИ в платформе Azure в Azure Well-Architected Framework, чтобы узнать, почему эти рабочие нагрузки требуют специализированных операций.
Технические шаблоны создания искусственного интеллекта
Рабочие нагрузки создания искусственного интеллекта отличаются от традиционных рабочих нагрузок машинного обучения несколькими способами:
Сосредоточьтесь на генеривных моделях. Традиционные рабочие нагрузки машинного обучения сосредоточены на обучении новых моделей, которые обучены выполнять определенные задачи. Рабочие нагрузки генеративного искусственного интеллекта используют генеративные модели, которые могут охватывать более широкий спектр вариантов использования и в некоторых случаях являются мультимодальными.
Сосредоточьтесь на расширении моделей. Ключевым ресурсом в традиционном машинном обучении является развернутая модель. Доступ к модели предоставляется клиентскому коду в одной или нескольких рабочих нагрузках, но рабочая нагрузка не входит в процесс MLOps. При создании решений искусственного интеллекта ключевым аспектом решения является запрос, предоставленный для создаваемой модели. Запрос должен быть составлен и может содержать данные из одного или нескольких хранилищ данных. Система, которая управляет логикой, вызовами различных внутренних серверов, создает запрос и вызовы к созданной модели является частью системы создания ИИ, которую необходимо управлять с помощью GenAIOps.
Хотя некоторые решения для создания искусственного интеллекта используют традиционные методики машинного обучения, такие как обучение моделей и настройка, все они вводят новые шаблоны, которые следует стандартизировать. В этом разделе представлен обзор трех общих категорий технических шаблонов для создания решений искусственного интеллекта:
- Предварительная подготовка и настройка
- Техника подсказок
- Получение дополненного поколения (RAG)
Обучение и настройка языковых моделей
В настоящее время многие решения для создания ИИ используют существующие базовые языковые модели, которые не требуют точной настройки перед использованием. Однако некоторые варианты использования могут воспользоваться тонкой настройкой базовой модели или обучением новой модели создания искусственного интеллекта, например небольшой языковой модели (SLM).
Обучение новой модели SLM и точной настройке модели создания фундамента логически совпадают с процессами обучения традиционных моделей машинного обучения. Эти процессы должны использовать существующие инвестиции MLOps.
Техника подсказок
Инженерия запросов включает все процессы, участвующие в создании запроса, который отправляется в качестве входных данных в генерируемую модель. Обычно есть оркестратор, который управляет рабочим процессом, который создает запрос. Оркестратор может вызвать любое количество хранилищ данных для сбора информации, такой как основные данные, и применить необходимую логику для создания наиболее эффективного запроса. Затем оркестратор развертывается как конечная точка API, доступ к которому осуществляется клиентским кодом в интеллектуальном приложении.
На следующей схеме показана архитектура для инженерии подсказок.
Эта категория технических шаблонов может решать множество вариантов использования, в том числе:
- Классификация.
- Перевод.
- Резюмирование.
- Генерация с дополнением извлечением, которая рассматривается в следующем разделе.
Получение дополненного поколения
Генерация с помощью извлечения данных (RAG) — это архитектурный шаблон, который использует искусство составления запросов для включения данных, относящихся к определенной области, в качестве основополагающих данных для языковой модели. Языковая модель обучена для определенного набора данных. Для рабочей нагрузки может потребоваться анализ данных, относящихся к вашей компании, клиентам или домену. В решениях RAG ваши данные запрашиваются, а результаты передаются языковой модели в рамках подсказки, как правило, через слой оркестрации.
Распространенная реализация RAG — разбить документы на блоки и сохранить их в векторном хранилище вместе с метаданными. Векторные хранилища, такие как поиск ИИ Azure, позволяют выполнять поиски по подобия текста и вектора, чтобы возвращать контекстно релевантные результаты. Решения RAG также могут использовать другие хранилища данных для возврата данных о заземления.
На следующей схеме показана архитектура RAG:
Расширение MLOps для создания технических шаблонов ИИ
В этом разделе описаны следующие ключевые аспекты внутренних и внешних фаз цикла для генеративных технических шаблонов ИИ и помогут понять, где можно применить существующие инвестиции в MLOps и где их необходимо расширить.
Внутренний цикл
Внешний цикл
- Развертывание
- инференс и мониторинг
- Цикл отзывов
DataOps
MlOps и GenAIOps применяют основы DataOps для создания расширяемых и воспроизводимых рабочих процессов, которые гарантируют, что данные очищаются, преобразуются и форматируются правильно для экспериментирования и оценки. Воспроизводимость рабочих процессов и управление версиями данных являются важными функциями DataOps для всех технических шаблонов. Источники, типы и намерения данных зависят от шаблона.
Обучение и настройка
Этот технический шаблон должен полностью использовать инвестиции в DataOps, которые вы сделали в рамках реализации MLOps. Воспроизводимость и управление версиями данных позволяют экспериментировать с различными данными проектирования признаков, сравнивать производительность различных моделей и воспроизводить результаты.
Проектирование RAG и запроса
Цель данных в решениях RAG заключается в том, чтобы предоставить контекстные данные, которые представляются языковой модели в качестве части запроса. Решения RAG часто требуют обработки больших документов в коллекцию правильных блоков, семантически релевантных блоков и сохранения этих блоков в хранилище векторов. Дополнительные сведения см. в статье "Проектирование и разработка решения RAG". Воспроизводимость и управление версиями данных для решений RAG позволяет экспериментировать с различными стратегиями блокирования и внедрения, сравнивать производительность и откат к предыдущим версиям.
Конвейеры данных для фрагментирования документов не являются частью DataOps в традиционных MLOps, поэтому необходимо расширить архитектуру и операции. Конвейеры данных могут считывать данные из разных источников, которые включают как структурированные, так и неструктурированные данные. Они также могут записывать преобразованные данные в разные целевые объекты. Необходимо расширить архитектуру, чтобы включить хранилища данных, используемые для заземления данных. Распространенные хранилища данных для этих шаблонов — это векторные хранилища, такие как поиск ИИ.
Как и при обучении и тонкой настройке, вы можете использовать конвейеры машинного обучения Azure или другие средства конвейера данных для оркестрации этапов фрагментирования. Вы можете воспользоваться преимуществами потоков запросов в Машинное обучение Azure конвейерах для обработки и обогащения данных согласованным и воспроизводимым способом. Кроме того, необходимо расширить операции для поддержания свежести и допустимости индексов поиска в хранилищах данных.
Экспериментирование
Экспериментирование, часть внутреннего цикла, — это итеративный процесс создания, оценкии уточнения решения. В следующих разделах рассматриваются эксперименты для общих технических шаблонов искусственного интеллекта.
Обучение и настройка
При точной настройке существующей языковой модели или обучении небольшой языковой модели вы можете воспользоваться текущими инвестициями MLOps. Например, конвейеры машинного обучения Azure предоставляют набор средств для эффективного и действенного проведения экспериментов. Эти конвейеры позволяют управлять всем процессом тонкой настройки, от предварительной обработки данных до обучения и оценки модели.
Проектирование RAG и запроса
Экспериментирование с рабочими нагрузками разработки запросов и RAG требует расширения инвестиций MLOps. Для этих технических шаблонов рабочая нагрузка не заканчивается моделью. Для рабочей нагрузки требуется оркестратор, представляющий собой систему, которая может выполнять логику, запрашивать хранилища данных для получения необходимой информации, такой как данные о заземлении, генерировать подсказки, вызывать языковые модели и многое другое. Хранилища данных и индексы в хранилищах также являются частью рабочей нагрузки. Для управления этими аспектами рабочей нагрузки необходимо расширить свои операции.
Вы можете экспериментировать с несколькими аспектами инженерии запросов, включая различные инструкции, персонажи, примеры, ограничения и расширенные методы, такие как последовательное соединение запросов. При экспериментировать с решениями RAGможно поэкспериментировать с дополнительными областями:
- Стратегия фрагментирования
- Что и как обогатить части
- Модель внедрения
- Настройка индекса поиска
- Действия поиска (вектор, полнотекстовый, гибридный и т. д.)
Как описано в DataOps, воспроизводимость и управление версиями данных являются ключевыми для экспериментирования. Хорошая структура для экспериментов позволяет хранить входные данные, такие как изменения гиперпараметров или запросов, а также выходные данные, которые будут использоваться для оценки эксперимента.
Как и в существующей среде MLOps, вы можете воспользоваться такими платформами, как конвейеры машинного обучения Azure. Конвейеры машинного обучения Azure имеют функции, поддерживающие индексирование путем интеграции с векторными хранилищами, такими как поиск ИИ. Среда GenAIOps может воспользоваться этими функциями конвейера и объединить их с функциями потока запросов, которые управляют проектированием запросов и пользовательской логикой предварительной обработки.
Оценка и экспериментирование
Оценка является ключевым в итеративном процессе экспериментирования при создании, оценке и уточнении решения. Оценка изменений предоставляет отзывы, необходимые для уточнения или проверки соответствия текущих итерации требованиям. В следующих разделах рассматриваются оценки на этапе экспериментирования для общих технических шаблонов искусственного интеллекта.
Обучение и настройка
Для оценки точно настроенных или обученных моделей генеративного ИИ следует воспользоваться существующими инвестициями в MLOps. Например, если вы используете конвейеры машинного обучения Azure для оркестрации обучения модели машинного обучения, вы можете использовать те же функции оценки для точной настройки базовых языковых моделей или обучения новых небольших языковых моделей. Эти функции включают компонент оценки модели, который вычисляет метрики оценки отраслевых стандартов для определенных типов моделей и сравнивает результаты между моделями.
Проектирование RAG и запроса
Вам необходимо расширить ваши текущие инвестиции в MLOps, чтобы оценить решения генеративного ИИ. Вы можете использовать такие средства, как поток запросов, который предоставляет платформу для оценки. Поток запросов позволяет командам определять пользовательскую логику оценки, указывая критерии и метрики для оценки производительности различных вариантов запросов и больших языковых моделей (LLM). Этот структурированный подход позволяет сравнивать различные конфигурации параллельно, такие как гиперпараметр или архитектурные вариации, чтобы определить оптимальную настройку для конкретных задач.
Задания в потоке запросов автоматически фиксируют входные и выходные данные в процессе экспериментов для создания комплексного отчёта об испытаниях. Вы можете получить аналитические сведения и определить перспективные конфигурации, которые могут информировать будущие итерации, анализируя эти данные. Вы можете ускорить разработку создаваемых решений искусственного интеллекта с помощью потоков запросов для проведения эффективных и систематических экспериментов.
Процесс экспериментирования одинаков независимо от варианта использования для создаваемого решения ИИ. Эти варианты использования включают классификацию, сводку, перевод и даже RAG. Важное отличие заключается в метриках, используемых для оценки различных вариантов использования. Ниже приведены некоторые метрики, основанные на варианте использования.
- Перевод: BLEU
- Сводка: ROUGE. BLEU, BERTScore, МЕТЕОР
- Классификация: точность, отзыв, точность, перекрестная энтропия
- RAG: Заземленность, Relevancy
Примечание.
Дополнительную информацию об оценке языковых моделей и решений RAG см. в полном отчете об оценке LLM, указанном в .
Как правило, генеративные решения ИИ расширяют обязанности команды по машинному обучению от обучения моделей до разработки промптов и управления основными данными. Поскольку для разработки запросов и экспериментов с RAG, а также их оценки не обязательно нужны специалисты по обработке данных, вы можете быть склонны использовать для этих задач другие роли, такие как инженеры-программисты и инженеры данных. Если вы исключите дата-сайентистов из процесса экспериментирования с решениями в области инженерии промптов и RAG, вы столкнетесь с проблемами. Другие роли обычно не обучены для научной оценки результатов, как и многие специалисты по данным. Ознакомьтесь с серией статей о разработке и разработке решения RAG, чтобы получить представление о сложности проектирования решений генерирования искусственного интеллекта.
Инвестирование в генеративные решения ИИ позволяет снять часть нагрузки с ваших ресурсов по анализу данных. Роль инженеров программного обеспечения расширяется в этих решениях. Например, инженеры программного обеспечения являются отличными специалистами для управления процессом оркестрации в решениях генеративного ИИ, и они умеют настраивать метрики оценки в таких инструментах, как Flow Prompts. Важно, чтобы специалисты по обработке и анализу данных проверяли эту работу. У них есть учебный курс и опыт, чтобы понять, как правильно оценить эксперименты.
Развертывание
Некоторые решения для генеративного искусственного интеллекта включают развертывание специально обученных моделей или тонкую настройку существующих моделей, но другие этого не требуют. Для генеративных решений ИИ необходимо включить дополнительные задачи развертывания систем управления и хранилищ данных. В следующих разделах описывается развертывание общих технических шаблонов искусственного интеллекта.
Обучение и настройка
Вы должны использовать существующие инвестиции в MLOps, возможно, с некоторыми корректировками, чтобы развертывать генеративные модели ИИ и точно настраивать базовые модели. Например, чтобы точно настроить большую языковую модель в Azure OpenAI, необходимо убедиться, что наборы данных обучения и проверки находятся в формате JSONL, и необходимо передать данные через REST API. Кроме того, необходимо создать задание точной настройки. Для того чтобы развернуть небольшую обученную языковую модель, вы можете воспользоваться вашими существующими инвестициями в MLOps.
Проектирование RAG и запроса
Для проектирования RAG и инжиниринга подсказок существуют дополнительные вопросы, включая логику оркестрации, изменения в структурах данных, таких как индексы и схемы, и изменения логики обработки данных в конвейерах. Логика оркестрации обычно инкапсулируется в платформах, таких как Prompt Flow, Семантическое Ядро или LangChain. Вы можете развернуть оркестратор на различных вычислительных ресурсах, включая те, на которых вы в настоящее время развертываете пользовательские модели. Обратитесь к архитектуре чата Azure OpenAI за примерами полного развертывания потока запросов как на сетевые конечные точки, управляемые Azure Machine Learning, так и в Azure App Service. Чтобы развернуть в Службе приложений, архитектура чата Azure OpenAI упаковывает поток и его зависимости в контейнер, что повышает переносимость и согласованность в различных средах.
Развертывания изменений в ресурсах базы данных, таких как изменения моделей данных или индексов, являются новыми задачами, которые необходимо обрабатывать в GenAIOps. Распространенная практика при работе с большими языковыми моделями — использовать шлюз перед LLM.
Многие созданные архитектуры ИИ, использующие языковые модели, размещенные на платформе, например те, которые обслуживаются из Azure OpenAI, включают шлюз , например управление API Azure. Варианты использования шлюза включают балансировку нагрузки, проверку подлинности и мониторинг. Шлюз может играть роль в развертывании недавно обученных или точно настроенных моделей, что позволяет постепенно развертывать новые модели. Использование шлюза вместе с управление версиями моделей позволяет свести к минимуму риск при развертывании изменений и откат к предыдущим версиям при возникновении проблем.
Развертывания элементов, характерных для создания искусственного интеллекта, например оркестратора, должны соответствовать соответствующим операционным процедурам, например:
- Строгое тестирование, включая модульные тесты.
- Тесты интеграции.
- Тесты A/B.
- Сквозные тесты.
- Стратегии развертывания, такие как канареечные или синее/зеленое развертывания.
Поскольку обязанности по развертыванию генеративных приложений ИИ выходят за рамки развертывания модели, могут потребоваться дополнительные роли для управления развертыванием и мониторингом таких компонентов, как пользовательский интерфейс, оркестратор и хранилища данных. Эти роли часто соответствуют наборам навыков инженера DevOps.
Вывод и мониторинг
Вывод — это процесс передачи входных данных обученной и развернутой модели, которая затем создает ответ. Следует отслеживать как традиционные решения машинного обучения, так и решения для создания искусственного интеллекта с трех позиций: операционный мониторинг, обучение с рабочей среды и управление ресурсами.
Операционный мониторинг
Операционный мониторинг — это процесс наблюдения за текущими операциями системы, включая операции с данными (DataOps) и обучение моделей. Этот тип мониторинга ищет отклонения, включая ошибки, изменения частоты ошибок и изменения времени обработки.
Для обучения моделей и тонкой настройки обычно выполняются операции обработки данных функций, обучения моделей и точной настройки. Мониторинг этих процессов внутреннего цикла должен использовать ваши существующие инвестиции в MLOps и DataOps.
Для разработки запросов в создаваемых решениях ИИ у вас есть дополнительные проблемы мониторинга. Необходимо контролировать потоки данных, которые обрабатывают базовые данные или другие данные, используемые для генерации подсказок. Эта обработка может включать операции хранения данных, такие как сборка или перестроение индексов.
Обучение на основе рабочей среды
Критически важный аспект мониторинга на этапе вывода — получение знаний из производственной среды. Мониторинг традиционных моделей машинного обучения отслеживает метрики, такие как точность, достоверность и полнота. Основная цель заключается в том, чтобы избежать смещения прогнозов. Решения, использующие генеративные модели для прогнозирования, например, модель GPT для классификации, должны воспользоваться вашими существующими инвестициями в мониторинг MLOps.
Решения, использующие генеративные модели для анализа данных с обоснованием, используют метрики, такие как обоснованность, полнота, практическое применение и релевантность. Цель заключается в том, чтобы модель полностью отвечает на запрос и основывает ответ на его контексте. Здесь необходимо попытаться предотвратить такие проблемы, как смещение данных. Необходимо убедиться, что данные для обучения и подсказка, предоставляемые модели ИИ, максимально релевантны запросу пользователя.
Решения RAG, которые используют генерирующие модели для непредсказывающих задач, часто получают выгоду от обратной связи от конечных пользователей для оценки тональности полезности. Пользовательские интерфейсы могут фиксировать отзывы, такие как палец вверх или вниз, и вы можете использовать эти данные для периодической оценки ответов.
Распространенный шаблон для решений для создания искусственного интеллекта заключается в развертывании шлюза перед генерируемыми моделями. Одним из вариантов использования шлюза является мониторинг базовых моделей. Шлюз можно использовать для регистрации входных запросов и выходных данных.
Еще одной ключевой областью мониторинга для создания решений является безопасность содержимого. Целью является умеренное реагирование и обнаружение вредного или нежелательного содержимого. Azure AI Content Safety Studio является примером средства, которое можно использовать для умеренного содержимого.
Управление ресурсами
Создаваемые решения, использующие модели, предоставляемые в качестве службы, например Azure OpenAI, имеют разные проблемы управления ресурсами, чем модели, которые развертываются самостоятельно. Для моделей, предоставляемых как услуга, вам не нужно беспокоиться об инфраструктуре. Вместо этого вы обеспокоены пропускной способностью службы, квотой и регулированием. Azure OpenAI использует токены для выставления счетов, ограничения и квот. Следует отслеживать использование квот для управления затратами и эффективности производительности. Azure OpenAI позволяет регистрировать использование токенов.
Средства
Многие практики MLOps стандартизировали набор средств для организации различных действий по автоматизации, отслеживанию, развертыванию, экспериментации и т. д. для абстрагирования общих проблем и деталей реализации этих процессов. Общая унифицированная платформа — MLflow. Прежде чем искать новые инструменты для поддержки шаблонов GenAIOps, ознакомьтесь с существующими инструментами MLOps, чтобы оценить поддержку создания искусственного интеллекта. Например, MLflow поддерживает широкий спектр функций для языковых моделей.
Модели зрелости MLOps и GenAIOps
Возможно, вы использовали модель зрелости MLOps для оценки зрелости текущих операций машинного обучения и среды. При расширении инвестиций MLOps для создания рабочих нагрузок ИИ следует использовать модель зрелости GenAIOps для оценки этих операций. Вы можете заманчиво объединить две модели зрелости, но мы рекомендуем измерять каждую из них независимо. MLOps и GenAIOps будут развиваться независимо друг от друга. Например, вы можете быть на уровне четыре в модели зрелости MLOps, но на уровне один для генеративного ИИ.
Итоги
При начале расширения инвестиций в MLOps для включения генеративного ИИ важно понимать, что вам не нужно начинать всё заново. Вы можете использовать существующие инвестиции MLOps для некоторых технических шаблонов искусственного интеллекта. Точное настройка генеривных моделей — отличный пример. Существуют области генеративных решений ИИ, такие как инжиниринг подсказок и RAG, которые являются новыми процессами, поэтому необходимо расширить существующие инвестиции в операционную деятельность и получить новые навыки.
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
- Луис Браз | Старший технический специалист
- Марко Aurelio Cardoso | Старший инженер по программному обеспечению
- Пауло Лакерда | Архитектор облачных решений
- Ritesh Modi | Главный инженер программного обеспечения
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.