次の方法で共有


AI 関数の構成をカスタマイズする

現在パブリック プレビュー段階にある AI 関数を使用すると、ユーザーは Fabric のネイティブ大規模言語モデル (LLM) の機能を利用して、エンタープライズ データ の変換と強化をできます。 これらは、基になるモデルと設定が既定で構成され、すぐに使用できるように設計されています。 ただし、より柔軟な構成を必要とするユーザーは、いくつかの追加のコード行でソリューションをカスタマイズできます。

重要

この機能は、Fabric 1.3 ランタイム 以降で使用するために、プレビューにあります。

  • この概要記事 の前提条件 (AI 関数を使用するために一時的に必要な ライブラリのインストール など) を確認します。
  • 基になるモデルは複数の言語を処理できますが、ほとんどの AI 関数は英語のテキストで使用できるように最適化されています。
  • AI 関数の最初のロールアウト中、ユーザーは Fabric の組み込み AI エンドポイントを使用して 1 分あたり 1,000 件の要求に一時的に制限されます。

pandas を使用した AI 関数のカスタマイズ

既定では、AI 関数は Fabric の組み込みの AI エンドポイントを利用します。 LLM の設定は、aifunc.Conf クラスでグローバルに構成されます。 pandas で AI 関数を使用する場合は、aifunc.Conf クラスを使用して、次の設定の一部またはすべてを変更できます。

パラメーター 説明 既定値
model_deployment_name
任意
AI 関数を実行する言語モデルデプロイの名前を指定する 文字列 gpt-35-turbo-0125
embedding_deployment_name
任意
AI 関数を利用する埋め込みモデルデプロイの名前を指定する 文字列 text-embedding-ada-002
temperature
任意
基になるモデルの温度を指定する、0.0 から 1.0 までの浮動小数点。 温度が高いほど、モデルの出力のランダム性または創造性が向上します。 0.0
seed
任意
基になるモデルの応答に使用するシードを指定する int。 既定の動作では、各行のシード値がランダムに選択されます。 定数値を選択すると、実験の再現性が向上します。 openai.NOT_GIVEN
timeout
任意
AI 関数がタイムアウト エラーを発生するまでの秒数を指定する int。 既定では、タイムアウトはありません。 なし
max_concurrency
任意
モデルへの非同期要求と並行して処理する行の最大数を指定する int。 値を大きくすると、処理時間が短縮されます (容量に対応できる場合)。 4

次のコード サンプルでは、特定のセッションのすべての AI 関数呼び出しに適用されるように、aifunc.Conf 設定をグローバルにオーバーライドする方法を示します。

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

aifunc.default_conf.temperature = 0.5 # Default: 0.0
aifunc.default_conf.max_concurrency = 10 # Default: 4

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")
df["sentiment"] = df["text"].ai.analyze_sentiment()
display(df)

個々の関数呼び出しごとにこれらの設定をカスタマイズすることもできます。 各 AI 関数は、省略可能な conf パラメーターを受け取ります。 次のコード サンプルでは、カスタム温度値を使用して、ai.translate 関数呼び出しのみの既定の aifunc 設定を変更します。 (カスタム値が設定されていないため、ai.analyze_sentiment 呼び出しでは既定値が引き続き使用されます)。

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

from synapse.ml.aifunc import Conf

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", conf=Conf(temperature=0.5))
df["sentiment"] = df["text"].ai.analyze_sentiment()
display(df)

ネイティブの Fabric LLM の代わりにカスタム Azure OpenAI LLM リソースを置き換えるために、次のコード サンプルに示すように、aifunc.setup 関数を独自のクライアントで使用できます。

from openai import AzureOpenAI

# Example of creating a custom client
client = AzureOpenAI(
    api_key="your-api-key",
    azure_endpoint="https://your-openai-endpoint.openai.azure.com/",
    api_version=aifunc.session.api_version,  # Default "2024-10-21"
    max_retries=aifunc.session.max_retries,  # Default: sys.maxsize ~= 9e18
)

aifunc.setup(client)  # Set the client for all functions

PySpark を使用した AI 関数のカスタマイズ

PySpark で AI 関数を使用している場合は、OpenAIDefaults クラスを使用して、関数を実行する基になる言語モデルを変更できます。 例として、次のコード サンプルではプレースホルダー値を使用して、組み込みの Fabric AI エンドポイントをカスタム Azure OpenAI LLM デプロイでオーバーライドする方法を示します。

from synapse.ml.services.openai import OpenAIDefaults
defaults = OpenAIDefaults()

defaults.set_deployment_name("your-deployment-name")
defaults.set_subscription_key("your-subscription-key")
defaults.set_URL("https://your-openai-endpoint.openai.azure.com/")
defaults.set_temperature(0.05)

デプロイ名、サブスクリプション キー、エンドポイント URL、カスタム温度の値は、独自の値に置き換えることができます。

パラメーター 説明
deployment_name Azure OpenAI または Azure AI Foundry でのモデル デプロイのカスタム名を指定する文字列値。 Azure portal の [リソース管理] > [モデル デプロイ]の下にこの値が表示されます。 Azure AI Foundry ポータルの デプロイメント ページに値が表示されます。 既定では、ネイティブ Fabric LLM エンドポイントのデプロイは gpt-35-turbo-0125に設定されます。
subscription_key LLM リソースでの認証に使用される API キー。 Azure portal の [キーとエンドポイント] セクションにこの値が表示されます。
URL LLM リソースのエンドポイントを指定する URL。 Azure portal の [キーとエンドポイント] セクションにこの値が表示されます。 例: "https://your-openai-endpoint.openai.azure.com/"。
temperature 0.0 から 1.0 までの数値。 温度が高いほど、基になるモデルの出力のランダム性または創造性が向上します。 既定では、Fabric LLM エンドポイントの温度は 0.0に設定されます。

次のコード サンプルでは、各 OpenAIDefaults パラメーターを取得して出力できます。

print(defaults.get_deployment_name())
print(defaults.get_subscription_key())
print(defaults.get_URL())
print(defaults.get_temperature())

パラメーターは、変更したのと同じくらい簡単にリセットすることもできます。 次のコード サンプルでは、既定の Fabric LLM エンドポイントを使用するように AI 関数ライブラリをリセットします。

defaults.reset_deployment_name()
defaults.reset_subscription_key()
defaults.reset_URL()
defaults.reset_temperature()