E5-Mistral(E5-Mistral-7B-Instruct)とは、MicrosoftがMistral 7Bをベースに開発したLLMベースの埋め込みモデルである。デコーダアーキテクチャの大規模言語モデルを埋め込みタスクに転用し、MTEBベンチマークで最高水準のスコアを記録した。合成データによる学習手法でも注目を集めている。
E5-Mistral-7B-Instructは、Microsoftが2024年に発表したLLMベースの埋め込みモデルである。従来のEncoder-onlyモデル(BERTベース)ではなく、Mistral 7Bというデコーダ(Decoder-only)アーキテクチャのLLMをファインチューニングして埋め込みモデルに転用した点が最大の特徴である。
E5シリーズ(EmbEddings from bidirEctional Encoder rEpresentations)はMicrosoftが2022年から開発を続けるモデルファミリーで、E5-base、E5-large、multilingual-e5-largeなどのEncoder-onlyモデルを経て、E5-Mistralでデコーダベースへと進化した。この転換により、LLMの豊富な世界知識と指示追従能力を埋め込みタスクに活用できるようになった。
通常のデコーダモデルは次トークン予測のために因果マスク(causal mask)を使用し、過去のトークンのみを参照する。E5-Mistralでは、入力テキストの最終トークン([EOS])の隠れ状態を埋め込みベクトルとして抽出する。この最終トークンは入力全体の情報を集約しているため、高品質な文表現となる。
| 特性 | E5-Mistral | E5-large (Encoder) | BGE-M3 |
|---|---|---|---|
| ベースモデル | Mistral 7B | BERT-large | XLM-RoBERTa-large |
| パラメータ数 | 7.1B | 335M | 568M |
| 出力次元 | 4,096 | 1,024 | 1,024 |
| 最大入力 | 32,768トークン | 512トークン | 8,192トークン |
| 推論速度 | 遅い(GPU必須) |
| 高速 |
| 中程度 |
E5-Mistralはタスクごとに異なる指示プロンプトを前置する設計を採用している。
Instruct: Given a web search query, retrieve relevant passages that answer the query
Query: LLMの量子化とは何か
この指示によりモデルは検索・分類・クラスタリングなど異なるタスクの意図を理解し、タスクに最適化されたベクトルを生成する。
E5-Mistralの学習で最も革新的な点は、GPT-4を使って大規模な合成学習データを生成した手法である。具体的には以下のパイプラインで150Kの高品質なペアデータを生成している。
この手法により、人間がアノテーションした大規模データセットなしでも、MTEB全体で競争力のあるスコアを達成できることを示した。
| ベンチマーク | E5-Mistral | text-embedding-3-large | BGE-M3 | GTE-Qwen2-7B |
|---|---|---|---|---|
| MTEB Overall | 66.6 | 64.6 | 66.1 | 67.2 |
| MTEB Retrieval | 56.9 | 55.4 | 55.8 | 57.1 |
| MTEB Classification | 77.6 | 75.4 | 74.2 | 77.9 |
| MTEB Clustering | 52.8 | 49.7 | 50.1 | 53.4 |
| 推論コスト (相対) | 10x | 1x (API) | 1.5x | 10x |
MTEBスコアはトップクラスだが、7Bパラメータのため推論コストが高い。本番環境ではGPU(最低16GB VRAM)が必須で、A100 40GBで約200文/秒のスループットとなる。
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('intfloat/e5-mistral-7b-instruct')
# バッチエンコーディング
sentences = [
'Instruct: Retrieve relevant documents\nQuery: 量子化の精度劣化',
'Instruct: Retrieve relevant documents\nQuery: KVキャッシュの最適化'
]
embeddings = model.encode(sentences, batch_size=32, normalize_embeddings=True)
AWQやGPTQ量子化を適用することで、VRAM使用量を16GB→6GBに削減できる。INT8量子化ではMTEBスコアの低下は0.5ポイント以内に収まることが報告されている。
4,096次元のベクトルは、PCAやMatryoshka手法で1,024次元に削減可能である。ストレージは75%削減され、検索速度は約4倍向上する。ただしMTEBスコアは1-3ポイント低下する。
| モデル | 年 | ベース | パラメータ | MTEB平均 |
|---|---|---|---|---|
| E5-base-v2 | 2023 | BERT-base | 110M | 57.7 |
| E5-large-v2 | 2023 | BERT-large | 335M | 61.5 |
| multilingual-e5-large | 2023 | XLM-R-large | 560M | 61.5 |
| E5-Mistral-7B | 2024 | Mistral 7B | 7.1B | 66.6 |
精度面ではE5-Mistralが優れるが、推論コスト・速度・デプロイ容易性ではEncoder-onlyモデルが有利である。リアルタイム検索(レイテンシ50ms以下)にはE5-base-v2やBGE-M3のほうが適しており、オフラインのバッチインデックス構築やアカデミック用途ではE5-Mistralの精度が活きる。
GTE-Qwen2-7BはAlibabaがQwen2 7Bベースで開発した類似モデルで、MTEB全体スコアはE5-Mistralとほぼ同等(67.2 vs 66.6)である。GTE-Qwen2は中国語タスクに強く、E5-Mistralは英語タスクに強い傾向がある。日本語タスクでは両者とも直接的な学習データが限られるため、BGE-M3やmultilingual-e5-largeが安定した選択肢となる。
GPT-4による合成データ生成パイプラインは、Microsoftが論文で手法を公開しており再現可能である。自社ドメインのタスク定義と少数のシードデータを用意し、GPT-4でペアデータを生成→フィルタリング→ファインチューニングの流れで、ドメイン特化の埋め込みモデルを構築できる。ただしGPT-4 APIのコスト(150Kペア生成で約$200-500)と品質管理の手間が発生する。