全部版块 我的主页
论坛 经济学人 二区 教师之家与经管教育
355 0
2025-12-05

一、明确学习目标:理解现代智能搜索与RAG系统的工作机制

我们首先要搞清楚的是:当我们在使用如ChatGPT这类大模型提问时,它为何能从海量信息中迅速提取出最相关的答案?其背后依赖的核心技术主要有两个步骤:

  • 第一步:快速召回可能相关的内容(即检索/召回)
  • 第二步:从中精准筛选最优结果(即重排序/精排)

这就像你在百度搜索“如何做红烧肉”,系统会先返回100个相关菜谱,然后你逐个浏览,最终选出最可信、最详细的那一份。整个过程分为“广撒网”和“精挑细选”两个阶段。

二、“两步走”策略详解:从粗筛到精排

第一阶段:大海捞针——检索(Recall)

  • 目标:在百万级文档中快速锁定前100个潜在相关项
  • 特点:速度极快,强调效率
  • 核心技术:Embedding模型(也称“双塔模型”)

第二阶段:优中选优——重排序(Reranking)

  • 目标:对初步筛选出的100个候选结果进行深度评估,选出最匹配的前10个
  • 特点:精度极高,强调准确性
  • 核心技术:Rerank模型(又称“交互式模型”)

形象比喻:找对象的过程与此类似。首先根据年龄、城市、学历等硬性条件筛选出100位候选人(检索),再通过深入交流了解性格、三观等细节,最终确定最适合的3人(重排序)。

三、任务类型的区分:对称性 vs 非对称性

对称性任务

  • 特征:两句话可以互换位置而不影响语义相似度
  • 示例
    • “我的快递到哪了?” 与 “查一下我的包裹状态”
    • “今天天气怎么样?” 与 “天气情况如何?”
  • 判断标准:A对B的相似度等于B对A的相似度

非对称性任务

  • 特征:查询简短,文档详尽;二者角色不可互换
  • 示例
    • 查询:“感冒吃什么药?”(简洁直接)
    • 文档:“感冒时建议服用板蓝根、感冒灵等中成药,同时多喝水、多休息……”(内容丰富)
  • 关键点:问题和文档不具备可交换性

在RAG架构中,非对称性任务是检索阶段的核心挑战——即如何利用一个简短的问题,从大量长文本中找出最相关的资料。

四、Embedding模型:高效的信息筛选器

什么是Embedding?

将文字转化为数字向量,使计算机能够“理解”语义。语义相近的句子,其对应的向量也会更接近。

类比说明:为每个人分配一个“身份证号”,家庭成员的编号前几位往往相似,代表他们属于同一语义家族。

Embedding技术的三大演进阶段:

  1. 传统词嵌入
    • 原理:基于统计频率,类似查字典
    • 典型代表:TF-IDF
    • 优点:简单高效
    • 缺点:无法识别语义,“苹果公司”和“吃的苹果”会被视为相同
  2. 静态词嵌入
    • 每个词拥有固定向量
    • 代表模型:Word2Vec、GloVe
    • 进步之处:能捕捉部分语义关系(如“国王-男人+女人=女王”)
    • 局限性:无法处理一词多义
  3. 动态词嵌入
    • 根据上下文动态调整词向量
    • 代表模型:BERT、BGE系列
    • 重大突破:同一个词在不同语境下向量不同
      • 例如:“苹果股价上涨”中的“苹果” vs “苹果真好吃”中的“苹果”——向量完全不同

双塔模型工作原理

[查询编码器] --(编码)--> [查询向量]
                      ↓
                 [向量相似度计算]
                      ↑  
[文档编码器] --(编码)--> [文档向量]

为何速度快?
文档可提前编码并存储,用户提问时仅需对查询进行编码,并计算其与预存向量的相似度,极大提升响应效率。

在LangChain/RAG中的应用

Retrieval

常用于将文档转换为向量并存入向量数据库(如Milvus),以便后续快速检索。

关键参数与指标

  • 维度:向量长度
    • GPT-2:768维(具备基本语义描述能力)
    • DeepSeek-V3:7168维(更高精度表达)
    • 权衡点:维度越高表达越强,但计算开销越大
  • 相似度计算方式
    • 余弦相似度(最常用):衡量向量方向的一致性
    • 点积相似度
    • 欧氏距离

五、Rerank模型:决定胜负的“终极裁判”

交互式模型工作原理

