Transformez des données non structurées à l’aide d’AI Functions
Les AI Functions sont des fonctions intégrées que vous pouvez utiliser pour appliquer des LLM ou des techniques de recherche de pointe sur des données stockées sur Databricks pour la transformation et l'analyse des données. Ils peuvent être exécutés depuis Databricks SQL, des notebooks, des Lakeflow Pipelines et des Workflows.
Les fonctions AI Functions sont simples à utiliser, rapides et évolutives. Les analystes peuvent les utiliser pour appliquer l'intelligence des données à leurs données propriétaires, tandis que les data engineers, les data scientists et les ingénieurs en Machine Learning peuvent les utiliser pour créer des pipelines batch de qualité production.
Lorsque vous appelez une fonction IA, votre query s’exécute sur le compute à partir duquel vous la soumettez, tel qu’un SQL warehouse, un notebook, un cluster ou un pipeline. Selon la fonction, l’inférence du modèle peut s’exécuter sur une infrastructure distincte gérée par Databricks, facturée en supplément de ce compute. Voir Afficher les coûts des charges de travail des fonctions IA.
Exigences
- Les AI Functions ne sont pas disponibles sur les warehouses SQL classiques.
- Databricks Runtime 15.4 LTS ou version supérieure est requis. Pour une modification à venir de cette exigence, consultez AI Functions nécessitent Databricks Runtime 17.3 LTS ou version ultérieure. Databricks Runtime 18.2 ou version ultérieure est recommandé pour obtenir les meilleures performances et accéder aux fonctionnalités les plus récentes.
Spécifique à la tâche et usage général
AI Functions a des fonctions spécifiques aux tâches et à usage général :
- **AI Functions spécifiques aux tâches** — Fonctions conçues spécifiquement et optimisées pour une tâche spécifique, telles que l'analyse de documents, l'extraction d'entités, la classification et l'analyse des sentiments. Ces fonctions sont alimentées par des systèmes gérés par Databricks et fondés sur la recherche. Certaines fonctions incluent des expériences d'interface utilisateur. Consultez les fonctions d'IA spécifiques aux tâches pour connaître les fonctions et les modèles pris en charge.
ai_query— La fonction à usage général pour la flexibilité des tâches et des modèles. Fournissez une invite et choisissez n’importe quelle API de modèle de fondation prise en charge. Consultez Utiliserai_query.
Pour restreindre les AI Functions spécifiques aux tâches auxquelles votre organisation peut accéder, consultez Permissions Unity Catalog des AI Functions.
Fonctions d'IA spécifiques aux tâches
Les fonctions spécifiques aux tâches sont conçues pour une tâche donnée afin que vous puissiez automatiser les transformations routinières, telles que l'extraction d'entités, la traduction et la classification. Databricks recommande ces fonctions pour commencer, car elles utilisent des techniques de recherche de pointe maintenues par Databricks et ne nécessitent aucune personnalisation.
Voir Analysez les avis des clients en utilisant les AI Functions pour un exemple.
Les fonctions suivantes sont regroupées par tâche. Utilisez les colonnes SQL, API REST et API asynchrone pour ouvrir la référence de chaque interface. Un tiret dans la colonne API REST signifie qu’aucune référence d’API REST dédiée n’est répertoriée. Un tiret dans la colonne API asynchrone signifie que l’AI Functions API asynchrone (Bêta) ne prend pas en charge la fonction.
Traitement intelligent de documents:
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Extraire le contenu structuré (texte, tableaux, descriptions de figures) et le layout de documents non structurés à l'aide de techniques de recherche de pointe. | |||
| Extrayez des champs structurés à partir de documents ou de texte à l’aide d’un schéma que vous définissez. | |||
| Classez le texte saisi selon les étiquettes que vous fournissez en utilisant des techniques de recherche de pointe. | |||
| Transformez les documents analysés ou le texte brut et le markdown en segments prêts pour la recherche, optimisés pour la recherche IA et les pipelines RAG. | — | — | |
| Récupérez des documents classés et dédoublonnés ainsi qu'une réponse étayée pour une query en langage naturel sur une ou plusieurs sources de connaissances. | — | — | |
| Générez de nouvelles colonnes pour chaque ligne à partir d’un schéma que vous définissez, éventuellement basé sur des sources de connaissances telles que des index AI Search ou un outil de recherche sur un serveur MCP (Model Context Protocol) externe. | — | — |
Transcrire l’audio :
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Transcrivez un fichier audio en texte, avec des Timestamp par segment et un étiquetage automatique des locuteurs si cette option est activée. | — | — |
Transformer le texte :
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Corrigez les erreurs grammaticales dans le texte à l'aide d'un modèle d'IA de pointe. | — | — | |
| Traduisez le texte dans une langue cible spécifiée à l'aide d'un modèle d'IA de pointe. | — | — | |
| Générez un résumé de texte à l'aide de SQL et d'un modèle d'IA de pointe. | — | — | |
| Masquez les entités spécifiées dans le texte à l'aide d'un modèle d'IA de pointe. | — | — |
Analyser un texte non structuré :
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Évaluez les questions par rapport à du texte ou des données structurées et renvoyez des probabilités, des choix ou des scores. | — | ||
| Effectuez une analyse des sentiments sur le texte saisi à l'aide d'un modèle d'IA de pointe. | — | — | |
| Comparez deux chaînes de caractères et calculez le score de similarité sémantique à l'aide d'un modèle d'IA de pointe. | — | — |
Générer du contenu. Pour les invites personnalisées ou un modèle spécifique, voir Utiliser ai_query:
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Répondez à une invite fournie par l'utilisateur à l'aide d'un modèle d'IA de pointe. | — | — |
Prédire les résultats :
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Entraînez un modèle de classification et prédisez les étiquettes de classe pour les lignes où la colonne cible est | — | — | |
| Entraînez un modèle de régression et prévoyez des valeurs numériques pour les lignes où la colonne cible est | — | — |
Prévoir les séries temporelles :
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Prévoir des données jusqu'à un horizon spécifié. Cette fonction à valeur de table est conçue pour extrapoler des données de séries chronologiques dans le futur. | — | — | |
| Identifiez les valeurs anormales dans les données de séries temporelles historiques et renvoyez les valeurs attendues, les limites de prédiction et les scores d’anomalie. | — | — |
Analysez les changements de métriques :
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Classer les valeurs de dimension qui contribuent le plus à un changement de métrique entre un groupe de contrôle et un groupe de test. | — | — |
Rechercher avec les intégrations de Recherche IA:
Fonction | Description | SQL | API REST | API asynchrone (Bêta) |
|---|---|---|---|---|
| Recherchez et query un index AI Search à l'aide d'un modèle d'IA de pointe. | — |
Utilisez AI Functions dans les flux de travail de production
Pour une inférence par batch afin de Monter en charge, vous pouvez intégrer des AI Functions spécifiques à une tâche ou la fonction à usage général ai_query dans vos flux de travail de production, tels que les LakeFlow Pipelines, les Jobs et Structured Streaming. Cela permet un traitement de niveau production à l'échelle de la Monter en charge.
Pour exécuter ai_parse_document, ai_extract ou ai_classify selon un calendrier sans écrire de SQL, ajoutez une tâche de fonction IA (Beta) à un job. Chaque exécution ne traite que les entrées nouvelles ou modifiées depuis l'exécution précédente. Voir Tâches de fonction IA pour les jobs.
Pour exécuter ai_parse_document, ai_extract ou ai_classify à partir d'une application ou d'un service sur de nombreuses entrées, utilisez l'API asynchrone AI Functions (bêta). L'entrée est un fichier dans un volume Unity Catalog ou, pour ai_parse_document, un répertoire de volume. Le batch s'exécute de manière asynchrone et écrit les résultats dans un fichier dans un volume. Pour obtenir des exemples, consultez l'analyse de documents, l'extraction d'informations et la classification.
Bonnes pratiques pour les fonctions d'IA en production :
Laissez AI Functions gérer votre charge de travail à grande échelle : AI Functions gère automatiquement la parallélisation, les nouvelles tentatives et la mise à l'échelle. Il est conseillé de soumettre votre dataset complet dans une query unique plutôt que de le fractionner manuellement en petits batchs. Les performances peuvent ne pas monter en charge de manière linéaire, des très petites charges de travail aux charges de travail à grande échelle.
Utiliser les modèles de fondation hébergés par Databricks : Lors de l'utilisation de la fonction AI ai_query, utilisez les modèles de fondation hébergés par Databricks (préfixés par databricks-), et non le débit provisioned throughput. Ces endpoints sans provisionnement sont entièrement managés et conviennent le mieux au traitement par batch.
Consultez Déployer des pipelines d'inférence par batch pour des exemples et des détails.
Suivre la progression des AI Functions
Pour comprendre combien d’inférences se sont terminées ou ont échoué et pour dépanner les performances, vous pouvez surveiller la progression des AI Functions à l’aide de la fonctionnalité de profil de query.
Dans Databricks Runtime 16.1 ML et versions ultérieures, depuis la fenêtre de requête de l'éditeur SQL dans votre Workspace :
- Sélectionnez le Link, Running--- en bas de la fenêtre Résultats bruts . La fenêtre des performances apparaît sur la droite.
- Cliquez sur **Afficher le profil de la query** pour afficher les détails des performances.
- Cliquez sur AI Query pour afficher les métriques de cette requête particulière, y compris le nombre d'inférences terminées et échouées, et le temps total qu'a pris la requête pour se terminer.
Afficher les coûts des charges de travail des fonctions d'IA
Le compute qui exécute votre query est toujours facturé, par exemple un SQL warehouse ou un Job cluster. L’existence d’un coût supplémentaire d’inférence de modèle dépend de la fonction :
- Les fonctions spécifiques à une tâche (par exemple,
ai_classify,ai_summarize,ai_translate) exécutent l’inférence sur une infrastructure GPU serverless gérée par Databricks via Model Serving. Vous ne provisionnez pas cette infrastructure, mais elle est facturée en plus de votre compute de query. ai_queryest facturé pour l’ endpoint de Model Serving que vous spécifiez. Les endpoints de modèles de fondation hébergés par Databricks sont facturés comme les fonctions spécifiques à une tâche ; les endpoints de modèles personnalisés et de throughput provisionné s’exécutent sur leur propre compute de service dédié et sont facturés en conséquence.ai_forecast,ai_detect_anomalies,ai_predict_class,ai_predict_valueetai_top_driverss’exécutent entièrement sur le compute à partir duquel vous les soumettez, sans coût d’inférence supplémentaire.vector_searchinterroge votre index AI Search via le service AI Search géré par Databricks.
Les coûts d’inférence des fonctions IA sont enregistrés dans la table system.billing.usage sous l’un des deux produits :
ai_similarity,ai_analyze_sentiment,ai_summarize,ai_translate,ai_fix_grammaretai_masksont enregistrés sous le produitMODEL_SERVINGavec le type d’offreBATCH_INFERENCE.- D’autres AI Functions spécifiques aux tâches, qui entraînent des coûts d'inférence distincts, sont enregistrées sous le produit
AI_FUNCTIONS, notammentai_classify,ai_extract,ai_parse_documentetai_search.
Affichez les coûts des charges de travail d'inférence par batch.
Les exemples suivants montrent comment filtrer les enregistrements MODEL_SERVING avec le type d'offre BATCH_INFERENCE sur la base des Jobs, des computes, des SQL Warehouses et des LakeFlow Pipelines. Ces enregistrements incluent les charges de travail ai_query et les fonctions spécifiques aux tâches qui sont enregistrées sous MODEL_SERVING.
Consultez Surveiller les coûts de service de modèles pour des exemples généraux sur la manière d'afficher les coûts de vos charges de travail d'inférence par batch qui utilisent les AI Functions.
- Jobs
- Compute
- Lakeflow Spark Declarative Pipelines
- SQL warehouse
La requête suivante indique les jobs qui sont utilisés pour l’inférence par batch à l’aide de la table système system.workflow.jobs. Consultez Surveiller les coûts et les performances des jobs avec les tables système.
SELECT *
FROM system.billing.usage u
JOIN system.workflow.jobs x
ON u.workspace_id = x.workspace_id
AND u.usage_metadata.job_id = x.job_id
WHERE u.usage_metadata.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";
Le texte suivant indique quels clusters sont utilisés pour l'inférence par batch à l'aide de la table système system.compute.clusters.
SELECT *
FROM system.billing.usage u
JOIN system.compute.clusters x
ON u.workspace_id = x.workspace_id
AND u.usage_metadata.cluster_id = x.cluster_id
WHERE u.usage_metadata.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";
Ce qui suit montre quels LakeFlow Pipelines sont utilisés pour l'inférence par batch à l'aide de la table système system.lakeflow.pipelines.
SELECT *
FROM system.billing.usage u
JOIN system.lakeflow.pipelines x
ON u.workspace_id = x.workspace_id
AND u.usage_metadata.dlt_pipeline_id = x.pipeline_id
WHERE u.usage_metadata.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";
Ce qui suit montre quels SQL Warehouse sont utilisés pour l'inférence par batch à l'aide de la table système system.compute.warehouses.
SELECT *
FROM system.billing.usage u
JOIN system.compute.clusters x
ON u.workspace_id = x.workspace_id
AND u.usage_metadata.cluster_id = x.cluster_id
WHERE u.workspace_id = <workspace_id>
AND u.billing_origin_product = "MODEL_SERVING"
AND u.product_features.model_serving.offering_type = "BATCH_INFERENCE";
Afficher les coûts enregistrés sous le produit AI_FUNCTIONS
L'exemple suivant montre comment query les coûts enregistrés sous le produit AI_FUNCTIONS. Pour filtrer sur une fonction spécifique, utilisez le champ product_features.ai_functions.ai_function. Par exemple, pour voir uniquement les coûts ai_parse_document, ajoutez AND u.product_features.ai_functions.ai_function = "AI_PARSE_DOCUMENT".
SELECT *
FROM system.billing.usage u
WHERE u.workspace_id = <workspace_id>
AND u.billing_origin_product = "AI_FUNCTIONS";
Afficher le coût total des fonctions IA par utilisateur
Pour calculer le coût total d’inférence d’AI Function, incluez l’utilisation des deux produits. La query suivante renvoie le coût catalogue mensuel par utilisateur pour le mois en cours et les 12 mois précédents :
SELECT
DATE_TRUNC('MONTH', u.usage_date)::DATE AS usage_month,
COALESCE(
u.identity_metadata.run_as,
u.identity_metadata.run_by,
'UNATTRIBUTED'
) AS principal,
ROUND(
SUM(u.usage_quantity * p.pricing.effective_list.default),
2
) AS list_cost_usd
FROM system.billing.usage u
JOIN system.billing.list_prices p
ON u.cloud = p.cloud
AND u.sku_name = p.sku_name
AND u.usage_unit = p.usage_unit
AND u.usage_end_time >= p.price_start_time
AND (p.price_end_time IS NULL OR u.usage_end_time < p.price_end_time)
WHERE p.currency_code = 'USD'
AND u.usage_date >= ADD_MONTHS(DATE_TRUNC('MONTH', CURRENT_DATE()), -12)
AND (
(
u.billing_origin_product = 'MODEL_SERVING'
AND u.product_features.model_serving.offering_type = 'BATCH_INFERENCE'
)
OR u.billing_origin_product = 'AI_FUNCTIONS'
)
GROUP BY 1, 2
ORDER BY 1 DESC, 3 DESC;