カスタム NER プロジェクトを作成する方法
この記事では、カスタム NER を開始するための要件を設定し、プロジェクトを作成する方法について説明します。
前提条件
カスタム NER の使用を開始する前に、次のものが必要です。
- Azure サブスクリプション - 無料で作成できます。
"言語" リソースを作成する
カスタム NER の使用を開始する前に、Azure AI Language リソースが必要になります。 言語リソースを作成し、Azure portal でストレージ アカウントをそのリソースに接続することをお勧めします。 Azure portal でリソースを作成すると、必要なすべてのアクセス許可が事前に構成された状態で、Azure ストレージ アカウントを同時に作成することができます。 また、既存のリソースを使用し、固有表現認識と連携するようにリソースを構成する方法については、記事の後半を参照してください。
また、エンティティを抽出するためのモデルのトレーニングに使われる .txt
ドキュメントをアップロードする Azure ストレージ アカウントも必要になります。
注意
- 言語リソースを作成するには、リソース グループに所有者ロールが割り当てられている必要があります。
- 既存のストレージ アカウントを接続する場合は、所有者ロールが割り当てられている必要があります。
言語リソースを作成し、ストレージ アカウントを接続する
リソースは次の方法で作成できます。
- Azure ポータル
- Language Studio
- PowerShell
注意
言語リソースにリンクされた後は、ストレージ アカウントを別のリソース グループまたはサブスクリプションに移動しないでください。
Azure portal から新しいリソースを作成します
Azure portal にサインインし、新しい Azure AI Language リソースを作成します。
ウィンドウが表示されるので、カスタム機能から [カスタム テキスト分類とカスタム固有表現認識] を選びます。 画面の下部にある [続けてリソースの作成を行う] を選択します。
次の詳細を使用して言語リソースを作成します。
名前 説明 サブスクリプション Azure サブスクリプション。 リソース グループ リソースが格納されるリソース グループ。 既存のものを使用するか、新しく作成することができます。 リージョン 言語リソースのリージョン。 たとえば "米国西部 2" にします。 名前 リソースの名前。 Pricing tier 言語リソースの価格レベル。 Free (F0) レベルを利用してサービスを試用できます。 注意
"ログイン アカウントが選択したストレージ アカウントのリソース グループの所有者ではない" ことを通知するメッセージが表示された場合は、言語リソースを作成する前に、アカウントでそのリソース グループに所有者ロールを割り当てる必要があります。 Azure サブスクリプションの所有者に問い合わせてください。
[カスタム テキスト分類とカスタム固有表現認識] セクションで、既存のストレージ アカウントを選択するか、[新しいストレージ アカウント] を選択します。 これらの値は使用を開始するためのものであり、必ずしもご自分の運用環境で使用するストレージ アカウントの値でありません。 プロジェクトのビルド中の待機時間を回避するには、言語リソースと同じリージョンのストレージ アカウントに接続します。
ストレージ アカウントの値 推奨値 ストレージ アカウント名 任意の名前 ストレージ アカウントの種類 標準 LRS [責任ある AI の通知] がオンになっていることを確認します。 ページの下部にある [確認と作成] を選択して、[作成] を選択します。
Language Studio から新しい言語リソースを作成する
初めてログインするときは、既存の言語リソースを選択したり、新規に作成したりできるようにするウィンドウが Language Studio に表示されます。 また、右上隅にある設定アイコンをクリックし、 [リソース] を選び、 [新しいリソースを作成する] をクリックしてリソースを作成することもできます。
次の詳細を使用して言語リソースを作成します。
インスタンスの詳細 | 必須値 |
---|---|
Azure サブスクリプション | お使いの Azure サブスクリプション |
Azure リソース グループ | Azure リソース グループ |
Azure リソース名 | Azure リソース名 |
場所 | 言語リソースのリージョン。 |
価格レベル | 言語リソースの価格レベル。 |
重要
- Language リソースを作成する際は、必ず [マネージド ID] を有効にしてください。
- 責任ある AI 通知を読んで確認する
カスタム固有表現認識を使用するには、Azure ストレージ アカウントを作成する必要があります (まだ作成していない場合)。
PowerShell を使用して新しい言語リソースを作成する
新しいリソースとストレージ アカウントは、GitHub でホストされる次の CLI テンプレートとパラメーター ファイルを使用して作成できます。
パラメーター ファイルで次の値を編集します。
パラメーター名 | 値の説明 |
---|---|
name |
言語リソースの名前 |
location |
リソースがホストされているリージョン。 詳細については、サービスの制限に関する記事を参照してください。 |
sku |
リソースの価格レベル。 |
storageResourceName |
ストレージ アカウントの名前 |
storageLocation |
ストレージ アカウントがホストされているリージョン。 |
storageSkuType |
ストレージ アカウントの SKU。 |
storageResourceGroupName |
ストレージ アカウントのリソース グループ |
次の PowerShell コマンドを使用して、編集したファイルと共に Azure Resource Manager (ARM) テンプレートをデプロイします。
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile <path-to-arm-template> `
-TemplateParameterFile <path-to-parameters-file>
テンプレートのデプロイとパラメーター ファイルについて詳しくは、ARM テンプレートのドキュメントを参照してください。
注意
- ストレージ アカウントを言語リソースに接続するプロセスは元に戻せず、後で切断することはできません。
- 言語リソースは 1 つのストレージ アカウントにのみ接続できます。
既存の言語リソースの使用
既存の言語リソースを使用してカスタム NER の使用を開始できますが、このリソースが以下の要件を満たしている必要があります。
要件 | 説明 |
---|---|
リージョン | サポートされているリージョンのいずれかで既存のリソースがプロビジョニングされていることを確認します。 これが行われていない場合、これらのリージョンのいずれかで新しいリソースを作成する必要があります。 |
価格レベル | サポートされる価格レベルの詳細を確認してください。 |
マネージド ID | リソースのマネージド ID 設定が有効になっていることを確認します。 それ以外の場合は、次のセクションを参照してください。 |
カスタム固有表現認識を使用するには、Azure ストレージ アカウントを作成する必要があります (まだ作成していない場合)。
リソースの ID 管理を有効にする
Azure portal を使用して有効にするには、Language リソースに ID 管理が必要です。
- 言語リソースに移動します
- 左側のメニューの [リソース管理] セクションで、[ID] を選択します
- [システム割り当て済み] タブで、必ず [状態] を [オン] に設定します
カスタム固有表現認識機能を有効にする
Azure portal からカスタムテキスト分類/カスタム固有表現認識機能を有効にしてください。
- Azure portal で言語リソースに移動します。
- 左側のメニューの [リソース管理] セクションで、[機能] を選択します。
- カスタム テキスト分類またはカスタム固有表現認識機能を有効にします。
- ストレージ アカウントに接続します。
- [適用] を選択します。
重要
- 言語リソースで、接続しているストレージ アカウントにストレージ BLOB データ共同作成者ロールが割り当てられていることを確認します。
必要なロールを追加する
言語リソースとストレージ アカウントに必要なロールを設定するには、次の手順に従います。
Azure AI Language リソースのロール
Azure portal でストレージ アカウントまたは言語リソースに移動します。
左側のナビゲーション メニューで [アクセス制御 (IAM)] を選択します。
[追加] を選択してロールの割り当ての追加を行い、アカウントに適切なロールを選択します。
所有者または共同作成者のロールが言語リソースに割り当てられている必要があります。
[アクセスの割り当て先] 内で、[ユーザー、グループ、またはサービス プリンシパル] を選択します
[メンバーの選択] を選択します
ユーザー名を選択します。 [選択] フィールドでユーザー名を検索できます。 すべてのロールに対してこれを繰り返します。
このリソースへのアクセスが必要なすべてのユーザー アカウントに対して、これらの手順を繰り返します。
ストレージ アカウントのロール
- Azure portal でストレージ アカウントのページに移動します。
- 左側のナビゲーション メニューで [アクセス制御 (IAM)] を選択します。
- [追加] を選択して [ロールの割り当ての追加] を行い、ストレージ アカウントでストレージ BLOB データ所有者ロールを選択します。
- [アクセス権の割り当て先] 内で [マネージド ID] を選択します。
- [メンバーの選択] を選択します
- サブスクリプションを選択し、マネージド ID として [言語] を選択します。 [選択] フィールドでユーザー名を検索できます。
ユーザーのロール
重要
この手順をスキップした場合、カスタム プロジェクトに接続しようとすると 403 エラーが発生します。 自分がストレージ アカウントの所有者であっても、現在のユーザーがストレージ アカウント BLOB データにアクセスするためにこのロールを持っていることが重要です。
- Azure portal でストレージ アカウントのページに移動します。
- 左側のナビゲーション メニューで [アクセス制御 (IAM)] を選択します。
- [追加] を選択して [ロールの割り当ての追加] を行い、ストレージ アカウントでストレージ BLOB データ所有者ロールを選択します。
- [アクセスの割り当て先] 内で、[ユーザー、グループ、またはサービス プリンシパル] を選択します。
- [メンバーの選択] を選択します
- ユーザーを選択します。 [選択] フィールドでユーザー名を検索できます。
重要
仮想ネットワークまたはプライベート エンドポイントがある場合は、Azure portal で [信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] を選択してください。
自身のストレージ アカウントに対して CORS を有効にする
クロスオリジン リソース共有 (CORS) を有効にする場合は、必ず (GET、PUT、DELETE) メソッドを許可してください。
許可されたオリジン フィールドを https://language.cognitive.azure.com
に設定します。 許可されたヘッダー値に *
を追加してすべてのヘッダーを許可し、最大有効期間を 500
に設定します。
カスタム固有表現認識プロジェクトを作成する
リソースとストレージ コンテナーを構成したら、新しいカスタム NER プロジェクトを作ります。 プロジェクトは、データに基づいてカスタム AI モデルを構築するための作業領域です。 プロジェクトにアクセスできるのは、自分と、使用されている Azure リソースへのアクセス権を持つユーザーのみです。 ラベル付けされたデータがある場合は、それを使用してプロジェクトのインポートを開始できます。
Language Studio にサインインします。 サブスクリプションと言語リソースを選ぶためのウィンドウが表示されます。 上の手順で作成した言語リソースを選択します。
Language Studio の [情報の抽出] セクションで、[カスタム固有表現認識] を選択します。
プロジェクト ページの上部メニューから、 [Create new project](新しいプロジェクトの作成) を選択します。 プロジェクトを作成すると、データのタグ付け、モデルのトレーニング、評価、改善、デプロイを実行できます。
[新しいプロジェクトの作成] をクリックすると、ストレージ アカウントを接続するためのウィンドウが表示されます。 既にストレージ アカウントを接続している場合は、そのストレージ アカウントが表示されます。 まだ接続していない場合は、表示されるドロップダウンからストレージ アカウントを選択し、[ストレージ アカウントの接続] を選択します。これにより、ストレージ アカウントに必要なロールが設定されます。 ストレージ アカウントの所有者として割り当てられていない場合、この手順でエラーが返される可能性があります。
Note
- この手順は、使用する新しいリソースごとに 1 回だけ行う必要があります。
- この処理は元に戻すことができません。ストレージ アカウントを言語リソースに接続すると、後で切断することはできません。
- 言語リソースは 1 つのストレージ アカウントにのみ接続できます。
名前、説明、プロジェクト内のファイルの言語など、プロジェクト情報を入力します。 サンプル データセットを使用する場合は、[英語] を選択します。 プロジェクトの名前は後で変更できません。 [次へ] を選択します
ヒント
データセットは、すべて同じ言語である必要はありません。 サポートされる言語がそれぞれ異なる複数のドキュメントを得ることができます。 データセットに異なる言語のドキュメントが含まれる場合や、実行時に異なる言語のテキストが必要になると考えられる場合は、プロジェクトの基本情報を入力するときに、[多言語データセットを有効にする] オプションを選択します。 このオプションは、後で [プロジェクトの設定] ページから有効にすることができます。
データセットをアップロードしたコンテナーを選択します。 既にデータのラベル付けを完了している場合は、それがサポートされている形式に従っていることを確認し、[はい、ファイルは既にラベル付けされており、JSON ラベル ファイルを書式設定しています] を選択し、ドロップダウン メニューからラベル ファイルを選択します。 [次へ] を選択します。
入力したデータを確認し、 [Create Project](プロジェクトの作成) を選びます。
プロジェクトのインポート
既にデータにラベルを付けた場合は、それを使用してサービスの使用を開始できます。 ラベル付けされたデータが、許容されるデータ形式に従っていることを確認します。
Language Studio にサインインします。 サブスクリプションと言語リソースを選ぶためのウィンドウが表示されます。 言語リソースを選びます。
Language Studio の [情報の抽出] セクションで、[カスタム固有表現認識] を選択します。
プロジェクト ページの上部メニューから、 [Create new project](新しいプロジェクトの作成) を選択します。 プロジェクトを作成すると、データのタグ付け、モデルのトレーニング、評価、改善、デプロイを実行できます。
[新しいプロジェクトの作成] を選択すると、ストレージ アカウントを接続するための画面が表示されます。 ストレージ アカウントが見つからない場合は、推奨される手順を使ってリソースを作成したことを確認してください。 ストレージ アカウントを既に言語リソースに接続している場合は、接続されているストレージ アカウントが表示されます。
注意
- この手順は、使用する各言語リソースに対して 1 回のみ行う必要があります。
- この処理は元に戻すことができません。ストレージ アカウントを言語リソースに接続すると、後で切断することはできません。
- 言語リソースは 1 つのストレージ アカウントにのみ接続できます。
名前、説明、プロジェクト内のファイルの言語など、プロジェクト情報を入力します。 プロジェクトの名前は後で変更できません。 [次へ] を選択します。
ヒント
データセットは、すべて同じ言語である必要はありません。 サポートされる言語がそれぞれ異なる複数のドキュメントを得ることができます。 データセットに異なる言語のドキュメントが含まれる場合や、実行時に異なる言語のテキストが必要になると考えられる場合は、プロジェクトの基本情報を入力するときに、[多言語データセットを有効にする] オプションを選択します。 このオプションは、後で [プロジェクトの設定] ページから有効にすることができます。
データセットをアップロードしたコンテナーを選択します。
[はい、ファイルは既にラベル付けされており、JSON ラベル ファイルを書式設定しています] を選択し、下のドロップダウン メニューからラベル ファイルを選択して JSON ラベル ファイルをインポートします。 サポートされている形式に従っていることを確認します。
[次へ] を選択します。
入力したデータを確認し、 [Create Project](プロジェクトの作成) を選びます。
プロジェクトの詳細を取得する
Language Studio で [プロジェクト設定] ページに移動します。
プロジェクトの詳細を確認できます。
このページでは、プロジェクトの説明を更新し、プロジェクト設定で多言語データセットを有効または無効にすることができます。
また、言語リソースに接続されているストレージ アカウントとコンテナーを表示することもできます。
このページから主なリソース キーを取得することもできます。
プロジェクトの削除
プロジェクトが不要な場合は、Language Studio を使ってプロジェクトを削除できます。 上部の [カスタム固有表現認識 (NER)] を選択し、削除するプロジェクトを選択して、上部のメニューから [削除] を選択します。
次の手順
データのラベル付けに使用するプロジェクト スキーマを把握しておく必要があります。
プロジェクトが作成された後、データのラベル付けを開始できます。これにより、エンティティ抽出モデルにテキストを解釈する方法が伝えられ、トレーニングと評価に使用されます。