生成式AI - 大模型(LLM)提示工程(Prompt)技巧

news2024/11/19 7:49:48

提示工程可以描述为一种艺术形式,为大型语言模型(LLMs)创建输入请求,以实现预期的输出。以下是创造单个或一系列提示的不同技巧。

由少到多的提示


推理过程是基于证据和推理得出结论。反过来,可以通过为LLM提供一些关于如何推理和使用证据的示例来生成推理。因此,开发了一种新颖的提示策略,名为从少到多的提示。这种方法基于以下策略:

1. 将复杂问题分解为一系列更简单的子问题,并随后解决每个子问题。

2. 通过先前解决的子问题的答案来促进解决每个子问题。

因此,从少到多的提示是一种使用逐步序列提示以达到最终结论的技术

自答提示

考虑到下面的图片,很明显自问提示是从直接和链式思维提示的进展。

自问提示有趣的地方在于LLM推理被明确地展示出来,并且LLM还将问题分解成更小的后续问题。

LLM知道何时达到最终答案,并可以从中间答案的后续步骤移动到最终答案。

元提示

支撑元提示的关键原则是使代理反思其自身表现并相应地修改其指令。同时使用一个总体的元提示。

思维链提示

我们作为人类会直觉地将一个更大的任务或问题分解成子任务,然后将这些子任务链接在一起。使用一个子任务的输出作为下一个子任务的输入。

通过在OpenAI Playground中使用思维链提示的方法,即提供思维链的具体示例作为指导,可以展示大型语言模型如何发展出复杂的推理能力。

研究表明,当以这种方式被提示时,足够大型的语言模型可以实现推理能力的涌现。

ReAct提示

与人类相比,推理和行动之间的紧密协同作用使得人类能够快速学习新任务并执行强大的推理和决策。即使在面临未预料的情况、信息或不确定性时,我们仍能做到这一点。

大型语言模型已经在链式思维推理(CoT)和提示以及行动(生成行动计划)方面展示了令人印象深刻的结果。

ReAct的想法是将推理和采取行动结合起来。推理使模型能够诱导、跟踪和更新行动计划,而行动则允许从外部来源收集额外的信息。

将这些想法结合起来被称为ReAct,并且它被应用于一组多样化的语言和决策任务中,以展示其相对于最先进的基线方法的有效性,并提高人类可解释性和可信度。

符号推理& PAL(Probabilistic Abstraction Latent Dirichlet Allocation)

LLMs应该不仅能够执行数学推理,还应该能够进行符号推理,涉及与颜色和对象类型相关的推理。考虑以下问题:

I have a chair, two potatoes, a cauliflower, a lettuce head, two tables, a cabbage, two onions, and three fridges. How many vegetables do I have?

LLMs应该能够将输入转换为一个字典,其中实体和值根据它们的数量进行分类,同时过滤掉非蔬菜实体。

最后,答案就是字典值的总和,低于从LLM输出的PAL结果:

# note: I'm not counting the chair, tables, or fridges   vegetables_to_count = {       'potato': 2,       'cauliflower': 1,       'lettuce head': 1,       'cabbage': 1,       'onion': 2   }   answer = sum(vegetables_to_count.values())

迭代提示

最近,重点已经从LLM微调转向增强提示工程。确保提示具有上下文,包含少量样本训练示例和对话历史记录。

通过迭代过程确保提示包含上下文信息。

迭代提示应建立上下文思维链,排除无关事实和幻觉的生成。交互式上下文感知和上下文提示。

考虑到上面的图片,在C1和C2,知识对于准确回答问题非常重要。迭代提示的方法包含了思维链提示和流水线的强有力元素。

序列提示

顺序提示考虑了使用LLMs构建可靠推荐器的可能性。通常,推荐系统采用流水线架构进行开发,包括多阶段候选生成(检索更多相关项目)和排名(将相关项目排在更高位置)过程。

顺序提示专注于推荐系统的排名阶段,因为大规模候选集上的LLM运行成本较高。

排名性能对检索到的顶级候选项目敏感,更适合检查LLM推荐能力的差异。

自我一致性

与思维链推理不同,自我一致性利用了直觉:复杂的推理问题通常有多个不同的思考路径,导致其唯一正确的答案。

