E5-Mistral-7B-Instruct(イーファイブミストラルセブンビーインストラクト)
MicrosoftがMistral-7B-Instructをベースに微調整した高性能テキスト埋め込みモデル。最大32,768トークンの超長文に対応し、インストラクション(タスク指示)を先頭に付加することでドメイン特化の埋め込みを生成できる特徴を持つ。
E5-Mistral-7B-Instructは、Microsoftの研究チームが2024年に発表したテキスト埋め込みモデルだ。7Bパラメータ規模のMistral-7B-Instructを「埋め込みモデル」として再利用するアプローチで、Instruction-Following能力を埋め込み生成に活用するという新しいパラダイムを示した。
技術的特徴
LLMを埋め込みに転用するアーキテクチャ
従来の埋め込みモデル(BERT系)はEncoder専用モデルだった。E5-Mistral-7BはDecoder-only LLM(Mistral-7B)を最終トークンのhidden stateをプーリングして埋め込みベクトルとして使う方式を採用している。
- モデルサイズ: 7Bパラメータ(約14GB FP16)
- 最大入力長: 32,768トークン(BGE-M3の4倍)
- 出力次元: 4,096次元
- HuggingFace:
intfloat/e5-mistral-7b-instruct
スペック比較
| モデル | パラメータ数 | 最大トークン | 次元 | 特徴 |
|---|---|---|---|---|
| E5-Mistral-7B | 7B | 32,768 | 4,096 | 超長文・Instruction |
| BGE-M3 | 570M | 8,192 | 1,024 | 軽量・3方式統合 |
| Voyage-3 | 非公開 | 32,000 | 1,024 | 商用高精度 |
| text-embedding-3-large | 非公開 | 8,191 | 3,072 | OpenAI標準 |
| Qwen3-Embedding-8B | 8B | 32,768 | 4,096 | 最新・多言語 |
Instructionプレフィックスの使い方
E5-Mistral-7Bの最大の特徴はタスク指示を先頭に付加することで埋め込みの質が向上する点だ。
from transformers import AutoTokenizer, AutoModel
import torch
model_name = "intfloat/e5-mistral-7b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name, torch_dtype=torch.float16)
def get_embedding(text, instruction=""):
if instruction:
text = f"Instruct: {instruction}\nQuery: {text}"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=32768)
with torch.no_grad():
outputs = model(**inputs)
return outputs.last_hidden_state[:, -1, :].squeeze()
emb_query = get_embedding(
"RAGシステムの構築方法",
instruction="Given a question, retrieve passages that answer the question"
)
実用上の制約
大きな能力を持つ反面、実運用での制約も明確だ。
- 推論コスト: 7BパラメータのためVRAM 16GB以上が必要
- 速度: BGE-M3比で約10倍遅い(単文エンコード1秒vs0.1秒)
- 量子化: GGUF量子化版が存在するが精度低下あり
- コスト感: 大量バッチ処理にはGPUサーバーが必要
2025年の位置づけ
2025年時点でQwen3-Embedding-8B(Alibaba)がE5-Mistral-7Bと同等以上の精度を持ちつつ多言語対応も強化したため、新規採用では競合する。ただしMicrosoft Azure上でのホスティングやExistingのMistralエコシステムとの統合では依然として有力な選択肢だ。
よくある質問
Q1: E5-Mistral-7BとE5-large-v2の違いは? E5-large-v2はBERT系(340M)の軽量モデル。E5-Mistral-7Bは7BのDecoder-only LLMベースで長文・複雑なインストラクション対応が大きく異なる。用途と計算コストに応じて選択する。
Q2: RTX 3090(24GB)で動く? 動く。FP16でギリギリ収まる(約14GB VRAM使用)。バッチサイズは1〜2が現実的。
Q3: 日本語の精度は? Mistral-7Bが多言語対応モデルだが日本語は学習量が少なく、日本語埋め込みではBGE-M3の方が実績がある。
まとめ
- Mistral-7BをベースにMicrosoftが開発した埋め込みモデル
- 32,768トークンの超長文に対応
- Instructionプレフィックスでタスク特化埋め込みを生成
- 高精度だがVRAM 16GB以上が必要
- HuggingFace:
intfloat/e5-mistral-7b-instruct