Partager via


Transformer et enrichir les données avec des fonctions d'IA

Microsoft Fabric AI Functions permet à tous les professionnels de l’entreprise (des développeurs aux analystes) de transformer et d’enrichir leurs données d’entreprise à l’aide de l’IA générative.

Les fonctions IA utilisent des modèles de langage volumineux (LLMs) à la pointe du secteur pour résumer, classification, génération de texte, etc. Avec une seule ligne de code, vous pouvez :

  • ai.analyze_sentiment: détecter l’état émotionnel du texte d’entrée.
  • ai.classify: catégoriser le texte d’entrée en fonction de vos étiquettes.
  • ai.embed: Générer des incorporations vectorielles pour le texte d’entrée.
  • ai.extract: Extrayez des types spécifiques d’informations à partir du texte d’entrée (par exemple, emplacements ou noms).
  • ai.fix_grammar: corrigez l’orthographe, la grammaire et la ponctuation du texte d’entrée.
  • ai.generate_response: Générez des réponses en fonction de vos propres instructions.
  • ai.similarity: comparez la signification du texte d’entrée avec une valeur de texte unique ou du texte dans une autre colonne.
  • ai.summarize: Obtenir des résumés du texte d’entrée.
  • ai.translate: traduire du texte d’entrée dans une autre langue.

Vous pouvez incorporer ces fonctions dans le cadre des workflows de science des données et d’ingénierie des données, que vous travailliez avec pandas ou Spark. Il n’existe aucune configuration détaillée et aucune gestion complexe de l’infrastructure. Vous n’avez pas besoin d’une expertise technique spécifique.

Prerequisites

Note

  • Les fonctions IA sont prises en charge dans Fabric Runtime 1.3 et versions ultérieures.
  • Sauf si vous configurez un autre modèle, les fonctions IA sont par défaut gpt-4.1-mini. En savoir plus sur les tarifs de facturation et de consommation.
  • Bien que le modèle sous-jacent puisse gérer plusieurs langues, la plupart des fonctions IA sont optimisées pour une utilisation sur les textes en langue anglaise.

Modèles et fournisseurs

Les fonctions IA prennent désormais en charge des modèles et des fournisseurs plus larges que les modèles Azure OpenAI par défaut. Vous pouvez configurer des fonctions IA à utiliser :

  • Modèles Azure OpenAI
  • Ressources Azure AI Foundry (y compris les modèles tels que Claude et LLaMA)

La sélection du modèle et du fournisseur est configurable par le biais de la configuration des fonctions IA. Pour plus d’informations sur l'installation et la configuration de différents modèles et fournisseurs, consultez la documentation sur la configuration pour pandas et PySpark.

Prise en main des fonctions IA

Les fonctions IA peuvent être utilisées avec pandas (runtimes Python et PySpark) et avec PySpark (runtime PySpark). Les étapes d’installation et d’importation requises pour chacune d’elles sont décrites dans la section suivante, suivies des commandes correspondantes.

Performances et concurrence

Les fonctions IA s’exécutent désormais avec une concurrence par défaut accrue de 200, ce qui permet un traitement parallèle plus rapide des opérations IA. Vous pouvez paramétrer les paramètres de concurrence par charge de travail pour optimiser les performances en fonction de vos besoins spécifiques. Pour plus d’informations sur la configuration de l’accès concurrentiel et d’autres paramètres liés aux performances, consultez la documentation de configuration pour pandas et PySpark.

