分享
19. RAG 提示工程系列(一)
输入“/”快速插入内容
19. RAG 提示工程系列(一)
2024年4月5日创建
•
作者:蓝衣剑客,云中江树
•
文章状态:持续更新中
一、前言
虽然目前网络上关于提示工程的相关资料已经多如牛毛,然而 RAG (检索增强生成) 任务中提示工程如何进行的资料相对而言却较少。不少朋友之前也热烈的讨论过 RAG 场景下提示词的运用,因此 LangGPT 社区特别推出 RAG 任务下的提示词实践经验系列分享。
蓝衣剑客(微信 lanyijianke1992)是 LangGPT 社区核心成员,清华大学数据治理研究中心主任助理,曾经参与生成式人工智能行业应用合规标准起草,作为企业技术负责人主导参与了多个大模型实际应用场景下的落地工作,在 RAG 相关领域有着大量的实践经验。云中江树(微信 1796060717)是 LangGPT 提示词社区的主理人,结构化提示词提出者。蓝衣剑客负责本文主要内容的撰写,江树负责本文内容框架的整体设计和质量把控。
《RAG 提示工程》为系列文章,今天为大家带来的是《RAG 提示工程》的第一篇。在这篇文章中,我们将带领大家了解RAG架构的概念、基本组成、常见痛点以及提示词工程在RAG架构中的应用。随后,我们将逐步指导大家实操一个RAG提示词案例,让大家逐步了解如何编写、调试符合企业生产级标准的提示词。
欢迎访问 LangGPT 提示词社区
⭐LangGPT 结构化提示词
欢迎添加作者微信交流:
蓝衣剑客(微信 lanyijianke1992)
云中江树(微信 1796060717)
二、什么是RAG?
概念
RAG 是检索增强生成(Retrieval Augmented Generation)的简称,是当前最火热的企业级LLM应用方案。
优势
大语言模型技术的本质导致了大模型的输出结果具有不可预测性,此外,静态的训练数据导致了大模型所掌握的知识存在截止日期,无法即时掌握最新信息。因此,当我们将大模型应用于实际业务场景时会发现,通用的基础大模型无法满足我们的实际业务需求。主要存在以下原因:
•
知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问…)的训练集基本都是抓取网络公开的数据用于训练,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。
•
幻觉问题:大模型的底层原理是基于数学概率的文字预测,即文字接龙。因此大模型存在幻觉问题,会在没有答案的情况下提供虚假信息,提供过时或通用的信息,从可信度低非权威来源的资料中提供结果等。
•
数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。因此如何大模型落地应用时如何保障企业内部数据安全是一个重要问题。
而 RAG 是解决上述问题的一套有效方案。它可以让大模型从权威的、预先确定的知识来源中检索、组织相关信息,更好地控制大模型生成的文本输出,并且用户可以深入了解 LLM 如何生成最终的结果。
并且,RAG 可以和微调结合使用,两者并不冲突。
RAG类似于为模型提供教科书,允许它基于特定查询检索信息。这该方法适用于模型需要回答特定的询问或解决特定的信息检索任务。然而,RAG不适合教模型来理解广泛的领域或学习新的语言,格式或样式。
微调类似于让学生通过广泛的学习内化知识。这种方法当模型需要复制特定的结构、样式或格式时非常有用。微调可以提高非微调模型的性能,并使交互更加频繁有效率的它特别适合强调基础模型中的现有知识,修改或自定义模型的输出,并向提供复杂的指令模型然而,微调不适合合并模型中的新知识或需要的情况新用例的快速迭代。
以下是RAG与微调从维度方面的比较: