AI機能:大規模にデータをLLMで変換

Microsoft FabricのAI機能は、1行のコードdf.ai.<function_name>()で大型パンダやPySparkデータフレームに対して、1行のLLM駆動変換を適用します。 これらは、行レベルのコンテンツ隔離を維持しつつ、数百回の非同期推論コールを行うことで高並行性で動作します。 このアプローチにより、非構造化テキストや文書から大規模にデータを豊かに、分類し、要約し、抽出することが可能になります。

この表を使用して、この概要または Pandas と PySpark の詳細なドキュメントの例を参照してください。

Function 説明 詳細なドキュメント
ai.analyze_sentiment 入力テキストの感情状態を検出します。 pandasPySpark
ai.classify ラベルに従って入力テキストを分類します。 pandasPySpark
ai.embed 入力テキストのベクター埋め込みを生成します。 pandasPySpark
ai.extract 場所、名前、カスタム エンティティなどのフィールドを抽出します。 pandasPySpark
ai.fix_grammar スペル、文法、句読点を修正します。 pandasPySpark
ai.generate_response 指示に基づいて応答を生成します。 pandasPySpark
ai.similarity テキストの意味を 1 つの値または別の列と比較します。 pandasPySpark
ai.summarize テキスト、ファイル、または行データを要約します。 pandasPySpark
ai.translate 入力テキストを別の言語に翻訳します。 pandasPySpark

AI Functions は、Pandas または PySpark を含むノートブック、SQL クエリ、および Dataflow Gen2 で使用できます。 Fabricは、組み込みモデルのエンドポイント設定を処理します。

Fabricエクスペリエンス全体で AI Functions を使用する

AI Functions は、複数のFabric エクスペリエンスで使用できます。

  • ノートブック: Pandas API と PySpark API を使用して、データ サイエンスおよびデータ エンジニアリング ワークフローの DataFrame を強化します。
  • ウェアハウスと SQL 分析エンドポイント: ウェアハウスまたは SQL 分析エンドポイントで AI 関数 を使用して、T-SQL クエリで直接、 ai_summarizeai_classifyai_generate_response などの SQL フレーバー関数を呼び出します。
  • Dataflow Gen2: dataflow Gen2 で Fabric AI Prompt を使用して、Power Queryに AI 生成列を追加します。

マルチモーダル AI 関数を使用する

マルチモーダル AI Functions は、テキスト値に加えて、画像、PDF、テキスト ファイルを処理します。 PDF の集計、画像の分類、ドキュメント フィールドの抽出、またはファイル コンテンツに固定された応答の生成に使用します。

サポートされているファイルの種類には、JPG/JPEG、PNG、静的 GIF、WebP、PDF、MD、TXT、CSV、TSV、JSON、XML、PY、およびその他のテキスト ファイルがあります。 pandas で column_type="path" を設定するか、PySpark で input_col_type または col_types を設定します。 例については、「 AI 関数でマルチモーダル入力を使用する」を参照してください。

Prerequisites

  • Fabricの組み込みの AI エンドポイントで AI Functions を使用するには、管理者が openAI を利用する Azure Copilotおよびその他の機能のテナント スイッチを有効にする必要があります。
  • 場所によっては、クロス geo 処理のテナント設定を有効にする必要がある場合があります。 Azure OpenAI Service で使用可能なリージョンの詳細について説明します。
  • 有料のファブリック容量 (F2 以上、または任意の P エディション) が必要です。

Note

  • AI Functions は、Fabric Runtime 1.3 以降でサポートされています。
  • AI関数[pandas、PySpark、Dataflow Gen2、Datawarehouse SQL]はデフォルトで gpt-5-mini で、 reasoning_effortlowに設定されています。 このモデルには、400,000 トークン コンテキスト ウィンドウと 128,000 トークンの最大出力があります。 モデルの制限とレートについては、 言語モデルの表を参照してください。
  • AI Functions では、ユーザー プロンプト、入力データ、出力のログ記録や保存は行われません。

モデルとプロバイダー

AI Functions では、既定で組み込みのFabric エンドポイントが使用されます。 chat_completions API または responses API をサポートする LLM を使用するように pandas と PySpark AI Functions を構成することもできます。これには、次のものが含まれます。

  • Azure OpenAI モデル。
  • Microsoft Foundry モデル (Qwen、Kimi、Grok、LLaMA、Mistral など)。

構成オプションについては、「 Pandas を使用して AI 関数をカスタマイズする 」および 「PySpark を使用して AI 関数をカスタマイズする」を参照してください。

