Conversational Language Understanding (CLU) 微調整タスクは、言語モデルをカスタマイズしてユーザーの意図を識別し、ユーザー入力 (発話) からキー情報 (エンティティ) を抽出するワークスペース プロジェクトです。 このワークスペースでは、アプリケーションに関連する意図とエンティティを定義し、それに応じてサンプル ユーザー発話にラベルを付け、このラベル付けされたデータを使用してモデルを微調整します。 このプロセスは、会話型アプリケーションの特定のニーズと微妙な部分をより深く理解するためにモデルを調整します。 このガイドでは、Azure AI Foundry で、または REST API を使用して、微調整ワークスペースを構成する手順について説明します。
Note
- Azure AI 言語またはマルチサービス リソースが既にある場合 (単独で使用するか、Language Studio を使用するかに関係なく)、Azure AI Foundry ポータル内で既存の言語リソースを引き続き使用できます。 詳細については、 Azure AI Foundry ポータルで Azure AI サービスを使用する方法に関するページを参照してください。
- Azure AI Foundry では、CLU モデルをカスタマイズするときに、微調整タスクがワークスペースとして機能します。 以前は、 微調整タスク は CLU プロジェクトと呼ばれていました。 古い CLU ドキュメントでは、両方の用語が同じ意味で使用されている場合があります。
- AI Foundry で Azure AI Foundry リソースを使用することを強くお勧めします。ただし、言語リソースを使用して、次の手順に従うこともできます。
Prerequisites
- Azure サブスクリプション。 持っていない場合は、無料で作成できます。
-
必要なアクセス許可。 アカウントとプロジェクトを確立しているユーザーが、サブスクリプション レベルで Azure AI アカウント所有者ロールとして割り当てられていることを確認します。 または、サブスクリプション スコープで 共同作成者 ロールまたは Cognitive Services 共同作成者 ロールを持つことも、この要件を満たします。 詳細については、「ロールベースのアクセス制御 (RBAC)」を参照してください。
-
Azure AI Foundry マルチサービス リソース。 詳細については、「Azure AI Foundry リソースの構成」を参照してください。 または、 Azure AI 言語リソースを使用することもできます。
- Azure AI Foundry で作成された Foundry プロジェクト。 詳細については、「AI Foundry プロジェクトの作成」を参照してください。
CLU 微調整タスク プロジェクトを作成する
CLU 微調整タスク プロジェクトを作成するには、まず環境を構成してから、CLU モデルをカスタマイズするためのワークスペースとして機能する微調整タスクを作成します。
Azure AI Foundry に移動します。
まだサインインしていない場合は、Azure 資格情報を使用してサインインするように求められます。
サインインしたら、Azure AI Foundry 内で既存のプロジェクトを作成またはアクセスできます。
このタスクのプロジェクトにまだ参加していない場合は、そのプロジェクトを選択してください。
左側のナビゲーション パネルから [微調整] を選択します。
[AI サービスの微調整] タブを選択し、[+ 微調整] ボタンを選択します。
[ サービスの微調整の作成 ] ウィンドウで、[ 会話言語の理解 ] タブを選択し、[ 次へ] を選択します。
[ Create CLU fine-tuning task]\(CLU の微調整タスクの作成 \) ウィンドウで、[ 名前] フィールドと [ 言語] フィールドに入力します。 無料の 標準トレーニング モードを使用してモデルを微調整する場合は、言語フィールドに [英語 ] を選択します。
Azure AI Foundry に移動します。
まだサインインしていない場合は、Azure 資格情報を使用してサインインするように求められます。
サインインしたら、Azure AI Foundry 内で既存のプロジェクトを作成またはアクセスできます。
このタスクのプロジェクトにまだ参加していない場合は、そのプロジェクトを選択してください。
左側のナビゲーション パネルから [微調整] を選択します。
[AI サービスの微調整] タブを選択し、[+ 微調整] ボタンを選択します。
[ サービスの微調整の作成 ] ウィンドウで、[ 会話言語の理解 ] タブを選択し、[ 次へ] を選択します。
[ Create CLU fine tuning task]\(CLU の微調整タスクの作成 \) ウィンドウで、ドロップダウン メニューから 接続済みサービス を選択し、[ 名前 ] フィールドと [ 言語 ] フィールドに入力します。 無料の 標準トレーニング モードを使用している場合は、言語フィールドに [英語 ] を選択します。
[作成] ボタンを選択します。
作成操作が完了するまでに数分かかる場合があります。
Note
-
標準トレーニング を使用すると、トレーニング時間を短縮し、反復時間を短縮できます。ただし、英語でのみ使用できます。
-
高度なトレーニング には、より長いトレーニング期間が含まれており、英語、他の言語、多言語プロジェクトでサポートされています。
- 詳細については、「トレーニング モード」を参照してください。
タスクの作成が完了したら、AI サービスの微調整ウィンドウからタスクを選択して、[ 微調整の概要 ] ページに移動します。
次の URL、ヘッダー、JSON 本文を使用して PATCH
要求を送信し、新しいプロジェクトを作成します。
要求 URL
API 要求を作成するときは、次の URL を使用します。 プレースホルダーの値は、実際の値に置き換えます。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
Placeholder |
Value |
Example |
{ENDPOINT} |
API 要求を認証するためのエンドポイント。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
プロジェクトの名前。 この値は、大文字と小文字が区別されます。 |
myProject |
{API-VERSION} |
呼び出している API のバージョン。 |
2023-04-01 |
要求を認証するには、次のヘッダーを使います。
Key |
Value |
Ocp-Apim-Subscription-Key |
リソースへのキー。 API 要求の認証に使われます。 |
Content-Type |
application/merge-patch+json |
Body
次のサンプル JSON を本文として使います。
{
"projectName": "{PROJECT-NAME}",
"language": "{LANGUAGE-CODE}",
"projectKind": "Conversation",
"description": "Project description",
"multilingual": true
}
Key |
Placeholder |
Value |
Example |
projectName |
{PROJECT-NAME} |
プロジェクトの名前。 この値は、大文字と小文字が区別されます。 |
EmailApp |
language |
{LANGUAGE-CODE} |
プロジェクト内で使用される発話の言語コードを指定する文字列。 プロジェクトが多言語プロジェクトの場合は、ほとんどの発話の 言語コード を選択します。 |
en-us |
multilingual |
true |
データセット内に複数の言語のドキュメントを含めるブール値。 モデルがデプロイされると、サポートされている任意の言語 (必ずしもトレーニング ドキュメントに含まれていない) でモデルにクエリを実行できます。 多言語サポートの詳細については、「 言語サポート」を参照してください。 |
true |
それです! 微調整タスク プロジェクトを開始できます。 詳細については、「次のステップ」を参照してください。
プロジェクトの詳細の表示と管理
Azure AI Foundry または REST API エンドポイントを使用して、プロジェクトに関する最新情報を取得し、必要な変更を加え、プロジェクト管理タスクを効率的に管理できます。
Azure AI Foundry プロジェクトの概要ページには、名前、サブスクリプション、リソース グループ、接続されているリソースなど、微調整タスク プロジェクトに関する情報が表示されます。 概要ページの Azure portal で [管理] を選択して、 Azure portal でプロジェクトの リソースにアクセスすることもできます。
REST API を使用して、すべてのプロジェクトの詳細にアクセスし、表示し、管理できます。
プロジェクトの詳細を取得するには、次の URL とヘッダーを使用して GET
要求を送信します。 プレースホルダーの値は、実際の値に置き換えます。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
Placeholder |
Value |
Example |
{ENDPOINT} |
API 要求を認証するためのエンドポイント。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
プロジェクトの名前。 この値は、大文字と小文字が区別されます。 |
myProject |
{API-VERSION} |
呼び出している API の バージョン 。 |
2023-04-01 |
要求を認証するには、次のヘッダーを使います。
Key |
Value |
Ocp-Apim-Subscription-Key |
リソースへのキー。 API 要求の認証に使われます。 |
応答本文
要求を送信すると、次の応答が返されます。
{
"createdDateTime": "2022-04-18T13:53:03Z",
"lastModifiedDateTime": "2022-04-18T13:53:03Z",
"lastTrainedDateTime": "2022-04-18T14:14:28Z",
"lastDeployedDateTime": "2022-04-18T14:49:01Z",
"projectKind": "Conversation",
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "This is a sample conversation project.",
"language": "{LANGUAGE-CODE}"
}
API 要求を送信すると、成功を示す 200
応答を受け取り、プロジェクトの詳細を含む JSON 応答本文が含まれます。
既存の Azure AI プロジェクトをインポートする
構成ファイルをインポートすると、既存の設定をプラットフォームに直接取り込み、定義済みの設定に基づいてサービスを簡単に設定およびカスタマイズできます。
Azure AI Foundry を使用して既存の Azure AI サービス プロジェクトをインポートするには、Azure AI Foundry プロジェクト内の Azure AI サービス リソースへの接続を作成する必要があります。 詳細については、「Azure AI Services プロジェクトを Azure AI Foundry に接続する」を参照してください。
REST API を使用して CLU config.json ファイルをインポートできます
次の URL、ヘッダー、JSON 本文を使用して POST
要求を送信し、プロジェクトをインポートします。
要求 URL
API 要求を作成するときは、次の URL を使用します。 プレースホルダーの値は、実際の値に置き換えます。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:import?api-version={API-VERSION}
Placeholder |
Value |
Example |
{ENDPOINT} |
API 要求を認証するためのエンドポイント。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
プロジェクトの名前。 この値では大文字と小文字が区別され、インポートする JSON ファイル内のプロジェクト名と一致する必要があります。 |
EmailAppDemo |
{API-VERSION} |
呼び出している API の バージョン 。 |
2023-04-01 |
要求を認証するには、次のヘッダーを使います。
Key |
Value |
Ocp-Apim-Subscription-Key |
リソースへのキー。 API 要求の認証に使われます。 |
Body
送信する JSON 本文は、次の例のようになります。 JSON オブジェクトの詳細については、 リファレンス ドキュメントを参照してください。
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectKind": "Conversation",
"settings": {
"confidenceThreshold": 0.7
},
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "Trying out CLU",
"language": "{LANGUAGE-CODE}"
},
"assets": {
"projectKind": "Conversation",
"intents": [
{
"category": "intent1"
},
{
"category": "intent2"
}
],
"entities": [
{
"category": "entity1"
}
],
"utterances": [
{
"text": "text1",
"dataset": "{DATASET}",
"intent": "intent1",
"entities": [
{
"category": "entity1",
"offset": 5,
"length": 5
}
]
},
{
"text": "text2",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"intent": "intent2",
"entities": []
}
]
}
}
Key |
Placeholder |
Value |
Example |
{API-VERSION} |
呼び出している API の バージョン 。 |
2023-04-01 |
|
projectName |
{PROJECT-NAME} |
プロジェクトの名前。 この値は、大文字と小文字が区別されます。 |
EmailAppDemo |
language |
{LANGUAGE-CODE} |
プロジェクト内で使用される発話の言語コードを指定する文字列。 プロジェクトが多言語プロジェクトの場合は、ほとんどの発話の 言語コード を選択します。 |
en-us |
multilingual |
true |
データセット内に複数の言語のドキュメントを含めるブール値。 モデルがデプロイされると、トレーニング ドキュメントに含まれていない言語を含め、 サポートされている任意の言語でモデルにクエリを実行できます。 |
true |
dataset |
{DATASET} |
テスト セットとトレーニング セットの間でデータを分割する方法については、「 AI Foundry で発話にラベルを付ける」を参照してください。 このフィールドで使用できる値は Train および Test です。 |
Train |
要求が成功すると、API 応答には、インポート ジョブの状態を確認するために使用できる URL を含む operation-___location
ヘッダーが含まれます。 ヘッダーは次の例のように書式設定されます。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
微調整プロジェクトをエクスポートする
構成ファイルをエクスポートすると、プロジェクトの設定と構造の現在の状態を保存できるため、必要に応じてプロジェクトを簡単にバックアップまたは転送できます。
Azure Foundry の微調整タスク プロジェクトは 、config.json ファイルとしてダウンロードできます。
プロジェクトのホーム ページに移動します。
ページの上部で、右側のページ リボン領域からプロジェクトを選択します。
[ 構成ファイルのダウンロード] を選択します。
CLU プロジェクトは、config.json ファイルとしてエクスポートできます。
プロジェクトをエクスポートするために、次の URL、ヘッダー、JSON 本文を使用して POST
要求を作成してください。
要求 URL
API 要求を作成するときは、次の URL を使用します。 プレースホルダーの値は、実際の値に置き換えます。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:export?stringIndexType=Utf16CodeUnit&api-version={API-VERSION}
Placeholder |
Value |
Example |
{ENDPOINT} |
API 要求を認証するためのエンドポイント。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
プロジェクトの名前。 この値は、大文字と小文字が区別されます。 |
EmailApp |
{API-VERSION} |
呼び出している API の バージョン 。 |
2023-04-01 |
要求を認証するには、次のヘッダーを使います。
Key |
Value |
Ocp-Apim-Subscription-Key |
リソースへのキー。 API 要求の認証に使われます。 |
API 要求を送信すると、成功を示す 202
応答を受け取ります。 応答ヘッダーで、operation-___location
の値を抽出します。 値は次の例のように書式設定されます。
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
JOB-ID
は、この操作が非同期であるため、要求を識別するために使用されます。 この URL を使用して、同じ認証方法を使用してエクスポートされたプロジェクト JSON を取得します。
プロジェクトを削除する
プロジェクトを削除すると、プロジェクトとそれに関連付けられているすべてのデータがシステムから完全に削除されます。
プロジェクトが不要になった場合は、Azure AI Foundry から削除できます。
Azure AI Foundry ホーム ページに移動します。 この手順を既に完了していてセッションがアクティブでない限り、サインインして認証プロセスを開始します。
[Keep building with Azure AI Foundry]\(Azure AI Foundry を使用してビルドを保持する\) から削除するプロジェクトを選択します
[管理センター] を選択します。
[ プロジェクトの削除] を選択します。
ハブとそのすべてのプロジェクトを削除するには:
[概要] タブの [ハブ] セクションに移動します。
右側の [ハブの 削除] を選択します。
リンクをクリックすると、Azure portal が開き、そこでハブが削除されます。
プロジェクトが不要になった場合は、REST API を使用して削除できます。 続行するには、REST API にアクセスし、ドキュメントに記載されている手順に従ってプロジェクトを削除し、このアクションを完了します。
次の URL、ヘッダー、JSON 本文を使用して DELETE
要求を作成し、会話言語理解プロジェクトを削除します。
要求 URL
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}?api-version={API-VERSION}
Placeholder |
Value |
Example |
{ENDPOINT} |
API 要求を認証するためのエンドポイント。 |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
プロジェクトの名前。 この値は、大文字と小文字が区別されます。 |
myProject |
{API-VERSION} |
呼び出している API の バージョン 。 |
2023-04-01 |
要求を認証するには、次のヘッダーを使います。
Key |
Value |
Ocp-Apim-Subscription-Key |
リソースへのキー。 API 要求の認証に使われます。 |
API 要求を送信すると、成功を示す 202
応答が返されます。これは、プロジェクトが削除されたことを意味します。
次のステップ
微調整ワークスペースを作成したら、意図とエンティティを定義してスキーマに追加することで、微調整タスクを開始します。