Aller au contenu principal

Déployer un agent pour les applications d’IA générative (Model Serving)

info

Pour les nouveaux cas d'utilisation, Databricks recommande de déployer des agents sur Databricks Apps pour un contrôle total sur le code de l'agent, la configuration du serveur et le workflow de déploiement. Voir Créer un agent d'IA et le déployer sur Databricks Apps. Pour migrer un agent existant, consultez Migrer un agent de Model Serving vers Databricks Apps.

Déployez votre agent IA sur Model Serving à l'aide de la fonction deploy() de l'API Python des agents personnalisés. Le déploiement crée un endpoint de service avec une scalabilité, un monitoring et des outils de collaboration intégrés.

Votre agent déployé s’intègre automatiquement aux capacités d’évaluation et de monitoring de MLflow 3, y compris le traçage en temps réel, l’application de révision pour les commentaires des parties prenantes et le monitoring.

Exigences

  • Enregistrez votre agent dans Unity Catalog.
  • Installez MLflow 3.1.3 ou supérieur pour déployer des agents à l'aide de l'API deploy() de databricks.agents.
  • Le déploiement d'agents depuis l'extérieur d'un notebook Databricks nécessite la version 1.1.0 du SDK databricks-agents. ou supérieur.

Installer les prérequis :

Python
# 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()

Déployer des agents en utilisant deploy()

Déployez votre agent vers un endpoint Model Serving :

Python
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

Lorsque vous appelez deploy(), Databricks configure automatiquement l'infrastructure de production et intègre votre agent aux fonctionnalités d'IA générative MLflow en procédant comme suit :

attention

Si vous déployez un agent à partir d’un Notebook stocké dans un dossier Git Databricks, le traçage en temps réel MLflow 3 ne fonctionnera pas par default.

Pour activer le traçage en temps réel, définissez l'expérimentation sur une expérimentation non associée à Git en utilisant mlflow.set_experiment() avant d'exécuter agents.deploy().

La fonction deploy() effectue les actions suivantes par default :

  • Crée un endpoint de déploiement de modèles pour héberger votre agent avec mise à l'échelle et équilibrage de charge automatiques
  • **Provisionnement d'une authentification sécurisée** pour que votre agent accède aux ressources sous-jacentes
  • Permet le monitoring en temps réel grâce au traçage des expériences MLflow et à l'évaluation automatisée de la qualité sur le trafic de production.
  • Configure la collaboration des parties prenantes à l'aide de l'application de révision pour la collecte de commentaires.

Pour plus d'informations, consultez Actions de déploiement détaillées.

Personnaliser le déploiement

Transmettez des arguments supplémentaires à deploy() pour personnaliser le déploiement. Par exemple, vous pouvez activer le dimensionnement à zéro pour les Endpoint inactifs en passant scale_to_zero_enabled=True. Cela réduit les coûts mais augmente le temps pour servir les requêtes initiales.

Pour plus de paramètres, consultez l'API Python des Agents Databricks.

Mettre à jour un déploiement existant

Lorsque vous appelez deploy() avec le même nom de modèle Unity Catalog qu'un déploiement existant, la nouvelle version du modèle est ajoutée à l'endpoint de service existant et le trafic y bascule une fois qu'il est prêt. La version précédemment déployée continue de servir les requêtes pendant le déploiement, de sorte que les mises à jour n'interrompent pas le trafic en cours.

Pour réaliser des déploiements sans interruption de service, ne modifiez aucune configuration autre que la version du modèle UC (c'est-à-dire, endpoint_name et le nom du modèle).

Récupérer et supprimer des déploiements d’agents

Récupérer ou gérer les déploiements d'agents existants. Consultez l'API Python des agents Databricks.

Python
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)

Authentification pour les ressources dépendantes

Les agents doivent souvent s'authentifier auprès d'autres ressources pour accomplir des tâches lorsqu'ils sont déployés. Par exemple, un agent peut avoir besoin d'accéder à un index AI Search pour query des données non structurées.

Pour plus d'informations sur les méthodes d'authentification, notamment quand les utiliser et comment les configurer, consultez Authentification pour les agents d'IA (Model Serving).

Mise en réseau pour les déploiements d'agents

Si votre workspace utilise Private Link ou des politiques réseau de sortie restreintes, vous devez configurer l'accès réseau pour que les déploiements d'agents réussissent. Les Endpoint de déploiement de modèles nécessitent un accès sortant pour download les dépendances pendant le processus de création du conteneur. Les agents peuvent également avoir besoin d'atteindre des APIs externes à l'exécution.

Pour les agents déployés sur Databricks Apps, consultez Déployer des applications dans des environnements Private Link pour des conseils détaillés sur la configuration des stratégies DNS ou d'égression.

Pour les agents déployés sur Model Serving, veuillez vérifier les points suivants :

  • Dépendances au moment de la création : Votre politique réseau doit autoriser l'accès aux package repositories requis par l'environnement de votre agent, tels que pypi.org ou files.pythonhosted.org pour les packages Python. Databricks enregistre les échecs de build causés par un accès réseau bloqué avec network_source_type: ML Build dans la table système system.access.outbound_network. Voir Valider avec la diffusion de modèle.
  • Dépendances du Runtime : Si votre agent appelle des APIs ou des services externes pendant l'inférence, ajoutez ces domaines à la liste d'autorisation de votre politique de réseau.
  • DNS resolution: Dans les environnements Private Link, vérifiez que votre agent peut résoudre les hostnames de tous les services Databricks dont il dépend, tels que AI Search ou les Endpoint SQL Warehouse.

Actions détaillées de déploiement

Le tableau suivant liste les actions de déploiement détaillées qui résultent d'un appel deploy(). Les déploiements peuvent prendre jusqu'à 15 minutes.

