埋め込みモデルとは
Embedding Model
テキストや画像などを埋め込みベクトルへ変換する専用のニューラルネットワークモデル
ひとことで言うと
文章や画像を、意味の近さを表す数値の並びに変換するAIモデル。
概要
埋め込みモデルとは、テキスト・画像・音声等の入力を、意味的な特徴を反映した固定長のベクトル(埋め込み)へ変換することに特化したニューラルネットワークモデル。 文章生成を目的とするLLMとは異なり、入力を1つのベクトルへ圧縮して出力することに最適化されており、検索・分類・クラスタリングなど下流タスクでの類似度計算に使いやすい表現を学習する。 OpenAIのtext-embeddingシリーズ、Google・Cohereの埋め込みAPI、オープンウェイトのBGE・E5・GTE等多様な選択肢があり、RAGにおける文書・クエリのベクトル化に広く使われている。 埋め込みモデルの性能はMTEB(Massive Text Embedding Benchmark)のような標準ベンチマークで比較されることが多く、検索精度と計算コストのバランスを見てモデルを選定する。
背景
検索やRAGでは、文書とクエリの意味的な類似度を測るための質の高いベクトル表現が求められる。 LLMのように多目的に学習された汎用モデルの中間表現を流用するより、類似度計算に特化した目的関数(対照学習等)で専用に学習したモデルの方が高い検索性能を得やすいことから、埋め込みモデルという専用のモデルカテゴリが発展した。
歴史
2019年: Reimers・GurevychがSentence-BERT(SentenceTransformers)を発表し、文単位の埋め込みを効率的に計算する手法を確立。 2022年: OpenAIがtext-embedding-adaシリーズを公開しAPI経由での埋め込み利用を普及。 2023年以降: BGE・E5・GTE等オープンウェイトの高性能な埋め込みモデルが多数公開され、MTEB(Massive Text Embedding Benchmark)による性能比較が一般化。
アーキテクチャ
多くの埋め込みモデルはBERT等のTransformerエンコーダをベースとし、対照学習(似た意味のペアを近く、異なる意味のペアを遠くへ配置するよう学習する手法)によって学習される。 入力トークン列に対するエンコーダの出力を平均化・プーリングして、固定長の1つのベクトルに集約する。
利点
- 検索・類似度計算に特化しており、汎用LLMの中間表現より高い検索性能を得やすい
- 比較的小規模なモデルでも高い性能を発揮でき、推論コストを抑えやすい
欠点
- モデルによって出力ベクトルの次元数や学習データが異なり、異なるモデルで生成したベクトル同士は比較できない
- 専門用語が多い文書等ドメインに特化したテキストでは、汎用埋め込みモデルの精度が低下しやすい
比較
- Embedding — 埋め込みモデルは、埋め込みベクトルを生成するためのモデルそのものを指す
- ベクトルデータベース — 埋め込みモデルが生成したベクトルは、ベクトルデータベースに格納・検索される
- BERT — 多くの埋め込みモデルは、BERT等のエンコーダ型Transformerをベースに学習される
関連用語
よくある質問
埋め込みモデルはどう選べばいい?
MTEB等のベンチマークでの性能に加え、対応言語、ベクトルの次元数、推論コスト、ライセンス等を踏まえて選定するのが一般的。