Поделиться через


GenAIOps с потоком запросов и GitHub

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

В этой статье показано, как Машинное обучение Azure позволяет интегрироваться с GitHub для автоматизации жизненного цикла разработки приложений с поддержкой 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.

  1. На этапе инициализации вы разрабатываете потоки, подготавливаете и курируете данные, а также обновляете связанные файлы конфигурации GenAIOps.
  2. После локальной разработки с помощью Visual Studio Code с расширением потока запроса вы создаете запрос на вытягивание (PR) из ветвь компонента в ветвь разработки, которая выполняет конвейер проверки сборки и потоки экспериментов.
  3. Запрос на вытягивание вручную утвержден и код объединяется с ветвью разработки.
  4. После слияния pr в ветвь разработки конвейер непрерывной интеграции (CI) для среды разработки выполняется. Конвейер CI выполняет потоки экспериментов и вычислений в последовательности и регистрирует потоки в реестре Машинное обучение Azure отдельно от других шагов в конвейере.
  5. После завершения выполнения конвейера CI триггер непрерывного развертывания (CD) выполняет конвейер CD, который развертывает стандартный поток из реестра Машинное обучение Azure в качестве Машинное обучение Azure онлайн-конечной точки. Затем конвейер выполняет тесты интеграции и дыма в развернутом потоке.
  6. Ветвь выпуска создается из ветви разработки, или pr вызывается из ветви разработки в ветвь выпуска.
  7. Pr-запрос утвержден вручную, и код объединяется с ветвью выпуска. После объединения pr в ветвь выпуска конвейер CI для рабочей среды выполняется. Конвейер выполняет потоки экспериментирования и оценки в последовательности и регистрирует потоки в реестре Машинное обучение Azure отдельно от других шагов в конвейере.
  8. После завершения выполнения конвейера CI триггер CD выполняет конвейер CD, который развертывает стандартный поток из реестра Машинное обучение Azure в качестве Машинное обучение Azure сетевой конечной точки. Затем конвейер выполняет тесты интеграции и дыма в развернутом потоке.

Создание потока запроса GenAIOps

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

Необходимые компоненты

Настройка подключения потока запроса

Поток запросов использует ресурс подключения для подключения к конечным точкам Поиска Azure OpenAI, OpenAI или Azure AI Search. Подключение можно создать с помощью пользовательского интерфейса портала потока запроса или с помощью REST API. Дополнительные сведения см. в разделе "Подключения" в потоке запросов.

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

Настройка сеанса вычислений

Поток запроса использует вычислительный сеанс для выполнения потока. Создайте и запустите сеанс вычислений перед выполнением потока запроса.

Настройка репозитория GitHub

Чтобы создать вилку репозитория в организации GitHub, выполните инструкции по настройке репозитория GitHub. В этом репозитории используются две ветви, main а developmentдля повышения уровня кода и выполнения конвейера.

Чтобы создать локальный репозиторий, следуйте инструкциям в разделе "Клонировать репозиторий". Это клон помогает создать новый ветвь компонента из ветви разработки и включить изменения.

Настройка проверки подлинности между GitHub и Azure

Этот процесс настраивает секрет GitHub, в который хранятся сведения субъекта-службы. Для автоматического подключения к Azure рабочие процессы в репозитории могут считывать сведения о подключении с помощью имени секрета. Дополнительные сведения см. в статье "Использование GitHub Actions для подключения к Azure".

  1. Создайте субъект-службу, выполнив инструкции по созданию субъекта-службы Azure.
  2. Используйте субъект-службу для настройки проверки подлинности между репозиторием GitHub и службами Azure, следуя инструкциям по настройке проверки подлинности с помощью Azure и GitHub.

Тестирование конвейера

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

  1. Вы создаете PR из ветвь компонента в ветвь разработки.
  2. Конвейер PR выполняется автоматически из-за конфигурации политики ветви.
  3. Pr объединяется с ветвью разработки.
  4. Связанный dev конвейер выполняется, что приводит к полному выполнению CI и CD и подготовке или обновлению конечных точек Машинное обучение Azure.

Выходные данные должны выглядеть примерно так же, как в примерах сценария выполнения, оценки и развертывания.

Использование локального выполнения

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

  1. Клонируйте репозиторий следующим образом:

    git clone https://github.com/microsoft/genaiops-promptflow-template.git
    
  2. Создайте ENV-файл на верхнем уровне папок. Добавьте строки для каждого подключения, обновляя значения заполнителей. В примерах репозитория используется подключение AzureOpenAI с именем aoai и версией 2024-02-01API.

    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>"}
    
  3. Подготовьте локальную среду conda или виртуальную среду для установки зависимостей.

    python -m pip install promptflow promptflow-tools promptflow-sdk jinja2 promptflow[azure] openai promptflow-sdk[builtins] python-dotenv
    
  4. Перенос или запись потоков в шаблон на основе инструкций по подключению новых потоков.

  5. Напишите скрипты Python в папке local_execution аналогично приведенным примерам.