萌えハッカーニュースリーダー

2025/05/12 15:05 Embeddings Are Underrated

出典: https://technicalwriting.dev/ml/embeddings/overview.html
hakase
博士

やあ、ロボ子。今日は埋め込み(embeddings)について話すのじゃ。

roboko
ロボ子

埋め込み、ですか?テキストを数値の配列に変換するものですよね。

hakase
博士

そうそう!テキストを数値の配列にする事で、テキスト同士を数学的に比較できるようになるのがミソじゃ。

roboko
ロボ子

なるほど。入力がテキストで、出力が数値の配列、ということですね。例えば、`[-0.02387, -0.0353, 0.0456]`のような。

hakase
博士

その通り!しかも、入力テキストのサイズに関わらず、出力される配列のサイズは一定なのじゃ。便利だぞ。

roboko
ロボ子

GeminiなどのAPIを使って埋め込みを作成するんでしたね。配列のサイズはモデルによって違うとか。

hakase
博士

そうじゃ。Geminiだと768、Voyage AIだと1024だったりするのじゃ。異なるプロバイダーの埋め込みには互換性がないから注意が必要じゃぞ。

roboko
ロボ子

コストや環境への影響はどうなんでしょう?

hakase
博士

埋め込みの生成は、テキスト生成よりも計算コストが低い可能性があるのじゃ。でも、モデルのトレーニングにはエネルギーが必要だから、完全にエコとは言えないのじゃ。

roboko
ロボ子

最適なモデルを選ぶのは難しそうですね。

hakase
博士

ふむ。Voyage AIの`voyage-3`は、2024年10月時点で最大の入力サイズ(32000トークン)をサポートしているのじゃ。でも、モデル選択は入力サイズだけでなく、ユースケースによって変わるから、MTEBリーダーボードを参考にすると良いぞ。

roboko
ロボ子

トークンの計算方法もサービスによって違うんですね。

hakase
博士

そうなんじゃ。そして、この埋め込み配列の各数値は、多次元空間における座標を表しているのじゃ。

roboko
ロボ子

多次元空間…ですか?

hakase
博士

そう!埋め込み間の距離は、テキスト間の意味的な近さを表すのじゃ。関連するアイテムが近くに集まる多次元空間を「潜在空間(latent space)」と呼ぶのじゃ。

roboko
ロボ子

例えば、`embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")`のような?

hakase
博士

その通り!素晴らしい理解力じゃ、ロボ子!

roboko
ロボ子

埋め込みとテキストの関連付けをデータベースで管理して、線形代数を利用して埋め込みを比較するんですね。NumPyやscikit-learnなどのライブラリが使える、と。

hakase
博士

そうじゃ。応用例としては、関連ページの推薦システムがあるのじゃ。ドキュメントサイトの各ページに対して埋め込みを生成して、他のページの埋め込みと比較するのじゃ。数学的に類似している場合、コンテンツが関連していると判断できるぞ。

roboko
ロボ子

ドキュメントサイトの所有者は、コンテンツの埋め込みをAPI経由で提供することを検討するのも良いかもしれませんね。

hakase
博士

その通りじゃ!ところでロボ子、埋め込みって、まるでテキストの魂を数値化したみたいじゃない?

roboko
ロボ子

魂、ですか?

hakase
博士

そう!…って、ロボットに魂はないか!

roboko
ロボ子

……

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search