エンベディングの魔法

エンベディングは言語を数学へと変換します。

それらは現代のAIの基盤です。多くの人々はそれらをブラックボックスのように扱っていますが、この記事ではその仕組みを解説します。

キーワード検索は、単語が一致しない場合に失敗します。

例えば、「How do I reset my password?(パスワードをリセットするにはどうすればいいですか?)」と検索した場合、キーワード検索はその通りの正確な単語を探します。もしドキュメントに「Steps to recover your account credentials(アカウントの認証情報を復元する手順)」と書かれていた場合、検索は失敗するかもしれません。人間は意味が同じだと分かりますが、コンピュータには分かりません。

エンベディングはこの問題を解決します。

エンベディングとは数値のリストです。これらの数値はテキストの意味を表します。エンベディングモデルは、単語を高次元空間にマッピングします。

「cat(猫)」のような単語一つが、次のようなベクトルになります: [0.18, -0.42, 0.91, ...]

数値そのものには意味がありません。重要なのはベクトルの位置です。

地図を想像してみてください。近くにある都市同士は、似たような気候や国境を共有しています。エンベディングも同じように機能します。似た意味を持つテキストは、ベクトル空間内で互いに近くに配置されます。

  • 「Dog(犬)」と「Cat(猫)」は近くに配置されます。
  • 「Car(車)」と「Truck(トラック)」は近くに配置されます。
  • 「Car(車)」と「Dog(犬)」は遠くに配置されます。

これらの点の間隔が、類似性を表します。

これにより、セマンティック検索(意味検索)が可能になります。綴りではなく、意図に基づいて情報を探すことができます。

これらのベクトルを比較するために、コサイン類似度を使用します。この指標は、2つのベクトル間の角度を測定します。

  • 角度が小さいほど、類似度が高いことを意味します。
  • 角度が大きいほど、類似度が低いことを意味します。

エンベディングは、Retrieval Augmented Generation (RAG) の原動力でもあります。RAGパイプラインにおけるプロセスは以下の通りです:

  1. エンベディングモデルを使用して、ドキュメントをベクトルに変換する。
  2. ベクトルをベクトルデータベースに保存する。
  3. ユーザーのクエリをベクトルに変換する。
  4. データベース内で最も近いベクトルを見つける。
  5. 関連するドキュメントをLLMに送信する。

LLMはファイルを直接検索するわけではありません。エンベディング空間内で最も近い一致箇所を検索します。

AIアプリケーションを構築するのであれば、エンベディングを理解しておく必要があります。検索エンジンからレコメンデーションシステムに至るまで、あらゆるものの基盤となっているからです。その強みは、意味をどのように整理するかという点にあります。

Source: https://dev.to/tahaboussaden/embeddings-magic-2hlb

Optional learning community: https://t.me/GyaanSetuAi