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


LLMOps с потоком запроса и GitHub

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

Машинное обучение Azure позволяет интегрироваться с GitHub для автоматизации жизненного цикла разработки приложений с поддержкой LLM с потоком запроса.

Машинное обучение Azure поток запросов обеспечивает упрощенный и структурированный подход к разработке приложений, вложенных в LLM. Его четко определенный процесс и жизненный цикл помогут вам создать, протестировать, оптимизировать и развернуть потоки, завершив создание полностью функциональных решений llM-infused.

Функции потока запросов LLMOps

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

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

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

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

  • Несколько целевых объектов развертывания: репозиторий поддерживает развертывание потоков в службах приложение Azure, Kubernetes, управляемых Azure вычислительных ресурсах, управляемых с помощью конфигурации, гарантируя, что потоки могут масштабироваться по мере необходимости. Он также создает образы Docker, вложенные в сеанс вычислений Flow, и потоки для развертывания на любой целевой платформе и операционной системе, поддерживающей Docker. Снимок экрана: конечные точки.

  • Развертывание A/B: просто реализуйте развертывания A/B, что позволяет легко сравнивать различные версии потока. Как и в традиционном тестировании A/B для веб-сайтов, эта платформа упрощает развертывание A/B для потока запроса. Это означает, что вы можете легко сравнить различные версии потока в реальном мире, чтобы определить, какие результаты лучше всего выполнять. Снимок экрана: развертывания.

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

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

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

Другие функции для настройки:

  • Предложения BYOF (перенос собственных потоков). Полная платформа для разработки нескольких вариантов использования, связанных с приложениями llM-infused.

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

  • Обеспечивает выполнение экспериментов и вычислений запросов локально, а также в облаке.

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

  • Тестирование конечных точек в конвейере после развертывания для проверка его доступности и готовности.

  • Предоставляет необязательный цикл "Человек в цикле" для проверки метрик запроса перед развертыванием.

LLMOps с потоком запроса предоставляет возможности для простых, а также сложных приложений LLM-infused. Он настраивается в соответствии с потребностями приложения.

Этапы LLMOps

Жизненный цикл состоит из четырех отдельных этапов:

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

  • Экспериментирование. Применение потока к образцам данных, оценка производительности запроса и уточнение потока по мере необходимости. Непрерывно итерировать до тех пор, пока не удовлетворены результатами.

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

  • Развертывание. Оптимизация потока для повышения эффективности и эффективности, развертывание в рабочей среде, включая развертывание A/B, мониторинг производительности, сбор отзывов пользователей и использование этой информации для дальнейшего улучшения потока.

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

Шаблон потока запросов LLMOps формализует эту структурированную методологию с помощью подхода в коде и помогает создавать приложения llM-infused с помощью потока запроса с помощью инструментов и процессов, относящихся к потоку запросов. Он предлагает ряд функций, включая централизованное размещение кода, управление жизненным циклом, экспериментирование вариантов и гиперпараметров, развертывание A/B, отчеты обо всех запусках и экспериментах и многое другое.

Репозиторий для этой статьи доступен в LLMOps с шаблоном потока запроса.

Поток процессов LLMOps

Снимок экрана: процесс потока запроса LLMOps.

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

Здесь вы можете узнать LLMOps с потоком запроса, следуя приведенным ниже комплексным примерам, которые помогут вам создать приложения с поддержкой LLM с помощью потока запросов и GitHub. Ее основной целью является оказание помощи в разработке таких приложений с помощью возможностей потока запросов и LLMOps.

Совет

Мы рекомендуем понять, как интегрировать LLMOps с потоком запроса.

Внимание

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

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

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу. Попробуйте бесплатную или платную версию Машинного обучения Azure.
  • Рабочая область Машинного обучения Azure.
  • Git, запущенный на локальном компьютере.
  • GitHub в качестве репозитория системы управления версиями.

Примечание.

Требуется Git версии 2.27 или более поздней. Дополнительные сведения об установке команды Git см. в статье https://git-scm.com/downloads и выборе операционной системы.

Внимание

Команды CLI в этой статье были протестированы с помощью Bash. При использовании другой оболочки могут возникнуть ошибки.

Настройка потока запросов

Поток запросов использует ресурсы подключений для подключения к конечным точкам, таким как Azure OpenAI, OpenAI или Поиск ИИ Azure, и использует вычислительный сеанс для выполнения потоков. Эти ресурсы необходимо создать перед выполнением потоков в потоке запросов.

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

Подключение можно создавать с помощью пользовательского интерфейса портала потока запросов или с помощью REST API. Следуйте рекомендациям по созданию подключений для потока запроса.

Выберите ссылку, чтобы узнать больше о подключениях.

Примечание.

В примерах потоков для их выполнения необходимо создать подключение "aoai" и подключение с именем aoai.

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

Для настройки процесса LLMOps с помощью репозитория GitHub необходимо выполнить несколько шагов.

Вилка и настройка репозитория

Следуйте рекомендациям по созданию вилки репозитория в организации GitHub. В этом репозитории используются две ветви— main и development для продвижения кода и выполнения конвейеров вместо изменений кода в них.

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

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

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

Клонирование репозитория

Следуйте рекомендациям по созданию нового локального репозитория.

Это помогает нам создавать новые ветвь компонента из ветви разработки и внедрять изменения.

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

Следуйте инструкциям по тестированию конвейеров. Ниже приведены действия.

  1. Вызов запроса pr(pull) из ветвь компонента в ветвь разработки.
  2. Конвейер PR должен выполняться автоматически в результате настройки политики ветви.
  3. Затем PR объединяется с ветвью разработки.
  4. Выполняется связанный конвейер dev. Это приводит к полному выполнению CI и CD и приводит к подготовке или обновлению существующих конечных точек Машинное обучение Azure.

Выходные данные теста должны быть похожи на те, которые показаны здесь.

Локальное выполнение

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

  1. Клонируйте репозиторий: начните с клонирования репозитория шаблона из своего репозитория GitHub.
git clone https://github.com/microsoft/llmops-promptflow-template.git
  1. Настройте env-файл: создайте env-файл на верхнем уровне папки и укажите сведения для элементов, упоминание. Добавьте столько имен подключений, сколько нужно. Все примеры потока в этом репозитории используют подключение AzureOpenAI с именем aoai. Добавьте строку aoai={"api_key": "","api_base": "","api_type": "azure","api_version": "2024-02-01"} с обновленными значениями для api_key и api_base. Если в потоках используются дополнительные подключения с разными именами, их следует добавить соответствующим образом. В настоящее время поток с AzureOpenAI в качестве поставщика поддерживается.

experiment_name=
connection_name_1={ "api_key": "","api_base": "","api_type": "azure","api_version": "2023-03-15-preview"}
connection_name_2={ "api_key": "","api_base": "","api_type": "azure","api_version": "2023-03-15-preview"}
  1. Подготовьте локальную среду conda или виртуальную среду для установки зависимостей.

python -m pip install promptflow promptflow-tools promptflow-sdk jinja2 promptflow[azure] openai promptflow-sdk[builtins] python-dotenv

  1. Введите или напишите потоки в шаблон на основе документации.

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

Следующие шаги