エンベディングとは位置であり、意味とは距離である
エンベディングモデルに「お金を返してもらうにはどうすればいい」という文を与えると、数値のリストが返ってくる。「返金ポリシー」を与えると、また別のリストが返ってくる。この2つのリストは近い位置にある。「陰極における電子の還元」を与えると、単語を共有していてもリストは遠くに離れる。
これがすべての仕掛けだ。モデルは、語彙ではなく意味によって文章の配置先が決まるような、数百から数千の次元を持つ空間に文章を配置することを学習している。文章が位置になれば、意味に関する問いは距離に関する問いになり、距離はコンピューターが100万件でもミリ秒単位で計算できるものだ。
有名な初期のデモは、2013年のword2vecの研究による単語の位置の演算だった。「king」のベクトルから「man」を引いて「woman」を足すと、結果に最も近い単語が「queen」になる。現代のエンベディングモデルは文全体や文書全体に対して同じことを行い、ベクトルはより長くなっている。
実際に使われているモデルでのエンベディングの大きさ
リストの長さは次元数と呼ばれる。モデルの発展とともに大きくなってきた。
2013年のword2vecは300次元、2018年のBERT baseは768次元、Voyage 3は1,024を返し、OpenAIのtext-embedding-3-smallは入力あたり1,536個の数値を、text-embedding-3-largeは3,072個を返す。GoogleのGemini Embeddingもデフォルトで3,072である。次元が多いほど細かな違いを保持できるが、その分ストレージと比較にかかる時間が増える。だからこそ新しいモデルでは、速度がニュアンスより重要な場面向けに、リストをより小さいサイズに切り詰められるようになっている。
それぞれの数値は単体では意味を持たない。412番目の次元が「フォーマルさ」や「話題」を表すわけではない。意味はリスト全体が他のリストと比べてどこに位置するかにしか宿らない。だからこそ、比較対象となる集合がなければエンベディングは役に立たない。
エンベディングモデルは探し、言語モデルは書く
どちらも「文章を扱うAI」なので混同されがちだが、両者はまったく逆の仕事をする別のモデルだ。
| エンベディングモデル | 言語モデル(LLM) | |
|---|---|---|
| 入力 | テキスト(または画像) | テキスト(または画像) |
| 出力 | 固定長の数値のリスト | 新しいテキストを1トークンずつ |
| 役割 | 似たものが近くなるよう入力を配置する | 入力を自然な形で続ける |
| 用途 | 検索、マッチング、クラスタリング、検索取得 | 回答、執筆、要約 |
| 100万トークンあたりのコスト | text-embedding-3-smallで$0.02 | 最も安いGPTの行で$0.20、フロンティアモデルで$2から$10 |
| 間違えることはあるか | 相性の悪い一致を上位に出すことがある | 答えをでっち上げることがある |
注目すべきはコストの行だ。OpenAIの小型モデルで100万トークンをエンベディングすると$0.02で済むのに対し、GPT-5.6 Lunaの入力トークンは100万あたり$0.20で、これはLuna ProやGPT-5.4 Nanoと並んで最も安いGPTの行にあたる。これは2026-08-20にOpenRouterの価格を取得したAIモデルコスト指数による。探すことは最も安いGPTの執筆より10倍安く、フロンティアの執筆より少なくとも100倍安い。この差こそ、本気のシステムがまず探してから書く理由だ。執筆側についてはLLMとは何かで扱っている。
あなたの目に触れないところでエンベディングが動いている場所
ファイルとのチャット。 長いPDFをアップロードして質問すると、ファイルは複数の断片に分割され、それぞれの断片がエンベディングされてベクトルデータベースに保存され、あなたの質問もエンベディングされ、最も近いベクトルを持つ断片が文脈として言語モデルに渡される。モデルはそれらの断片から答える。これが検索拡張生成であり、RAGとはがこのパイプラインを解説している。エンベディングはその検索ステップにあたる。PDFとチャットするガイドではWhiziでアップロードしたファイルに質問する方法を扱っている。
文書が検索されるか、そのまま丸ごと読まれるかは、ウィンドウ次第で決まる。各モデルのコンテキストウィンドウをページ数換算で以下に示す。収まるものは丸ごと入れられ、収まらない集合のために検索取得が存在する。
同義語を理解する検索。 「支払いを止める」という言葉に解約記事を返すサポートサイトは、単語ではなくエンベディングを比較している。
レコメンドとクラスタリング。 ベクトルが近い項目は似た項目だ。関連商品、重複したチケット、同じ話題の記事など。
チャットアプリの記憶機能。 アシスタントが以前の会話の事実を「覚えている」とき、よくある実装は過去のメモをエンベディングし、最も近いものをプロンプトに取り込む。
どの場合でも、探す役をエンベディングが担い、決める役や書く役は別のものが担う。失敗の仕方もどこでも同じだ。最も近いベクトルが間違った断片であれば、その先はすべて自信満々に間違った質問に答えてしまう。これはAIの幻覚とはがでっち上げとは別の失敗として挙げている検索ミスにあたる。
コードを書かずにこの考え方を活かす方法
エンベディングを直接扱うことはほとんどないが、その仕組みを知っておくと、その上に構築されたツールの使い方が変わる。
- 答えの言語で尋ねる。検索取得は質問を意味によって断片と照合する。文書自身の言い回しに近い質問の方が、口で言うような言い回しの質問より近くに位置する。
- 大きなアップロードは話題ごとに分割する。3つの無関係な話題を含む400ページのファイルは混雑した空間にエンベディングされるが、3つのファイルに分ければきれいに取得できる。
- 引用された断片を読む。ファイルとのチャットの答えが断片を引用しているなら、それを開こう。検索ミスは、少し違う質問への自信満々な答えのように見える。
- 正確な文字列には弱いと心得る。エンベディングは意味に関するものであり、請求書番号や部品コードは普通のテキスト検索の方が見つけやすい。優れたツールは両方を組み合わせる。
判断基準はこうだ。多くの中から正しい一つを見つけるのが仕事なら、エンベディングモデルが欲しく、それは安価であるべきだ。何かを生み出すのが仕事なら、言語モデルが欲しく、それは優れているべきだ。この使い分けを正しく設計できた製品こそ、ファイルとのチャットが実際に機能する製品だ。
- 役割分担を覚えておく。エンベディングは探し、言語モデルは書く
- アップロードした文書への質問は、その文書自身の言葉で言い換える
- 大きなアップロードは話題ごとに分割し、検索取得しやすい空間にする
- ファイルとのチャットの答えは、信じる前に引用された断片を開いて確認する
- IDやコードのような正確な文字列には普通のテキスト検索を使う。エンベディングが照合するのは意味であって文字ではない
よくある質問
簡単に言うとエンベディングとは何ですか。
文章の意味の代わりとなる数値のリストで、似た意味には似たリストが割り当てられるように配置される。「返金ポリシー」と「お金を返してもらうにはどうすればいい」は近くに位置し、「還元」という単語を含む化学の文は遠くに位置する。リスト同士の距離が、コンピューターにとっての関連度の測り方になる。
エンベディングモデルとLLMの違いは何ですか。
エンベディングモデルは意味を表す固定長の数値のリストを出力し、言語モデルは新しいテキストを1トークンずつ出力する。前者は探して照合し、後者は書いて答える。ファイルとのチャットは両方を使う。エンベディングで関連する断片を取得し、LLMがそこから答えを書く。
エンベディングの次元数はいくつありますか。
モデルによって異なる。2013年のword2vecは300、BERT baseは768、現行モデルは1,024から3,072まで幅がある。OpenAIのtext-embedding-3-smallは1,536、text-embedding-3-largeは3,072を返し、これはGoogleのGemini Embeddingのデフォルトと同じだ。新しいモデルは、速度がニュアンスより重要な場面向けに少ない次元数への切り詰めを許している。
エンベディングは高価ですか。
いいえ、そこが重要な点だ。OpenAIはtext-embedding-3-smallを100万トークンあたり$0.02としており、GPT-5.6 Lunaの入力トークンは100万あたり$0.20、フロンティアのチャットモデルは2026-08-20時点のOpenRouterの一覧価格で$2から$5になる。探すことは書くことより10倍から100倍安く、だからこそ検索取得システムはすべてをエンベディングし、答えだけを生成する。
ChatGPT、Claude、Geminiではエンベディングはどこで使われていますか。
ものを探す機能の中で使われている。ファイルのアップロードと文書とのチャット、過去の会話の検索、以前のチャットの事実を思い出す記憶機能などだ。いずれの場合も、よくある設計はテキストをエンベディングし、最も近い一致を取得し、言語モデルにそこから書かせるというものだ。エンベディング自体は見えないが、検索ミスが起きたときはそうではない。