什么是RAG?

最近会时不时看到或者听到过RAG,那到底什么是RAG呢?搞懂RAG之前可以看看人工智能的发展历史,我总是认为只有回顾历史才能真正找准当前的定位。

人工智能、神经网络、Transformer、GPT等LLM、微调、RAG。

AI 发展历史

人工智能(AI)的发展可以追溯到20世纪中叶,其历史大致可分为以下几个阶段:

1. 起源与早期探索(20世纪40-50年代)

  • 1943年:沃伦·麦卡洛克和约翰·皮茨提出神经网络的数学模型,奠定了神经网络研究的基础。
  • 1950年:阿兰·图灵发表《计算机器与智能》,提出著名的“图灵测试”,用以判断机器是否具有智能。
  • 1956年:约翰·麦卡锡等人在达特茅斯会议上首次提出“人工智能”这个术语,标志着AI研究的正式开始。

2. 专家系统与知识工程(20世纪60-80年代)

  • 1960年代:出现了早期的专家系统,如DENDRAL(用于化学分析)和MYCIN(用于医学诊断),这些系统通过“如果-那么”规则来模拟专家的决策过程。
  • 1970年代:专家系统得到进一步发展,成为当时AI研究的热点,广泛应用于医疗、金融等领域。
  • 1980年代:随着计算机硬件性能的提升和知识获取技术的进步,专家系统在商业领域得到广泛应用,但其局限性也逐渐显现。

3. 机器学习与统计方法的兴起(20世纪90年代-21世纪初)

  • 1989年:Yann LeCun等人成功将反向传播算法应用于多层神经网络,实现了手写数字识别,这是深度学习在实际应用中的早期突破。
  • 2000年代初:随着数据量的激增和计算能力的提升,机器学习方法逐渐取代传统规则方法,成为AI研究的主流。支持向量机(SVM)、随机森林等算法在图像识别、语音识别等领域取得显著进展。

4. 深度学习与大数据时代(21世纪10年代至今)

  • 2012年:Alex Krizhevsky等人开发的AlexNet在ImageNet竞赛中取得突破性成绩,标志着深度学习的崛起。
  • 2010年代:深度学习在计算机视觉、自然语言处理、语音识别等多个领域取得重大突破,推动了AI技术的广泛应用。
  • 2020年代:生成式AI、强化学习等新兴技术不断涌现,AI在医疗、金融、自动驾驶等领域的应用愈发深入。

专家模式与统计方法

专家模式

  • 定义与特点:专家模式主要指专家系统,它通过将专家的知识和经验编码成一系列规则(如“如果-那么”规则),来模拟专家的决策过程。专家系统具有可解释性强、推理过程清晰的优点,但也存在灵活性差、依赖于预定义知识的局限。
  • 应用场景:在医疗诊断、故障检测、金融风险评估等领域有广泛应用。例如,在医疗领域,专家系统可以根据病人的症状和检查结果,推断出可能的疾病。

统计方法

  • 定义与特点:统计方法通过分析大量数据,从中发现规律和模式,以支持决策和预测。它不依赖于显式的规则,而是通过学习数据的统计特性来实现目标。
  • 应用场景:广泛应用于数据分析、机器学习、自然语言处理等领域。例如,在自然语言处理中,统计机器翻译方法通过分析大量双语文本数据,学习语言之间的转换规律。

专家模式与统计方法的融合

  • 融合趋势:近年来,随着技术的发展,专家模式和统计方法开始相互融合,形成混合型AI系统。这种融合可以结合两者的优势,提高系统的性能和适应性。
  • 优势:专家模式提供了清晰的规则和可解释性,而统计方法能够处理大量数据并发现潜在的复杂模式。例如,在金融领域,混合型AI系统可以结合专家的金融知识和统计分析结果,更准确地预测市场趋势。

传统神经网络的分类

类别 英文 优点 缺点 使用场景
前馈神经网络 Feedforward Neural Networks, FNN 结构简单,易于理解和实现,训练过程相对稳定,不容易出现梯度消失和梯度爆炸的问题 对于复杂的时间序列数据处理能力有限、计算效率较低,尤其是在处理高维数据时 广泛用于分类、回归等任务,如手写数字识别、房价预测等
循环神经网络 Recurrent Neural Networks, RNN 擅长处理具有时间关系的序列数据,如文本、语音等 难以捕捉到远距离的时间依赖关系,容易出现梯度消失或梯度爆炸问题,计算效率低,难以并行化计算,导致训练速度较慢 适用于自然语言处理、语音识别、时间序列预测等任务,如文本生成、情感分析、股票价格预测等.
卷积神经网络 Convolutional Neural Networks, CNN 对空间特征的强大提取能力,适用于图像识别等任务,能够捕捉到图像中的局部特征 无法很好地处理序列数据,对于时间依赖关系的建模能力较差 广泛应用于图像处理任务,如图像分类、目标检测、图像分割等
长短期记忆网络 Long Short-Term Memory, LSTM 能够有效地捕捉序列数据中的长期依赖关系,解决了传统RNN的梯度消失问题 结构复杂,参数数量较多,导致训练速度较慢、计算成本较高,尤其是在处理大规模数据时 适用于需要捕捉长期依赖关系的序列数据任务,如文本生成、机器翻译、语音识别等
生成对抗网络 Generative Adversarial Networks, GANs 能生成逼真的新样本,广泛应用于图像生成等任务 训练不稳定,收敛难度大,容易出现模式崩溃等问题 主要用于生成任务,如图像生成、数据增强、风格迁移等

