检索增强生成(RAG):从理论到 LangChain 实现

每日推荐一篇专注于解决实际问题的外文,精准翻译并深入解读其要点,助力读者培养实际问题解决和代码动手的能力。

欢迎关注公众号(NLP Research),及时查看最新内容

原文标题:Retrieval-Augmented Generation (RAG): From Theory to LangChain Implementation

原文地址:https://medium.com/towards-data-science/retrieval-augmented-generation-rag-from-theory-to-langchain-implementation-4e9bd5f6a4f2


从原始学术论文的理论到在 Python 中使用 OpenAI、Weaviate 和 LangChain 实现。

自从人们意识到可以用自己的专有数据为大型语言模型(LLM)增效之后,人们就开始讨论如何最有效地弥合 LLM 的常识与专有数据之间的差距。围绕微调还是检索增强生成(RAG)更适合这一问题,人们进行了大量的讨论(剧透:两者都适合)。

本文首先重点介绍 RAG 的概念,并首先介绍其理论。然后,文章将展示如何使用用于协调的 LangChain、OpenAI 语言模型和 Weaviate 向量数据库来实现一个简单的 RAG 管道。

什么是检索增强生成?

检索增强生成(RAG)的概念是为 LLM 提供来自外部知识源的额外信息。这使他们能够生成更准确、更符合上下文的答案,同时减少幻觉。

问题

最先进的 LLM 在大量数据的基础上进行训练,以获得存储在神经网络权重(参数记忆)中的广泛常识。但是,如果提示 LLM 生成一个需要其训练数据中未包含的知识(如较新的、专有的或特定领域的信息)的完形填空,则可能会导致事实不准确(幻觉),如下面的截图所示:

因此,弥合 LLM 的常识与任何额外语境之间的差距非常重要,这样才能帮助 LLM 生成更准确、更符合语境的补全,同时减少幻觉。

解决方案

传统上,神经网络通过微调模型来适应特定领域或专有信息。这种技术虽然有效,但计算密集、成本高,而且需要专业技术知识,因此在适应不断变化的信息方面不够灵活。

2020 年,Lewis 等人在论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 中提出了一种更灵活的技术,称为检索增强生成(RAG)。在这篇论文中,研究人员将生成模型与检索模块相结合,从外部知识源提供更容易更新的附加信息。

简单地说,RAG 对 LLM 的意义就如同开卷考试对人类的意义。在开卷考试中,学生可以携带教科书或笔记等参考资料,用来查找相关信息以回答问题。开卷考试背后的理念是,考试侧重于考察学生的推理能力,而不是记忆特定信息的能力。

同样,事实知识也从 LLM 的推理能力中分离出来,存储在外部知识源中,便于访问和更新:

  • 参数知识:在训练过程中学习到的,隐式存储在神经网络的权重中。
  • 非参数知识:存储在外部知识源中,如矢量数据库。

(顺便说一句,这个天才的比较不是我想出来的。据我所知,这种比较是 JJ 在 Kaggle - LLM 科学考试竞赛中首次提

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hj_caas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值