AI-200:Developing AI Cloud Solutions on Azure Azure データ管理サービスを使った AI ソリューションの開発 問2
Azure データ管理サービスを使った AI ソリューションの開発/Azure Cosmos DB for NoSQL を使った AI ソリューションの開発Azure Cosmos DB for NoSQL に、1,536次元の埋め込みを持つ文書が数百万件あります。セマンティック検索で、低い遅延と RU コストを優先しつつ、高い再現率を保ちたいと考えています。ベクター インデックスの種類として最も適切なものはどれですか。
当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure データ管理サービスを使った AI ソリューションの開発」に対応。実際の試験問題ではありません)
- Aflat
- BdiskANN
- CquantizedFlat
- Dベクター インデックスは定義せず、通常のインデックスだけで VectorDistance を実行する
正解:B
解説
diskANN は、Microsoft Research が開発した近似最近傍探索のアルゴリズムに基づくインデックスです。検索対象が多い(目安として5万件を超える)場合に、低い遅延と RU コストで高い再現率を得やすくなります。flat は最大505次元までしか扱えないため、1,536次元の埋め込みには使えません。quantizedFlat は圧縮したベクトルを全件比較する方式で、検索対象が5万件以下程度の場合に推奨されています。
選択肢ごとの解説
- A誤り。flat は全件比較による正確な検索ですが、インデックスにできるのは505次元までです。1,536次元のベクトルには使えません。
- B正しい。大量のベクトルを対象に、低い遅延・低い RU コストと高い再現率を両立させたい場合は diskANN が適しています。
- C誤り。quantizedFlat は全件比較の方式なので、検索対象が数百万件になると遅延と RU コストが大きくなります。目安として5万件以下の検索に向いています。
- D誤り。ベクター インデックスが無いと、類似検索のたびに全件を走査することになり、RU と遅延が大きくなります。