MinishLab/model2vec
Fast State-of-the-Art Static Embeddings
Model2Vec – 高速・小型の静的埋め込みモデル
何であるか – Model2Vecは、任意の文変換器(文全体に対してベクトルを生成するニューラルモデル)を静的埋め込みモデルに変換するPythonライブラリです。静的モデルは各トークン(単語/サブワード)に対して固定されたベクトルを保持するため、非常に小さく(8〜30 MB)、非常に高速(CPU上で最大500倍速)でありながら、標準ベンチマークスイートで最先端の品質を維持できます。
主な機能(READMEに記載)
| 機能 | あなたにとっての意味 |
|---|---|
| サイズ削減 | 元の文変換器と比べて最大50倍小さくなる(例:32Mパラメータモデルがディスク上では約30MBに)。 |
| 高速性 | モデルはトークンベクトルの検索のみを行うため、フルトランスフォーマーを実行する必要がなく、CPU上で数百倍高速に推論可能。 |
| ゼロデータの蒸留 | トレーニングコーパスを必要とせず、CPU上で約30秒で任意の既存文変換器からModel2Vecモデルを作成可能。 |
| 分類用の微調整 | 蒸留後、静的ベクトルの上に軽量な分類器をさらに訓練してカスタムタスクに適用可能。 |
| 軽量な依存関係 | コアパッケージはnumpyのみに依存;オプションの拡張で蒸留(model2vec[distill])や学習(model2vec[train])が可能。 |
| 統合 | Sentence-Transformers や LangChain など人気エコシステムと即時利用可能。モデルはHugging Face Hubにホストされており、from_pretrainedで簡単に読み込み可能。 |
| オープンソース・MITライセンス | 商用プロジェクトにも自由に使用・改変・埋め込み可能。 |
一般的な利用シーン
- 検索 / RAG – 類似性検索インデックス構築のための高速なトークンレベル埋め込み。
- テキスト分類 – 静的ベクトルの上に軽量な分類器を訓練。
- クラスタリング / 可視化 – 大規模コーパスの埋め込みを低コストで計算可能。
- リソース制限環境へのデプロイ – メモリ/CPUが限られたエッジデバイスやサーバーに埋め込み可能。
クイックスタート(READMEから)
# コアライブラリのインストール(numpyのみ必須)
pip install model2vec
from model2vec import StaticModel
# Hugging Faceから事前に蒸留されたモデルを読み込み
model = StaticModel.from_pretrained("minishlab/potion-base-32M")
# 文の埋め込みを取得
emb = model.encode(["It's dangerous to go alone!", "It's a secret to everybody."])
# またはトークンレベルの埋め込みを取得
token_emb = model.encode_as_sequence(["It's dangerous to go alone!"])
独自モデルの蒸留(オプション、distill拡張が必要):
pip install model2vec[distill]
from model2vec.distill import distill
m2v = distill(model_name="BAAI/bge-base-en-v1.5") # CPUで約30秒
m2v.save_pretrained("my_m2v_model")
分類用の微調整(train拡張が必要):
pip install model2vec[train]
from model2vec.train import StaticModelForClassification
from datasets import load_dataset
clf = StaticModelForClassification.from_pretrained("minishlab/potion-base-32M")
ds = load_dataset("setfit/subj")
clf.fit(ds["train"]["text"], ds["train"]["label"])
report = clf.evaluate(ds["test"]["text"], ds["test"]["label"])
モデルカタログ(抜粋)
| モデル | 言語 | 基盤となる文変換器 | パラメータ数 | 一般的なタスク |
|---|---|---|---|---|
potion-base-32M |
英語 | bge-base-en-v1.5 |
32M | 一般用途 |
potion-multilingual-128M |
多言語 | bge-m3 |
128M | 一般用途 |
potion-retrieval-32M |
英語 | bge-base-en-v1.5 |
32M | 検索 |
potion-base-8M |
英語 | bge-base-en-v1.5 |
7.5M | 一般用途(最小) |
potion-code-16M-v2 |
コード | CodeRankEmbed |
16M | コード埋め込み |
すべてのモデルはHugging Face Hubにホストされており、StaticModel.from_pretrainedで読み込み可能。 |
ドキュメントとコミュニティ
- 完全なドキュメント – https://minish.ai/packages/model2vec/introduction
- 推論、蒸留、学習、統合 – ドキュメント内に個別セクションあり。
- Discordコミュニティ – https://discord.gg/4BDPR5nmtK
- カバレッジ – CIバッジでCodecovによるテストカバレッジを表示;ダウンロード数はpepy.techで確認可能。
ライセンスと引用
- ライセンス – MIT(許容性が高く、商用利用に適している)。
- 引用 – 学術利用向けにBibTeXエントリを提供。
まとめ
Model2Vecは、GloVeのような古典的な静的埋め込みの速度とサイズの利点を維持しながら、現代のトランスフォーマーに基づく文エンコーダの品質を引き継いでいます。検索拡張生成、デバイス内NLP、大規模インデックス化などのシナリオで、高速かつ低メモリなテキスト表現が必要なすべての人にとって実用的なツールです。
関連
- プロジェクト
- Dispatch
- Dispatch
- Dispatch
- Dispatch