🔎使用 Unsloth 微调嵌入模型指南
了解如何使用 Unsloth 轻松微调嵌入模型。
微调嵌入模型可以在特定任务上大幅提升检索和 RAG 性能。它将模型的向量与您的领域以及对用例重要的“相似性”类型对齐,从而改善基于您数据的搜索、RAG、聚类和推荐。
示例:如果您只是将标题都标记为“科技”,那么“Google 推出 Pixel 10”和“Qwen 发布 Qwen3”这两个标题可能会被嵌入为相似;但在进行语义搜索时,它们并不相似,因为它们关于不同的事物。微调可帮助模型为您的用例形成“正确”的相似性,减少错误并提升结果。
Unsloth 现在支持训练嵌入, 分类器, BERT, 重排器 模型 约 1.8-3.3 倍更快 比其他 Flash Attention 2 实现节省 20% 内存并拥有 2 倍更长的上下文——无精度下降。EmbeddingGemma-300M 仅在 3GB 显存上可运行。您可以在任何地方使用您训练好的 模型:transformers、LangChain、Ollama、vLLM、llama.cpp 等。
Unsloth 使用 SentenceTransformers 来支持 Qwen3-Embedding、BERT 等兼容模型。 即使没有 notebook 或上传,也依然受支持。
我们创建了免费的微调笔记本,涵盖 3 个主要用例:
All-MiniLM-L6-v2:为语义搜索、检索和聚类生成紧凑的、领域特定的句子嵌入,并在您的数据上进行调优。tomaarsen/miriad-4.4M-split:为高质量的医学语义搜索和 RAG 对医学问答与生物医学论文进行嵌入。electroglyph/technical:更好地捕捉技术文本(文档、规格和工程讨论)中的含义和语义相似性。
您可以在 我们的模型集合这里.
查看我们上传的其余模型, 非常感谢 Unsloth 贡献者electroglyph ,其工作对支持此功能意义重大。您可以在 Hugging Face 上查看 electroglyph 的自定义模型.
此处
🦥 Unsloth 功能
LoRA/QLoRA 或完整微调用于嵌入,无需重写您的流水线
对仅编码器的支持最佳SentenceTransformer模型(带有)modules.json
即便在回退路径下,交叉编码器模型也被确认可正常训练
此版本还支持
transformers v5 模型(带有 对没有 SentenceTransformers 的模型有有限支持(我们会自动分配默认
池化模块)。如果您在做一些自定义(自定义头、非标准池化),请仔细检查诸如池化嵌入行为之类的输出。 一些模型需要像 MPNet 或 DistilBERT 这样的自定义补充,我们通过在 transformers
模型中修补梯度检查点来实现了这些支持。
🛠️ 微调工作流 新的微调流程以.
FastSentenceTransformer
为中心主要保存/推送方法: save_pretrained() 将LoRA 适配器保存到本地文件夹 save_pretrained_merged() 将保存合并后的模型 save_pretrained() push_to_hub()将推送到 Hugging Face save_pretrained_merged() push_to_hub()
push_to_hub_merged() 推送
有一个非常重要的细节:用于推理的加载需要 for_inference=True from_pretrained():
类似于 Lacker 的其他快速类,有 一个例外 要加载用于
新的微调流程以推理 的模型 使用推送
,您
model = FastSentenceTransformer.from_pretrained(
for_inference=True,
保存对于 Hugging Face 授权,如果您在调用 hub 方法之前在同一虚拟环境中运行:将hf auth login.
那么:
并且
不需要 token 参数
# 3. 计算相似度,例如通过内置的相似度辅助函数
similarity = model.similarity(query_embedding, document_embedding) print(similarity) 📊 Unsloth 基准测试
Unsloth 的优势包括嵌入微调的速度!我们显示在各种嵌入模型以及从 128 到 2048 及更长的不同序列长度上我们始终 3GB 显存 快 1.8 到 3.3 倍
EmbeddingGemma-300M QLoRA 仅在 SentenceTransformers 上运行,而 LoRA 在 6GB 显存上可运行。 下面是我们与

EmbeddingGemma-300M QLoRA 仅在 SentenceTransformers + Flash Attention 2 (FA2) 的热力图对比,针对 4bit QLoRA。 对于 4bit QLoRA,Unsloth 比较为 1.8x 到 2.6x 更快:

+ Flash Attention 2 (FA2) 针对 16bit LoRA。
对于 16bit LoRA,Unsloth 比较为 1.2x 到 3.3x 更快:
sentence-transformers/all-mpnet-base-v2 Snowflake/snowflake-arctic-embed-l-v2.0 大多数 常见模型 已被支持。如果有您想要的仅编码器模型尚未支持,欢迎在 GitHub 上提交一条
最后更新于
这有帮助吗?