AI 関数を設定する

AI Functions は、Python ランタイムおよび PySpark ランタイムでの pandas と、PySpark ランタイムでの PySpark をサポートします。 ランタイムに必要なパッケージのみをインストールします。

依存関係のインストール

Runtime 依存関係
pandas (Python ランタイム) synapseml_internalsynapseml_coreホイール ファイルをインストールします。 SDK ネイティブ クライアントの動作または Pydantic 応答形式の例が必要な場合にのみ、バージョン 1.99.5 以降 openai インストールします。
pandas(Fabric Runtime 2.0、PySpark 4.1およびPython 3.13) 一時的に nest_asyncioをインストールしてください。 SDK ネイティブ クライアントの動作または Pydantic 応答形式の例が必要な場合にのみ、バージョン 1.99.5 以降 openai インストールします。
pandas(その他のPySparkランタイム) ほとんどの場合、インストールは必要ありません。 SDK ネイティブ クライアントの動作または Pydantic 応答形式の例が必要な場合にのみ、バージョン 1.99.5 以降 openai インストールします。
PySpark (PySpark ランタイム) インストールは不要です。

Note

  • nest_asyncio をインストールすることは、Fabric Runtime 2.0 における pandas AI Functions 向けの一時的な互換性パッチです。 この要件は今後のアップデートで削除される予定です。
  • PySpark AI関数はFabric Sparkランタイムで追加のインストールステップを必要としません。

Fabric Runtime 2.0はPython 3.13とPySpark 4.1をベースにしており、nest_asyncioパッケージをネイティブに含んでいません。 このランタイムでpandas AI Functionsを使用するには、一時的な互換性パッチとして nest_asyncio をインストールしてください。 今後のアップデートでは、この要件は削除される予定です。pandas AI FunctionsはFabric Runtime 2.0にプリインストールされている新しいnest_asyncio2パッケージを使用可能だからです。

# Temporary compatibility patch for Fabric Runtime 2.0.
%pip install -q nest_asyncio 2>/dev/null

# Optional: install openai version 1.99.5 or later for SDK-native client behavior.
%pip install -q openai 2>/dev/null

必要なライブラリをインポートする

ランタイムの AI Functions ライブラリをインポートします。

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

ファイルとスキーマにヘルパー関数を使用する

AI 関数には、マルチモーダル ワークフローのヘルパーが含まれています。

  • aifunc.load: フォルダーから構造化テーブルにファイルを取り込みます。 プロンプトまたはスキーマを指定できます。
  • aifunc.list_file_paths: 任意の AI 関数への入力として使用するフォルダーのファイル URL とパスを列挙します。
  • ai.infer_schema: ai.extractで使用するファイルコンテンツからの抽出スキーマを推論します。

例については、「 AI 関数でマルチモーダル入力を使用する」を参照してください。

AI 関数を適用する

次の例は、pandas と PySpark のコア AI Functions を示しています。 PySpark AI Functions は、Fabric Spark クラスター間で分散 Spark 変換として実行されます。

Note

ほとんどの AI Functions では、pandas の column_type="path" または PySpark の input_col_type/col_types="path" を使用したファイル パスがサポートされています。 例については、「 AI 関数でマルチモーダル入力を使用する」を参照してください。

Tip

既定のPythonモデルはgpt-5-miniで、reasoning_effort="low"を使用します。 モデルを変更したり、設定を調整したりするには、 pandas の構成 または PySpark の構成に関するページを参照してください。

ai.analyze_sentiment: センチメントを検出する

ai.analyze_sentiment関数は、各入力に正、負、混合、または中立のラベルを付けます。 カスタム ラベルを指定することもできます。

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

ai.classify: テキストを分類する

ai.classify関数は、指定したラベルを使用して入力テキストを分類します。

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

ai.embed: ベクター埋め込みを生成する

ai.embed関数は、テキストをセマンティックな意味をキャプチャする数値ベクトルに変換します。 類似性の検索、取得、機械学習のワークフローには埋め込みを使用します。

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

ai.extract: エンティティを抽出する

ai.extract関数は、入力テキストから名前、場所、カスタム エンティティなどのフィールドを抽出します。

構造化ラベル

型指定された抽出が必要な場合は、 ExtractLabel を使用します。 型指定されたフィールド、列挙型、配列、入れ子になったオブジェクト、null 許容値、必須プロパティ、 additionalProperties=falseなどの JSON スキーマコンストラクトがサポートされています。 例については、 pandas または 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)

