Развертывание агента для создания приложений ИИ (обслуживание моделей)

Important

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

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

Развернутый агент автоматически интегрируется с возможностями оценки и мониторинга MLflow 3, включая трассировку в режиме реального времени, приложение проверки для отзывов заинтересованных лиц и мониторинга.

Requirements

MLflow 3

  • Зарегистрируйте агент в каталоге Unity.
  • Установите MLflow 3.1.3 или более поздней версии, чтобы развернуть агенты с помощью deploy() API из databricks.agents.
  • Для развертывания агентов вне ноутбука Databricks требуется пакет SDK версии 1.1.0 или выше.

Установите необходимые компоненты:

# Install prerequisites
%pip install mlflow>=3.1.3 databricks-agents>=1.1.0

# Restart Python to make sure the new packages are picked up
dbutils.library.restartPython()

MLflow 2.x

Important

Databricks рекомендует использовать MLflow 3 для развертывания агентов, так как некоторые функции ведения журнала MLflow 2 будут устаревшими. См. подробные действия развертывания.

  • Зарегистрируйте агент в каталоге Unity.
  • Установите MLflow 2.13.1 или более поздней версии для развертывания агентов с помощью deploy() API из databricks.agents.
  • Для развертывания агентов вне ноутбука Databricks требуется databricks-agents пакет SDK версии 0.12.0 или выше.

Установите необходимые компоненты:

# Install prerequisites
%pip install mlflow>=2.13.1 databricks-agents>=0.12.0

# Restart Python to make sure the new packages are picked up
dbutils.library.restartPython()

Развертывание агентов с помощью deploy()

Разверните агент в конечной точке обслуживания модели:

from databricks import agents

deployment = agents.deploy(uc_model_name, uc_model_info.version)

# Retrieve the query endpoint URL for making API requests
deployment.query_endpoint

При вызове deploy()Databricks автоматически настраивает рабочую инфраструктуру и интегрирует агент с функциями ИИ поколения MLflow, выполнив следующие действия:

Предупреждение

Если вы развертываете агент из записной книжки, хранящейся в папке Databricks Git, трассировка MLflow 3 в режиме реального времени не будет работать по умолчанию.

Чтобы включить трассировку в режиме реального времени, перед запуском mlflow.set_experiment(), переключите эксперимент на состояние, не связанное с Git, используя agents.deploy().

Функция deploy() выполняет следующие действия по умолчанию:

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

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

Настройка развертывания

Передайте дополнительные аргументы в deploy(), чтобы настроить развертывание. Например, можно включить масштабирование до нуля для неактивных конечных точек путем передачи scale_to_zero_enabled=True. Это снижает затраты, но увеличивает время обслуживания начальных запросов.

Дополнительные параметры см. в разделе Databricks Agent Python API.

Обновите существующее развертывание

При вызове deploy() с тем же именем модели каталога Unity, что и существующее развертывание, новая версия модели добавляется в существующую конечную точку обслуживания, а трафик перемещается в него после его готовности. Ранее развернутая версия продолжает обслуживать запросы во время развертывания, поэтому обновления не прерывают трафик во время полета.

Чтобы обеспечить развертывания без простоя, не изменяйте никакие параметры конфигурации, кроме версии модели UC и имени модели (т. е. endpoint_name и имени модели).

Получение и удаление развертываний агентов

Получение существующих развертываний агента или управление ими. См. раздел Databricks Agent Python API.

from databricks.agents import list_deployments, get_deployments, delete_deployment

# Print all current deployments
deployments = list_deployments()
print(deployments)

# Get the deployment for a specific agent model name and version
agent_model_name = ""    # Set to your Unity Catalog model name
agent_model_version = 1  # Set to your agent model version
deployment = get_deployments(model_name=agent_model_name, model_version=agent_model_version)

# List all deployments
all_deployments = list_deployments()

# Delete an agent deployment
delete_deployment(model_name=agent_model_name, model_version=agent_model_version)

Проверка подлинности для зависимых ресурсов

Агенты часто должны проходить проверку подлинности в других ресурсах для выполнения задач при развертывании. Например, агенту может потребоваться доступ к индексу поиска ИИ для запроса неструктурированных данных.

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

Сеть для развертываний агента

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

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

Для агентов, развернутых в службе моделей, проверьте следующее:

  • Зависимости на этапе сборки: Сетевая политика должна разрешить доступ к репозиториям пакетов, необходимым для среды агента, например pypi.org или files.pythonhosted.org для пакетов Python. Azure Databricks фиксирует ошибки сборки, вызванные блокировкой сетевого доступа, с помощью network_source_type: ML Build в системной таблице system.access.outbound_network. См. статью "Проверка с помощью службы моделей".
  • Зависимости среды выполнения: Если агент вызывает внешние API или службы во время вывода, добавьте эти домены в список разрешений политики сети.
  • Разрешение DNS: В средах Приватный канал убедитесь, что агент может разрешать имена хостов всех служб, от которых он зависит, например конечных точек Azure AI Search или хранилища SQL Azure Databricks.

