基于LangChain实现RAG的技术原理


前面为大家介绍过大模型相关的专业术语,比如AGI、RAG、LLM。也提到了当前阶段AI大模型存在的一些不足,比如对训练数据的数量和质量要求、对算力和电力的开支,以及大模型最大的问题:信息幻觉

目前业内对大模型信息幻觉的处理方法,一般都采用了RAG的方法,即Retrieval-Augmented Generation,检索增强生成。简单来说就是通过大模型+知识库的方式,从广泛的知识库中检索相关片段,然后根据这些内容生成最终结果

这种方式的好处在于,一方面可以缓解大模型的信息幻觉问题,提高在特定领域的结果表现;另一方面,可以提高信息检索和结果生成的效率以及用户体验

我们常见的各种ChatBot(即聊天机器人),就是基于这种技术原理实现的。与之相关的技术框架,常见的有如下几种:

  • LangChain:开源框架,提供了丰富的组件和工具,用于构建RAG系统。
  • LLama-Index:专为LLama模型设计的RAG框架,适用于特定场景下的应用。
  • RAGFlow:一个较新的RAG框架,注重简洁性和效率,提供预设组件和工作流。
  • Haystack:一个常用的开源框架,支持向量存储和编排层,是RAG系统的重要组成部分。
  • GraphRAG:专注于大模型驱动的RAG技术,通过优化向量库构建与推理性能来提升RAG系统的效率。


LangChain为例,利用RAG减缓信息幻觉的实现原理,有如下多个步骤:

基于LangChain实现RAG的技术原理

对上述步骤进行简化,可以得到如下七个关键步骤:

  • 上传文档:用户上传相关的知识文档,LangChain支持txt、pdf、docx等多种格式,并将其自动转化为markdown格式存储。
  • 文本切割:为了便于分析处理,需要将长文本切割为多个小块(chunk),类似于tcp协议的信息传输机制(先切分再传递+丢包检测)。
  • 文本向量化:将切割后的文本小块,通过EMB(数据拆分和映射)技术转换为算法可以处理的向量,并存入向量数据库。
  • 问句向量化:将用户的提问内容进行向量化处理(切割+拆分+映射)。
  • 语义检索和匹配:将向量化后的用户提问内容与向量库中的文本块匹配,按规则匹配出与用户问句向量最相似的Top X(大小取决于规则定义)个。
  • 提交prompt至LLM:将匹配得到的文本和用户问句,添加到已定义好的提示词模版中,提交给LLM进行处理。
  • 生成最终的输出答案:LLM生成最终的输出答案,并返回给用户。

用一张图来概括,基于LangChain实现RAG能力的原理如下:

基于LangChain实现RAG的技术原理

至此,利用RAG能力缓解大模型信息幻觉的一个ChatBot就完成了,接下来就是对其进行模型效果评测。

注意,并不是说基于上述方案就可以实现一个回答精度很高的ChatBot,而是需要通过持续大量的训练,才能得到更匹配我们预期的大模型,这也是大模型训练过程的缩影


模型效果评测,首先需要确定评测标准。评测标准的定义,需要基于训练模型的预期目标和实际的业务场景,对大模型输出的回答内容评测。按照技术领域的通用测试原则,需要构建评测集(即IT技术领域的测试用例),对其展开评测

评测集需要满足如下几点要求:

  • 可以理解用户提问内容。
  • 可以匹配正确的知识库内容。
  • 基于用户问句和知识库内容的回答要确保全面准确。
  • 输出的最终回答是否包含知识库内容以外的信息(简单理解就是联网/不联网)。
  • 输出的最终回答是否可靠(即需要对多轮次评测的输出结果进行对比,判断差异是否过大)。
  • 需要支持基于上下文的追问,且追问后输出的最终回答同样必须满足上述几点要求。

影响大模型输出结果质量的因素有很多,这种持续训练和评测的过程,就是大模型训练和调优的过程。只有经过多轮评测且达标的大模型,才能真正应用于工作场景中。

RAG技术前沿技术新闻资讯

所有AI工具共享记忆!MCP协议让知识库进化成‘活’的智能中枢

2025-5-22 23:03:34

RAG技术前沿技术新闻资讯

RAG往后发展的三点感触及语言文化分析的两个工作

2025-5-23 0:50:54

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索