Jina Embeddings v3(ジーナエンベディングスブイスリー)
Jina AI 社が2024年に公開した多言語テキスト埋め込みモデル。570Mパラメータながらタスク別 LoRA アダプタで検索・分類・クラスタリング・テキストマッチングを高精度に切り替え、最大8,192トークン入力に対応するオープンソースモデル。
Jina Embeddings v3とは
Jina Embeddings v3は、ドイツ・ベルリンに本社を置くJina AI社が2024年9月に公開した第3世代のテキスト埋め込みモデルである。最大の特長は「タスク別LoRAアダプタ」で、1つの基盤モデルにタスクごとの軽量アダプタ(LoRA)を差し替えることで、検索・分類・クラスタリング等のタスクに特化した埋め込みを生成する。570Mパラメータと軽量ながら、MTEB複数タスクで7BクラスのE5-Mistralに迫るスコアを記録。
主な特徴
- タスク別LoRAアダプタ: 5種類のLoRAアダプタを内蔵し、推論時にタスクに応じて切り替え
retrieval.query: 検索クエリの埋め込みretrieval.passage: 検索対象ドキュメントの埋め込みseparation: テキスト分類classification: 感情分析・カテゴリ分類text-matching: 意味的類似度・パラフレーズ検出
- 570Mパラメータ: XLM-RoBERTa-largeベース。7B LLMモデルの1/12の重さ
- 最大8,192トークン入力: Long-range dependencies に対応
- Matryoshka Representation Learning: 32/64/128/256/512/1,024次元から選択可能。ストレージとのトレードオフを柔軟に調整
- 89言語対応: 多言語対応で日本語・中国語・韓国語を含む
- ライセンス: CC BY-NC 4.0(非商用)、商用利用はJina AIとの個別契約
- API提供あり: jina.ai の API経由でも利用可能($0.02/1M tokens)
LoRA アダプタの仕組み
従来の埋め込みモデルは1つの重みで全タスクに対応するが、Jina v3は基盤モデル(540M)+ タスク別LoRAアダプタ(各30M、ランク4-16)という構成。LoRAはモデル全体の5%程度の追加パラメータで、切り替えのオーバーヘッドはほぼゼロ。
from transformers import AutoModel
model = AutoModel.from_pretrained('jinaai/jina-embeddings-v3', trust_remote_code=True)
# タスクに応じてアダプタを指定
query_emb = model.encode(["検索クエリ"], task="retrieval.query")
doc_emb = model.encode(["検索対象文書"], task="retrieval.passage")
class_emb = model.encode(["分類対象テキスト"], task="classification")
ベンチマーク比較
| ベンチマーク | Jina v3 | BGE-M3 | E5-Mistral | GTE-Qwen2-1.5B |
|---|---|---|---|---|
| MTEB Retrieval | 55.8 | 58.4 | 56.9 | 57.8 |
| MTEB Classification | 86.2 | 79.1 | 82.4 | 83.5 |
| MTEB STS | 85.8 | 82.6 | 88.5 | 84.1 |
| パラメータ | 570M | 568M | 7.1B | 1.5B |
| VRAM(FP16) | 1.1GB | 1.1GB | 14.2GB | 3.0GB |
Classificationタスクで最高クラスのスコアを記録。LoRAアダプタによるタスク特化が効いている。
BGE-M3 との比較
| 観点 | Jina v3 | BGE-M3 |
|---|---|---|
| アプローチ | LoRAアダプタ切り替え | Dense+Sparse+ColBERT |
| 検索精度 | やや劣る | やや優れる |
| 分類精度 | 優れる | 劣る |
| 次元選択 | 32-1024(Matryoshka) | 1024固定 |
| ライセンス | CC BY-NC 4.0 | MIT |
| 商用利用 | 要個別契約 | 自由 |
検索メインならBGE-M3、検索+分類の両方が必要ならJina v3が適している。
選び方・注意点
- ライセンスに注意: CC BY-NC 4.0は非商用のみ。商用利用にはJina AIとのライセンス契約が必要(API経由での利用は商用OK)
- LoRAの利点: 1モデルで5タスクをカバーするため、デプロイ管理がシンプル。タスクごとに別モデルをロードする必要がない
- 軽量: BGE-M3と同等の570Mパラメータで、1.1GB VRAMで動作。RTX 3060でも余裕
- Matryoshkaの柔軟性: 32次元(超軽量)から1,024次元(高精度)まで選択可能。エッジデバイスでの利用にも適する
- API利用推奨: 商用ユースケースではAPI経由($0.02/1M tokens)が最も手軽。Voyage-3の1/3の価格
よくある質問(FAQ)
Q1: Jina v3はローカルで商用利用できる? A: CC BY-NC 4.0ライセンスのため、ローカルでの商用利用は不可。商用ならAPI利用($0.02/1M tokens)か、Jina AIとの個別ライセンス契約が必要。非商用(研究・個人プロジェクト)なら自由に利用可能。
Q2: LoRAアダプタを自分で追加・カスタマイズできる? A: 技術的には可能だが、公式にはサポートされていない。自社ドメインに特化したLoRAを追加学習するケースは研究レベルで報告されている。実用的にはJina AIのFine-tuning APIを利用する方が安全。
Q3: Jina v2からv3への移行コストは? A: v2(512/1024次元)とv3(Matryoshka 32-1024次元)は互換性がない。埋め込みの再計算が必要。v3ではタスク別アダプタの指定が追加されるため、API呼び出しコードの修正も必要。
まとめ
- Jina Embeddings v3はタスク別LoRAアダプタで検索・分類・STSを1モデルで切り替えるユニーク設計
- 570Mパラメータ(1.1GB VRAM)と軽量ながら、分類タスクで最高クラスの性能
- Matryoshka対応で32-1024次元から選択可能、エッジデバイスでも利用可能
- 商用利用はAPI経由かライセンス契約が必要(CC BY-NC 4.0)