元のデータ フレームから抽出されたデータを含む列 'name'、'profession'、および 'city' を含む新しいデータ フレームを示すスクリーンショット。

ai.fix_grammar: 文法を修正する

ai.fix_grammar関数は、スペル、文法、句読点を修正します。

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

ai.generate_response: カスタム ユーザー プロンプトを適用する

ai.generate_response関数は、プロンプトと行データからカスタム テキストを作成します。

省略可能なパラメーター

JSON オブジェクト、JSON スキーマ、Pydantic モデルなど、構造化された出力が必要な場合は、 response_format を使用します。 例については、 pandas または 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)

列 'product' と 'response' を含むデータ フレームを示すスクリーンショット。

ai.similarity: 類似性を計算する

ai.similarity関数は、各入力値を 1 つの参照値または別の列の値と比較します。 スコアは、反対の意味の -1 から同じ意味の 1 までの範囲です。

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

列 'names'、'industries'、および 'similarity' を含むデータ フレームのスクリーンショット。

ai.summarize: テキストの要約

ai.summarize関数は、テキスト、ファイルの内容、1 つの列、または各行のすべての列を集計します。

指示を用いて概要をカスタマイズ

instructionsを使用して、トーン、長さ、対象ユーザー、またはフォーカスを制御します。 例については、 pandas または 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)

データ フレームを示すスクリーンショット。'summarys' 列には、対応する行の 'description' 列のみの概要があります。

ai.translate: テキストを翻訳する

ai.translate関数は、テキストを別の言語に翻訳します。

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

列 'text' と 'translations' を含むデータ フレームのスクリーンショット。'translations' 列には、スペイン語に翻訳されたテキストが含まれています。

PySpark AI 関数をチェーンする

PySpark AI Functions は、結果スキーマにバインドされた df.ai アクセサーを保持する DataFrame を返します。 中間DataFrameを実体化せずに、変換を連鎖させます。

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

ai.stats を使用して使用状況の統計情報を表示する

AI によって生成されたシリーズまたは DataFrame で ai.stats を使用して、使用状況と実行のメトリックを検査します。

ai.stats は、次のような統計を持つ DataFrame を返します。

  • num_successful: AI 関数によって正常に処理された行の数。
  • num_exceptions: 実行中に例外が発生した行の数。 これらの行は、 aifunc.ExceptionResultのインスタンスとして表されます。
  • num_unevaluated: 以前の例外によって評価を続行できなかったために処理されなかった行の数。 これらの行は、 aifunc.NotEvaluatedResultのインスタンスとして表されます。
  • num_harmful: Azure OpenAI コンテンツ フィルターによってブロックされた行の数。 これらの行は、 aifunc.FilterResultのインスタンスとして表されます。
  • cached_tokens: キャッシュされた入力トークンの合計数。
  • input_tokens: AI 関数呼び出しに使用された入力トークンの合計数。
  • output_tokens: モデルによって生成された出力トークンの合計数。
  • reasoning_tokens: 推論モデルによって使用される推論トークンの合計数。
  • model: AI 関数呼び出しに使用されるモデル デプロイ名。

出力は次の表のようになります。

num_successful num_exceptions num_unevaluated num_harmful キャッシュされたトークン input_tokens output_tokens 推論トークン クライアントタイプ input_types モデル
2 0 0 0 0 555 4 0 fabric_llm_endpoint {"text": 2} gpt-5-mini

Tip

ai.statsを使用して、使用状況、エラー パターン、トークンの消費量を追跡します。

容量制限に達した行は、 aifunc.CapacityExceededResultのインスタンスとして表示されます。 pandas ワークフローでは、 aifunc.split_results を使用して、成功した出力を非resultsから分離します。そのため、容量が制限された行を検査し、容量が使用可能になった後、または制限に対処した後に再試行できます。

コストの透明性

pandas AI Functions では、 progress_bar_mode="stats"を使用して、実行中のトークン数と容量ユニットの見積もりを表示できます。 PySpark の場合は、結果の DataFrame で df.ai.stats を使用します。

Fabric容量メトリック アプリは、モデル呼び出しの消費量を AI Functions 操作として報告します。 詳細については、AI 機能の課金を参照してください。

評価と高速化

エンド ツー エンドの pandas と PySpark の例には、 AI Functions スターター ノートブック を使用します。 AI Functions Eval Notebooks を使用して、運用環境の前に出力品質を評価します。