一文了解 16 种方式优化提示工程,让大模型更“懂”你

前言

预训练微调提示词工程是大型语言模型(LLM)生成质量优化的三种关键手段,各自具有不同的特点和优势。

预训练是 LLM 发展的基石,通过在大规模无标注语料库上进行自监督学习,赋予模型通用的语言理解和生成能力。这种自然语言的通用知识为后续的微调和提示词工程奠定了坚实基础。

微调则是利用有标注的任务数据,对预训练模型进行进一步调整和优化,使其更好地适应特定的下游任务。微调的优势在于可以充分利用监督信号,提高模型在特定领域的生成质量。 但同时也存在过度微调导致过拟合、灾难性遗忘等潜在风险。

与之不同,提示词工程无需对模型参数进行更新,而是通过设计合理的提示,激发预训练模型中蕴含的知识,从而在下游任务中获得良好的生成质量。这种方式更加高效灵活,避免了微调可能带来的问题。 但提示词的设计质量对模型表现影响重大,需要更多研究来探索通用有效的提示设计范式。

接下来,本文将重点讨论提示词工程技术。文章将介绍提示词工程的基本原理设计方法,以及在不同任务场景下的应用实践,旨在为读者提供全面的理解和借鉴。同时也会分析提示词工程当前面临的挑战和发展方向,为后续研究指明路径。

提示词工程的分类

提示词工程的分类方法很多,本文将根据提示词工程技术发展演进路径,将类型分为:直接提示(Prompt)、链式提示(Chain)、图谱提示(Graph)、生成类提示(Generate)、集成式提示(Integrate) 五种。

直接提示(Prompt)

这种直接的提示词的方式侧重点在于通过特定的指令设计,来提示模型产生更好的输出。主要方法包括:

Zero-shot(零次提示)Few shots(少量提示)Act 、ReAct 和 Directional Stimulus Prompting(方向性刺激提示)。

下面举几个例子,可以帮助大家加深这些方法差别的理解。

Zero Shot、Few Shots 和 Act 这三种偏向直接在问题中精心构造输入的内容。

而 ReAct 这种方式,更加关注外部的信息反馈,根据外部信息反馈后做归因然后再进行响应。

Directional Stimulus Prompting,是指在提示词中加入一些提示,以限制在特定领域或限定的方向上生成的内容。请看如下例子:

方向性刺激提示与标准提示的比较

链式提示(Chain)

链式提示这种方式关注 LLM 的内部逻辑,比如思维链(Chain of Thought)、多模态思维链、思维树(Tree of Thought)。同时还关注在这个过程中的自洽(Self-consistent)和自我反思(Reflexion)。

在这个过程中,一般会将复杂问题进行拆解,分成多个步骤进行推理。这样做的好处是,可以让 LLM 在推理过程中更容易获得正确的答案。

例如,对于一些早期的大语言模型,我们输入“我有 23 个苹果,吃了 20 个后又买了 6 个,现在还有几个?”,大概率会给出错误答案。但是 Amazon Bedrock 中大语言模型的响应,将问题分解成了多个步骤,然后逐步推理获得了正确答案。

这种技术的核心就是在提示过程中表现为顺序的,可解释的,能够清晰地看到思维推理的过程。

Reflexion 顾名思义,是大语言模型对自己生成内容进行反思的一种过程。这种自我反思,会记录本轮的问题和输出的答案并作为记忆(上下文),然后再用大语言模型验证生成内容是否符合“初心”。如果不匹配我们就会让这个过程重复“持续思考”,直到获得理想的答案。

Reflexion 流程示意图

下面看一个综合运用了多种链式范式综合案例。

基于 Amazon Bedrock 上 LLM 的多 Agent 狼人杀游戏

这是一个基于多 Agent 的人工智能狼人杀游戏,在这个游戏中,多个游戏角色由 LLM 来扮演,主要通过 Amazon Bedrock 中的大语言模型作为推理和发言的主模型,使用 Llama3 8B Instruct 和 Mistral 7B Instruct 作为 Reflexion 和总结性文字的输出。

不同游戏角色拥有不同的个性和记忆,角色会根据自己的记忆和游戏的流程不断去推理谁是地方阵营,并发动投票处决敌方。在每个轮次中,角色会对自己的发言进行自我反省,确定自己的发言是否对自己和己方阵营有利。这样做的好处就是可以避免角色出“昏招”。由于这个反省模型和发言模型不一样,这样也可以避开由于单一模型推理过程中造成的“偏见”的问题。

在整个游戏过程中,每个角色都会根据外部的问题和事件,根据自己的独有记忆和共享记忆来对外部刺激作出响应。然后将“2 个大脑的声音”进行合理性验证,并得作出动作。这个游戏参考了“斯坦福小镇”的设计思路,对于制作开放式角色具有重要参考作用。

游戏主要流程设计

图谱提示(Graph)

图谱提示和链条提示方式非常相似,都是关注大模型内部结构化的推理过程。但这个过程并不是线性的,而是假定训练过程中隐式地构建了网状或者是图形结构的知识图谱。在用户交互过程中,通过寻找不同知识的连接性和关联性,产生多个维度和更加复杂的非线性答案。

在这个范式下我们一般会先通过实体的识别,先找出相关问题的出发点。而这个出发点可能不止一个,然后通过实体关系寻找可能的下一个相关节点的相关信息。然后重复这个过程直到在所有关系或指定的有限关系中找到相关内容,并对问题给出正确的解。这个范式适用于复杂数学问题、人物关系问题、犯罪线索发现等领域。

