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