自我一致性方法由三个步骤组成:

  1. 提示LLM生成思维链(CoT)推理部分。

  2. 生成多种推理路径。

  3. 选择最终答案的最一致输出。

自我一致性方法所采用的方法可能会引入增加的开销;特别是如果每个CoT的步骤都涉及调用外部工具和API,则开销会以额外成本和完成往返时间的形式表现出来。

自动推理和工具使用(ART)

已经证明,思维链提示可以从LLMs中引出复杂和顺序推理。而且,对于每个步骤,可以使用外部工具来改进特定节点生成的输出。

开发这些方法学的前提是为了利用冻结的大型语言模型(LLM),从而增强之前训练过的时间戳模型。

自动推理与工具使用(ART)是一个框架,它也利用冻结的模型来生成中间推理步骤作为程序。

ART的方法强烈地提醒了Agents的原则,即将问题分解为多个步骤,并利用工具处理每个分解步骤。

使用ART时,冻结的LLM将新任务的实例分解成多个步骤,并在适当的情况下使用外部工具进行操作。

ART是一种无微调的自由方法,用于自动化多步推理和自动工具选择和使用。

生成的知识

生成知识的原则是,在推理时可以整合知识。这表明可以利用参考知识替代模型微调。

在不同的数据集、常识推理等方面进行了测试。

生成知识的原则得到了像RAG、流水线等技术的发展支持。

----------------------------------
大家好,我是流水,一个资深的IT从业人员和架构师. 非常高兴您能搜索到,并看到这篇文章,希望这篇文章的内容能给您带来新的知识和帮助。

也欢迎扫描以下的二维码或微信搜索 “superxtech”,关注我的微信公众号 , 我会把更多更好的IT领域技术知识带给您!

----------------------------------
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1141865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】模拟实现栈和队列

文章目录 栈(Stack)栈的概念栈的常用方法模拟实现栈 队列(Queue)队列的概念队列的常用方法队列的模拟实现循环队列模拟实现 栈(Stack) 栈的概念 栈是一种特殊的线性表,只允许在固定的一端进行…

CSS背景background八种属性

想必大家对背景不陌生,让我为大家介绍一下吧! 属性名简述background-color背景颜色background-image背景图片background-position背景定位background-size背景大小background-repeat背景是否平铺background-attachment背景是否随滚动条固定background-c…

计算机网络【CN】介质访问控制

信道划分介质访问控制 FDMTDMWDMCDM【掌握eg即可】 随机介质访问控制 CSMA 1-坚持CSMA 非坚持CSMA p-坚持CSMA 空闲时 立即发送数据 立即发送数据 以概率P发送数据,以概率1-p推迟到下一个时隙 忙碌时 继续坚持侦听 放弃侦听,等待一个随机的时…

SAP数据元素描述增强修改

数据元素描述增强修改 一、需求 需要将业务伙伴伙伴中的手机字段的描述改为’税局备案电话’。 三、增强实现 使用事务码CMOD,点击转到-》文本增强-》关键字-》更改。 输入数据元素的的字段号码,更改激活即可

从瀑布模式到水母模式:ChatGPT如何赋能软件研发全流程【文末送书五本】

从瀑布模式到水母模式:ChatGPT如何赋能软件研发全流程 前言内容简介购买链接作者简介专家推荐读者对象参与方式往期赠书回 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域新星创作者,CSDN实…

Unity的碰撞检测(五)

温馨提示:本文基于前一篇“Unity的碰撞检测(四)​​​​​​​”继续探讨两个游戏对象具备刚体的BodyType均为Dynamic,但是Collision Detection属性不同的碰撞检测,阅读本文则默认已阅读前文。 (一)测试说明 在基于两…

《动手学深度学习 Pytorch版》 10.7 Transformer

自注意力同时具有并行计算和最短的最大路径长度这两个优势。Transformer 模型完全基于注意力机制,没有任何卷积层或循环神经网络层。尽管 Transformer 最初是应用于在文本数据上的序列到序列学习,但现在已经推广到各种现代的深度学习中,例如语…

QA新人入职任务

一、背景 分享记录一下入职新公司后,新人第一周接到的新手任务,回顾总结,方便自己成长和思考~ 二、新人任务说明 题目1:接口相关 题目2:UI相关 UI原型图 三、任务要求 1、根据题目2原型图,进行UI测试…

