Azure AI Search での AI エンリッチメントのヒント

この記事には、AI エンリッチメントを始めるのに役立つヒントと、インデックス作成時に使われるスキルセットが含まれています。

ヒント 1: シンプルに始め、小さく始める

Azure portal のデータのインポート ウィザードデータのインポートとベクトル化ウィザードは両方とも AI エンリッチメントをサポートしています。 コードを書かずに、エンリッチメント パイプラインで使われるすべてのオブジェクト (インデックス、インデクサー、データ ソース、スキルセット) を作成して調べることができます。

シンプルに始めるもう 1 つの方法は、少数のドキュメント、またはインデックスが作成されるドキュメントを表すテーブル内の行だけを含むデータ ソースを作成することです。 問題の検出と修正の速度を上げるには、小さなデータ セットが最適な方法です。エンドツーエンド パイプラインを使ってサンプルを実行し、結果がニーズを満たしていることを確認します。 結果が満足できるものであれば、データ ソースにさらにファイルを追加できます。

ヒント 2: いくつかのエラーがある場合でも何が動作しているかを確認する

場合によっては、小さなエラーによって直ちにインデクサーが停止されることがあります。 問題を 1 つずつ修正する計画があれば、問題ありません。 ただし、特定の種類のエラーを無視して、どのフローが実際に動作しているかを確認できるように、インデクサーを続行したい場合もあります。

開発中のエラーを無視するには、インデクサー定義の一部として maxFailedItemsmaxFailedItemsPerBatch を -1 に設定します。

{
  // rest of your indexer definition
   "parameters":
   {
      "maxFailedItems":-1,
      "maxFailedItemsPerBatch":-1
   }
}

Note

運用環境ワークロードでは、ベスト プラクティスとして maxFailedItemsmaxFailedItemsPerBatch を 0 に設定します

ヒント 3: デバッグ セッションを使って問題をトラブルシューティングする

デバッグ セッションは、スキルセットの依存関係グラフ、入出力、定義を表示するビジュアル エディターです。 これは、現在のインデクサーとスキルセットの構成を使って、検索インデックスから 1 つのドキュメントを読み込むことで機能します。 その後、1 つのドキュメントにスコープを設定してスキルセット全体を実行できます。 デバッグ セッション内でエラーを特定して解決し、変更を検証し、親スキルセットに変更をコミットできます。 チュートリアルについては、デバッグ セッションに関するチュートリアルを参照してください。

ヒント 4: 期待したコンテンツが表示されない

コンテンツが見つからない場合は、Azure portal でドロップされたドキュメントを確認します。 検索サービス ページで [インデクサー] を開き、[成功したドキュメント] 列を確認します。 クリックしてインデクサーの実行履歴に移動し、具体的なエラーを確認します。

問題がファイル サイズに関連している場合は、"The blob <file-name> has the size of <file-size> bytes, which exceeds the maximum size for document extraction for your current service tier."(BLOB <ファイル名> のサイズが <ファイル サイズ> バイトです。現在のサービス レベルでのドキュメント抽出の最大サイズを超えています。) のようなエラーが表示されることがあります。インデクサーの制限の詳細については、サービスの制限に関するページを参照してください。

コンテンツが表示されない 2 つ目の理由として考えられるのは、関連する入力/出力マッピング エラーです。 たとえば、出力ターゲットの名前が "People" で、インデックス フィールド名が小文字の "people" である場合です。 システムはパイプライン全体に対して 201 成功メッセージを返す場合があるため、インデックス作成が成功したと思っても、実際にはフィールドが空になっています。

ヒント 5: 最大実行時間を超えて処理を拡張する

画像解析は単純な場合でも計算が集中するため、画像が特に大きかったり複雑だったりする場合、処理時間が最大許容時間を超えることがあります。

スキルセットを持つインデクサーの場合、スキルセットの実行はほとんどのレベルで 2 時間に制限されています。 スキルセットの処理がその期間内に完了しない場合は、インデクサーを 2 時間の定期的なスケジュールに設定して、中断したところから処理を再開することができます。

スケジュールされたインデックス作成により、正常であるとわかっている最後のドキュメントから再開されます。 定期的なスケジュールの場合、インデクサーは数時間または数日にわたって、未処理の画像がすべて処理されるまで、画像のバックログに対する作業を続けることができます。 スケジュールの構文の詳細については、インデクサーのスケジュール設定に関するページを参照してください。

Note

インデクサーが特定のスケジュールに設定されているが実行のたびに同じドキュメントに対して繰り返し失敗する場合、進捗が再び正常化するまでの間、インデクサーは (最大で 24 時間に 1 回に) 間隔を開けて実行頻度を下げます。 = インデクサーが特定の箇所で停止する原因になっていた問題をすべて修正したと思われる場合、インデクサーをオンデマンドで実行できます。それによって進捗が正常になったら、インデクサーは設定されていたスケジュール間隔に復帰します。

ヒント 6: インデックス作成のスループットを向上させる

並列インデックス作成の場合は、データを複数のコンテナーまたは同じコンテナー内の複数の仮想フォルダーに分散します。 次に、複数のデータ ソースとインデクサーのペアを作成します。 すべてのインデクサーは、同じスキルセットを使用して同じターゲット検索インデックスに書き込むことができるため、検索アプリはこのパーティション分割を意識する必要はありません。

関連項目