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-TransformersLangChain,模型托管在 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 加载。

文档与社区


许可与引用

  • 许可证 – MIT(宽松,适合商业使用)。
  • 引用 – 提供 BibTeX 条目用于学术用途。

总结

Model2Vec 在保留现代基于变换器的句子编码器质量的同时,兼具经典静态嵌入(如 GloVe)的速度和尺寸优势。它是任何需要快速、低内存文本表示的人的实用工具,尤其适用于检索增强生成、设备端 NLP 或大规模索引场景。

相关