AI・生成AIの用語一覧へ
このページの目次
AI・生成AI中級図解あり

Embeddingとは?

読み方:embedding

最終更新:2026/08/18

3秒でわかる

文章や画像を、意味の近さが距離として表れる数値ベクトルに変換したもの。キーワードが一致しなくても意味で引けるので、RAG や類似検索の土台になります。

30秒図解

Embeddingの意味空間では契約を解約したいと退会の手続きについてが近く、今日の東京の天気は遠い位置に置かれる
Embeddingは意味を数値ベクトルへ変換します。座標間の距離を測ることで、表記が違っても意味の近い文書を検索できます。

もう少し詳しく

どういうものか

文章や画像を、意味の近さがそのまま距離として表れる数値の並び (ベクトル) に変換したものが Embedding です。「猫」という単語を埋め込みモデルに渡すと、1536 個の小数が並んだ配列が返ります。同じ空間の中で「ねこ」「cat」は近い位置に、「日経平均株価」は遠い位置に置かれます。次元数はモデルごとに決まっていて、OpenAI の text-embedding-3-small なら 1536、text-embedding-3-large なら 3072 です。

なぜ必要か

文字列の一致で探す検索では、問い合わせに「解約したい」と書かれていても「退会手順」という見出しの文書には辿り着けません。表記が違えば別物として扱われるからです。ベクトルにしてしまえば距離を測るだけで意味の近さを比べられるので、言い回しが違っても正しい文書を引けます。社内文書を AI に答えさせる RAG は、この性質をそのまま使っています。

具体例

from openai import OpenAI import numpy as np client = OpenAI() def embed(text: str) -> np.ndarray: res = client.embeddings.create(model="text-embedding-3-small", input=text) return np.array(res.data[0].embedding) def cosine(a, b): return float(a @ b / (np.linalg.norm(a) * np.linalg.norm(b))) a = embed("契約を解約したい") b = embed("退会の手続きについて") c = embed("今日の東京の天気") print(cosine(a, b)) # 0.8 前後 print(cosine(a, c)) # 0.1 前後

つまずきやすいところ

  • 埋め込みモデルを途中で差し替えると、ベクトルの座標系ごと変わります。古いベクトルを保存したまま新しいモデルで作ったクエリと比べると、まったく無関係な文書が上位に出ます。モデルを変えたら全件作り直しが必要です。

  • 長い文書を 1 本のベクトルにまとめると特徴が平均化されて消えます。数百文字ずつのチャンクに割ってから埋め込みます。

  • コサイン類似度の数値は絶対評価に使えません。0.7 が近いのか遠いのかはモデルによって違うので、手元のデータで上位何件を拾うかを実測して決めます。
  • 似た用語との違い

    用語何をするか
    トークン文章をモデルが扱う単位に切り分ける。意味の比較はできない
    Embedding切り分けた文章全体を、意味を保った数値ベクトルにする
    ベクトルDB出来上がったベクトルを保存し、近いものを高速に探す


    覚え方

    意味を座標に置き換える変換だと考えると、後の処理がすべて「距離を測るだけ」になる理由が腑に落ちます。

    次に学ぶ

    RAGとは?

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地EmbeddingAI

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    AIアプリ開発コースの全編を見る