過去問ドリル

AI-200:Developing AI Cloud Solutions on Azure Azure データ管理サービスを使った AI ソリューションの開発 問4

Azure データ管理サービスを使った AI ソリューションの開発/Azure Database for PostgreSQL を使った AI ソリューションの開発

Azure Database for PostgreSQL フレキシブル サーバーで pgvector を使い、RAG 用の文書テーブルを新しく作ります。テーブルは最初は空で、運用を始めてから文書が継続的に追加されます。検索の速度と再現率のバランスを重視する場合、ベクター列に作るインデックスとして適切なものはどれですか。

当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure データ管理サービスを使った AI ソリューションの開発」に対応。実際の試験問題ではありません)

正解:A

解説

HNSW は、多層のグラフを使って近似最近傍探索を行うインデックスです。IVFFlat より作成に時間とメモリがかかりますが、速度と再現率のバランスに優れます。また、IVFFlat のような学習ステップが無いため、空のテーブルにも作成できます。IVFFlat は k-means でデータをリストに分割するので、データを入れてから作成するのが基本です。Azure Database for PostgreSQL フレキシブル サーバーでは、DiskANN のインデックスも利用できます。

選択肢ごとの解説

  • A正しい。データが後から継続的に増え、速度と再現率のバランスを重視する場合は HNSW が適しています。
  • B誤り。IVFFlat は既存のデータを k-means で分割してリストを作るため、データを入れてから作成するのが基本です。空のテーブルで作ると、分割が適切になりません。
  • C誤り。B-tree インデックスはベクトルの距離による近傍検索には使えません。pgvector の近傍検索には、HNSW や IVFFlat などのベクター用インデックスを使います。
  • D誤り。インデックスが無いと毎回全件を走査することになり、データが増えるほど遅くなります。並列実行を無効にすると、さらに遅くなります。
AI-200:Developing AI Cloud Solutions on Azureの問題を演習モードで解く