生成类提示(Generate)

生成类提示,主要技术包括 Automatic Prompt Engineer 和 Generate Knowledge Prompting。

Automatic Prompt Engineer 关注自动化。这个方法让指令生成问题被构建为自然语言合成问题,使用 LLM 作为黑盒优化问题的解决方案来生成和搜索候选解。第一步选择一个语言模型用作推理,该模型接收输出数据以生成任务的指令候选项。这些候选解将指导搜索过程。使用大语言模型作为打分模型,然后根据计算的评估分数选择最合适的指令。

Generate Knowledge Prompting 关注内容生成。这种技术的特点是利用语言模型已有的知识进行与问题相关的知识片段的生成,以帮助模型做出更准确的预测。

无论是哪种技术,都是利用 LLM 内部的知识来迭代补充知识的生成。下面举个例子大家可以对比着看。

使用某个大语言模型直接生成结果获得的错误例子

当然这个问题,现在使用更加强大的模型已经能直接获得正确答案。以下是使用 Amazon Bedrock 上 Amazon Bedrock 中的大语言模型的回答:

正确响应

虽然这个例子中的问题,Amazon Bedrock 中的大语言模型已经能正确回答。**但是在很多场景下我们还是可以通过 Generate Knowledge Prompting 技术来提高问题解答的正确率。**下面我们看看这一切是如何发生的:

输入:

问题:高尔夫球的一部分是试图获得比其他人更高的得分。是或否?

知识:高尔夫球的目标是以最少的杆数打完一组洞。一轮高尔夫球比赛通常包括 18 个洞。每个洞在标准高尔夫球场上一轮只打一次。每个杆计为一分,总杆数用于确定比赛的获胜者。解释和答案:

输出:

不是,高尔夫球的目标不是获得比其他人更高的得分。相反,目标是以最少的杆数打完一组洞。总杆数用于确定比赛的获胜者,而不是总得分。

在实际实施的过程中,我们可能也会碰到一些输出不稳定的情况。具体情况需要根据业务来分析,可以考虑综合运用多种 PE 技术手段进行优化。

集成式提示(Integrate)

集成式提示,包括检索增强生成(RAG)、自动推理、工具使用、程序辅助语言模型。这些方式的共性都是大语言模型与外部资源进行交互,从而实现复杂任务,提升答案质量。

下面介绍一个综合应用这些技术的例子,下图是在 2024 年亚马逊云科技中国峰会上展示的一个 Text2SQL 落地的案例,架构参考下图:

Text2SQL 落地案例架构示意图

该解决方案基于自然语言的交互方式,通过意图识别过滤非法输入,用知识库中的查找相似问题并取回 SQL 语句(RAG),利用相似的 SQL 语句通过大语言模型生成目标 SQL 语句,根据 SQL 语句生成动态图表(PLA),还可以生成信息洞察。

总结

本文一共介绍了 16 种提示词工程的相关技术,分别对应如何构建外部提示,利用内部知识逻辑或者借助外部数据信息,来引导模型产生更加准确的回答。

总的来说,提示词工程是一个充满活力和创新的领域,为大型语言模型的应用开辟了广阔的前景。通过不断探索和优化提示词的设计方法,我们能够最大限度地发挥模型的潜能,提高生成质量和任务适用性。未来,提示词工程必将与其他人工智能技术相互融合,为构建更加智能、高效和人性化的人机交互系统重要力量。

最后的最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

### RAG模型概述 RAG(Retrieval-Augmented Generation)是一种融合了检索增强机制的生成型语言模型,由Facebook AI研究院(FAIR)提出。这种架构通过结合传统的基于检索的方法和现代的语言生成技术来提升自然语言处理任务的效果[^3]。 ### 工作原理详解 #### 数据获取阶段 在数据准备过程中,RAG利用外部知识库作为补充资源。当接收到输入查询时,系统首先会在预先构建的知识图谱或其他形式的大规模语料库中执行信息检索操作,找到最有可能帮助完成当前对话或任务的相关片段。 #### 动态上下文集成 不同于静态预训练模式下的纯生成方式,在线检索到的具体实例会被即时融入到解码器端口处,使得每次预测都能依据最新获得的真实世界证据来进行调整优化。这一特性赋予了RAG强的情境适应能力,尤其是在面对开放领域问答、多轮次交互式聊天等复杂场景下表现尤为突出。 #### 双重评分机制 为了确保最终输出的质量,RAG采用了两步走策略:先是从候选集中挑选出若干高质量的回答选项;再经过一轮精细评估后决定最佳回复方案。具体来说就是分别计算每条建议得分——一方面考量它与原始请求之间的匹配度;另一方面也要顾及内部连贯性和逻辑一致性等因素。 ```python def rag_model_inference(query, knowledge_base): retrieved_docs = retrieve_relevant_documents(query, knowledge_base) generated_responses = [] for doc in retrieved_docs: response = generate_response_based_on_document(doc) generated_responses.append(response) best_response = select_best_response(generated_responses) return best_response ``` ### 应用案例分析 实际应用方面,《大模型RAG实战:RAG原理、应用与系统构建》一书中提供了丰富的实践指导和技术细节解析,涵盖了从理论基础到工程实现再到部署上线全流程的内容介绍。对于希望深入了解并掌握这项前沿技术的研究人员而言,这本书籍无疑是一个宝贵的学习资料来源[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值