エンベディング

えんべでぃんぐ

エンベディング

エンベディング(Embedding)とは、テキスト・画像・音声などの非構造化データを、意味的な関係性を保ったまま固定長の数値ベクトルに変換する技術である。

コンピュータは「りんご」と「みかん」が似ていることを文字列からは判断できない。エンベディングはこの問題を解決する。「りんご」を [0.23, -0.41, 0.87, ...] のような数百次元のベクトルに変換すると、「みかん」のベクトルとは距離が近く、「自動車」のベクトルとは遠くなる。意味の近さが数値の近さとして表現される。

LLM の内部でもエンベディングは中核的な役割を果たしている。入力テキストはまずトークン化され、各トークンがエンベディングベクトルに変換される。Transformer はこのベクトル列を処理して出力を生成する。

実務で頻繁に使われるのは、文章単位のエンベディングだ。OpenAI の text-embedding-3-small や Cohere の embed-v4 といったモデルが、文章を一つのベクトルに変換する。このベクトルをベクトルデータベースに格納すれば、意味検索や RAG の検索層が構築できる。

モデル選択の際は、次元数・対応言語・コストのバランスが判断基準になる。日本語やタイ語を扱う場合、多言語対応モデルの精度を事前にベンチマークしておくことが重要だ。