GenAIOps с потоком запросов и Azure DevOps
По мере повышения спроса на приложения LLM, организации нуждаются в согласованном и упрощенном процессе для управления комплексным жизненным циклом этих приложений. Создание операций искусственного интеллекта (GenAIOps), иногда называемых LLMOps, является краеугольным камнем эффективной разработки запросов и разработки и развертывания приложений LLM.
В этой статье показано, как Машинное обучение Azure позволяет интегрироваться с Azure DevOps для автоматизации жизненного цикла разработки приложений LLM с потоком запроса. Поток запросов обеспечивает упрощенный и структурированный подход к разработке приложений, вложенных в LLM. Его хорошо определенный процесс и жизненный цикл помогут вам в процессе создания, тестирования, оптимизации и развертывания потоков, что завершается созданием полностью функциональных решений llM-infused.
Функции потока запросов GenAIOps
GenAIOps с потоком запроса использует шаблон GenAIOps и руководство, чтобы помочь вам создавать приложения с поддержкой LLM с помощью потока запроса. GenAIOps с потоком запросов имеет возможности для простых или сложных приложений LLM- и настраивается в соответствии с потребностями приложения.
GenAIOps с платформой потока запросов предоставляет следующие функции:
Централизованное размещение кода. Репозиторий поддерживает размещение кода для нескольких потоков запросов, предоставляя один репозиторий для всех потоков. Этот репозиторий похож на библиотеку для потоков, что упрощает поиск, доступ и совместную работу над различными проектами.
Управление жизненным циклом. Каждый поток имеет собственный жизненный цикл, обеспечивая плавный переход от локального эксперимента к рабочему развертыванию.
Экспериментирование вариантов и гиперпараметров. Варианты и гиперпараметры похожи на ингредиенты в рецепте. Платформа позволяет экспериментировать с различными сочетаниями вариантов между несколькими узлами в потоке. Вы можете экспериментировать с несколькими вариантами и гиперпараметрами, чтобы легко оценить варианты потока.
Несколько целевых объектов развертывания. Платформа создает образы Docker, вложенные в поток и вычислительный сеанс для развертывания на любой целевой платформе и операционной системе, поддерживающей Docker. Потоки можно развертывать в приложение Azure службах, Kubernetes и управляемых вычислительных ресурсах Azure, а также настраивать их для масштабирования по мере необходимости.
Развертывание A/B. GenAIOps с потоком запросов легко реализует развертывания A/B, что позволяет легко сравнивать различные версии потока. Эта платформа упрощает развертывание A/B для потока запросов так же, как и в традиционном тестировании веб-сайта A/B. Вы можете легко сравнить различные версии потока в реальном мире, чтобы определить, какая версия работает лучше всего.
Набор данных "многие ко многим" для потоковых связей. GenAIOps с потоком запросов включает несколько наборов данных для каждого стандартного и оценочного потока, что обеспечивает гибкость в тестировании и оценке потока.
Условные данные и регистрация моделей. Платформа регистрирует новую версию набора данных для ресурса данных Машинное обучение Azure и потоков в реестре моделей только при изменении набора данных.
Комплексные отчеты. GenAIOps с потоком запросов создает подробные отчеты для каждой конфигурации варианта, что позволяет принимать обоснованные решения. Платформа предоставляет подробную коллекцию метрик, эксперименты и вариантные массовые запуски для всех запусков и экспериментов, что позволяет принимать решения на основе данных для CSV-файлов и HTML-файлов.
GenAIOps с потоком запросов предоставляет следующие другие функции для настройки:
- Перенос собственных потоков (BYOF) предоставляет полную платформу для разработки нескольких вариантов использования, связанных с приложениями llM-infused.
- Разработка на основе конфигурации означает, что нет необходимости писать обширный стандартный код.
- Экспериментирование и оценка запросов выполняются как локально, так и в облаке.
- Записные книжки для оценки локальных запросов предоставляют библиотеку функций для локального эксперимента.
- Тестирование конечных точек в конвейере после развертывания проверяет доступность и готовность конечных точек.
- Необязательный цикл для пользователя проверяет метрики запроса перед развертыванием.
Этапы GenAIOps
Жизненный цикл GenAIOps состоит из четырех отдельных этапов:
Инициализация. Четко определите бизнес-цель, соберите соответствующие образцы данных, создайте базовую структуру запроса и создайте поток, который повышает его возможности.
Экспериментирование. Примените поток к образцам данных, оцените производительность запроса и измените поток по мере необходимости. Непрерывно итерировать до тех пор, пока не удовлетворены результатами.
Оценка и уточнение. Проверьте производительность потока с помощью более крупного набора данных, оцените эффективность запроса и выполните соответствующие уточнения. Ход выполнения до следующего этапа, если результаты соответствуют требуемым стандартам.
Развертывание. Оптимизируйте поток для повышения эффективности и эффективности, разверните его в рабочей среде, включая развертывание A/B, отслеживайте производительность, собирайте отзывы пользователей и используйте эти сведения для дальнейшего улучшения потока.
Следуя этой структурированной методологии, поток запросов позволяет уверенно разрабатывать, тщательно тестировать, настраивать и развертывать потоки, что приводит к созданию надежных и сложных приложений ИИ.
Шаблон потока запросов GenAIOps формализирует эту структурированную методологию с помощью подхода к коду и помогает создавать приложения, встраиваемые в LLM, с помощью средств потока запросов и процессов и функций потока запросов GenAIOps. Этот шаблон доступен в GenAIOps с шаблоном потока запроса.
Поток процессов GenAIOps
- На этапе инициализации вы разрабатываете потоки, подготавливаете и курируете данные, а также обновляете связанные файлы конфигурации GenAIOps.
- После локальной разработки с помощью Visual Studio Code с расширением потока запроса вы создаете запрос на вытягивание (PR) из ветвь компонента в ветвь разработки, которая выполняет конвейер проверки сборки и потоки экспериментов.
- Запрос на вытягивание вручную утвержден и код объединяется с ветвью разработки.
- После слияния pr в ветвь разработки конвейер непрерывной интеграции (CI) для среды разработки выполняется. Конвейер CI выполняет потоки экспериментов и вычислений в последовательности и регистрирует потоки в реестре Машинное обучение Azure отдельно от других шагов в конвейере.
- После завершения выполнения конвейера CI триггер непрерывного развертывания (CD) выполняет конвейер CD, который развертывает стандартный поток из реестра Машинное обучение Azure в качестве Машинное обучение Azure онлайн-конечной точки. Затем конвейер выполняет тесты интеграции и дыма в развернутом потоке.
- Ветвь выпуска создается из ветви разработки, или pr вызывается из ветви разработки в ветвь выпуска.
- Pr-запрос утвержден вручную, и код объединяется с ветвью выпуска. После объединения pr в ветвь выпуска конвейер CI для рабочей среды выполняется. Конвейер выполняет потоки экспериментирования и оценки в последовательности и регистрирует потоки в реестре Машинное обучение Azure отдельно от других шагов в конвейере.
- После завершения выполнения конвейера CI триггер CD выполняет конвейер CD, который развертывает стандартный поток из реестра Машинное обучение Azure в качестве Машинное обучение Azure сетевой конечной точки. Затем конвейер выполняет тесты интеграции и дыма в развернутом потоке.
Создание потока запроса GenAIOps
В остальной части этой статьи показано, как использовать GenAIOps с потоком запросов, выполнив полный пример в GenAIOps с репозиторием шаблонов потока запросов, которые помогают создавать приложения с поддержкой LLM с помощью потока запросов и Azure DevOps. Основной целью является оказание помощи в разработке этих приложений с помощью возможностей потока запросов и GenAIOps.
Необходимые компоненты
- Подписка Azure с бесплатной или платной версией Машинное обучение Azure.
- Рабочая область Машинного обучения Azure.
- Git версии 2.27 или более поздней версии, запущенной на локальном компьютере.
- Организация Azure DevOps, в которой вы можете создать проект, репозиторий системы управления версиями Azure Repos и конвейеры Azure Pipelines. Организация Azure DevOps помогает сотрудничать, планировать и отслеживать работу, код и проблемы, а также настраивать CI и CD.
- Понимание того, как интегрировать GenAIOps с потоком запроса.
Примечание.
Если вы используете Azure DevOps и Terraform для создания инфраструктуры, необходимо установить расширение Terraform для Azure DevOps .
Настройка подключения потока запроса
Поток запросов использует ресурс подключения для подключения к конечным точкам Поиска Azure OpenAI, OpenAI или Azure AI Search. Подключение можно создать с помощью пользовательского интерфейса портала потока запроса или с помощью REST API. Дополнительные сведения см. в разделе "Подключения" в потоке запросов.
Чтобы создать подключение, следуйте инструкциям по настройке подключений для потока запроса. В примерах потоков используется вызываемое соединение aoai
, поэтому присвойте вашему подключению это имя.
Настройка сеанса вычислений
Поток запроса использует вычислительный сеанс для выполнения потока. Создайте и запустите сеанс вычислений перед выполнением потока запроса.
Настройка репозитория Azure Repos
Чтобы создать вилку репозитория в организации Azure DevOps, следуйте инструкциям по настройке репозитория GitHub. В этом репозитории используются две ветви, main
а development
для повышения уровня кода и выполнения конвейера.
Чтобы создать локальный репозиторий, следуйте инструкциям в разделе "Клонировать репозиторий". Это клон помогает создать новый ветвь компонента из ветви разработки и включить изменения.
Настройка субъекта-службы Azure
Субъект-служба Azure — это удостоверение безопасности, которое используются приложениями, службами и средствами автоматизации для доступа к ресурсам Azure. Приложение или служба проходит проверку подлинности в Azure для доступа к ресурсам от вашего имени.
Создайте субъект-службу, выполнив инструкции по созданию субъекта-службы Azure. Этот субъект-служба используется для настройки подключения Azure DevOps Services и разрешения Azure DevOps Services для проверки подлинности и подключения к службам Azure. Эксперимент потока запроса и задания оценки выполняются под удостоверением субъекта-службы.
Программа установки предоставляет субъекту-службе разрешения владельца, чтобы конвейер CD автоматически предоставлял только что подготовленную конечную точку Машинное обучение Azure с доступом к рабочей области Машинное обучение Azure для чтения сведений о подключении. Конвейер также добавляет конечную точку в политику хранилища ключей, связанную с рабочей областью Машинное обучение Azure и get
list
разрешениями секрета. Вы можете изменить разрешения владельца на разрешения уровня участника , изменив код YAML конвейера, чтобы удалить шаг, связанный с разрешениями.
Создание проекта Azure DevOps
Чтобы создать проект в пользовательском интерфейсе Azure DevOps, следуйте инструкциям по созданию нового проекта Azure DevOps.
Настройка проверки подлинности между Azure DevOps и Azure
На этом шаге настраивается новое подключение службы Azure DevOps, которое хранит сведения о субъекте-службе. Конвейеры проекта могут считывать сведения о подключении с помощью имени подключения для автоматического подключения к Azure. Чтобы использовать субъект-службу, созданный для настройки проверки подлинности между Azure DevOps и службами Azure, следуйте инструкциям по настройке проверки подлинности с помощью Azure и Azure DevOps.
Создание группы переменных Azure DevOps
Чтобы создать новую группу переменных и добавить переменную, связанную с подключением службы Azure DevOps, выполните инструкции по созданию группы переменных Azure DevOps. Затем имя субъекта-службы доступно конвейерам автоматически в качестве переменной среды.
Настройка Azure Repos и Azure Pipelines
В примере репозитория используются две ветви, main
а development
для повышения уровня кода и выполнения конвейера. Чтобы настроить собственные локальные и удаленные репозитории для использования кода из примера репозитория, выполните инструкции по настройке локальных и удаленных репозиториев Azure DevOps.
Клонируйте и main
development
ветви из примера репозитория, а также связываете код, чтобы ссылаться на новый репозиторий Azure Repos. Конвейеры pr и разработки настраиваются для автоматического выполнения на основе триггеров создания и слияния.
Политика ветвей для development
ветви настроена для выполнения конвейера PR для любого запроса, поднятого в ветви разработки из ветвь компонента. Конвейер dev
выполняется при слиянии pr в ветвь разработки и состоит из этапов CI и CD.
Человек в цикле также реализуется в конвейерах. После выполнения этапа CI в dev
конвейере этап CD следует после того, как в пользовательском интерфейсе выполнения сборки Azure Pipelines будет предоставлено утверждение вручную.
Время ожидания утверждения по умолчанию составляет 60 минут, после чего конвейер отклоняется, а этап CD не выполняется. Утверждение выполнения вручную выполняет шаги CD конвейера.
Утверждение вручную в примере конвейера настроено для отправки replace@youremail.com
уведомлений. Замените заполнитель соответствующим адресом электронной почты.
Тестирование конвейера
Чтобы протестировать конвейеры, следуйте инструкциям в разделе "Тестирование конвейеров". Полный процесс включает в себя следующие действия.
- Вы создаете PR из ветвь компонента в ветвь разработки.
- Конвейер PR выполняется автоматически из-за конфигурации политики ветви.
- Pr объединяется с ветвью разработки.
- Связанный
dev
конвейер выполняется, что приводит к полному выполнению CI и CD и подготовке или обновлению конечных точек Машинное обучение Azure.
Выходные данные должны выглядеть примерно так же, как в примерах сценария выполнения, оценки и развертывания.
Использование локального выполнения
Чтобы использовать возможности локального выполнения , выполните следующие действия.
Клонируйте репозиторий следующим образом:
git clone https://github.com/microsoft/genaiops-promptflow-template.git
Создайте ENV-файл на верхнем уровне папок. Добавьте строки для каждого подключения, обновляя значения заполнителей. В примерах репозитория используется подключение AzureOpenAI с именем
aoai
и версией2024-02-01
API.aoai={ "api_key": "<api key>","api_base": "<api base or endpoint>","api_type": "azure","api_version": "2024-02-01"} <connection2>={ "api_key": "<api key>","api_base": "<api base or endpoint>","api_type": "<api type>","api_version": "<api_version>"}
Подготовьте локальную среду conda или виртуальную среду для установки зависимостей.
python -m pip install promptflow promptflow-tools promptflow-sdk jinja2 promptflow[azure] openai promptflow-sdk[builtins] python-dotenv
Перенос или запись потоков в шаблон на основе инструкций по подключению новых потоков.
Напишите скрипты Python в папке local_execution аналогично приведенным примерам.