Fonctions IA : transformer des données à grande échelle avec l’IA

Les fonctions IA dans Microsoft Fabric appliquent des transformations unilignes et basées sur LLM à de grands pandas ou pySpark DataFrames. Ils s’exécutent avec une concurrence élevée par défaut, ce qui vous permet d’enrichir, de classifier, de résumer et d’extraire rapidement des données à grande échelle.

Utilisez ce tableau pour accéder à des exemples dans cette vue d’ensemble ou une documentation détaillée sur pandas et PySpark.

Function Description Documentation détaillée
ai.analyze_sentiment Détecter l’état émotionnel du texte d’entrée. Exemple. Pandas, PySpark
ai.classify Classez le texte d’entrée en fonction de vos étiquettes. Exemple. Pandas, PySpark
ai.embed Générer des incorporations vectorielles pour le texte d’entrée. Exemple. Pandas, PySpark
ai.extract Extrayez des champs tels que des emplacements, des noms ou des entités personnalisées. Exemple. Pandas, PySpark
ai.fix_grammar Correction de l’orthographe, de la grammaire et de la ponctuation. Exemple. Pandas, PySpark
ai.generate_response Générez des réponses en fonction de vos instructions. Exemple. Pandas, PySpark
ai.similarity Comparez la signification du texte avec une valeur ou une autre colonne. Exemple. Pandas, PySpark
ai.summarize Résumez le texte, les fichiers ou les données de ligne. Exemple. Pandas, PySpark
ai.translate Traduire du texte d’entrée dans une autre langue. Exemple. Pandas, PySpark

Vous pouvez utiliser les fonctions IA dans des notebooks avec pandas ou PySpark, dans des requêtes SQL et dans Dataflow Gen2. Fabric gère la configuration du point de terminaison pour le modèle intégré.

Utiliser des fonctions IA dans les expériences de Fabric

Les fonctions IA sont disponibles dans plusieurs expériences Fabric :

Utiliser des fonctions d’IA multimodale

Les fonctions d’IA multimodale traitent des images, des fichiers PDF et des fichiers texte, en plus des valeurs textuelles. Utilisez-les pour résumer les fichiers PDF, classifier des images, extraire des champs de document ou générer des réponses ancrées dans le contenu du fichier.

Les types de fichiers pris en charge incluent JPG/JPEG, PNG, GIF statique, WebP, PDF, MD, TXT, CSV, TSV, JSON, XML, PY et d’autres fichiers texte. Définir column_type="path" dans pandas ou input_col_typecol_types dans PySpark. Pour obtenir des exemples, consultez Utiliser une entrée modale avec AI Functions.

Prerequisites

Note

  • Les fonctions IA sont prises en charge dans Fabric Runtime 1.3 et versions ultérieures.
  • Les fonctions d’IA Python pour pandas et PySpark sont désormais définies par défaut sur gpt-5-mini, avec reasoning_effort défini sur low. Ce modèle a une fenêtre de contexte de 400 000 jetons et une sortie maximale de 128 000 jetons. Pour connaître les limites et les tarifs des modèles, consultez le tableau des modèles linguistiques.
  • Les fonctions d’IA dans Dataflow Gen2 et DataWarehouse SQL utilisent le même modèle de basegpt-5-mini, avec reasoning_effort défini sur low.
  • Bien que le modèle sous-jacent puisse gérer plusieurs langues, la plupart des fonctions IA sont optimisées pour le texte en langue anglaise.
  • AI Functions ne journalise pas ni ne stocke les invites utilisateur, les données d’entrée ou les sorties.

Modèles et fournisseurs

AI Functions utilise le point de terminaison intégré Fabric par défaut. Vous pouvez également configurer pandas et PySpark AI Functions pour utiliser n’importe quel LLM compatible avec les API chat_completions ou responses, notamment :

  • Azure modèles OpenAI.
  • Microsoft modèles Foundry tels que Qwen, Kimi, Grok, LLaMA, Mistral, etc.

Pour obtenir des options de configuration, consultez Personnaliser les fonctions IA avec pandas et personnaliser des fonctions IA avec PySpark.

Configurer des fonctions IA

AI Functions prend en charge pandas dans les environnements d’exécution Python et PySpark, ainsi que PySpark dans l’environnement d’exécution PySpark. Installez uniquement les packages dont votre runtime a besoin.

Performances et concurrence