将查询与文档拼接后共同输入模型,让两者发生深度交互,由模型输出相关性得分。

输入:[CLS] 查询文本 [SEP] 文档文本 [SEP]
输出:相关性分数(0-1)

真实优缺点分析

  • 优点:极其准确,因模型能看到完整的上下文交互
  • 缺点:非常耗时,每个查询-文档对都需要单独推理一次

在RAG流程中的定位
通常置于初步检索之后,用于对Top K(如50~100)个候选结果进行精细化排序。

实际应用建议

  • 适用于候选集较小的情况(少于100条)
  • 高精度要求场景优先考虑
  • 最佳实践:与Embedding模型配合使用——前者负责快速召回,后者负责精细打分

六、模型效果如何评估?主流评测基准介绍

MTEB:全球通用的“模型奥林匹克”

  • 涵盖8大类自然语言任务:检索、重排、分类、聚类等
  • 支持100+种语言
  • 综合性强,被誉为NLP模型的全能测试平台

C-MTEB:专为中文优化的评测榜单

  • 完全聚焦中文语境
  • 重点考察检索与重排能力

核心评价指标:nDCG@10

  • 衡量前10个检索结果的整体质量
  • 分数范围0~1,越高越好

实战代码示例

# 使用mteb库评估模型
from mteb import MTEB

# 选择科学事实检索任务
evaluation = MTEB(tasks=["SciFact"])
results = evaluation.run(model)
print(f"nDCG@10分数: {results['ndcg_at_10']}")

七、BGE-M3模型:中文场景下的全能利器

被誉为“中国人的瑞士军刀”,集三大核心技术于一身:

  • 密集检索:基于语义理解进行匹配(像人类一样“读懂意思”)
  • 稀疏检索:基于关键词匹配(类似传统搜索引擎)
  • 多向量检索:采用ColBERT风格,实现细粒度匹配

代码调用方式

from FlagEmbedding import BGEM3FlagModel

# 加载模型
model = BGEM3FlagModel("BAAI/bge-m3")

在构建高效的检索系统时,向量化处理是关键步骤之一。以下是对核心流程的详细说明:

首先进行向量编码操作:

# 对查询内容进行编码
query_vec = model.encode_queries("如何学习编程?")
# 对文档内容进行编码
doc_vec = model.encode_corpus("学习编程需要掌握基础知识...")
# 计算两者之间的余弦相似度
similarity = cosine_similarity(query_vec, doc_vec)

通过上述指令可实现查询与文档的向量表示,并计算其语义相似性。

指令机制解析

为了提升模型对任务类型的识别能力,可以为查询和文档分别设置特定提示语:

model = BGEM3FlagModel(
    model_path,
    query_instruction_for_retrieval="为这个检索问题生成向量:",
    passage_instruction_for_retrieval="为这段用于检索的文字生成向量:"
)

用户问题 → [Embedding模型] → 查询向量 → [向量数据库检索] → 候选文档
候选文档 → [Rerank模型] → 重排序 → Top 3文档 → [LLM生成答案]

这种设计有助于模型明确区分当前处理的是问题还是文本段落,从而增强语义匹配的准确性。

实际RAG系统中的应用流程

典型的基于LangChain的RAG架构包含多个阶段,从初始检索到最终排序,确保返回结果的相关性和质量。

参数配置建议

  • Embedding维度:推荐使用768至1024维,兼顾性能与效率。
  • 检索数量:初步召回50-100个候选结果,随后通过重排序精简至3-5条高相关性内容。
  • 相似度阈值:设定最低相似度标准,自动过滤掉无关度较高的干扰项。

评估指标说明

检索阶段常用指标:

  • 召回率@K:衡量前K个检索结果中是否包含正确答案的比例。
  • 响应时间:反映用户端感受到的系统延迟,影响整体体验。

重排序阶段关注指标:

  • nDCG@K:评估排序结果的质量,强调高相关性项目的位置优先性。
  • MRR(平均倒数排名):关注第一个正确答案出现的平均位置,数值越高越好。

核心要点总结

  • Embedding速度快但粒度较粗,适用于快速筛选,类似“快速扫描仪”。
  • Rerank过程更精准但耗时较长,适合精细排序,如同“显微镜”。
  • 中文任务应参考C-MTEB榜单表现,重点关注nDCG@10指标。
  • BGE系列模型在中文场景下表现优异,支持多种检索模式。
  • 实际部署需综合考虑速度、精度与成本三者之间的平衡。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群