Déployer un agent pour les applications d’IA générative (Model Serving)
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
- MLflow 3
- MLflow 2.x
- 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()dedatabricks.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 :
# 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()
Databricks recommande d'utiliser MLflow 3 pour déployer des agents, car certaines fonctionnalités de journalisation de MLflow 2 seront dépréciées. Voir les actions de déploiement détaillées.
- Enregistrez votre agent dans Unity Catalog.
- Installez MLflow 2.13,1 ou version ultérieure pour déployer des agents à l'aide de l'API
deploy()depuisdatabricks.agents. - Le déploiement d'agents en dehors d'un Notebook Databricks nécessite la version
databricks-agents0.12.0 ou ultérieure du SDK.
Installer les prérequis :
# 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()
Déployer des agents en utilisant deploy()
Déployez votre agent vers un endpoint Model Serving :
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 :
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.
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.orgoufiles.pythonhosted.orgpour les packages Python. Databricks enregistre les échecs de build causés par un accès réseau bloqué avecnetwork_source_type: ML Builddans la table systèmesystem.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.
- MLflow 3
- MLflow 2
| 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 à |
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.
|
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.
|
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'
|
| 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 à |
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 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. Consultez la dépréciation des Logs de requêtes et des Logs d'évaluation pour obtenir des conseils sur la migration.
|
Logs REST API requests et les commentaires de l’application d’évaluation (déprécié) | 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'
|