Подробные действия развертывания

В следующей таблице deploy() перечислены подробные действия развертывания, которые выполняются в результате вызова. Развертывание может занять до 15 минут.

MLflow 3

deploy() действие Описание
Создание конечной точки обслуживания модели Создает масштабируемую конечную точку REST API, которая обслуживает ваши приложения, взаимодействующие с пользователями, с автоматической балансировкой нагрузки.
Обеспечение безопасной аутентификации Автоматически предоставляет краткосрочные учетные данные, которые позволяют агенту получать доступ к ресурсам, управляемым Databricks (индексы AI Search, функции Unity Catalog и т. д.) с минимально необходимыми разрешениями.
Databricks проверяет, что владелец конечной точки имеет необходимые разрешения перед выдачой учетных данных, предотвращая несанкционированный доступ.
Для ресурсов, отличных от Databricks, передайте переменные среды с секретами deploy(). См. раздел "Настройка доступа к ресурсам из конечных точек обслуживания модели".
Включение приложения проверки Предоставляет веб-интерфейс, где заинтересованные лица могут взаимодействовать с агентом и предоставлять отзывы. Смотрите Сбор отзывов и ожиданий путем маркировки существующих трассировок.
Включение трассировки в режиме реального времени Регистрирует все взаимодействия агента в эксперимент MLflow в режиме реального времени, обеспечивая немедленную видимость для мониторинга и отладки.
  • Трассировки из конечной точки записываются в текущий активный эксперимент MLflow (set with mlflow.set_experiment())
  • Все агенты в конечной точке используют один и тот же эксперимент для хранилища трассировки
  • Трассировки также записываются в таблицы вывода для долгосрочного хранения
Включение рабочего мониторинга (бета-версия) Настраивает автоматическую оценку качества, которая запускает счётчики на рабочем трафике. См. мониторинг рабочей среды.
Включение таблиц вывода Создает таблицы, которые регистрируют входные данные и ответы для аудита и анализа.
  • Предупреждение: Журналы запросов и журналы оценки устарели и будут удалены в будущем выпуске. Вместо этого используйте трассировку MLflow 3 в режиме реального времени. Посмотрите устаревание журналов запросов и журналов оценки для получения рекомендаций по миграции.
  • Все агенты используют таблицы вывода шлюза ИИ для ведения журнала
  • Потоковая передача ответов логируется только в полях, совместимых с ResponsesAgent, ChatAgent и ChatCompletion схемами.
Логирование запросов REST API и анализ отзывов о приложении Записывает запросы API и отзывы в таблицу вывода.
Предупреждение: Модель обратной связи устарела и будет удалена в будущем выпуске. Обновите до MLflow 3 и используйте log_feedback API. См. Collect user feedback.
  • Создайте модель обратной связи для принятия и регистрации отзывов из приложения проверки.
  • Эта модель обслуживается на той же конечной точке для обработки ЦП, что и развернутый агент.

MLflow 2

deploy() действие Описание
Создание конечной точки обслуживания модели Создает масштабируемую конечную точку REST API, которая обслуживает ваши приложения, взаимодействующие с пользователями, с автоматической балансировкой нагрузки.
Обеспечение безопасной аутентификации Автоматически предоставляет краткосрочные учетные данные, которые позволяют агенту получать доступ к ресурсам, управляемым Databricks (индексы AI Search, функции Unity Catalog и т. д.) с минимально необходимыми разрешениями.
Databricks проверяет, что владелец конечной точки имеет необходимые разрешения перед выдачой учетных данных, предотвращая несанкционированный доступ.
Для ресурсов, отличных от Databricks, передайте переменные среды с секретами deploy(). См. раздел "Настройка доступа к ресурсам из конечных точек обслуживания модели".
Включение приложения проверки Предоставляет веб-интерфейс, где заинтересованные лица могут взаимодействовать с агентом и предоставлять отзывы. Смотрите Сбор отзывов и ожиданий путем маркировки существующих трассировок.
Включение таблиц вывода Создает таблицы, которые регистрируют входные данные и ответы для аудита и анализа.
Предупреждение: Журналы запросов и журналы оценки устарели и будут удалены в будущем выпуске. Посмотрите устаревание журналов запросов и журналов оценки для получения рекомендаций по миграции.
Журнал запросов REST API и отзывы в приложении Review App (устарело) Записывает запросы API и отзывы в таблицу вывода.
Предупреждение: Модель обратной связи устарела и будет удалена в будущем выпуске. Обновите до MLflow 3 и используйте log_feedback API. См. Collect user feedback.
  • Создайте модель обратной связи для принятия и регистрации отзывов из приложения проверки.
  • Эта модель обслуживается на той же конечной точке для обработки ЦП, что и развернутый агент.

Дополнительные ресурсы