传统神经网络和Transformer的关系

Transformer模型的出现主要是为了解决传统神经网络在处理序列数据时存在的几个关键问题:

长距离依赖问题

  • 传统RNN的局限:传统的循环神经网络(RNN)及其变体(如LSTM和GRU)在处理长序列数据时,容易遇到梯度消失或梯度爆炸的问题,这使得模型难以捕捉序列中的长距离依赖关系。
  • Transformer的解决方案:Transformer通过引入自注意力机制,能够同时考虑序列中所有位置的信息,从而有效地解决了长距离依赖问题。自注意力机制允许模型在处理输入序列时动态地计算每个位置与其他所有位置之间的依赖关系。

并行计算问题

  • 传统RNN的局限:RNN需要按顺序处理序列中的每个元素,无法进行并行计算,这限制了其训练和推理的速度。
  • Transformer的解决方案:Transformer中的自注意力机制和多头注意力可以并行计算,大大提高了训练和推理的效率。由于Transformer没有序列依赖性,可以同时处理输入序列中的所有位置。

上下文信息融合问题

  • 传统RNN的局限:在自然语言处理任务中,上下文信息对于理解语义非常重要。传统的RNN通过隐状态来传递上下文信息,但隐状态的大小是固定的,难以适应不同长度的输入序列。
  • Transformer的解决方案:Transformer通过编码器将输入序列转换为一个固定长度的向量,并通过解码器进行上下文信息的融合,能够更好地捕捉序列中的全局信息。

诞生背景

  • 历史背景:在Transformer出现之前,RNN及其变体是处理序列任务的主流架构,但其序列化的处理方式限制了并行化能力。注意力机制最初被提出来用于改善序列到序列的任务,Transformer模型在2017年的论文《Attention Is All You Need》中首次被提出。Transformer模型的这些创新使其在自然语言处理领域迅速成为新的标杆,并逐渐扩展到其他领域,如图像处理等。

Transformer的发展

Transformer自2017年提出以来,经历了快速的发展和演变。

初始阶段(2017年)

提出与基础架构:2017年,Vaswani等人在论文《Attention is All You Need》中首次提出了Transformer模型。该模型引入了自注意力机制、位置编码、多头注意力和编码器-解码器架构等创新概念,这些设计使得Transformer在处理序列数据时能够更高效地捕捉长距离依赖关系

发展与优化阶段(2018-2020年)

模型效率提升:由于原始Transformer在处理长序列时存在计算复杂度和内存要求高的问题,研究者们提出了多种改进方法,如稀疏注意力机制、分而治之的方法等,以提高模型的效率
模型泛化增强:为了在小规模数据集上更好地训练Transformer,研究者们引入了结构偏差或正则化,并在大规模未标记数据上进行预训练,以增强模型的泛化能力
特定任务适配:针对不同的下游任务和应用,研究者们对Transformer进行了适配性改进,开发出多种变体和扩展模型

预训练模型的兴起(2018-2021年)

BERT与GPT的出现:2018年,谷歌提出了BERT(Bidirectional Encoder Representations from Transformers),它通过预训练大量文本数据,学习到丰富的语言表示,然后在各种下游任务上进行微调,取得了优异的性能。同年,OpenAI推出了GPT(Generative Pre-trained Transformer),它主要关注文本生成任务

谷歌点错了科技树,让openai在后面横空出世了

LLM的诞生

以下是GPT系列模型的发展历史:

GPT-1(2018年)

  • 特点:GPT-1是第一个使用Transformer架构进行预训练的模型,采用了仅有解码器的Transformer模型,专注于预测下一个词元。它包含12层Transformer结构和1.17亿参数。
  • 贡献:GPT-1通过无监督预训练和有监督微调相结合的方法,增强了模型的通用任务求解能力,尽管其参数规模相对较小,但在自然语言处理任务上取得了一定的成果,为后续GPT模型的发展奠定了基础。

GPT-2(2019年)

  • 特点:GPT-2在模型规模和性能上有了显著提升,参数规模达到15亿。它引入了更大和更多样化的数据集进行训练。
  • 贡献:GPT-2在阅读理解、文本生成和翻译等多任务上取得显著进步,生成的高质量文本引发了广泛关注。然而,其强大的文本生成能力也带来了AI伦理和安全方面的讨论。

