Python

Cohere Embed 4(embed-v4.0)とは|マルチモーダル対応と128kトークンの実装ガイド

Cohere Embed 4は、Cohereが2025年4月に公開したエンタープライズ向けの埋め込み(ベクトル化)モデルです。APIやSDKで指定するモデルIDは embed-v4.0。テキストだけでなく画像やPDFを同じベクトル空間へ変換できるマルチモーダル対応、最大128,000トークン(約200ページ相当)のコンテキスト長、256〜1536次元を選べる出力が特長です。この記事では、公開情報にもとづく仕様、他社モデルとの違い、Python v2 SDKでの具体的な使い方を、実装で迷いやすい点にしぼって整理します。

まとめ:Cohere Embed 4の要点

  • モデルIDembed-v4.0(公開は2025年4月。記事や記事内アンカーで見かける「embed-4」「Embed 4」は同一モデルの通称)。
  • マルチモーダル:テキスト・画像・テキストと画像が混在したPDFを、1回の入力で同一ベクトル空間へ埋め込める。
  • コンテキスト長:最大128kトークン(Cohereは約200ページ相当の文書と説明)。
  • 出力次元:256/512/1024/1536(既定)から選択可能(Matryoshka方式)。
  • 埋め込みタイプ:float/int8/uint8/binary/ubinary。int8・binaryはストレージと検索コストを抑える用途。
  • 多言語:日本語を含む100以上の言語で学習。
  • 料金の目安:テキスト入力 100万トークンあたり0.12ドル、画像トークンは0.47ドル(Cohere API直販の公表値。変動するため導入前に公式で確認)。

embed-v4.0の位置づけと主要スペック

Cohere Embed 4は、同社の「Embed」シリーズの最新世代です。埋め込みモデルは文章や画像を意味を保った数値ベクトルへ変換する役割を持ち、検索・分類・クラスタリング・レコメンド・RAGの検索部分などに使われます。Embed 4の狙いは、テキスト特化だったこれまでの埋め込みモデルを、画像や表・グラフを含む業務文書までカバーする一本のモデルに拡張することにあります。ベンチマークMTEBでは65.2を記録し、OpenAIのtext-embedding-3-large(64.6)を上回ると公表されています。

主要スペック一覧

項目 Cohere Embed 4
モデルID embed-v4.0
公開 2025年4月
入力モダリティ テキスト/画像/混在(PDF)
コンテキスト長 最大128,000トークン
出力次元 256/512/1024/1536(既定)
埋め込みタイプ float/int8/uint8/binary/ubinary
対応言語 100以上(日本語含む)
MTEBスコア 65.2

「Embed 4」「embed-v4.0」「v4」の表記の対応関係

検索では「cohere embed 4」「cohere embed v4」「embed-v4.0」「cohere v4」など複数の表記が混在しますが、いずれも同じモデルを指します。プログラムから呼び出すときの正式な識別子は embed-v4.0 のみで、「embed-4」という名前は存在しません。旧世代のembed v3(embed-english-v3.0/embed-multilingual-v3.0)はテキスト専用でコンテキストは512トークン止まりだったため、マルチモーダルや長文が要件なら v4.0 を選びます。

マルチモーダル対応の実際(テキスト・画像・PDFを1つのベクトル空間へ)

Embed 4の中心的な進化は、テキストと画像を別々に処理せず、同一の入力で1本のベクトルにまとめて埋め込める点です。図表やスクリーンショットを含む文書をそのまま渡せるため、「画像として貼られた表の内容」までベクトル検索の対象にできます。マルチモーダルという考え方そのものの仕組みや、シングルモーダルとの違いはマルチモーダルとは何かを実装目線で解説した記事で整理しています。

実務で効くのは、スライドや製品マニュアル、決算資料のように「文章と図が同じページに混在する」文書です。従来はOCRで画像から文字を起こし、テキストとして別処理する前段が必要でしたが、Embed 4はページ画像を直接ベクトル化できるため、前処理パイプラインを短くできます。一方、写真そのものの物体検出のような画像認識タスクは埋め込みモデルの守備範囲外で、あくまで「意味の近さで検索・分類する」用途に向く点は押さえておきます。

128kトークンのコンテキスト長でできること

Embed 4は1回の入力で最大128,000トークンを受け付けます。Cohereはこれを「約200ページの文書」と表現しています。長いコンテキストの利点は、契約書や論文のように前提と結論が離れた文書を、途中で細切れにせず1本のベクトルへ落とし込める点にあります。分割(チャンク化)が不要になるわけではありませんが、チャンクを大きく取れるため、章をまたいだ文脈が切れにくくなります。

ただし、1本のベクトルに詰め込む情報が増えるほど、その中の特定の一文だけを厳密にヒットさせる粒度は落ちます。RAGの検索段では「1チャンク=1論点」に近い中程度の分割のほうが精度が出る場面も多く、128kはあくまで上限値です。文書全体の類似度で束ねたいのか、細部をピンポイントで引きたいのかで、チャンクサイズを設計するのが実務の勘所です。

出力次元・埋め込みタイプの選び方(Matryoshka/int8・binary)

Embed 4は、公式ドキュメントや料金表だけでは判断しづらい「ベクトルをどの精度で保存するか」の選択肢が広く、ここがコスト設計の分かれ目になります。出力次元はMatryoshka方式で256/512/1024/1536から選べ、次元を下げるほどベクトルDBの容量と検索計算量が減ります。数万件規模までなら1536で精度を優先し、数百万件を超えて容量が問題になるなら512や256へ落とす、という判断が現実的です。