Installer des dépendances

  • Pandas (environnement d'exécution Python)
    • synapseml_internal et synapseml_core installation des fichiers whl requis (commandes fournies dans la cellule de code suivante)
    • openai installation de package requise (commande fournie dans la cellule de code suivante)
  • Pandas (runtime PySpark)
    • openai installation de package requise (commande fournie dans la cellule de code suivante)
  • PySpark (PySpark Runtime)
    • Aucune installation obligatoire
# The pandas AI functions package requires OpenAI version 1.99.5 or later
%pip install -q --force-reinstall openai==1.99.5 2>/dev/null

Importer les bibliothèques nécessaires

La cellule de code suivante importe la bibliothèque de fonctions IA et ses dépendances.

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

Appliquer des fonctions IA

Chacune des fonctions suivantes vous permet d’appeler le point de terminaison IA intégré dans Fabric pour transformer et enrichir des données avec une seule ligne de code. Vous pouvez utiliser des fonctions IA pour analyser des DataFrames pandas ou des DataFrames Spark.

Tip

Découvrez comment personnaliser la configuration des fonctions IA.

Configuration avancée : lorsque vous utilisez des modèles de famille gpt-5, vous pouvez configurer des options avancées telles que reasoning_effort et verbosity. Pour plus d’informations sur la définition de ces options, consultez les pages de configuration pour pandas et PySpark .

Détecter les sentiments avec ai.analyze_sentiment

La fonction ai.analyze_sentiment appelle l’IA pour déterminer si l’état émotionnel exprimé par le texte d’entrée est positif, négatif, mixte ou neutre. Si l’IA ne peut pas effectuer cette détermination, la sortie est laissée vide. Pour obtenir des instructions plus détaillées sur l’utilisation de ai.analyze_sentiment avec pandas, consultez cet article. Pour ai.analyze_sentiment plus d’informations sur PySpark, consultez cet article.

Paramètres facultatifs

La ai.analyze_sentiment fonction prend désormais en charge des paramètres facultatifs supplémentaires qui vous permettent de personnaliser le comportement d’analyse des sentiments. Ces paramètres permettent de mieux contrôler la façon dont les sentiments sont détectés et signalés. Pour plus d’informations sur les paramètres disponibles, leurs descriptions et leurs valeurs par défaut, consultez la documentation spécifique à la fonction pour pandas et PySpark.

# 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 ».

Classer le texte avec ai.class

La fonction ai.classify appelle l’IA pour catégoriser le texte d’entrée en fonction des étiquettes personnalisées que vous choisissez. Pour plus d’informations sur l’utilisation de ai.classify pandas, consultez cet article. Pour ai.classify plus d’informations sur PySpark, consultez cet article.

# 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.

Générer des incorporations vectorielles avec ai.embed

La ai.embed fonction appelle l’IA pour générer des incorporations vectorielles pour le texte d’entrée. Les incorporations vectorielles sont des représentations numériques de texte qui capturent la signification sémantique, ce qui les rend utiles pour la recherche de similarité, les flux de travail de récupération et d’autres tâches de Machine Learning. La dimensionnalité des vecteurs d’incorporation dépend du modèle sélectionné. Pour obtenir des instructions plus détaillées sur l’utilisation de ai.embed avec pandas, consultez cet article. Pour ai.embed plus d’informations sur PySpark, consultez cet article.

# 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.

Extraire des entités avec ai.extract

La ai.extract fonction appelle l’IA pour analyser le texte d’entrée et extraire des types d’informations spécifiques désignés par les étiquettes que vous choisissez (par exemple, emplacements ou noms). Pour obtenir des instructions plus détaillées sur l’utilisation de ai.extract avec pandas, consultez cet article. Pour ai.extract plus d’informations sur PySpark, consultez cet article.

Étiquettes structurées

La ai.extract fonction prend en charge les définitions d’étiquette structurées via le schéma ExtractLabel. Vous pouvez fournir des étiquettes avec des définitions structurées qui incluent non seulement le nom de l’étiquette, mais également les informations de type et les attributs. Cette approche structurée améliore la cohérence d’extraction et permet à la fonction de retourner des colonnes de sortie structurées correspondantes. Par exemple, vous pouvez spécifier des étiquettes avec des métadonnées supplémentaires pour guider le processus d’extraction plus précisément. Consultez la documentation détaillée sur pandas et PySpark pour obtenir des exemples d’utilisation d’étiquettes structurées.

# 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.

Corriger la grammaire avec ai.fix_grammar

La fonction ai.fix_grammar appelle l’IA pour corriger l’orthographe, la grammaire et la ponctuation du texte d’entrée. Pour obtenir des instructions plus détaillées sur l’utilisation de ai.fix_grammar avec pandas, consultez cet article. Pour ai.fix_grammar plus d’informations sur PySpark, consultez cet article.

# 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.

Répondre aux invites d’utilisateur personnalisées avec ai.generate_response

La fonction ai.generate_response appelle l’IA pour générer du texte personnalisé en fonction de vos propres instructions. Pour obtenir des instructions plus détaillées sur l’utilisation de ai.generate_response avec pandas, consultez cet article. Pour ai.generate_response plus d’informations sur PySpark, consultez cet article.

Paramètres facultatifs

La ai.generate_response fonction prend désormais en charge un response_format paramètre qui vous permet de demander une sortie JSON structurée. Vous pouvez spécifier response_format='json' de recevoir des réponses au format JSON. En outre, vous pouvez fournir un schéma JSON pour appliquer une structure de sortie spécifique, ce qui garantit que la réponse générée est conforme à votre forme de données attendue. Cela est particulièrement utile lorsque vous avez besoin d’une sortie prévisible et lisible par l’ordinateur à partir de la fonction IA. Pour obtenir des exemples détaillés et des modèles d’utilisation, consultez la documentation relative aux pandas et à 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.

Calculer la similarité avec ai.similarité

La ai.similarity fonction compare chaque valeur de texte d’entrée à un texte de référence commun ou à la valeur correspondante dans une autre colonne (mode pair). Les valeurs du score de similarité de sortie sont relatives et peuvent aller de -1 (opposés) à 1 (identiques). Un score indiquant 0 que les valeurs ne sont pas liées au sens. Pour obtenir des instructions plus détaillées sur l’utilisation de ai.similarity avec pandas, consultez cet article. Pour ai.similarity plus d’informations sur PySpark, consultez cet article.

# 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.

Résumer le texte avec ai.summarize

La fonction ai.summarize appelle l’IA pour générer des résumés de texte d’entrée (soit des valeurs d’une seule colonne d’un DataFrame, soit des valeurs de ligne sur toutes les colonnes). Pour obtenir des instructions plus détaillées sur l’utilisation de ai.summarize avec pandas, consultez cet article. Pour ai.summarize plus d’informations sur PySpark, consultez cet article.

Personnalisation des résumés avec des instructions

La ai.summarize fonction prend désormais en charge un instructions paramètre qui vous permet de diriger le ton, la longueur et le focus des résumés générés. Vous pouvez fournir des instructions personnalisées pour guider la création du résumé, telles que la spécification d’un style particulier, d’un public cible ou d’un niveau de détail. Lorsque des instructions ne sont pas fournies, la fonction utilise le comportement de synthèse par défaut. Pour obtenir des exemples d’utilisation du instructions paramètre, consultez la documentation détaillée pour pandas et 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.

Traduire du texte avec ai.translate

La fonction ai.translate appelle l’IA pour traduire le texte d’entrée dans une nouvelle langue de votre choix. Pour obtenir des instructions plus détaillées sur l’utilisation de ai.translate avec pandas, consultez cet article. Pour ai.translate plus d’informations sur PySpark, consultez cet article.

# 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.

Afficher les statistiques d’utilisation avec ai.stats

Les fonctions d’IA fabric fournissent un moyen intégré d’inspecter les statistiques d’utilisation et d’exécution pour n’importe quelle série ou dataFrame générée par l’IA. Vous pouvez accéder à ces métriques en appelant ai.stats le résultat retourné par une fonction IA.

ai.stats retourne un DataFrame avec les colonnes suivantes :

  • 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 des instances d’aifunc.NotEvaluatedResult.
  • num_harmful : nombre de lignes bloquées par le filtre de contenu Azure OpenAI. Ces lignes sont des instances de aifunc.FilterResult.
  • prompt_tokens : nombre total de jetons d'entrée utilisés pour l'appel de la fonction IA.
  • completion_tokens : nombre total de jetons de sortie générés par le modèle.

Tip

Vous pouvez appeler ai.stats sur n’importe quel Series ou DataFrame retourné par une fonction IA. Cela peut vous aider à suivre l’utilisation, à comprendre les modèles d’erreur et à surveiller la consommation des jetons.