AI Functions traite jusqu’à 200 lignes simultanément par défaut. Paramétrez la concurrence pour votre charge de travail dans pandas ou PySpark.

Installer des dépendances

Runtime Dépendances
pandas (environnement d’exécution Python) Installez les fichiers wheel synapseml_internal et synapseml_core. Installez openai la version 1.99.5 ou ultérieure uniquement si vous avez besoin d’un comportement client natif sdk ou d’exemples de format de réponse Pydantic.
pandas (environnement d’exécution PySpark) Aucune installation n’est requise pour la plupart des utilisations. Installez openai la version 1.99.5 ou ultérieure uniquement si vous avez besoin d’un comportement client natif sdk ou d’exemples de format de réponse Pydantic.
PySpark (PySpark Runtime) Aucune installation n’est requise.
# Optional: install openai version 1.99.5 or later for SDK-native client behavior.
%pip install -q openai 2>/dev/null

Importer les bibliothèques nécessaires

Importez la bibliothèque AI Functions pour votre runtime.

# Required imports
import synapse.ml.aifunc as aifunc
import pandas as pd

Utiliser des fonctions d’assistance pour les fichiers et les schémas

AI Functions inclut des assistances pour les flux de travail modals :

  • aifunc.load: Ingérer des fichiers à partir d’un dossier dans une table structurée. Vous pouvez fournir un prompt ou un schéma.
  • aifunc.list_file_paths: Énumérez les URL et les chemins d’accès d’un dossier à utiliser comme entrée dans n’importe quelle fonction IA.
  • ai.infer_schema: déduire un schéma d’extraction à partir du contenu du fichier à utiliser avec ai.extract.

Pour obtenir des exemples, consultez Utiliser une entrée modale avec AI Functions.

Appliquer des fonctions IA

Les exemples suivants montrent les fonctions IA principales pour pandas et PySpark. PySpark AI Functions s’exécutent sous forme de transformations Spark distribuées sur des clusters Spark Fabric.

Note

La plupart des fonctions d’IA prennent en charge les chemins de fichiers avec column_type="path" dans pandas ou input_col_type/col_types="path" dans PySpark. Pour obtenir des exemples, consultez Utiliser une entrée modale avec AI Functions.

Tip

Le modèle Python par défaut est gpt-5-mini avec reasoning_effort="low". Pour modifier les modèles ou régler les paramètres, consultez la configuration pandas ou la configuration PySpark.

ai.analyze_sentiment : détecter les sentiments

La ai.analyze_sentiment fonction étiquette chaque entrée comme positive, négative, mixte ou neutre. Vous pouvez également fournir des étiquettes personnalisées.

# This code uses AI. Always review output for mistakes. 

df = pd.DataFrame([
        "The cleaning spray permanently stained my beautiful kitchen counter. Never again!",
        "I used this sunscreen on my vacation to Florida, and I didn't get burned at all. Would recommend.",
        "I'm torn about this speaker system. The sound was high quality, though it didn't connect to my roommate's phone.",
        "The umbrella is OK, I guess."
    ], columns=["reviews"])

df["sentiment"] = df["reviews"].ai.analyze_sentiment()
display(df)

Capture d’écran d’une trame de données avec les colonnes « révisions » et « sentiment ». La colonne « sentiment » comprend « négatif », « positif », « mixte » et « neutre ».

ai.classifier : catégoriser le texte

La ai.classify fonction catégorise le texte d’entrée à l’aide des étiquettes que vous fournissez.

# This code uses AI. Always review output for mistakes. 

df = pd.DataFrame([
        "This duvet, lovingly hand-crafted from all-natural fabric, is perfect for a good night's sleep.",
        "Tired of friends judging your baking? With these handy-dandy measuring cups, you'll create culinary delights.",
        "Enjoy this *BRAND NEW CAR!* A compact SUV perfect for the professional commuter!"
    ], columns=["descriptions"])

df["category"] = df['descriptions'].ai.classify("kitchen", "bedroom", "garage", "other")
display(df)

Capture d’écran d’une trame de données avec les colonnes « descriptions » et « catégorie ». La colonne « catégorie » répertorie le nom de la catégorie de chaque description.

ai.embed : générer des incorporations vectorielles

La ai.embed fonction convertit du texte en vecteurs numériques qui capturent la signification sémantique. Utilisez des vecteurs d’intégration pour la recherche de similarité, la récupération d’information et les flux de travail d’apprentissage automatique.

