次の方法で共有


クイック スタート: カスタム カテゴリ (標準モード)

このガイドに従って、Azure AI Content Safety カスタム カテゴリ REST API を使用して、ユース ケースに応じた独自のコンテンツ カテゴリを作成し、新しいテキスト コンテンツでそれらを検出するよう Azure AI Content Safety をトレーニングします。

カスタム カテゴリの詳細については、カスタム カテゴリの概念に関するページを参照してください。 API 入力の制限については、「概要」の「入力の要件」セクションを参照してください。

重要

この機能は、特定の Azure リージョンでのみ使用できます。 利用可能なリージョンに関するページを参照してください。

重要

モデルのトレーニングには十分な時間を取ってください

カスタム カテゴリ トレーニングのエンド ツー エンドの実行には、5 時間から 10 時間程度かかる場合があります。 これを踏まえた上でモデレーション パイプラインを計画してください。

前提条件

  • Azure サブスクリプション - 無料アカウントを作成します
  • Azure サブスクリプションを入手したら、Azure portal で Content Safety リソースを作成し、キーとエンドポイントを取得します。 リソースの一意の名前を入力し、サブスクリプションを選択して、リソース グループ、サポートされているリージョン、サポートされている価格レベルを選択します。 [作成] を選択します。
    • リソースのデプロイには数分かかります。 完了したら、[リソースに移動] を選びます。 左ペインの [リソース管理] で、[サブスクリプション キーとエンドポイント] を選びます。 後で使用するために、エンドポイントといずれかのキー値を一時的な場所にコピーします。
  • また、トレーニング注釈ファイルを保存する Azure Blob Storage コンテナーを作成します。
  • 次のいずれかがインストールされていること。
    • REST API 呼び出し用の cURL
    • Python 3.x がインストールされていること

トレーニング データを準備する

カスタム カテゴリをトレーニングするには、検出したいカテゴリを表したテキスト データの例が必要です。 このガイドでは、サンプル データを使用できます。 提供される注釈ファイルには、キャンプや野外といった状況でのサバイバル アドバイスに関するテキスト プロンプトが含まれています。 トレーニングされたモデルは、新しいテキスト データからこの種のコンテンツを検出するよう学習します。

ヒント

独自のデータ セットの作成に関するヒントについては、攻略ガイドを参照してください。

  1. GitHub リポジトリからテキスト データのサンプル ファイルをダウンロードします。
  2. .jsonl ファイルを Azure Storage アカウントの BLOB コンテナーにアップロードします。 後で使用するために、BLOB の URL を一時的な場所にコピーします。

ストレージ アクセスを許可する

次に、Azure Storage リソースからの読み取りアクセス権を Content Safety リソースに付与する必要があります。 Azure AI Content Safety インスタンスのシステム割り当てマネージド ID を有効にし、ストレージ BLOB データ共同作成者/所有者/閲覧者のロールをその ID に割り当てます。

  1. Azure AI Content Safety インスタンスのマネージド ID を有効にします。

    Azure portal のスクリーンショット。マネージド ID を有効にしています。

  2. ストレージ BLOB データ共同作成者/所有者のロールをマネージド ID に割り当てます。 以下で強調表示されているロールはすべて機能するはずです。

    Azure portal の [ロールの割り当ての追加] のスクリーンショット。

    Azure portal で割り当てられたロールのスクリーンショット。

    マネージド ID ロールのスクリーンショット。

カスタム モデルを作成してトレーニングする

以下のコマンドでは、<your_api_key><your_endpoint>、およびその他の必要なパラメーターを独自の値に置き換えます。 次に、各コマンドをターミナル ウィンドウに入力して実行します。

新しいカテゴリ バージョンを作成する

curl -X PUT "<your_endpoint>/contentsafety/text/categories/survival-advice?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
            \"categoryName\": \"survival-advice\",
            \"definition\": \"text prompts about survival advice in camping/wilderness situations\",
            \"sampleBlobUrl\": \"https://<your-azure-storage-url>/example-container/survival-advice.jsonl\"
        }"

カテゴリのビルド プロセスを開始する

<your_api_key><your_endpoint> を独自の値に置き換えます。 モデル トレーニングには十分な時間を取ってください。カスタム カテゴリ トレーニングのエンド ツー エンドの実行には、5 時間から 10 時間程度かかる場合があります。 これを踏まえた上でモデレーション パイプラインを計画してください。 応答を受信したら、操作 ID (id と呼ばれる) を一時的な場所に保存します。 この ID は、次のセクションで Get status API を使用してビルドの状態を取得するために必要になります。

curl -X POST "<your_endpoint>/contentsafety/text/categories/survival-advice:build?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

カテゴリのビルド状態を取得する

状態を取得するには、前回の API 応答から取得した id を使用し、以下の API のパスに配置します。

curl -X GET "<your_endpoint>/contentsafety/text/categories/operations/<id>?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json"

カスタマイズしたカテゴリを使用してテキストを分析する

以下のコマンドを実行して、カスタマイズしたカテゴリでテキストを分析します。 <your_api_key><your_endpoint> を独自の値に置き換えます。

curl -X POST "<your_endpoint>/contentsafety/text:analyzeCustomCategory?api-version=2024-02-15-preview" \
     -H "Ocp-Apim-Subscription-Key: <your_api_key>" \
     -H "Content-Type: application/json" \
     -d "{
            \"text\": \"<Example text to analyze>\",
            \"categoryName\": \"survival-advice\", 
            \"version\": 1
        }"