简单聊聊检索增强生成技术(RAG)
00 分钟
2024-3-26
2024-5-1
type
status
title
summary
slug
Created
Mar 26, 2024 03:00 PM
category
tags
Date
icon
password
关于检索增强生成技术(RAG)的探讨,离不开大语言模型(LLMs)
 
大语言模型技术大家应该都挺熟悉了,比如我们熟知的ChatGPT、文心一言和通义千问,都是基于大语言模型技术。
 
简单来说,大语言模型就是一类使用深度学习技术训练的、能够处理和生成自然语言文本的人工智能模型,这些模型通常基于神经网络架构,如Transformer,并且在大规模的数据集上进行预训练,以学习语言的复杂模式和结构。
 
尽管这些大模型已经在海量文本数据上进行预训练,但是早期的AI模型在生成准确知识密集型文本时仍面临挑战,特别是在需要引用最新信息或专业知识的场景中,仅依赖预训练数据的大模型往往会面临知识过时或不完整的问题。
 
最明显的就是早期的ChatGPT3,它只能回答2021年之前的数据,如果问他后面年份的数据,他就开始“胡言乱语”。
 
但是随着AI技术的发展,大家可能会发现,后面的AI模型回答的准确度开始提高了,而且他还会去检索网络上的数据,这其实依赖的就是检索增强生成技术(RAG)。
 

1、什么是RAG?

RAG技术就是通过将传统的文本生成过程与实时的信息检索相结合,使得模型能够在生成响应时参考最新的、相关的外部信息。这种技术的核心思想是,通过检索补充模型的预训练知识,提高生成文本的准确性和相关性,从而在问答、内容创作、摘要生成等任务中取得更好的效果。
 
举个例子,没有RAG技术之前,假如你用金庸先生的小说训练了一个大语言模型,那么它大概率就会就只会回答跟小说相关的问题,如果你问他一些法律的,或者艺术的问题,它就会“胡言乱语”。
 
而有了RAG技术之后,尽管你这个大语言模型是用金庸先生的小说训练的,但是遇到法律的,或者艺术的问题,它会进行检索,并将检索得到的内容加以学习,从而提高回答的准确性!
 

2、RAG的关键组件

  • 检索器(Retriever):检索器是RAG系统的第一环节,负责从大量数据中快速准确地检索出与输入查询最相关的信息。检索器的性能直接影响到后续生成文本的质量。常见的检索技术包括基于关键词的搜索、基于向量的相似性搜索,以及利用深度学习模型进行的语义搜索。
  • 生成器(Generator):生成器是RAG系统的核心,它负责将检索到的信息与用户的输入结合起来,生成流畅、连贯且信息丰富的文本。生成器通常是基于Transformer架构的语言模型,如GPT系列或BERT系列。
  • 知识库:知识库是RAG系统的信息来源,可以是结构化的数据库、非结构化的文档集合,或者是互联网上的公开信息。知识库的质量和覆盖范围对RAG系统的有效性至关重要。
 

3、RAG的检索形式

RAG的检索形式我个人觉得有三种,第一是上下文检索,第二是知识库检索,最后就是自动检索。
 
2.1 上下文检索
上下文检索就是AI模型后续的回答会参考之前对话的内容,从而避免回答的内容不符合你的要求。
 
这里举的例子比较粗糙,比如我之前用AI模型翻译英文字幕的时候,在输入的时候就固定输出的格式,这样AI后续的输出就是我想要的格式
notion image
 
2.2 知识库检索
知识库相比于上下文,能够提供更精确的内容,因为知识库中的信息通常是经过精心整理和验证的,因此可以为模型提供更加准确和权威的数据支持。
 
比如像字节跳动的Coze工具(我之前有文章提到),它就支持知识库的功能
notion image
 
当我想写一篇关于 Figure AI 机器人的文章,我就可以提前下载一些语料,并上传到知识库
notion image
 
这样在提问的时候加以提示,AI模型就会自动参考知识库里面的内容
notion image
 
注:在写一些专业性较强的内容,比如论文,这个功能应该会比较好用
 
2.3 自动检索
这种形式的RAG就比之前两种的更高级了,当遇到不懂的内容,它会自动获取网络上的内容,并加以学习和总结,最后输出,但前提是检索的内容不一定对,或者总结的内容不一定对
 
比较典型的当属KimiChat,我之前问过,它的语料最新到什么时候,这是它的回答
notion image
 
 
我随后问了最近马斯克开源 gork-1 模型的事情,它其实检索的内容是OK的,但是最后的结论是不对的
notion image
 
这是他检索的第2篇语料,不知道是不是因为不了解“今天凌晨”是什么时间,导致回答错误
notion image
 
 

4、RAG的工作流程

通过第3点的讲解,想必大家都大概知道RAG是个什么东西,这里再最后说说RAG的工作流程,可以用下面这张图进行总结:
notion image
 
其实核心就是三步,都在RAG的名字里面了,即检索 + 增强 + 生成
 
  • 检索:图中的第2步,此过程根据用户的查询内容,从外部知识源获取相关信息。具体来说,就是将用户的查询通过嵌入模型转化为向量,以便与向量数据库中的其他上下文信息进行比对。(这里可能会用到相似性搜索等算法)
  • 增强:图中的第4步,将用户的查询和检索到的额外信息一起嵌入到一个预设的提示模板中
  • 生成:图中的第5步,这个经过检索增强的提示内容会被输入到大语言模型 (LLM) 中,以生成所需的输出
 
以上就是本次探讨的内容,希望能对你有所帮助和启发,如果有错漏的,可以联系我进行更正,感激不尽!
 
我是AI技术巫,欢迎关注我,掌握第一手AI资讯与技巧!
notion image