# This code uses AI. Always review output for mistakes. 

df = pd.DataFrame([
        "This duvet, lovingly hand-crafted from all-natural fabric, is perfect for a good night's sleep.",
        "Tired of friends judging your baking? With these handy-dandy measuring cups, you'll create culinary delights.",
        "Enjoy this *BRAND NEW CAR!* A compact SUV perfect for the professional commuter!"
    ], columns=["descriptions"])
    
df["embed"] = df["descriptions"].ai.embed()
display(df)

Capture d’écran d’une trame de données avec des colonnes « descriptions » et « incorporer ». La colonne « embed » contient des vecteurs incorporés pour les descriptions.

ai.extract : Extraire des entités

La ai.extract fonction extrait des champs tels que les noms, les emplacements ou les entités personnalisées à partir du texte d’entrée.

Étiquettes structurées

Utilisez ExtractLabel quand vous avez besoin d’une extraction typée. Il prend en charge les constructions de schéma JSON telles que les champs typés, les énumérations, les tableaux, les objets imbriqués, les valeurs nullables, les propriétés requises et additionalProperties=false. Pour obtenir des exemples, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes. 

df = pd.DataFrame([
        "MJ Lee lives in Tucson, AZ, and works as a software engineer for Microsoft.",
        "Kris Turner, a nurse at NYU Langone, is a resident of Jersey City, New Jersey."
    ], columns=["descriptions"])

df_entities = df["descriptions"].ai.extract("name", "profession", "city")
display(df_entities)

Capture d’écran montrant une nouvelle trame de données avec les colonnes « name », « profession » et « city », contenant les données extraites du cadre de données d’origine.

ai.fix_grammar : Corriger la grammaire

La ai.fix_grammar fonction corrige l’orthographe, la grammaire et la ponctuation.

# This code uses AI. Always review output for mistakes. 

df = pd.DataFrame([
        "There are an error here.",
        "She and me go weigh back. We used to hang out every weeks.",
        "The big picture are right, but you're details is all wrong."
    ], columns=["text"])

df["corrections"] = df["text"].ai.fix_grammar()
display(df)

Capture d’écran montrant un cadre de données avec une colonne « texte » et une colonne « corrections », qui contient le texte de la colonne de texte avec une grammaire corrigée.

ai.generate_response : Appliquer des invites d’utilisateur personnalisées

La fonction ai.generate_response crée un texte personnalisé à partir de votre prompt et des données de la ligne.

Paramètres facultatifs

Utilisez response_format quand vous avez besoin d’une sortie structurée, notamment des objets JSON, un schéma JSON ou des modèles Pydantic. Pour obtenir des exemples, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes. 

df = pd.DataFrame([
        ("Scarves"),
        ("Snow pants"),
        ("Ski goggles")
    ], columns=["product"])

df["response"] = df.ai.generate_response("Write a short, punchy email subject line for a winter sale.")
display(df)

Capture d’écran montrant une trame de données avec des colonnes « product » et « response ». La colonne « response » contient une ligne d’objet percutant pour le produit.

ai.similarité : calculer la similarité

La ai.similarity fonction compare chaque valeur d’entrée à une valeur de référence ou à une valeur dans une autre colonne. Les scores vont de -1 pour une signification opposée à 1 pour une signification identique.

# This code uses AI. Always review output for mistakes. 

df = pd.DataFrame([ 
        ("Bill Gates", "Technology"), 
        ("Satya Nadella", "Healthcare"), 
        ("Joan of Arc", "Agriculture") 
    ], columns=["names", "industries"])
    
df["similarity"] = df["names"].ai.similarity(df["industries"])
display(df)

Capture d’écran d’une trame de données avec des colonnes « noms », « industries » et « similarité ». La colonne « similarité » a des scores de similarité pour le nom et l’industrie.

ai.summarize : Synthétiser le texte

La fonction récapitule le texte, le ai.summarize contenu du fichier, une seule colonne ou toutes les colonnes de chaque ligne.

Personnalisation des résumés avec des instructions

Permet instructions de contrôler le ton, la longueur, l’audience ou le focus. Pour obtenir des exemples, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes.

