Ajouter une ressource de service de modèle Unity Gateway à une application Databricks
Aperçu
Cette fonctionnalité est en version préliminaire publique.
Ajoutez des services de modèle Unity Gateway en tant que ressources Databricks Apps pour que votre application puisse envoyer des requêtes d'inférence (y compris le chat, les complétions et les intégrations) aux modèles d'IA gérés dans Unity Catalog. Les services de modèle Unity Gateway incluent les modèles de fondation pay-per-token disponibles sous system.ai, ainsi que les services de modèle que vous créez.
L’attribution de l’utilisation des services de modèle Unity Gateway n’est précise que pour les applications Databricks Apps standard. Les applications exécutées dans un environnement de micro-machine virtuelle, telles que les applications de type Genie app builder, ne rapportent pas une attribution d’utilisation précise.
Exigences en matière de privilèges
Pour accéder à un service de modèle Unity Gateway, le service principal de l'application doit disposer du privilège USE CATALOG sur le catalogue parent, du privilège USE SCHEMA sur le schéma parent et du privilège EXECUTE sur le service de modèle. Lorsque vous ajoutez la ressource de service de modèle, Databricks accorde automatiquement ces privilèges au service principal de l'application.
Pour que cet octroi automatique réussisse, l'une des conditions suivantes doit être remplie pour chaque privilège :
- Pour
USE CATALOG: Tous les utilisateurs du compte possèdent le privilègeUSE CATALOGsur le catalogue, ou vous possédez le privilègeMANAGEsur le catalogue. - Pour
USE SCHEMA: soit tous les utilisateurs du compte disposent du privilègeUSE SCHEMAsur le schéma, soit vous disposez du privilègeMANAGEsur le schéma. - Pour
EXECUTE: soit tous les utilisateurs du compte disposent du privilègeEXECUTEsur le service de modèle, soit vous disposez du privilègeMANAGEsur le service de modèle.
Consultez la référence des privilèges Unity Catalog.
Ajouter une ressource de service de modèle Unity Gateway
Avant d’ajouter un service de modèle Unity Gateway en tant que ressource, consultez les conditions préalables relatives aux ressources d’application.
-
Dans la section Ressources de l’application lorsque vous créez ou modifiez une application, cliquez sur + Ajouter une ressource > Modèle .
-
Dans le sélecteur de ressources, sélectionnez un service de modèle dans la section Unity Gateway . Le sélecteur répertorie également les endpoints de service personnalisés sous une section Serving Endpoints . Pour connecter l’un de ces endpoints, consultez la section Add a model serving endpoint ressource to a Databricks app. Pour utiliser un modèle de fondation facturé par jeton, sélectionnez un service de modèle dans le catalogue
system.ai. -
Sélectionnez le niveau d’autorisation pour votre application :
- Peut exécuter : accorde au service principal de l’application le privilège
EXECUTEd’envoyer des requêtes d’inférence au service de modèle. Il s'agit du seul niveau d'autorisation disponible pour un service de modèle.
- Peut exécuter : accorde au service principal de l’application le privilège
-
(Optionnel) Spécifiez une clé de ressource personnalisée, qui permet de référencer le service de modèle dans la configuration de votre application. La clé default est
model.
Configurer avec Databricks Asset Bundles
Si vous définissez votre application à l'aide de Declarative Automation Bundles, ajoutez le service de modèle en tant que ressource uc_securable dans la configuration de votre bundle :
resources:
apps:
my_app:
name: 'my-app'
source_code_path: ./app
resources:
- name: 'model'
uc_securable:
securable_full_name: '<catalog>.<schema>.<model_service>'
securable_type: 'MODEL_SERVICE'
permission: 'EXECUTE'
Pour plus d'informations sur les ressources d'application dans les Declarative Automation Bundles, consultez app.resources.
Variables d'environnement
Lorsque vous déployez une application avec une ressource de service de modèle Unity Gateway, Databricks expose le nom complet en trois parties dans Unity Catalog du service de modèle via des variables d’environnement que vous pouvez référencer à l’aide du champ valueFrom.
Exemple de configuration :
env:
- name: MODEL_SERVICE_NAME
valueFrom: model # Use your custom resource key if you set one
Le champ valueFrom correspond au nom complet en trois parties Unity Catalog du service de modèle (par exemple, system.ai.databricks-dbrx-instruct). Utilisez ce nom lors de l'appel du service de modèle via le Databricks SDK ou l'API REST Unity Gateway.
Pour plus d'information, consultez Utiliser des variables d'environnement pour accéder aux ressources.
Supprimer une ressource de service de modèle Unity Gateway
Lorsque vous supprimez une ressource de service de modèle Unity Gateway d'une application, le service principal de l’application perd le privilège EXECUTE sur le service de modèle. Le service de modèle lui-même reste inchangé et continue d'être disponible pour les autres utilisateurs et applications disposant des autorisations appropriées.
Bonnes pratiques
Tenez compte des éléments suivants lorsque vous travaillez avec des ressources de service de modèle Unity Gateway :
EXECUTEest le seul niveau d'autorisation disponible. Il accorde à l'application l'accès pour envoyer des requêtes d'inférence et n'accorde pas de privilèges administratifs sur le service de modèle.- Pour utiliser des modèles de fondation avec paiement par jeton sans configuration supplémentaire, sélectionnez un service de modèle dans le catalogue
system.ai. - La variable d'environnement prend la valeur du nom complet en trois parties Unity Catalog (
catalog.schema.model_service). Utilisez cette valeur lors de l'appel du service de modèle via le SDK Databricks ou l'API REST. - Gérez les erreurs d'inférence et les limites de débit dans le code de votre application. Unity Gateway applique les limites de débit et les garde-fous configurés sur chaque service de modèle.
- Le sélecteur de ressources Modèle répertorie également les Endpoint de service de modèle classiques, regroupés dans une section Serving Endpoints . Les services de modèle et les Endpoint de service peuvent coexister dans la même application.