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

Important

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

Разверните агент ИИ в службе модели ИИ Мозаики с помощью функции deploy() из API Agent Framework 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.

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

Получение существующих развертываний агента или управление ими. См. раздел 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)

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

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

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

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

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

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

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

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

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

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

MLflow 3

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

Дальнейшие шаги