1
RAG与大模型、Prompt、微调的关系
本文主要带大家深入学习一下最近AI领域的重要技术RAG,本文致力于用大白话给大家说明白RAG,但是还是需要一些大模型和微调有关的领域名词有一些基本的了解,大家选择性阅读哦!在进行正文学习之前我们先用一张图看下RAG与我们耳熟能详的大模型、Prompt、微调之间的清清白白关系图:
基于此,我们来展开讲讲大模型与Prompt、RAG、微调之间是怎么样个关系,先看下openAI官方报告发出的一张关于他们之间关系的图:
横轴表示,你希望大模型如何去表现,比如扮演什么样的一个角色。
纵轴表示你希望模型知道什么,横轴表示你想要模型如何需要去表现,扮演一个什么样的角色
首先,我们在对模型做任何事情之前,Prompt 都是最优先要去尝试的,因为效果太好了,利用提示词调用模型内部上下文学习到的知识,使模型生成给定任务或问题的准确回答,通过问的好不好就可以控制输出质量,性价比最高。
横轴再向外,就是FIne-tuning微调,通过调整一个已经在大数据集上预训练的模型,来优化大模型对特定任务或数据集的性能,更好的扮演我们期望的角色
纵轴向上看,在希望模型掌握知识的路径上,主要使用上下文优化 (Context optimization)的方式,不论是Prompt还是RAG,都关注于优化 AI 系统能够理解和处理的上下文信息,输入给模型的知识或数据点,来帮助模型更好地理解问题和生成答案。
简单来说,在结束基础的Prompt 工程后,如果你觉得模型没有你希望的特定的风格和格式,你可以选择微调;如果你觉得模型的知识储备太贫乏了,你可以选择RAG。而RAG(检索增强生成),就是一种结合了信息检索和文本生成的人工智能技术,咱们可以让大模型快速学习特定知识,这也是我们今天要重点讨论的。
举个例子理解一下,Prompt工程比较像我们来告诉模型,你要去参加某个专门的领域或者学科的考试。
微调就像是把这门学科的知识,让大模型从头到尾的学习一遍,然后再让它把这些知识记在脑子里。
而RAG检索增强相当于把这门学科的教辅材料呀小抄呀带给大模型,你考试的时候可以翻书,还可以上网现搜。
基于以上的举例,我们再来看openAI这张对RAG和Fine-tune的进一步阐释
这张openAI的图讲述了RAG(Retrieval-Augmented Generation)和微调(Fine-tuning)这两种不同方法,来优化大模型对于特定任务的表现的过程。
可以看到还是从“提示工程”(Prompt engineering)开始,效果好,上面说了,为啥好,后面单独开堂课,先往下看。
接下来的进入到评估和识别差距(Evaluate and identify the gaps)环节,顾名思义,就是评估模型当前的表现以及识别在什么情况下它不能很好地提供答案。找出这些差距后,再来区分不同的场景,根据场景选择右边的两种方法中的一种来解决:
在短期内需要特定信息回答问题时(Short-term memory),通常使用的是RAG-检索增强生成技术,如上面所说,当模型需要某些具体信息来回答问题时,它会从一个大型的数据集或知识库中检索信息来辅助生成答案。
在期望模型长期拥有固定结构、风格或格式时(Long-term memory ):就需要结合微调(Fine-tuning)来让模型长时间地记住并模仿特定的结构、风格或格式,模型能够适应特定类型的问题和回答风格,扮演好一个角色。
2
RAG适合与不适合的场景
对比好使用场景的差别后,我们再来看下RAG适用和不适用的场景
适合于 (✓ Good for):
- 引入新信息来更新模型的知识: 意思是RAG比较适合通过检索信息来增强模型的理解和响应质量,适合学习一些当前模型未掌握的知识。
- 通过集成实体来减少幻觉: 在这里,“幻觉”指的是模型生成与实际情况不相符合或不准确的答案。RAG试图通过确保生成的内容与检索到的上下文相关来降低这种幻觉的可能性。
不适合于 (✕ Not Good for):
- 不适合给模型理解广泛领域的能力,它不擅长学习一整个学科,比如法律,医疗这些一整个宽泛的领域学科。
- 不适合要模型了解新的语言形式或风格的场景。
- 不适合需要减少令牌(tokens)的使用的场景,因为每次检索都会消耗大量 tokens。
需要减少令牌(tokens)的使用的场景,因为每次检索都会消耗大量 tokens。
3
正式认识RAG
有了上面使用场景的铺垫,我们再来正式全方位的了解一下RAG
定义:
检索增强生成(Retrieval-Augmented Generation),它通过检索相关信息并将其作为生成过程的一部分,来提高模型生成内容的准确性和相关性。
提出背景:
生成式AI模型,如基于Transformer的模型,有时会生成不准确或不真实的信息,这种现象被称为“幻觉”。RAG技术旨在减少这种幻觉问题,提高AI生成内容的可靠性。
提出者:
RAG是由数据科学家Patrick Lewis提出的,他是Meta(之前称为Facebook)和伦敦大学学院的研究员。他在2020年发表的一篇论文中首次提出了RAG这个术语。
三个基本步骤:
- 索引:RAG模型首先使用关键字搜索等方法检索与输入问题相关的文档。
- 检索:然后,模型会分析这些文档,提取有用的信息。
- 生成:最后,结合检索到的信息和模型自身的知识,生成答案或内容。
假设我们对ChatGPT提出一个关于OpenAI公司首席执行官Sam Altman的近期事件的问题,即他在短时间内被解雇然后又重新上任的情况。由于ChatGPT的知识库是基于预设的数据训练的,它可能不包含这个最新发生的事件的信息,因此ChatGPT回答不出来!这个时候呢,RAG出场了,通过以下步骤来增强ChatGPT回答能力:
\1. 检索最新信息:RAG技术会从外部的知识库中搜索与所提问题相关的最新文档或信息片段。
\2. 整合信息:找到相关信息后,RAG技术将这些信息与原始问题结合起来,形成一个更全面的信息提示。
\3. 生成回答:利用这个更丰富的提示,ChatGPT现在可以生成一个基于最新信息的、有根据的回答。
返回给用户,齐活儿了!
4
RAG评估维度&效果
OpenAI公司曾经进行的一项实验就是RAG技术应用的一个成功案例。在采用RAG技术之前,他们通过大量实验,已经将模型的准确率提高了20%。然后,他们利用重新排序、分类等技术手段,进一步将模型的准确率提升到了85%。最终,通过特征工程和RAG技术的结合应用,他们将模型的准确率提高到了惊人的98%,这样的提升效果还是非常让人振奋的。
此外,OpenAI还分享了一个名为Ragas的开源项目,它能够从四个关键维度来评估RAG模型的性能:
Faithfulness (忠实度): 评估生成答案的事实准确性,即答案是否真实可信。
Context Precision (上下文精确度): 衡量所使用的上下文信息是否切合主题,是否恰当。
Answer Relevancy (答案相关性): 判断生成的答案与提出问题之间的关联性,是否切题。
Context Recall (上下文回忆): 检验模型在生成答案时,能否全面回忆并有效利用所有相关上下文信息。
5
RAG 技术的优越性及未来发展方向
以下是RAG技术的一些具体优点,以及它们如何改善大模型的响应质量:
新鲜信息访问:RAG技术能够访问比传统大型语言模型训练数据更新的信息,这意味着它能够提供最新的数据和信息。
性价比更高的知识更新:与传统的大型语言模型相比,RAG的知识库可以持续更新,而不需要付出巨大的成本或资源。
上下文关联数据:RAG的知识库可以包含与特定主题或查询更加紧密相关的上下文数据,这有助于提供更精确和深入的回答。
幻觉问题:提供了应对大型语言模型(LLMs)可能产生误导性的信息的场景的关键解决思路。
信息来源可追溯:RAG技术中的向量数据库允许我们确定信息的来源,这样一旦发现错误信息,就可以快速进行更正或删除。
目前,RAG技术主要应用于提升查询的响应质量,适用于聊天机器人、电子邮件、文本消息和其他会话应用,确保提供及时、准确、并且与上下文紧密相关的答案。
未来,RAG技术有望助力生成式大模型在更广泛的领域中发挥作用。例如,大模型不仅能够解答用户关于报考软考架构师的政策,还能通过RAG技术整合更多上下文信息,如推荐附近性价比高的学校和课程。结合Agents,甚至能够进一步协助客户完成课程的申请和缴费啥的。总之对于为用户提供更加全面和深入的服务,绝对提供了不容忽视的信息基础注入。
如何学习AI大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。