さらに埋め込みタイプとして、通常のfloat(32bit相当)に加え、int8(8bit整数)やbinary(1bit)を選べます。binaryはベクトル1本あたりの保存量をfloat比で大幅に削減でき、大規模インデックスの費用を抑えられます。QdrantやWeaviateなど主要なベクトルDBはint8・binaryの量子化に対応し、取り込み時に量子化して保存・検索できるため、「1536次元float」で作り込んでから容量に詰まるより、件数の見通しが立った段階で次元と型を先に決めておくほうが、あとからの作り直しを避けられます。ベクトル検索そのものの仕組みや、キーワード検索・セマンティック検索との関係はベクトル検索とセマンティック検索の違いを整理した記事が参考になります。

APIでの使い方(Python v2 SDK・embed-v4.0)

Embed 4はCohereのAPIから利用します。まず公式サイトでアカウントを作成してAPIキーを発行し、Python SDKの場合は v2 系のクライアント ClientV2 を使います。旧記事などで見かける cohere.Client()model="embed-4" を渡す書き方は現行仕様では動かないため、下記の形に置き換えます。

テキストの埋め込みを取得する

import cohere

co = cohere.ClientV2("YOUR_API_KEY")

res = co.embed(
    texts=["これはテスト文章です。"],
    model="embed-v4.0",
    input_type="search_document",
    output_dimension=1024,
    embedding_types=["float"],
)
print(res.embeddings.float[0][:5])

input_type は必須で、格納する文書側は search_document、検索クエリ側は search_query を指定します。この使い分けが、検索精度を左右します。分類なら classification、クラスタリングなら clustering を使います。

画像・PDFを含むマルチモーダル入力

画像を含める場合は texts ではなく inputs パラメータを使い、テキストと画像を1つの content 配列にまとめます(両者は排他で、同時指定はできません)。

inputs = [
    {
        "content": [
            {"type": "text", "text": "四半期の売上推移"},
            {"type": "image_url",
             "image_url": {"url": "data:image/png;base64,..."}},
        ]
    }
]

res = co.embed(
    inputs=inputs,
    model="embed-v4.0",
    input_type="search_document",
    embedding_types=["float"],
)

画像はBase64のデータURLで渡します。inputs方式では1リクエストあたり最大96画像・ペイロード20MBまでという上限があり、高解像度の画像は事前にリサイズしておくとエラーとコストを抑えられます。

コストを抑える実装の工夫

課金は入力トークン量に応じて発生します。同じ文書に何度も埋め込みをかけないよう、生成したベクトルはベクトルDBに保存し、更新があった文書だけ再計算する構成にします。複数の短文はバッチでまとめて送ると呼び出し回数を減らせます。保存段階で次元をあらかじめ落とす(256/512)と、DB容量と後続の検索コストの両方が下がります。

他社埋め込みモデルとの比較と選定基準

OpenAIのtext-embedding-3や各種オープンソースの埋め込みモデルと比べたとき、Embed 4の差別化点は「マルチモーダル」「128kの長コンテキスト」「次元と型を選べる柔軟性」の3つに集約されます。text-embedding-3-largeはテキスト埋め込みの精度が高い一方、画像やPDFはそのまま扱えません。

観点 Cohere Embed 4 OpenAI text-embedding-3-large
モダリティ テキスト+画像+PDF テキストのみ
最大コンテキスト 128kトークン 8,191トークン
出力次元 256/512/1024/1536 最大3072(短縮可)
MTEB 65.2 64.6
テキスト料金(100万トークン) 0.12ドル 0.13ドル

選定の指針ははっきりしています。図表やスキャン文書を含む社内文書を検索対象にしたい、長文をまとめて扱いたい、多言語が前提ならEmbed 4が有利です。逆に、英語中心の短いテキストだけを最小コストで埋め込みたい、既存のOpenAIスタックに揃えたい、といったケースではEmbed 4を選ぶ必然性は薄く、マルチモーダルの利点を使わないまま乗り換えても効果は限定的です。まずは自社データでPoCを行い、想定クエリでの検索精度と月額コストを実測してから決めるのが安全です。RAG基盤での使い分けを検討するなら、検索設計を見直すOmniRAGと従来型RAGの違いを解説した記事も併せて参考になります。

よくある質問

embed-v4.0の正式なモデル名は何ですか?

APIで指定する識別子は embed-v4.0 です。「Embed 4」「Cohere Embed v4」は同じモデルの通称で、「embed-4」という識別子は存在しません。

Cohere Embed 4は日本語に対応していますか?

対応しています。Embed 4は日本語を含む100以上の言語で学習されており、日本語の文書検索・分類・クラスタリングに利用できます。

料金はいくらですか?無料で試せますか?

Cohere API直販の公表値では、テキスト入力が100万トークンあたり0.12ドル、画像トークンが0.47ドルです。Cohereは検証用のトライアルキーを提供しています。料金や無料枠は変わりやすいため、本番導入前に公式の料金ページで最新の条件を確認してください。

1回でどのくらいの長さの文書を処理できますか?

最大128,000トークンまで受け付けます。Cohereはこれを約200ページの文書に相当すると説明しています。ただし1本のベクトルに詰め込むほど細部の検索粒度は落ちるため、用途に応じてチャンクサイズを設計します。

Cohere Embed v5は提供されていますか?

2026年7月時点で、Cohereの埋め込みモデルの最新世代は embed-v4.0 です。v5系は公開されていません。「cohere embed v5」で検索されることはありますが、現行で選べるのは v4.0 になります。

関連記事

資料請求

RELATED POSTS 関連記事