LLM Cookbook 技术对比:传统检索与语义检索差异

LLM Cookbook 技术对比:传统检索与语义检索差异

【免费下载链接】llm-cookbook 面向开发者的 LLM 入门教程,吴恩达大模型系列课程中文版 【免费下载链接】llm-cookbook 项目地址: https://gitcode.com/datawhalechina/llm-cookbook

在信息爆炸的时代,如何快速准确地从海量数据中找到所需信息,一直是开发者和用户面临的核心挑战。传统检索技术如关键词搜索虽已普及,但在处理复杂语义查询时常常力不从心。随着大语言模型(LLM)的发展,语义检索技术逐渐成为解决这一痛点的新范式。本文将深入对比传统检索与语义检索的核心差异,帮助读者理解两种技术的原理、应用场景及性能表现。

技术原理对比

传统检索:基于关键词匹配的表层搜索

传统检索(如关键词检索)依赖于词汇层面的精确匹配,核心算法包括TF-IDF和BM25。以BM25为例,其通过计算词频(TF)和逆文档频率(IDF)的加权和来评估文档相关性,公式如下:

$$\text{TF}(t, d) = \frac{f(t, d) \times (k_1 + 1)}{f(t, d) + k_1 \times (1 - b + b \times \frac{|d|}{\text{avgdl}})}$$

其中,$f(t,d)$为词项在文档中的频率,$k_1$和$b$为调节参数,用于平衡词频与文档长度的影响。传统检索的典型实现可见关键词检索函数,其通过构建倒排索引(Inverted Index)快速定位包含查询词的文档。

![传统检索流程图](https://raw.gitcode.com/datawhalechina/llm-cookbook/raw/d53a36772c76fef0f55295af102615dd498a60cd/content/选修-Large Language Models with Semantic Search/images/2-1.png?utm_source=gitcode_repo_files)

倒排索引结构将关键词映射到文档ID列表,例如:

  • "中国" → [文档1, 文档3, 文档5]
  • "足球" → [文档2, 文档4]

这种结构虽能高效匹配关键词,但无法理解词语的语义关联,例如无法识别"马铃薯"与"土豆"的同义关系。

语义检索:基于向量空间的深层理解

语义检索通过嵌入(Embedding)技术将文本转化为低维向量,捕捉语义关联。例如,词嵌入模型将"欢乐"和"快乐"映射到向量空间中的邻近点,而"马铃薯"则远离这两个词:

![词嵌入空间分布](https://raw.gitcode.com/datawhalechina/llm-cookbook/raw/d53a36772c76fef0f55295af102615dd498a60cd/content/选修-Large Language Models with Semantic Search/images/3-1.png?utm_source=gitcode_repo_files)

句嵌入进一步扩展这一能力,即使句子用词不同,只要语义相似,其向量距离也会很小。例如:

  • "Hi, how are you?" 与 "Hello, how's it going?"
  • "天空是什么颜色?" 与 "蓝天的成因是什么?"

文档嵌入则将长文本压缩为固定长度向量,通过余弦相似度计算相关性。典型实现可见稠密检索模块,其流程包括:

  1. 文档向量化:使用模型(如Cohere's embed-english-v2.0)生成向量
  2. 向量索引构建:使用FAISS或Weaviate存储向量
  3. 查询匹配:计算查询向量与文档向量的相似度并排序

![语义检索改进流程](https://raw.gitcode.com/datawhalechina/llm-cookbook/raw/d53a36772c76fef0f55295af102615dd498a60cd/content/选修-Large Language Models with Semantic Search/images/2-4.png?utm_source=gitcode_repo_files)

核心差异对比

1. 处理能力对比

维度传统检索语义检索
词汇匹配精确匹配,依赖关键词重叠模糊匹配,捕捉语义关联
同义词识别需人工维护同义词表自动识别(如"土豆"="马铃薯")
多语言支持需独立索引不同语言文档多语言嵌入模型(如embed-multilingual-v2.0)支持跨语言检索
长文本处理受限于关键词密度通过上下文理解长文本语义

2. 典型案例对比

传统检索的局限性

当查询"头部侧面疼痛原因"时,传统检索可能因关键词不匹配而遗漏关键文档:

  • 查询词:头痛侧面
  • 目标文档:"太阳穴剧烈疼痛可能由偏头痛引起"(含"太阳穴"但无"侧面")
语义检索的优势

语义检索通过向量匹配找到相关文档:

  1. 将查询转化为向量:$q = [0.23, -0.18, 0.56, ...]$
  2. 计算文档向量相似度:$sim(q, d_1) = 0.89$("太阳穴疼痛"),$sim(q, d_2) = 0.32$("膝盖疼痛")
  3. 返回Top-N结果:$d_1, d_3, d_5$

![语义检索案例](https://raw.gitcode.com/datawhalechina/llm-cookbook/raw/d53a36772c76fef0f55295af102615dd498a60cd/content/选修-Large Language Models with Semantic Search/images/3-3.png?utm_source=gitcode_repo_files)

3. 性能指标对比

RAG应用评估中,语义检索在以下指标显著优于传统检索:

  • 召回率(Recall):提升20-30%(尤其长尾查询)
  • 准确率(Precision):提升15-25%(减少无关结果)
  • 用户满意度:通过重排模块进一步优化排序

工程实践建议

1. 技术选型指南

  • 传统检索:适用于关键词明确的场景(如代码库搜索、日志检索),推荐工具:Elasticsearch、Apache Lucene
  • 语义检索:适用于自然语言问答、跨语言检索,推荐工具:Weaviate、Milvus、LangChain+Chroma

2. 混合检索架构

实际应用中可结合两者优势,例如:

  1. 传统检索:用BM25召回Top-100文档(高召回)
  2. 语义重排:用交叉编码器(Cross-Encoder)对结果重排序(高精确)

![混合检索架构](https://raw.gitcode.com/datawhalechina/llm-cookbook/raw/d53a36772c76fef0f55295af102615dd498a60cd/content/选修-Advanced Retrieval for AI with Chroma/images/交叉编码器运行原理图.png?utm_source=gitcode_repo_files)

3. 资源与工具链

总结与展望

传统检索与语义检索的本质差异在于**“看词”与“懂义”**:前者通过词汇重叠实现高效匹配,后者通过向量空间捕捉语义关联。随着LLM技术的发展,语义检索正逐步成为主流,但传统检索在特定场景下仍不可替代。未来趋势包括:

  1. 多模态检索:融合文本、图像、语音的统一向量空间
  2. 自适应检索:根据查询类型动态切换检索策略
  3. 实时更新:增量更新向量索引以支持动态文档库

开发者可通过LLM Cookbook完整课程深入学习实现细节,尤其是必修四:LangChain与向量数据库模块,掌握工业级语义检索系统的构建方法。

【免费下载链接】llm-cookbook 面向开发者的 LLM 入门教程,吴恩达大模型系列课程中文版 【免费下载链接】llm-cookbook 项目地址: https://gitcode.com/datawhalechina/llm-cookbook

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值