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 d’agent, la configuration du serveur et le workflow de déploiement. Consultez Créer un agent 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 d'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 évolutivité intégrée, un monitoring et des outils de collaboration.
Votre agent déployé s'intègre automatiquement aux capacités d'évaluation et de monitoring de MLflow 3, notamment 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()depuisdatabricks.agents. - Le déploiement d'agents en dehors d'un notebook Databricks nécessite la version 1.1.0 du SDK
databricks-agents. ou au-dessus.
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 obsolètes. Consultez les actions de déploiement détaillées.
- Enregistrez votre agent dans Unity Catalog.
- Installez MLflow 2.13.1 ou une version ultérieure pour déployer des agents à l’aide de l’API
deploy()depuisdatabricks.agents. - Le déploiement d'agents depuis l'extérieur d'un notebook Databricks nécessite le SDK
databricks-agentsversion 0.12.0 ou ultérieure.
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 à l’aide de deploy()
Déployez votre agent sur un Endpoint de service de modèle :
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 effectuant les opérations suivantes :
Si vous déployez un agent à partir d’un Notebook stocké dans un dossier Git Databricks, le traçage en temps réel de MLflow 3 ne fonctionnera pas par default.
Pour activer le traçage en temps réel, définissez l'expérimentation comme 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 service de modèle pour héberger votre agent avec mise à l’échelle automatique et équilibrage de charge
- Assure l'authentification sécurisée pour que votre agent accède aux ressources sous-jacentes
- Active le monitoring en temps réel via le traçage d'Experimentation MLflow et l'évaluation automatisée de la qualité du trafic de production
- Configure la collaboration des parties prenantes à l'aide de l'application d'examen pour la collecte des commentaires
Pour plus d'informations, consultez Actions de déploiement détaillées.
Personnalisez 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 au Endpoint de service existant et le trafic y est redirigé 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 vol.
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 les déploiements d'agent
Récupérer ou gérer les déploiements d'agents existants. Voir 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 de recherche IA pour query des données non structurées.
Pour en savoir plus sur les méthodes d'authentification, notamment sur le moment et la manière de les utiliser et de les configurer, consultez l'authentification des agents d'IA (Model Serving).
Mise en réseau pour les déploiements d'agents
Si votre Workspace utilise Private Link ou des stratégies de réseau de sortie restreintes, vous devez configurer l’accès réseau pour que les déploiements d’agents réussissent. Les endpoints de service de modèles nécessitent un accès sortant pour download les dépendances pendant le processus de construction du conteneur. Les agents peuvent également avoir besoin d'accéder à des APIs externes lors de l'exécution.
Pour les agents déployés sur Databricks Apps, consultez Déployer des applications dans des environnements Private Link pour obtenir des conseils détaillés sur la configuration des politiques DNS ou d’égresse.
Pour les agents déployés sur Model Serving, vérifiez les points suivants :
- **Dépendances de build :** Votre politique réseau doit autoriser l'accès aux dépôts de packages requis par l'environnement de votre agent, tels que
pypi.orgoufiles.pythonhosted.orgpour les packages Python. Databricks Logs 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 le service de modèle. - Runtime dependencies: Si votre agent appelle des APIs ou services externes pendant l'inférence, ajoutez ces domaines à la liste d'autorisation de votre politique réseau.
- Résolution DNS : 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 la recherche IA ou les Endpoints de SQL Warehouse.
Actions de déploiement détaillées
Le tableau suivant répertorie les actions de déploiement détaillées qui résultent d'un appel deploy(). Les déploiements peuvent prendre jusqu'à 15 minutes pour se terminer.
- MLflow 3
- MLflow 2
| Description |
|---|---|
Créer un endpoint de service de modèle | Crée un endpoint d'API REST évolutif qui sert votre agent aux applications utilisateur avec équilibrage de charge automatique. |
Assurer une authentification sécurisée. | Fournit automatiquement des informations d'identification de courte durée qui permettent à votre agent d'accéder aux ressources gérées par Databricks (index AI Search, fonctions Unity Catalog, etc.) avec les autorisations minimales requises. Databricks vérifie que le propriétaire de l’Endpoint dispose des autorisations nécessaires avant de délivrer les informations d’identification, empêchant ainsi tout accès non autorisé. Pour les Ressources non-Databricks, transmettez les variables d'environnement avec des secrets à |
Activer l'application d'évaluation | Fournit une interface Web où les parties prenantes peuvent interagir avec votre agent et fournir des commentaires. Voir Collectez les commentaires et les attentes en étiquetant les traces existantes. |
Activer le traçage en temps réel | Logs toutes les interactions de l'agent dans une expérimentation MLflow en temps réel, offrant une visibilité immédiate pour le monitoring et le debugging.
|
Activer le monitoring de la 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 log les entrées de requête et les réponses pour l'audit et l'analyse.
|
Log les requêtes d'API REST et examiner les commentaires de l'application | Logs les requêtes API et les retours d'information vers 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'API
|
| Description |
|---|---|
Créer un endpoint de service de modèle | Crée un endpoint d'API REST évolutif qui sert votre agent aux applications utilisateur avec équilibrage de charge automatique. |
Assurer une authentification sécurisée. | Fournit automatiquement des informations d'identification de courte durée qui permettent à votre agent d'accéder aux ressources gérées par Databricks (index AI Search, fonctions Unity Catalog, etc.) avec les autorisations minimales requises. Databricks vérifie que le propriétaire de l’Endpoint dispose des autorisations nécessaires avant de délivrer les informations d’identification, empêchant ainsi tout accès non autorisé. Pour les Ressources non-Databricks, transmettez les variables d'environnement avec des secrets à |
Activer l'application d'évaluation | Fournit une interface Web où les parties prenantes peuvent interagir avec votre agent et fournir des commentaires. Voir Collectez les commentaires et les attentes en étiquetant les traces existantes. |
Activer les tables d'inférence | Crée des tables qui log les entrées de requête et les réponses pour l'audit et l'analyse. Avertissement : Les Logs de demande 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 Review App feedback (deprecated) | Logs les requêtes API et les retours d'information vers 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'API
|