1.1 大模型应用的方向:RAG
1.1.1 什么是RAG
1.生成式AI
生成式AI是一种能够生成各类内容的技术,包括文本、图像、音频和合成数据。自2022年底ChatGPT在全球范围内推广以来,基于Transformer解码器结构的大模型已能在短时间内为用户生成高质量的文本、表格、代码,使整个AI领域迈入了新的时代。
大语言模型(Large Language Model, LLM)经过海量文本数据的训练后,能将这些文本数据以一种黑盒形式压缩在模型参数中。预训练完成后,模型便掌握了大量的人类世界知识。研究者发现,当模型的规模足够大且经过指令微调对齐后,便可通过提示模板,运用零样本(zero-shot)或少样本(few-shot)的提示词来完成许多自然语言理解和自然语言生成任务。
然而,不好的消息是,大模型并不具备在环境不断变化的场景中回答特定问题所需的全面知识。例如,早期的ChatGPT的预训练语料库时间截至2021年,这意味着模型无法准确输出2021年以后的事实性问题,这正是现代大模型所面临的知识更新困境。而在2023年11月,OpenAI发布的GPT-4 Turbo的知识更新时间截至2023年4月,实际上,对于一个大模型来说,更新基础模型知识库是非常困难的一件事情。首先,需要保证预训练数据的质量;其次,更新知识库后的模型通常都需要重新训练,至少要将新数据与旧数据按照一定的比例进行混合训练,而不能仅仅使用新数据,否则会出现灾难性遗忘的问题。总之,大模型的知识更新问题将成为模型的一个重要痛点,并且是一个值得研究的课题。
2.RAG
2020年,Facebook(后更名为Meta)在“Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”一文中首先提出了一种称为检索增强生成(RAG)的框架。该框架可以使模型访问超出其训练数据范围之外的信息,使得模型在每次生成时可以利用检索提供的外部更专业、更准确的知识,从而更好地回答用户问题。
在RAG系统中,模型可以通过浏览外部知识来回答用户的问题,而不是试图从参数记忆中找到问题相关的答案,就像在考试的时候是开卷考试还是闭卷考试一样。例如:我们可以分别询问ChatGPT和Bing Chat两个问题:“RAG是什么?”“为什么大模型都是Decoder(解码器)结构?”因为Bing Chat可以结合互联网的搜索数据来生成答案,所以答案会更精准并且信息量更足。
从图1-1和图1-2的答案中,我们可以很明显地看出使用RAG与不使用RAG的差异。
RAG在推理过程中分为两个阶段:检索和内容生成。在检索阶段,通过算法检索与用户问题相关的知识片段。在开放领域中,这些知识片段可以来自互联网上搜索引擎检索到的文档,例如微软Bing AI的模式;在私有领域的企业场景中,通常使用大量的内部文档通过更小的信息源约束来提高模型生成的安全性和可靠性。
图1-1 ChatGPT回答结果
图1-2 Bing Chat回答结果
完成检索之后,可以获取到一些与用户输入相关的可靠外部知识。在内容生成阶段,通过一个结构化的prompt模板约束,将这些外部知识添加到用户的问题中,并传递给语言模型。模型基于知识增强的prompt,通过自己的大量参数计算,就可以生成一个针对该用户问题的更准确的答案。在这个过程中,还可以约束模型对生成的答案进行溯源,以方便地知道模型是依据哪些知识片段完成最终答案生成的。
在后面的章节中,我们会详细介绍RAG的所有流程。