AIGC爆火以后,应运而生的Prompt、RAG到底都是什么?为什么会有这些产物呢?
拿大语言模型举例来说,自身的能力很强大,但也存在一定的弊端,比如输出的内容太空太泛、不是用户想要的答案、输出的内容格式不符合预期…… 正因为这些弊端的存在,进而催生了Prompt(提示词 Artificial Intelligence Prompt)。
Prompt应用场景也比较多如:智能客服、数字人主播、智能写作助手、PPT制作等。
除以上弊端外,大模型还存在如数据过时、在专业领域问题胡编乱造等情况,为了克服以上问题,第一种方式是微调,不过生成模型依赖内在知识,即使做了微调,还是无法解决幻觉问题。此外,实际场景中,信息、政策、数据实时都在更新,除非对模型进行高频的微调,否则模型的训练速度永远赶不上外部信息更新的速度,而高频微调成本就太高了。
在2020年,检索增强生成RAG(Retrieval-Augmented Generation)的方法被提出,其主要作用类似搜索引擎,利用外部知识库,找到与用户提问最相关的知识或历史对话,结合原始问题,创造信息丰富的Prompt,指导大模型(LLM)生成更准确的输出。
指用于引导模型生成的输入文本(可以是一段话、一个问题、一个文档、一个指令等),使模型的输出更符合我们的期望。研究如何提高和AI的沟通质量与效率。
Prompt Engineering(提示词工程):核心关注开发和优化prompt。
核心就是在提示模型“回忆”起在预训练阶段学到的能力,在合适的场景下为我们解决问题(来源:腾讯)。
是结合了检索技术与生成式人工智能的技术框架,旨在利用外部知识增强模型的回答准确性和上下文相关性。适用于需要高准确性、领域知识和动态信息的场景。
1)提高模型效率、优化输出结果(确定输出方向):
通过提供明确的上下文或任务指示,使模型能够更准确的理解任务需求,提高生成内容的处理速度和准确性。
2)增强模型泛化能力:
利用设计多个提示词(Multi-Prompt)等技术提高模型的理解和泛化能力,使模型面对新任务处理时更加准确。
3)优化用户体验:
在智能客服、数字人智能主播等场景中,Prompt技术能够提供更自然、流畅的交互体验因为它允许系统根据用户的输入和上下文,动态生成更贴近人类对话习惯和逻辑的回复。
1)知识更新不及时
数据过时,对于大模型训练完成之后发生的最新事情,大模型难以给出答案。
2)容易产生幻觉
如捏造事实、不按用户指令生成回答。
出现幻觉的原因:训练知识的偏差(海量数据源中含错误信息)、过度泛化的推理(把普通的模式推理用到了某些特定场景,以偏概全)、理解存在局限性(问题太难,在一些需要深入理解与复杂推理的任务重可能出错)、缺乏专业领域的知识(没学过,瞎编一个答案 )。
3)数据安全问题
大语言模型没有企业内部数据和用户数据,如内部数据上传至云端进行存储和处理,就可能存在数据泄露的风险,RAG就不需要将自有数据上传至云端。
1)立角色:给大模型定一个匹配目标任务的角色,如你是一位淘宝客服。
2)述问题:你的问题、任务是什么,背景是什么。
3)定目标/技能:告诉大模型具体要做什么,如写一份旅游攻略、对文章进行优化、写一段代码等。
4)补要求/限制:对任务增加一些限制要求,如按特定格式输出、字数要求、只能输出某内容等。
1)找对科室:如你是一个“高考志愿填报辅导大师”,是一个经验丰富的教育顾问,精通中国的高等教育体系。
2)说明病情:你的现状、期望效果、你的预算,如我是一个湖南理科生,今天考了672分;我希望上一个地理位置好,专业前景好的学校和专业。
3)请求开药:如请你帮我分析我的情况,给我一些填报志愿和建议。
4)治疗方式:如以表格的形式给出建议表,每个建议需包含“学校的优劣势、专业的优劣势、未来面对职场的可能受益和困扰”,并在最后给出你的总体建议。
5)好好说话:如你的语气简洁明了,通俗易懂。不要使用专业术语。同时用友善和鼓励的语气。
1.零样本提示(Zero-shot Prompting)
直接向大模型提出任务或指令,但不提供如何执行的方法或步骤。
适用于不需要领域特定知识的通用任务。
例:中国的首都是什么。
2.少样本提示(Few-Shot)
给AI小部分示例样本,几个对话作为示例,对AI进行引导。
例:未提示时,生成的内容
提示后,生成的内容
3.思维链(Chain-of-thought,COT)
给AI的小样本提示中,不仅包括正确结果,还包括中间的推理步骤。
例:
问题:该组中的奇数加起来为偶数:4、8、9、15、12、2、1,对吗?
答案:
让我们来逐步计算:
1.首先,我们将给定的数字分为两个组:一个是奇数组,一个是偶数组
奇数组:15、5、3、17、1
偶数组:12、72
2.然后,我们将奇数组中的数字加起来
15+5+3+17+1=41
3.最后,我们检查奇数组的和是否为偶数。
41不是偶数。
所以,该组中的奇数加起来不是偶数。
4.分步骤思考
不使用小样本提示,在问的问题后面加一句“分步骤思考”也能提高其回答的准确信。
例:该组中的奇数加起来为偶数:4、8、9、15、12、2、1,对吗?请你分步思考。
1.模型本身没有的能力,如不能联网、不能计算,这些能力通过Prompt是无法完成的。
2.信息过载:若提示信息过于复杂或模糊,可能导致用户或模型困惑,从而生成错误内容。
3.隐私和安全问题:在一些应用中,Prompt可能会收集用户的个人信息,从而可能导致数据泄露和安全问题。
1.RAG原理如下图:
基本流程步骤:知识库准备、嵌入模型、存入向量数据库、查询检索、生成回答。
第一步:文档分块
知识库可以是任意文本或集合,文档内容可能非常大,需要将长文本切分为多个小块/段落进行存储,以便高效处理和检索信息(另外一个原因是在向量化阶段,常见的文本编码模型如Bert都有最长的文本输入限制)。需注意分块的尺寸,若分块太小,虽然查询更精准,但所需的召回时间更长;若分块太大,则会影响查询精准度。
第二步:嵌入模型
将分块后的文本转化为向量形式,就能通过简单的计算向量之间的差异性,来识别语义上相近的句子
第三步:存入向量数据库
将嵌入模型生成的向量数据存储至向量数据库。其优势主要是能根据数据向量的相似度,快速定位、检索数据,实现很多传统数据库无法实现的功能,如在电影中搜索浪漫的片段。
第四步:用户查询、检索
用户输入的问题会被输入到嵌入模型中,进行向量化处理,然后系统会从向量数据库中搜索与问题向量语义上相近的知识内容或历史对话记录并返回,这就是检索增强。
第五步:融合、生成回答
将上一步检索到的相关内容与用户的提问相融合,构建出一个Prompt(提示词),将其输入到大模型(LLM)中,由大模型(LLM)生成最终的结果并返回。
1.问答系统
RAG根据检索到的相关信息生成准确答案,帮助人员更快获取所需信息。如搭建企业内部知识库,新员工培训手册查询、公司规章制度查询等。
2.智能客服系统
RAG可以结合产品资料知识库、聊天记录、用户反馈等数据,自动为用户提供更精准的回答。
3.个性化系统推荐
RAG可以检索用户的购买记录、浏览行为、个人偏好等数据,生成个性化的产品和服务推荐,提高用户满意度和转化率。
4.智能数据分析
RAG可以结合外部数据源,如数据库、API、文件等,为用户提供更便捷的数据分析服务。传统企业的数据分析主要靠数据分析师,每天需写大量的SQL语句进行查询,而在RAG支持下,企业员工能以自然对话的方式快速获取数据。如门店店长直接用语音对话,“请帮我找出上周销量排名前10,但本周销量下滑最快的品类”,系统即可直接给出结果。
5.自动化文档处理
利用RAG自动化文档处理流程,如自动生成合同、撰写周报、总结会议纪要等,节省时间与人力成本。
1.RAG和知识图谱的结合:
以提升数据质量为前提时:可建立知识图谱,来解决。嵌入模型虽然简单,但无法有效捕捉实体之间的复杂关系和层次结构,所以导致传统RAG在面对复杂问题时,特别吃力。如用户提问“《跨越鸿沟》这本书的主旨是什么”传统RAG技术肯定是回答不出来的,但知识图谱可以做到,因为利用知识图谱对数据集建立索引时,会提取实体与实体之间的关系,这样就构建一种全局性的优势,从而提升RAG的精准度。
但知识图谱虽然强大,可惜成本太高,会大幅提升Token的消耗。
2.RAG与AI Agent
AI Agent本身和Rag是相辅相成的关系。Rag系统为AI Agent提供长期记忆能力,而AI Agent的规划与反思也会为Rag系统提供非常好的规划管理和路由能力。
Prompt和RAG的分享就到这里了,希望对你有所帮助,欢迎一起交流学习。