Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions app/docs/CommunityShare/RAG/embedding.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: '嵌入模型微调入门知识'
description: ""
date: "2025-09-22"
tags:
- RAG
---

嵌入模型可能有些人都没有听过,也会疑惑现有的大模型已经足够强了,有必要再使用专门的嵌入模型嘛? 但是大家可以思考几个问题,一是大模型确实很强,但是参数量也很大,部署需要的硬件要求会比较高,一旦部署门槛高了,那么应用就会受限,而且如果是调用api,持续产生的费用又是一个问题。第二个问题是现有的大模型可能泛化能力很强,但是针对特殊领域的特定任务可能效果还不如经过微调的小的嵌入模型,比如企业把 RAG 系统应用到金融合规、内部知识库或技术文档问答时,你会感觉通用嵌入模型虽然好用,但在面对专业语料时,常常表现不佳。
这也是为什么越来越多人开始关注微调,让嵌入模型更好地理解自家数据。而且试想一下如果能掌握一套领域自适应的的嵌入模型微调方法,未来就可以应用到各行各业,每家公司都可以专门微调一个嵌入模型,应用场景还是很广的。

## 为什么要微调

微调的价值首先体现在任务内表现。拿金融或医疗场景举例,通用嵌入常常无法精准捕捉领域术语或上下文,而微调后的模型则能显著提升检索效果,并把改进传导到最终的问答质量。不过,这并不意味着微调是万能解。很多性能问题其实出在别的环节:有的是查询本质需要关键词匹配,有的是分块方式不合理,还有的是模型本身维度过小。只有当这些问题都排查过,且瓶颈确实是语义理解缺失时,微调才值得投入。

更有意思的是,微调并不一定意味着要“更大更强”。实践中,小模型配合任务内微调,往往能达到甚至超过大型商用模型的效果,同时延迟更低、成本更可控。最后别忘了一个基本事实:数据才是决定嵌入上限的关键,没数据或者数据质量差,再好的微调也带不来奇迹。

## 近期创新点

在近期的博客和论文里,有几个创新点尤其值得关注。比如双LLM合成-评测链,是一个不错的思路:用一个大模型根据文档生成多样化的查询,再用另一个大模型当“裁判”,把质量差的样本过滤掉。这样几乎不需要人工标注,就能得到高质量的训练对。

再看微调和重排的对比。微调的好处是提升相关性而且不增加时延,但缺点是要把整个库重嵌;重排恰好反过来,免重嵌,但会增加调用和延迟。最佳实践并不是二选一,而是根据场景做组合:核心库稳定就用微调,高频更新的部分用重排兜底。

还有一个经常被忽略的点——小模型的潜力。只要配合合适的微调,小模型完全能和大模型同台竞技。这背后也离不开高质量合成数据的支持,比如通过复述、多样性控制和难负例挖掘,构建出规模更大、覆盖更全的训练集,显著提升微调效果。有学者提到过调嵌入性能的上限往往受制于训练数据的覆盖度和质量,而不是模型参数规模。这也就进一步佐证了高质量合成数据集的重要性。再往前走,多任务和指令化训练正成为趋势,把不同域的信号整合进一个小模型,让它具备更强的跨域泛化能力。

关于数据集的处理,可以关注一下 [OpenDCAI/DataFlow](https://github.com/OpenDCAI/DataFlow)。DataFlow 是一个数据中心化 AI 系统,专为微调和 RAG 场景打造,它能从嘈杂的原始数据(如 PDF、网页、低质量 QA)中自动完成解析、生成、清洗和质量评估,通过模块化管线高效构建高质量训练集,从而显著降低微调数据准备的门槛,并在医疗、金融、法律等领域验证了能有效提升模型表现。

## 实践要点

如果真的要落地微调,还是得先有一条清晰的决策路径。第一步是诊断,看问题是不是出在语义理解。如果答案是肯定的,才进入微调。第二步是数据构造。常见做法是先从域内文档生成多样化的查询,再经过大模型质量过滤,构造成正负对,尤其要包含难负例,最后记得去重,避免数据泄漏。

训练阶段通常采用对比学习,选择多负对比、三元组或余弦嵌入损失,结合小规模的超参搜索,把学习率、batch、epoch 和池化方式等调到合理区间。评估阶段不能只盯着 Recall@k、MRR 这些检索指标,还得看端到端问答的准确率和依据命中率,同时把延迟和成本放到决策里。上线的时候,可以先在核心稳态库里应用微调,获得稳定的高相关性,再在高频更新区域配合重排或混合检索,形成一个相对稳健的组合方案。

## 总结

微调嵌入模型的价值,不在于追求某个通用的“最优模型”,而在于让模型真正懂你的语料和任务。它是一套系统工程:先诊断,确认瓶颈;再微调,结合高质量数据和系统化实验;最后通过重排形成闭环,让系统稳定可用。

对企业来说,最可行的路线是:核心稳态数据微调,换来低延迟高相关;高频更新数据用重排兜底,保证灵活性;再通过合成数据和多任务训练,持续扩展模型边界。最终的目标,不是单点最优,而是让整个 RAG 系统在性能、时延和成本上达到动态平衡。

## 参考文献
ACM Digital Library. Exploring Parameter-Efficient Fine-Tuning Techniques for Code Models.
https://dl.acm.org/doi/10.1145/3714461

Databricks. Improving Retrieval and RAG with Embedding Model Finetuning.
https://www.databricks.com/blog/improving-retrieval-and-rag-embedding-model-finetuning

NAACL 2025. Little Giants: Synthesizing High-Quality Embedding Data at Scale.
https://aclanthology.org/2025.naacl-long.64/

Q. Zhou et al. Embedding Technical Report.

arXiv. Multi-task Retriever Fine-tuning for Domain-specific and General-purpose Tasks.
https://arxiv.org/abs/2501.04652

Weaviate. Why, When and How to Fine-Tune a Custom Embedding Model.
https://weaviate.io/blog/fine-tune-embedding-model