Azure OpenAI Service での埋め込みについて理解する
埋め込みは、機械学習モデルとアルゴリズムで簡単に使用できる特別な形式のデータ表現です。 埋め込みは、テキストの意味論的意味の情報密度の高い表現です。 各埋め込みは浮動小数点数のベクトルであり、ベクトル空間内の 2 つの埋め込み間の距離は、元の形式の 2 つの入力間のセマンティック類似性と相関します。 たとえば、2 つのテキストが似ている場合、それらのベクトル表現も似ているはずです。 Azure Cosmos DB for MongoDB vCore、Azure SQL Database、または Azure Database for PostgreSQL - フレキシブル サーバーなど、Azure データベースにパワー ベクターの類似性検索を埋め込みます。
埋め込みモデル
さまざまな Azure OpenAI 埋め込みモデルが、特定のタスクに適するように作成されています。
- 類似性埋め込みは、2 つ以上のテキスト間のセマンティック類似性を捉えることに適しています。
- テキスト検索埋め込みは、長いドキュメントが短いクエリに関連しているかどうかを判断するのに役立ちます。
- コード検索埋め込みは、コード スニペットを埋め込んだり、自然言語の検索クエリを埋め込んだりする場合に便利です。
埋め込みにより、ベクトル空間内のセマンティック類似性を捉えることで、単語を表す大規模な入力に対して機械学習を簡単に行うことができます。 したがって、埋め込みを使用して、2 つのテキスト チャンクが意味的に関連または類似しているかどうかを判断し、類似性を評価するためのスコアを提供できます。
コサイン類似度
Azure OpenAI 埋め込みでは、コサイン類似度を用いてドキュメントとクエリの類似性が計算されます。
数学的観点から、コサイン類似度は、多次元空間に投影された 2 つのベクトル間の角度のコサインを測定するものです。 この測定は、2 つのドキュメントがサイズによりユークリッド距離で大きく離れていても、両者の間の角度が小さく、したがってコサイン類似度が高くなる可能性があるため、有益です。 コサイン類似度の数式について詳しくは、コサイン類似度に関する解説をご覧ください。
類似のドキュメントを識別する別の方法として、ドキュメント間の共通単語の数を数える方法があります。 ドキュメント サイズが大きくなると、異質なトピック間でも共通単語の検出数が多くなる可能性が高いため、このアプローチには拡張性がありません。 このため、コサイン類似度を用いる方がより効果的です。
次の手順
- Azure OpenAI と埋め込みを使ったドキュメント検索の詳細については、埋め込みのチュートリアルを参照してください。
- Azure Cosmos DB for MongoDB vCore、Azure Cosmos DB for NoSQL、Azure SQL Database、または Azure Database for PostgreSQL - フレキシブル サーバーを使って、埋め込みを格納し、ベクター (類似性) 検索を実行します。
- Microsoft Fabric でリアルタイム インテリジェンスの Eventhouse をベクトル データベースとして使用する
- 類似性検索には、series_cosine_similarity 関数を使用します。