MinishLab/model2vec
Fast State-of-the-Art Static Embeddings
Model2Vec – 快速、小型的靜態嵌入模型
是什麼 – Model2Vec 是一個 Python 庫,可將任意 句子轉換器(一種為整個句子產生向量的神經網路模型)轉換為 靜態嵌入 模型。靜態模型為每個詞元(詞片/子詞)儲存固定向量,因此可做到 非常小(8–30 MB)且 極快(在 CPU 上最多快 500 倍),同時在標準基準測試套件上仍能提供最尖端的品質。
主要功能(如 README 所述)
| 功能 | 對你的意義 |
|---|---|
| 尺寸縮減 | 比原始句子轉換器小最多 50 倍(例如,一個 32M 參數模型在磁碟上變為約 30MB)。 |
| 速度 | 推理可在 CPU 上快數百倍,因為模型只需查找詞元向量,而無需執行完整變換器。 |
| 零資料蒸餾 | 無需訓練語料庫,僅需約 30 秒即可在 CPU 上從任何現有句子轉換器建立 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