deploy() Action

Description

Créer un endpoint de service de modèle

Crée un endpoint d'API REST scalable qui sert votre agent aux applications utilisateur avec équilibrage de charge automatique.

Assurer une authentification sécurisée

Fournit automatiquement des identifiants de courte durée qui permettent à votre agent d’accéder aux Ressources gérées par Databricks (index de recherche IA, fonctions Unity Catalog, etc.) avec le minimum d’autorisations requises.

Databricks vérifie que le propriétaire de l'Endpoint dispose des autorisations nécessaires avant d'émettre des identifiants, ce qui empêche tout accès non autorisé.

Pour les ressources non-Databricks, transmettez les variables d’environnement avec les secrets à deploy(). Voir Configurer l’accès aux ressources depuis les endpoints de service de modèle.

Activer l'application d'évaluation

Fournit une interface web où les parties prenantes peuvent interagir avec votre agent et fournir des commentaires. Consultez Recueillir des commentaires et des attentes en étiquetant les traces existantes.

Activer le traçage en temps réel

Logs toutes les interactions de l'agent dans une expérience MLflow en temps réel, offrant une visibilité immédiate pour le monitoring et le debugging.

  • Les traces de votre endpoint s'écrivent dans l'expérience MLflow actuellement active (défini avec mlflow.set_experiment())
  • Tous les agents de l'endpoint partagent la même expérimentation pour le stockage des traces
  • Les traces s'écrivent également dans des tables d'inférence pour un stockage à plus long terme.

Activer le monitoring de production (bêta)

Configure l'évaluation automatisée de la qualité qui exécute des évaluateurs sur le trafic de production. Consultez le monitoring de la production.

Activer les tables d'inférence

Crée des tables qui enregistrent les requêtes et les réponses pour l'audit et l'analyse.

  • Attention : les logs de requête et les logs d'évaluation sont obsolètes et seront supprimés dans une future version. Utilisez plutôt le traçage MLflow 3 en temps réel. Consultez la dépréciation des logs de requêtes et des logs d'évaluation pour obtenir des conseils de migration.

  • Tous les agents utilisent les tables d'inférence AI Gateway pour la journalisation.

  • Les réponses en streaming n'enregistrent que les champs compatibles avec les schémas ResponsesAgent, ChatAgent et ChatCompletion.

Logs REST API requests et examiner les retours de l’application.

Logs les requêtes API et les commentaires dans une table d'inférence.

**Avertissement :** le modèle de feedback est obsolète et sera supprimé dans une prochaine version. Passez à MLflow 3 et utilisez l'log_feedback API à la place. Consultez Collecter les commentaires des utilisateurs.

  • Créer un modèle de retour d'information pour accepter et enregistrer les retours d'information de l'application Review.
  • Ce modèle est déployé dans le même endpoint de déploiement de modèles CPU que votre agent déployé.

deploy() Action

Description

Créer un endpoint de service de modèle

Crée un endpoint d'API REST scalable qui sert votre agent aux applications utilisateur avec équilibrage de charge automatique.

Assurer une authentification sécurisée

Fournit automatiquement des identifiants de courte durée qui permettent à votre agent d’accéder aux Ressources gérées par Databricks (index de recherche IA, fonctions Unity Catalog, etc.) avec le minimum d’autorisations requises.

Databricks vérifie que le propriétaire de l'Endpoint dispose des autorisations nécessaires avant d'émettre des identifiants, ce qui empêche tout accès non autorisé.

Pour les ressources non-Databricks, transmettez les variables d’environnement avec les secrets à deploy(). Voir Configurer l’accès aux ressources depuis les endpoints de service de modèle.

Activer l'application d'évaluation

Fournit une interface web où les parties prenantes peuvent interagir avec votre agent et fournir des commentaires. Consultez Recueillir des commentaires et des attentes en étiquetant les traces existantes.

Activer le traçage en temps réel

Logs toutes les interactions de l'agent dans une expérience MLflow en temps réel, offrant une visibilité immédiate pour le monitoring et le debugging.

  • Les traces de votre endpoint s'écrivent dans l'expérience MLflow actuellement active (défini avec mlflow.set_experiment())
  • Tous les agents de l'endpoint partagent la même expérimentation pour le stockage des traces
  • Les traces s'écrivent également dans des tables d'inférence pour un stockage à plus long terme.

Activer le monitoring de production (bêta)

Configure l'évaluation automatisée de la qualité qui exécute des évaluateurs sur le trafic de production. Consultez le monitoring de la production.

Activer les tables d'inférence

Crée des tables qui enregistrent les requêtes et les réponses pour l'audit et l'analyse.

  • Attention : les logs de requête et les logs d'évaluation sont obsolètes et seront supprimés dans une future version. Utilisez plutôt le traçage MLflow 3 en temps réel. Consultez la dépréciation des logs de requêtes et des logs d'évaluation pour obtenir des conseils de migration.

  • Tous les agents utilisent les tables d'inférence AI Gateway pour la journalisation.

  • Les réponses en streaming n'enregistrent que les champs compatibles avec les schémas ResponsesAgent, ChatAgent et ChatCompletion.

Logs REST API requests et examiner les retours de l’application.

Logs les requêtes API et les commentaires dans une table d'inférence.

**Avertissement :** le modèle de feedback est obsolète et sera supprimé dans une prochaine version. Passez à MLflow 3 et utilisez l'log_feedback API à la place. Consultez Collecter les commentaires des utilisateurs.

  • Créer un modèle de retour d'information pour accepter et enregistrer les retours d'information de l'application Review.
  • Ce modèle est déployé dans le même endpoint de déploiement de modèles CPU que votre agent déployé.

Ressources supplémentaires