Nomic Embed Text v2 MoE(ノミックエンベッドテキストブイツーエムオーイー)
Nomic AIが開発したMixture-of-Expertsアーキテクチャ採用のオープンソーステキスト埋め込みモデル。v1.5の後継として2025年に公開され、MoE構造により効率と精度を両立する。
Nomic Embed Text v2 MoE とは
Nomic Embed Text v2 MoEはNomic AIが2025年に公開したオープンソーステキスト埋め込みモデルで、Mixture-of-Experts(MoE)アーキテクチャを埋め込みモデルとして本格採用した先駆的な事例として注目された。前作のNomic Embed Text v1.5(137M)と比べ、アクティブパラメータを抑えながら高い精度を実現している。
MoEを埋め込みに使う意義
通常のTransformerベースの埋め込みモデルは全層を毎回通過するのに対し、MoEアーキテクチャはトークンごとに専門化したエキスパートFFN層のうち一部だけを選択実行する。これにより:
- 総パラメータ数 >> アクティブパラメータ数 — 全パラメータを格納するがフォワードパスでは一部のみ計算
- 推論速度の向上 — Dense同等サイズより計算量を削減できる
- 精度向上 — 各エキスパートが特定の言語・トピック・文体に特化できる
Nomic v2 MoE:
総パラメータ: ~475M
アクティブパラメータ: ~137M(Dense v1.5と同等計算量)
エキスパート数: 8(トップ2選択)
Matryoshka Embedding対応
Nomic Embed v2はMatryoshka Representation Learning(MRL)に対応しており、埋め込みベクトルの先頭N次元だけを使っても有効な表現を維持する。
| 次元数 | 用途例 |
|---|---|
| 768 | 最高精度(標準) |
| 512 | バランス |
| 256 | 高速検索・ANN向け |
| 128 | 超高速・メモリ節約 |
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("nomic-ai/nomic-embed-text-v2-moe", trust_remote_code=True)
# 768次元(フル精度)
embeddings = model.encode(
["search_document: 自作PCのCPUはCore i5かRyzen 5か"],
prompt_name="search_document"
)
# 256次元(Matryoshka削減)
embeddings_256 = embeddings[:, :256]
Nomic Embedはプレフィックス指定(search_document: / search_query: / clustering: / classification:)で用途別最適化が可能。
ライセンスと商用利用
Apache 2.0ライセンスで公開されており、商用プロジェクトへの無制限組み込みが可能。これはOpenAIやVoyage AIの商用APIとは対照的で、規模拡大時のコスト予測が容易。
MTEB評価
公開時のMTEB英語スコアはv1.5を上回り、同等計算コストのDenseモデルより高精度という結果が報告された。特にClusteringタスクとRetievalタスクでの改善が顕著。
ローカルOllama運用
# Ollamaでnomic-embed-text(v1.5系)を使う場合
ollama pull nomic-embed-text
ollama run nomic-embed-text "自作PCメモリ選び"
# v2 MoEはHugging Face経由でローカル推論
pip install sentence-transformers
競合との位置づけ
v2 MoEは「精度はvoyage-3級、コストはゼロ(ローカル)」という立ち位置を目指している。ただしサーバーへのデプロイが必要で、APIとしての手軽さはVoyage/OpenAIに劣る。GPUなしのCPU推論も可能だが速度は低下する。
jisaku.comでの活用シナリオ
Nomic Embed Text v2 MoEはjisaku.comのローカルRAG環境(Qdrant + macmini)での文書埋め込み候補として評価可能。Apache 2.0ライセンスのためコスト懸念なく本番投入でき、Matryoshka対応により検索速度と精度のバランスを動的調整できる。