埋め込み
テキストを数値の配列(ベクトル)に変換する技術。意味の近い文章は近いベクトルになるため、セマンティック検索の基盤となる。
仕組み
埋め込みモデルが、単語や文章の「意味」を数値で表現する:
「ログイン機能」→ [0.23, -0.15, 0.87, ..., 0.45](1536次元)
「認証システム」→ [0.25, -0.12, 0.89, ..., 0.43](近いベクトル)
「データベース設計」→ [-0.10, 0.67, -0.23, ..., 0.12](遠いベクトル)
主な埋め込みモデル
クラウド型(API):
- OpenAI
text-embedding-3-small: 1536次元、従量課金 - OpenAI
text-embedding-3-large: 3072次元、高精度 - Cohere Embed: 多言語対応
ローカル型(無料):
all-MiniLM-L6-v2: 384次元、軽量sentence-transformers: 各種モデル群BGE: 多言語、高精度
埋め込みの特性
- 次元数: モデルによって異なる(384〜3072次元など)
- コサイン類似度: ベクトル間の角度で意味の近さを測る
- 不変性: 同じテキストは常に同じベクトルになる
利点
- 意味の近さを数値化: 「認証」と「ログイン」が近いと分かる
- 高速検索: ベクトルデータベースで効率的に類似検索
- 多言語対応: モデルによっては言語を超えた類似度計算が可能
限界
- 専門用語の扱い: 社内用語、業界特有の略語は汎用モデルで対応できない
- 文脈依存: 「Apple」が「リンゴ」か「企業名」か判断が難しい
- 否定の扱い: 「認証は不要」と「認証は必要」が近いベクトルになる場合がある
- 固有名詞: IDや特定の文字列は意味ベースでは検索しづらい
対策
- ドメイン特化モデル: 医療、法律など専門分野向けのモデルを使用
- ファインチューニング: 自社データでモデルを再学習
- ハイブリッド検索: キーワード検索と併用
コスト
クラウド型:
- OpenAI: 約$0.00002/1000トークン
- 100万トークンで約$20
ローカル型:
- 初期コスト: GPUインフラ(オプション、CPUでも可)
- ランニングコスト: ゼロ