GPT-3(2020年)

  • 特点:GPT-3的参数规模达到了1750亿,是当时最大的预训练语言模型之一。它通过“上下文学习”概念,在少量样本下就能完成多种任务,无需针对新任务微调。
  • 贡献:GPT-3极大地拓展了其在写作、编程、艺术创作等诸多领域的应用,在文本生成、问答、翻译、摘要和对话等任务上都取得了非常好的表现。它的出现标志着AI在自然语言处理领域的巨大飞跃。

ChatGPT(2022年)

  • 特点:ChatGPT是基于GPT-3模型的升级版,主要针对对话任务进行了优化,增加了对话历史的输入和输出,以及对话策略的控制。
  • 贡献:ChatGPT在对话任务上表现出色,可以与人类进行自然而流畅的对话,其发布标志着OpenAI声名鹊起的一个重要时刻。

ChatGPT的诞生意味着LLM的兴起

GPT-4(2023年)

  • 特点:GPT-4的具体细节未完全公开,但在理解复杂文本、逻辑推理和跨领域知识整合方面取得重大突破。它具有多模态能力,最大单次处理数据量为2.5万tokens。
  • 贡献:GPT-4在医疗健康、法律咨询、教育辅导等多个领域展现出强大的应用潜力。

LLM的问题及其优化方向

  • 幻觉问题:LLM采用基于统计的概率方法逐词生成文本,内在地可能导致生成看似逻辑严谨实则缺乏事实依据的输出,即所谓的“郑重其事的虚构陈述”
  • 领域知识不足:对未接触过的内容,LLM的效果会很差
  • 信息过时:知识的更新只取决于训练集的截止时间,难以及时融入最新信息
  • 记忆力问题:对训练过程中接触的知识,LLM可能会忘记,对已经学会的知识也可能因为后续的训练而遗忘
  • 推理失败:对已有知识,LLM可能也会因为使用失败而让回答出现问题

优化方向

微调

微调(Fine-Tuning)是深度学习中迁移学习的一种形式,指的是在预训练模型的基础上,通过对其参数进行小幅度的调整,使其能够更好地适应特定任务或数据集的过程。

定义
基本概念:微调是在预训练模型(已经训练好的大模型)基础之上,使用少量数据对大模型的全部或部分参数进行调整,以达到在某个领域更好的效果

技术过程:微调本质上是通过在特定任务的数据集上继续训练预训练模型,更新模型的权重,使其更好地适应新任务
适应特定领域:微调可以帮助LLM调整其对特定领域术语、语气或约定的反应,使其更好地适应特定的应用场景
提高任务性能:通过在特定任务的数据集上进行微调,LLM可以学习到该任务的特定特征和模式,从而提高在该任务上的性能
解决幻觉问题:微调可以使LLM在特定任务上生成更准确和可靠的内容,减少幻觉现象

RAG

待下文介绍

RAG

可以看到,rag是在llm出来后才有的,也就是最近2年才有的东西。它的存在是为了解决大模型的一些问题。

检索增强生成 (Retrieval Augmented Generation),简称RAG,已经成为当前最火热的LLM应用方案。

一句话总结:RAG(中文为检索增强生成) = 检索技术 + LLM 提示。

检索增强生成是一个多步式流程,始于检索,然后推进到生成。下面介绍了它的运作方式:

检索

RAG 从输入查询开始。这可以是用户的问题,或者需要详细回复的任意一段文本。
检索模型会从知识库、数据库或外部来源(或者同时从多个来源)抓取相关信息。模型在何处搜索取决于输入查询所询问的内容。检索到的这一信息现在可以作为模型所需要的任何事实或背景信息的参考来源。检索到的信息会被转化为高维度空间中的矢量。这些知识矢量会被存储在矢量数据库中。
矢量模型会基于与输入查询的相关性,对检索到的信息进行排序。分数最高的文档或段落会被选中,以进行进一步的处理。

生成

接下来,生成模型(例如 LLM)会使用检索到的信息来生成文本回复。

在RAG(Retrieval-Augmented Generation)机制中,最终的回答是综合了LLM(大型语言模型)的回答和检索到的知识
。具体来说,RAG的工作流程通常包括以下几个步骤:

检索阶段:当用户提出一个问题时,RAG首先使用检索模块从外部知识库中检索与问题相关的信息。这些信息作为上下文,为生成模型提供了丰富的背景知识
生成阶段:检索到的信息与用户的原始查询一起被输入到LLM中,LLM利用这些信息生成最终的回答,生成的回答不仅依赖于LLM的语言生成能力,还结合了检索到的外部知识
通过这种方式,RAG能够生成既符合语境又高度准确的回答。它利用LLM的生成能力和检索模块提供的最新、相关知识,从而提高了回答的质量和可靠性

可以理解为给llm外挂一个知识丰富的“数据库”。

当前比较知名的大模型

国内外 模型 所属公司
国外 GPT系列 OpenAI、微软
国外 GeMini 谷歌
国外 Claude Anthropic、亚马逊
国外 Llama Meta
国内 文心 百度
国内 千问 阿里
国内 豆包 字节跳动
国内 元宝 腾讯
国内 Kimi 月之暗面

参考文章

什么是 RAG(检索增强生成)?