【继承顺序和方式,子类构造方法,protected 关键字,final 关键字】

文章目录 子类构造方法super和this继承关系上的执行顺序protected 关键字继承方式final 关键字总结 子类构造方法 子类继承父类的成员变量,那父类的成员变量怎么初始化呢? 要先初始化父类成员,子类的构造方法才能完成 class Animal{public…

解决:idea中代码文件背景变成特殊颜色(浅褐色),且代码智能提示完全消失,即使在新项目中创建同类型文件也会出现同样情况

解决:idea开发中代码文件背景变成浅褐色,且代码智能提示完全消失,不同项目新建同类型文件也会出现同样情况 一问题描述:1.idea开发中,使用idea的快捷提示组合键进行提示,但是手快点击确认了什么提示选项&am…

DSP开发例程(3): sys_print_to_uart

目录 DSP开发例程: sys_print_to_uart创建工程源码编辑os.capp.cfgmain.c 调试原理分析 DSP开发例程: sys_print_to_uart 在DSP 应用的执行过程中, 我们经常需要调用 System_printf() 来显示当前的执行状态. 不只是 System_printf() 函数, SYS/BIOS 打印信息的函数还包括: Sys…

橙河网络:国外问卷调查赚钱是真的吗?

大家好,我是橙河网络,今天聊一聊国外问卷调查赚钱是真的吗? 有不少人在第一次了解这个项目的时候,看到“海外”“国外”这些字眼的时候,心里都会犯嘀咕:这海外问卷调查项目能做吗?国外问卷调查…

使用 Pyro 和 PyTorch 的贝叶斯神经网络

一、说明 构建图像分类器已成为新的“hello world”。还记得当你第一次接触 Python 时,你的打印“hello world”感觉很神奇吗?几个月前,当我按照PyTorch 官方教程并为自己构建了一个运行良好的简单分类器时,我也有同样的感觉。 我…

Spring应用启动很慢?试试这个工具

前段时间搞应用启动优化的时候参考了这篇文章的很多观点,并基于此开发了此工具——spring-startup-analyzer。这是一个分析Spring应用启动过程的工具,通过采集Spring应用启动过程数据,生成交互式分析报告,用于分析Spring应用启动卡…

Netty进阶-黏包半包

黏包半包 1. 粘包与半包1.1 粘包现象1.3 现象分析1.4 解决方案方法1,短链接方法2,固定长度方法3,固定分隔符方法4,预设长度LengthFieldBasedFrameDecoder 1. 粘包与半包 1.1 粘包现象 服务端代码 Slf4j public class HelloWorl…

智能矩阵,引领商业新纪元!拓世方案:打破线上线下界限,开启无限营销可能!

在科技赋能商业大潮中,一切行业都在经历巨大变革,传统的营销策略被彻底改变,催生着无数企业去打造横跨线上线下、多维度、全方位的矩阵营销帝国。无数的成功案例已经告诉我们,营销不再只是宣传,而是建立品牌与消费者之…

JAVA实现校园失物招领管理系统 开源

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 招领管理模块2.2 寻物管理模块2.3 系统公告模块2.4 感谢留言模块 三、界面展示3.1 登录注册3.2 招领模块3.3 寻物模块3.4 公告模块3.5 感谢留言模块3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 基于VueSpri…

甲骨文真的要开放Java EE?

甲骨文表示,目前正在与可能的几个候选基金会,以及许可证持有者和社区在进行谈判。随着Java EE 8平台的确定,甲骨文在周四表示,目前正在考虑将Java Enterprise Edition技术转移到开源社区。 甲骨文在其博客中说道,这次的…

数据结构介绍与时间、空间复杂度

数据结构介绍 什么是数据结构?什么是算法?数据结构和算法的重要性 数据结构定义 数据结构是计算机科学中研究数据组织、存储和管理的一门学科。数据结构描述了数据对象之间的关系,以及对数据对象进行操作的方法和规则。 常见的数据结构 数…

解决node项目一个极度困难的捕获异常却无法读取异常信息的问题

这个项目是集成了第三方NeteaseCloudMusicApi项目的接口代码,我没有直接使用它的接口,因为需要再跑一个npm run开个端口,感觉很麻烦。 所以下定决心,使用拆分代码的方式,硬生生将这个api项目的部分api接口代码集成到了…