RAG遇到中文召回差,Embedding模型选型与调优

RAG 项目里中文召回差,最直接的原因通常是三条:用的 Embedding 模型对中文不友好、文档切成小块时机不对、只靠向量相似度做排序。
解决路径也很清晰:换一个中文语料优化的嵌入模型,调整文本切分布局,再引入重排序环节。
这篇教程面向零基础用户,给出了每一步可照做的选型与调优操作,并在最后提供命中率验证方法,让你改完能确认效果。

找出中文召回差的真正位置

先别急着换模型。
把当前检索结果打印出来,观察返回的文档片段和问题是否语义相关。
常见现象有三类:问题词和文档词完全不同但意思接近,说明模型语义理解不行;
返回片段主题对但细节偏,说明切分块过大;
检索结果不稳定,说明相似度阈值或 TopK 设置不适合。

中文 Embedding 模型选型要点

选型只看三点:训练语料是否以中文为主、文本长度支持是否够用、能否在本机直接加载。
常用选项中,BAAI/bge-large-zh、m3e-base 都是中文场景常见的开源模型,具体版本和训练方式以模型仓库说明为准。
以 bge 为例,加载方式:

from sentence_transformers import SentenceTransformer
model = SentenceTransformer("BAAI/bge-large-zh")
vector = model.encode("我需要优化中文检索")

如果服务器显存只有 8G 左右,优先选 bge-base-zh 或更小的 m3e-small。
这里要特别注意的是:更换模型后,向量库中已有数据必须重新编码,否则新旧向量无法比较。

调优核心:切分粒度与检索重排

换模型之外,文本切分对中文召回影响巨大。
中文建议按 300-500 字切块,块之间保留 30-80 字重叠,防止语义断句。
代码示例:

from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
    chunk_size=400,
    chunk_overlap=50
)

检索阶段不要只信向量相似度。
先用向量检索取 top50,再用重排序模型对 query 和候选文档重新打分,取 top5。
如果不想引入额外模型,也可以用 BM25 和向量分数做加权合并,得到混合召回结果。
简单可用的重排代码如下:

from bge_reranker import Reranker
reranker = Reranker("BAAI/bge-reranker-base")
scores = reranker.compute_score([(query, doc) for doc in candidates])

避坑:这些改动越调越差

相似度阈值不要固定用 0.5。
不同模型输出的向量分布差异很大,建议用验证集看命中的分数,再定阈值。不要高频微调 Embedding 模型。
数据集只有几百条时,微调通常不如调切分和重排效果好。每次只改一个变量。
同时改模型和切分长度,出了问题很难定位。

效果验证:用命中率说话

准备 30 个中文问题,每个问题标出正确的文档片段。
对每个问题执行检索,看 top5 里是否包含正确答案。
统计命中率:从 40% 提升到 70%,说明调整有效。
验证脚本的核心代码思路:

hit_count = 0
for q, gold_doc in test_set:
    results = search(q, top_k=5)
    if any(doc.id == gold_doc.id for doc in results):
        hit_count += 1
print(f"top5命中率: {hit_count / len(test_set):.2%}")

如果命中率没变化,回查切分后文本是否有内容被截断,或向量库是否混入了旧模型的向量。

最后补充一句:RAG 中文召回调优不是一次到位,建议按“模型选型→切分调整→重排→命中率验证”的顺序循环,每次记录数据。
具体模型版本和参数以官方文档为准。

分享到:
上一篇
Agent调用数据库操作限制,禁止drop/alter高危
下一篇
Agent网络访问控制,白名单域名
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意