次の方法で共有


AI 関数を使用してデータをシームレスに変換および強化する (プレビュー)

重要

この機能は、プレビュー 段階にあります。

Microsoft Fabric を使用すると、開発者からアナリストまで、すべてのビジネス プロフェッショナルが 、CopilotFabric データ エージェントなどのエクスペリエンスを使用して、Generative AI を通じてエンタープライズ データからより多くの価値を引き出すことができます。 データ エンジニアリング用の新しい AI 関数のセットにより、Fabric ユーザーは業界をリードする大規模言語モデル (LLM) の機能を活用して、データをシームレスに変換および強化できるようになりました。

AI 関数は GenAI の機能を利用して、要約、分類、テキスト生成などを 1 行のコードで実現します。

  • ai.similarity を使用して類似性を計算する: 入力テキストの意味を 1 つの共通テキスト値または別の列の対応するテキスト値と比較します。
  • ai.classify を使用してテキストを分類する: 選択したラベルに従って入力テキストの値を分類します。
  • ai.analyze_sentiment を使用してセンチメントを検出する: 入力テキストによって表される感情的な状態を識別します。
  • ai.extract を使用してエンティティを抽出する: 場所や名前など、入力テキストから特定の種類の情報を検索して抽出します。
  • ai.fix_grammar で文法を修正する: 入力テキストのスペル、文法、句読点を修正します。
  • ai.summarize を使用してテキストを集計する: 入力テキストの概要を取得します。
  • ai.translate を使用してテキストを翻訳する: 入力テキストを別の言語に翻訳します。
  • ai.generate_response を使用してカスタム ユーザー プロンプトに応答する: 独自の手順に基づいて応答を生成します。

Pandas と Spark のどちらを使用する場合でも、これらの機能をデータ サイエンスおよびデータ エンジニアリング ワークフローの一部として組み込むのはシームレスです。 詳細な構成、複雑なインフラストラクチャ管理、および特定の技術的専門知識は必要ありません。

前提 条件

  • Fabric の組み込み AI エンドポイントで AI 関数を使用するには、管理者は、Copilot と Azure OpenAI を利用するその他の機能のテナント スイッチ有効にする必要があります。
  • 場所によっては、クロス geo 処理のテナント設定を有効にする必要がある場合があります。 詳細については、を参照してください。
  • F2 以上の SKU または P SKU も必要です。 試用版 SKU を使用する場合は、独自の Azure Open AI リソースを持ち込むことができます。

手記

  • AI 関数は、Fabric 1.3 ランタイム 以降でサポートされています。
  • AI 関数では、既定で gpt-4o-mini (2024-07-18) モデルが使用されます。 課金と消費率の詳細については、この記事を参照してください。
  • ほとんどの AI 関数は、英語のテキストで使用するために最適化されています。

AI 関数の概要

Fabric ノートブックで AI 関数を使用するには、Fabric ランタイムにプレインストールされている特定のカスタム パッケージが必要です。 最新の機能とバグ修正については、次のコードを実行して、最も up-to-date パッケージをインストールしてインポートできます。 その後、好みに応じて、pandas または PySpark で AI 関数を使用できます。

このコード セルは、AI 関数ライブラリとその依存関係をインストールします。

警告

PySpark 構成セルの実行が完了するまでに数分かかります。 お疲れさまでした。

# Install fixed version of packages
%pip install -q --force-reinstall openai==1.30 httpx==0.27.0

# Install latest version of SynapseML-core
%pip install -q --force-reinstall https://mmlspark.blob.core.windows.net/pip/1.0.11-spark3.5/synapseml_core-1.0.11.dev1-py2.py3-none-any.whl

# Install SynapseML-Internal .whl with AI functions library from blob storage:
%pip install -q --force-reinstall https://mmlspark.blob.core.windows.net/pip/1.0.11.1-spark3.5/synapseml_internal-1.0.11.1.dev1-py2.py3-none-any.whl

このコード セルは、AI 関数ライブラリとその依存関係をインポートします。 pandas セルには、オプションの Python ライブラリもインポートされ、すべての AI 関数呼び出しの状態を追跡する進行状況バーが表示されます。

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

# Optional import for progress bars
from tqdm.auto import tqdm
tqdm.pandas()

AI 関数の適用

次の各関数を使用すると、Fabric の組み込みの AI エンドポイントを呼び出して、1 行のコードでデータを変換および強化できます。 AI 関数を使用して、pandas DataFrames または Spark DataFrames を分析できます。

ヒント

AI 関数の構成のカスタマイズについては、この記事 参照してください。

ai.similarity を使用して類似性を計算する

ai.similarity 関数は AI を呼び出して、入力テキスト値を 1 つの共通テキスト値と比較するか、別の列のペアワイズ テキスト値と比較します。 出力の類似性スコアは相対的であり、-1 (反対) から 1 (同一) までの範囲で指定できます。 0 のスコアは、値が意味で完全に無関係であることを示します。 ai.similarityの使用に関する詳細な手順については、この記事 参照してください。

サンプルの使用方法

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

df = pd.DataFrame([ 
        ("Bill Gates", "Microsoft"), 
        ("Satya Nadella", "Toyota"), 
        ("Joan of Arc", "Nike") 
    ], columns=["names", "companies"])
    
df["similarity"] = df["names"].ai.similarity(df["companies"])
display(df)

ai.classify を使用してテキストを分類する

ai.classify 関数は AI を呼び出し、選択したカスタム ラベルに従って入力テキストを分類します。 ai.classify の使用方法の詳細については、この記事をご覧ください。

サンプルの使用方法

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

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)

ai.analyze_sentiment を使用してセンチメントを検出する

ai.analyze_sentiment 関数は AI を呼び出して、入力テキストによって表される感情状態が肯定的、否定的、混合、または中立であるかどうかを識別します。 AI がこの決定を行えない場合、出力は空白のままです。 ai.analyze_sentimentの使用に関する詳細な手順については、この記事 参照してください。

サンプルの使用方法

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

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)

ai.extract を使用してエンティティを抽出する

ai.extract 関数は AI を呼び出して入力テキストをスキャンし、選択したラベルによって指定された特定の種類の情報 (場所や名前など) を抽出します。 ai.extractの使用に関する詳細な手順については、この記事 参照してください。

サンプルの使用方法

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

df = pd.DataFrame([
        "MJ Lee lives in Tuscon, 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)

ai.fix_grammar を使用して文法を修正する

ai.fix_grammar 関数は AI を呼び出して、入力テキストのスペル、文法、句読点を修正します。 ai.fix_grammarの使用に関する詳細な手順については、この記事 参照してください。

サンプルの使用方法

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

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)

ai.summarize を使用してテキストを集計する

ai.summarize 関数は AI を呼び出して、入力テキストの概要を生成します (DataFrame の 1 つの列の値またはすべての列の行値)。 ai.summarizeの使用に関する詳細な手順については、この専用記事 参照してください。

サンプルの使用方法

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

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)

ai.translate を使用してテキストを翻訳する

ai.translate 関数は AI を呼び出して、入力テキストを任意の新しい言語に翻訳します。 ai.translateの使用に関する詳細な手順については、この記事 参照してください。

サンプルの使用方法

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

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)

ai.generate_response を使用してカスタム ユーザー プロンプトに応答する

ai.generate_response 関数は、AI を呼び出して、独自の指示に基づいてカスタム テキストを生成します。 ai.generate_responseの使用に関する詳細な手順については、この記事 参照してください。

サンプルの使用方法

# This code uses AI. Always review output for mistakes. 
# Read terms: https://azure.microsoft.com/support/legal/preview-supplemental-terms/

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)