3行でいうと
- 次元数を128〜3072の範囲で選べるモデルが多く、保存量はほぼ次元数に比例します。
- 最大入力は、OpenAIとGoogleの8,192に対し、Voyageは32,000、Cohereは128kと差があります。
- 料金は100万トークンあたり0.02ドルから0.20ドルの範囲で、Cohereの従量料金は確認できていません。
- 日本語の精度は、各社の文書から読み取れません。自分の資料で試すのが前提です。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書や論文を読んでまとめたものです。価格は2026年10月22日に読み直しました。変わることがあります。
先に結論
- 公式文書で比べられるのは、次元数・最大入力・料金・対応する入力の種類(文字だけか、画像も含むか)までです。「どれが正確に検索できるか」は、公式の文書からは比べられません。
- 日本語の文書を検索したい場合、公式の文書で「日本語に対応」と明記されていたのはCohereだけです(Embed 5 Pro、Embed v3の多言語版)。Googleは「100以上の言語」、Voyageは「多言語(multilingual)」と書いていますが、日本語名は確認できませんでした。OpenAIとMistralは、今回読んだページに言語の記述が見つかっていません。
- 見立てです。選ぶ順序は「(1) 料金と上限で足切り → (2) 自分の資料20〜50件で検索の当たり外れを見る → (3) 次元数を下げて保存量を決める」が現実的だと思います。
前提:埋め込みとは何か
埋め込み(embedding) は、文章を数字の並び(ベクトル)に変える処理です。意味が近い文章は、近い数字の並びになります。検索の仕組み(RAG、つまり資料を探してからAIに答えさせる方式)では、資料を先に数字にして保管しておき、質問も数字にして、近いものを探します。
- 次元数は、数字の並びの長さです。長いほど細かく表せますが、保存する量も計算も増えます。
- 最大入力は、1回に読ませられる文章の長さ(トークン数)です。トークンはAIが文章を数える単位です。
- MTEBは、埋め込みモデルを複数の課題で比べる共通の性能テストです。論文(arXiv 2210.07316)によると、8種類の課題・58のデータセット・112言語を扱います。同じ論文の結論は「すべての課題で一番になる方法はまだない」でした。
各社の比較表
表の数字は、各社の公式文書に書かれたものです。料金は100万トークンあたりの米ドルです。
| 会社 | モデル | 次元数 | 最大入力 | 入力の種類 | 料金(100万トークン) |
|---|---|---|---|---|---|
| OpenAI | text-embedding-3-small | 1536(既定) | 8,192 | 文字 | 0.02ドル |
| OpenAI | text-embedding-3-large | 3072(既定) | 8,192 | 文字 | 0.13ドル |
| OpenAI | text-embedding-ada-002(旧) | 文書では未確認 | 8,192 | 文字 | 0.10ドル |
| gemini-embedding-2 | 3072(既定)、128〜3072 | 8,192 | 文字・画像・動画・音声・PDF | 文字0.20ドル | |
| gemini-embedding-001 | 3072(既定)、128〜3072 | 2,048 | 文字のみ | 確認できていません | |
| Voyage AI | voyage-4-large | 1024(既定)、256・512・2048 | 32,000 | 文字 | 0.12ドル |
| Voyage AI | voyage-4 | 同上 | 32,000 | 文字 | 0.06ドル |
| Voyage AI | voyage-4-lite | 同上 | 32,000 | 文字 | 0.02ドル |
| Voyage AI | voyage-code-4 | 同上 | 32,000 | コード向け | 0.12ドル |
| Cohere | embed-v5.0-pro | 2048(既定)、256〜1536 | 128k | 文字・画像・混在 | 確認できていません |
| Cohere | embed-v5.0-fast | 2048(既定)、256〜1536 | 128k | 文字・画像・混在 | 確認できていません |
| Cohere | embed-multilingual-v3.0 | 1024 | 512 | 文字・画像 | 確認できていません |
| Mistral | Mistral Embed | 文書では未確認 | 8k | 文字 | 0.10ドル |
| Mistral | Codestral Embed | 文書では未確認 | 8k | コード向け | 0.15ドル |
読み方の注意です。
- OpenAIの3-smallと3-largeは、OpenAIのガイドに、MTEBの得点が62.3%と64.6%(ada-002は61.0%)と書かれています。これは英語中心の評価で、日本語の検索精度ではありません。
- Googleの「既定3072」は、2つのモデルとも同じです。gemini-embedding-2の料金は、10月8日に料金ページの1か所で読んだ数字です(文字0.20ドル、画像0.45ドル、音声6.50ドル、動画12.00ドル。いずれも100万トークンあたり)。10月22日の読み直しでは、料金ページの埋め込みの部分を取得できず、確認できていません。
- Voyageの最大入力32,000は、voyage-law-2だけ16,000です。また、Voyageは各アカウントに2億トークン(200 million)の無料枠(voyage-4系の各モデル)があると、料金ページに書かれています。
- Cohereの料金ページには、従量の埋め込み料金は載っていませんでした。専用環境(Model Vault)の時間料金(例:Embed 5 Proの小サイズで1時間3ドル、月2,000ドル)のみです。従量の単価は、確認できていません。
- Mistralの次元数は、今回読んだ文書で見つけられませんでした。
次元数を下げるしくみ
OpenAI、Google、Voyage、Cohereは、次元数を自分で選べます。OpenAIはdimensions、Googleはoutput_dimensionality、Voyageはoutput_dimensionというパラメータです。これは、最初の方の数字だけを残しても意味が保たれるように訓練する方法(Matryoshka表現、入れ子人形のように大きい表現の中に小さい表現がある)が使われているためです。
- OpenAIの文書には、3-largeを256次元にしても、1536次元のada-002を上回る(MTEBで)と書かれています。
- Googleの文書には、gemini-embedding-001のMTEB得点が、2048次元で68.16、768次元で67.99、256次元で66.19、128次元で63.31と載っています。
- 手で次元を切り詰める場合は、長さを1に直す(正規化する)必要があります。Googleは、gemini-embedding-2では自動で正規化され、001では手で正規化するよう書いています。
保存量と費用の計算(僕らの計算です)
僕らの計算です。100万件の文章を、32ビット浮動小数点(1つの数字が4バイト)で保存したときの、ベクトルだけの容量です。
| 次元数 | 100万件の容量 |
|---|---|
| 3072 | 約12.3GB |
| 1536 | 約6.1GB |
| 1024 | 約4.1GB |
| 256 | 約1.0GB |
VoyageとCohereの文書には、数字を8ビット整数や1ビットに減らす「量子化」の指定があります。Voyageの文書では、1ビットにすると返される長さは次元数の8分の1(バイト数)になります。この場合、1024次元は128バイトで、100万件で約128MBです(僕らの計算です)。ただし、検索の精度がどれだけ下がるかは、公式の文書の数字を確かめていません。
次に、費用です。資料全体が1,000万トークンだとして、上の表の料金で1回だけ埋め込んだ費用です(僕らの計算です。無料枠、バッチ割引は入れていません)。
| モデル | 概算(米ドル) |
|---|---|
| text-embedding-3-small | 0.20 |
| voyage-4-lite | 0.20 |
| voyage-4 | 0.60 |
| Mistral Embed | 1.00 |
| voyage-4-large | 1.20 |
| text-embedding-3-large | 1.30 |
| Codestral Embed | 1.50 |
| gemini-embedding-2(文字) | 2.00 |
資料を1回埋め込むだけなら、どのモデルでも数ドルです。差が大きくなるのは、毎日更新して何度も埋め込み直す場合と、質問のたびに質問文を埋め込む場合です。一方で、モデルを変えると、保存済みのベクトルは使えなくなります。Voyageの文書によると、4系(large、無印、lite)の埋め込みどうしは互換です。他のモデルの間では互換の記述を確認できていません。したがって、モデルの乗り換えは「全件の作り直し」と考えるほうが安全です。
日本語で使うときの見方
公式の文書から言えること、言えないことを分けます。
- Cohereの文書は、embed-v5.0-proが「100以上の言語」に対応し、韓国語・日本語・アラビア語・中国語などを挙げています。embed-multilingual-v3.0の言語一覧にも、日本語(ja)があります。
- Googleの文書は、gemini-embedding-2が「100以上の言語」に対応すると書いています。日本語の名前は、読んだページに見つけられませんでした。
- Voyageの文書は、voyage-4-largeとvoyage-4を多言語の検索向けとしています。
- OpenAIは、3-largeを「英語と英語以外の課題に最もよい」と説明しています。具体的な言語一覧は確認できていません。
- 日本語向けの評価としては、JMTEB(日本語の埋め込み評価)があります。今回、GitHubのページは取得できず(アクセス拒否)、中身は確認できていません。
見立てです。「100言語以上に対応」と「日本語の検索がよく当たる」は別の話だと思います。公式の評価は英語中心か、各社が選んだ課題です。最後は、自分の資料と自分の質問で試すしかありません。
選び方の手順(見立てです)
見立てです。次の順で絞ると、無駄が少ないと思います。
- 入力の長さ:資料を何文字ごとに区切るか決める。区切りが長い(数千トークン)なら、最大入力8,192以上が必要。短く区切るなら、512でも足ります。
- 入力の種類:図表やスクリーンショットも検索したいなら、Googleのgemini-embedding-2、CohereのEmbed 5、Voyageのマルチモーダル系が候補。文字だけなら、選択肢が広い。
- 保存量:件数×次元数×4バイトで見積もる。件数が多いなら、次元数を下げる設定を最初から使う。
- 質の確認:実際の質問を20〜50個用意して、正しい資料が上位5件に入るかを数える。この作り方は、このシリーズの「RAGの評価」の記事で扱います。
- 運用:モデルを変えると全件作り直しになる。バージョン名(例:voyage-4)を、保存データと一緒に記録しておく。
よくあるつまずき
- 質問と資料で入力の種類を分けていない。 VoyageとCohereは、質問用と文書用の指定(
input_type)があります。Voyageの文書によると、指定すると自動で決まった前置きの文が付き、検索向けになります。Googleのgemini-embedding-001はtask_type、gemini-embedding-2は文頭に付ける接頭辞で指定する、と文書に書かれています。指定を忘れると、公式が想定する使い方から外れます。 - 次元数だけ変えて、データベース側の設定を直さない。 ベクトルを入れる箱の次元数と、モデルの出力が合っていないと、エラーになります。OpenAIの文書には、1024次元までしか扱えないデータベースに3-largeを入れるために1024に縮める例があります。
- 古いモデルの混在。 同じ棚に違うモデルのベクトルを入れると、距離が意味を持ちません。
- 長い入力の切り捨て。 Voyageは既定で長すぎる入力を切り捨てます(
truncationが既定でTrue)。Googleも、8,192を超える入力は静かに切り捨てると書いています。長い文章の後半が検索対象に入っていない、という事態になりえます。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。精度、速度、日本語の当たり外れは、この記事の範囲外です。
- 価格は2026年10月22日に読み直した内容で、変わることがあります。gemini-embedding-2の料金だけは、10月22日に確認できず、2026年10月8日に読んだ数字のままです。Cohereの従量単価は確認できていません。Mistral Embedの単価は、モデルのページ(0.1ドル)のみで、料金一覧のページには載っていませんでした。
- OpenAIのガイドは第3世代(3-small、3-large)の説明が中心でした。10月22日に読み直したOpenAIの料金ページには、埋め込みの項が見つかりませんでした。単価は各モデルのページで確認しています(3-smallが0.02ドル、3-largeが0.13ドル、ada-002が0.10ドル)。
- 「次元数」「最大入力」は、モデルによって数え方が違う場合があります。同じ日本語の文章でも、トークンの数はモデルごとに変わります。
- MTEBの得点は、各社の文書にあるものと、僕らが読んだ論文の説明です。リーダーボード(順位表)の最新の順位は取得していません。
- 個別の契約やデータの扱い(学習への利用、保存場所)は、この記事では読んでいません。
出典
- Vector embeddings(OpenAI API、OpenAI、2026年10月22日確認)
- text-embedding-ada-002(OpenAI API、OpenAI、2026年10月22日確認)
- text-embedding-3-large(OpenAI API、OpenAI、2026年10月22日確認)
- text-embedding-3-small(OpenAI API、OpenAI、2026年10月22日確認)
- Embeddings(Gemini API、Google、2026年10月22日確認)
- Gemini Developer API pricing(Google AI for Developers、Google、2026年10月8日確認、10月22日は埋め込みの料金部分を読めず)
- gemini-embedding-2(Gemini API、Google、2026年10月22日確認)
- Text Embeddings(Voyage AI Docs、Voyage AI、2026年10月22日確認)
- Pricing(Voyage AI Docs、Voyage AI、2026年10月22日確認)
- Cohere's Embed Models(Cohere Docs、Cohere、2026年10月22日確認)
- Introduction to Embeddings at Cohere(Cohere Docs、Cohere、2026年10月22日確認)
- Pricing(Cohere、2026年10月22日確認)
- API pricing(Mistral Docs、Mistral、2026年10月22日確認。旧URLのmistral.ai/pricing/apiから移動)
- Mistral Embed(Mistral Docs、2026年10月22日確認)
- Codestral Embed(Mistral Docs、2026年10月22日確認)
- MTEB: Massive Text Embedding Benchmark(arXiv 2210.07316、2026年10月22日確認)
- MMTEB: Massive Multilingual Text Embedding Benchmark(arXiv 2502.13595、2026年10月22日確認)
更新履歴
- 2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
