Microsoft FabricのAI機能は、1行のコードdf.ai.<function_name>()で大型パンダやPySparkデータフレームに対して、1行のLLM駆動変換を適用します。 これらは、行レベルのコンテンツ隔離を維持しつつ、数百回の非同期推論コールを行うことで高並行性で動作します。 このアプローチにより、非構造化テキストや文書から大規模にデータを豊かに、分類し、要約し、抽出することが可能になります。
この表を使用して、この概要または Pandas と PySpark の詳細なドキュメントの例を参照してください。
| Function | 説明 | 詳細なドキュメント |
|---|---|---|
ai.analyze_sentiment |
入力テキストの感情状態を検出します。 例。 | pandas、 PySpark |
ai.classify |
ラベルに従って入力テキストを分類します。 例。 | pandas、 PySpark |
ai.embed |
入力テキストのベクター埋め込みを生成します。 例。 | pandas、 PySpark |
ai.extract |
場所、名前、カスタム エンティティなどのフィールドを抽出します。 例。 | pandas、 PySpark |
ai.fix_grammar |
スペル、文法、句読点を修正します。 例。 | pandas、 PySpark |
ai.generate_response |
指示に基づいて応答を生成します。 例。 | pandas、 PySpark |
ai.similarity |
テキストの意味を 1 つの値または別の列と比較します。 例。 | pandas、 PySpark |
ai.summarize |
テキスト、ファイル、または行データを要約します。 例。 | pandas、 PySpark |
ai.translate |
入力テキストを別の言語に翻訳します。 例。 | pandas、 PySpark |
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_summarize、ai_classify、ai_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_effortはlowに設定されています。 このモデルには、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_internalとsynapseml_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 ライブラリをインポートします。
ファイルとスキーマにヘルパー関数を使用する
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)
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)
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)
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)
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)
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 を使用して、運用環境の前に出力品質を評価します。
関連コンテンツ
- AI Functions でマルチモーダル入力を使用します。
- pandas または PySpark を使用して AI 関数をカスタマイズします。
- AI Functions の課金について説明します。
- AI Functions Starter Notebooks または AI Functions Eval Notebooks をお試しください。
- ウェアハウスまたは SQL 分析エンドポイントで AI Functions を使用します。
- Dataflow Gen2 で
Fabric AI Prompt を使用します。