df= pd.DataFrame([
        ("Microsoft Teams", "2017",
        """
        The ultimate messaging app for your organization—a workspace for real-time 
        collaboration and communication, meetings, file and app sharing, and even the 
        occasional emoji! All in one place, all in the open, all accessible to everyone.
        """),
        ("Microsoft Fabric", "2023",
        """
        An enterprise-ready, end-to-end analytics platform that unifies data movement, 
        data processing, ingestion, transformation, and report building into a seamless, 
        user-friendly SaaS experience. Transform raw data into actionable insights.
        """)
    ], columns=["product", "release_year", "description"])

df["summaries"] = df["description"].ai.summarize()
display(df)

Capture d’écran montrant une trame de données. La colonne « summary » contient un résumé de la colonne « description » uniquement, dans la ligne correspondante.

ai.translate : Traduire du texte

La ai.translate fonction permet de traduire du texte dans une autre langue.

# This code uses AI. Always review output for mistakes. 

df = pd.DataFrame([
        "Hello! How are you doing today?", 
        "Tell me what you'd like to know, and I'll do my best to help.", 
        "The only thing we have to fear is fear itself."
    ], columns=["text"])

df["translations"] = df["text"].ai.translate("spanish")
display(df)

Capture d’écran d’un cadre de données avec des colonnes « texte » et « traductions ». La colonne « traductions » contient le texte traduit en espagnol.

Enchaîner les fonctions d’IA PySpark

PySpark AI Functions retourne des DataFrames qui conservent l’accesseur df.ai lié au schéma de résultat. Transformations de chaîne sans matérialiser les DataFrames intermédiaires.

# This code uses AI. Always review output for mistakes.

output = (
    df
    .ai.summarize(input_col="review_text", output_col="summary")
    .ai.classify(
        labels=["service", "cleanliness", "location", "other"],
        input_col="summary",
        output_col="category",
    )
)
display(output)

Afficher les statistiques d’utilisation avec ai.stats

Utiliser ai.stats sur une série ou un DataFrame généré par l’IA pour inspecter les métriques d’utilisation et d’exécution.

ai.stats retourne un DataFrame avec des statistiques telles que :

  • num_successful: nombre de lignes traitées avec succès par la fonction IA.
  • num_exceptions: nombre de lignes qui ont rencontré une exception pendant l’exécution. Ces lignes sont représentées en tant qu’instances de aifunc.ExceptionResult.
  • num_unevaluated: nombre de lignes qui n’ont pas été traitées, car une exception antérieure a rendu impossible la poursuite de l’évaluation. Ces lignes sont représentées en tant qu’instances de aifunc.NotEvaluatedResult.
  • num_harmful: nombre de lignes bloquées par le filtre de contenu OpenAI Azure. Ces lignes sont représentées en tant qu’instances de aifunc.FilterResult.
  • cached_tokens: nombre total de jetons d’entrée mis en cache.
  • input_tokens: nombre total de jetons d’entrée utilisés pour l’appel de fonction IA.
  • output_tokens: nombre total de jetons de sortie générés par le modèle.
  • reasoning_tokens: nombre total de jetons de raisonnement utilisés par les modèles de raisonnement.
  • model: nom de déploiement de modèle utilisé pour l’appel de fonction IA.

La sortie peut ressembler à ce tableau :

num_successful num_exceptions num_unevaluated num_harmful jetons en cache input_tokens output_tokens jetons_de_raisonnement client_type input_types modèle
2 0 0 0 0 555 4 0 fabric_llm_endpoint {"text": 2} gpt-5-mini

Tip

Utilisez ai.stats pour suivre l’utilisation, les schémas d’erreur et la consommation de jetons.

Les lignes qui atteignent les limites de capacité apparaissent comme des instances de aifunc.CapacityExceededResult. Dans les workflows pandas, utilisez aifunc.split_results pour séparer les résultats obtenus avec succès des absences de résultat, afin de pouvoir inspecter les lignes affectées par la limite de capacité et les retraiter une fois que de la capacité est disponible ou que la limite a été levée.

Transparence des coûts

Pandas AI Functions peut afficher les nombres de jetons et les estimations d’unités de capacité pendant l’exécution avec progress_bar_mode="stats". Pour PySpark, utilisez df.ai.stats sur le DataFrame de résultat.

L’application Fabric Capacity Metrics indique la consommation liée aux appels de modèle sous l’opération AI Functions. Pour plus d’informations, consultez Billing for AI Functions.

Évaluer et accélérer

Utilisez les notebooks de démarrage d’AI Functions pour des exemples de bout en bout avec pandas et PySpark. Utilisez les AI Functions Eval Notebooks pour évaluer la qualité des résultats avant la mise en production.