大模型之Prompt研究和技巧
大模型之Prompt研究和技巧
- 大模型之Prompt编写
- 简介
- 组成
- 技术
- Zero-Shot
- Few-shot
- COT
- COT-SC
- TOT
- GoT
- ReAct
大模型之Prompt编写
简介
Prompt是是给 AI **模型的指令,**一个简短的文本输入,用于引导AI模型生成特定的回答或执行特定任务。
Prompt是你与语言模型沟通的方式。一个好的Prompt可以让AI更准确地理解你的需求,从而给出更有用的回答。
组成
Prompt的组成拆解主要包括以下六个要素:
- 任务(Task): 任务是Prompt的核心,通常以动词开始,明确表达你希望ChatGPT完成的任务或目标。这可以包括生成文本、给予建议、写作内容等。可以有多个任务,以清晰地定义你的需求。
- 上下文(Context): 上下文提供了与任务相关的背景信息,以确保ChatGPT理解问题的背景和约束条件。这包括用户的背景信息、成功标准、所处环境等。上下文对于任务的明确性和有效性至关重要。
- 示例(Exemplars): 示例是提供具体例子或框架的部分,用来引导ChatGPT生成更准确的输出。提供示例可以明确示范所需的内容和格式,从而提高输出质量。但并不是每次都需要提供示例,有时候也可以让ChatGPT自行生成。
- 角色(Persona): 角色明确指定ChatGPT和Bard(如果涉及到虚构的角色)所扮演的角色或身份。这可以是具体的人,也可以是虚构的角色,有助于调整语气和内容以适应特定角色的需求。
- 格式(Format): 格式部分可视化了你期望输出的外观和结构,如表格、列表、段落等。明确指定输出的格式可以确保ChatGPT生成的内容符合你的预期。
- 语气(Tone): 语气定义了输出文本的语气或风格,如正式、非正式、幽默等。指定语气有助于确保ChatGPT的回应符合所需的情感和风格要求。
通过合理组织这六个要素,你可以创建一个清晰明了的Prompt,有效引导ChatGPT生成符合期望的文本输出。
当创建一个Prompt时,下面是一些具体的例子,展示如何使用上述六个要素:
1. 任务(Task):
- 生成一篇有关太阳能发电的文章。
- 给予我一些建议,以降低生活中的碳足迹。
- 写一封感谢信,以表达对客户的感激之情。
2. 上下文(Context):
- 作为一个学生,你要写一篇有关气候变化的研究报告,希望获得深入了解可再生能源的信息。
- 你是一位环保活动家,需要有关减少塑料污染的可行性计划。
- 你正在回顾一次商务合作,需要一封感谢信来强调合作的重要性。
3. 示例(Exemplars):
- 作为示例,可以提供一些有关太阳能的统计数据,或者一个类似的文章的开头段落。
- 作为示例,列出一些环保措施,如减少用塑料制品、使用可再生能源等。
- 提供一些已经写好的感谢信段落,以供参考。
4. 角色(Persona):
- 请以一位环保组织的志愿者的身份来回答。
- 请以一位科学家的身份来回答。
- 请以一位公司首席执行官的身份来回答。
5. 格式(Format):
- 请以段落的形式写一篇文章,包括标题、引言、正文和结论。
- 请以列表形式列出减少碳足迹的建议。
- 请以正式书信的格式写一封感谢信,包括日期、地址、称呼等。
6. 语气(Tone):
- 请使用正式的语气,避免使用俚语或口语。
- 请使用轻松的语气,可以适当加入幽默元素。
- 请使用感激之情的语气,表达真诚的感谢。
这些示例突出了如何根据具体的需求来组成Prompt,以确保ChatGPT能够理解任务、上下文、示例、角色、格式和语气,并生成相应的内容。通过合理搭配这些要素,可以引导ChatGPT产生符合要求的文本回应。
技术
Zero-Shot
Zero-Shot Prompting 指的是在大型语言模型(LLM)中,不需要额外微调或训练,直接通过文本提示就可以完成指定的下游任务。
主要思想是:
- 先训练一个通用的大型语言模型,学习语言的基本规则,掌握丰富的常识和知识。
- 然后在不改变模型参数的情况下,只通过软性提示指导模型完成特定任务。
- 模型根据提示和已掌握的知识,生成对应任务的输出。
举个例子,我们可以给 ChatGPT 一个简短的 prompt,比如
描述某部电影的故事情节,它就可以生成一个关于该情节的摘要,而不需要进行电影相关的专门训练。
Zero-Shot Prompting 技术依赖于预训练的语言模型,这些模型可能会受到训练数据集的限制和偏见。它的输出有时可能不够准确,或不符合
预期。这可能需要对模型进⾏进⼀步的微调或添加更多的提示⽂本来纠正。
Few-shot
Few-shot Prompting 是 Zero-shot Prompting的扩展,指使用很少量的任务相关示例来辅助提示,使模型更快适应新任务。
其关键思想是:
- 仍然基于预训练好的通用语言模型
- 使用软提示指导模型完成新任务
- 额外提供1-2个相关示例作为提示补充
例如:
任务: 生成一篇关于太阳能的文章。
示例:
- 示例1:太阳能是一种清洁能源,通过太阳能电池板将太阳能转化为电力。
- 示例2:太阳能电池板通常安装在屋顶上,可以为家庭提供可再生能源。
- 示例3:太阳能是减少温室气体排放的重要途径。
任务描述: 请以这些示例为基础,撰写一篇关于太阳能的文章,重点介绍太阳能的工作原理、应用领域以及对环境的影响。
COT
论⽂表明,它仅在⼤于等于 100B 参数的模型中使⽤才会有效。如果是⼩样本模型,这个⽅法不会⽣效。
思维链提示,就是把一个多步骤推理问题,分解成很多个中间步骤,分配给更多的计算量,生成更多的 token,再把这些答案拼接在一起进行求解。


COT-SC
让模型⽣成多个思维链,然后取最多数答案的作为最终结果。
其实重复运算多次,取概率最⾼的那⼀个,需要借助脚本辅助完成这个功能。
Self-consistency是对CoT方法的改进,相比于CoT只进行一次采样回答,SC采用了多次采样的思想,最终选择consistent的回答作为最终答案。SC的成立的基础是文章认为,一个复杂的推理问题可以采用多种不同的方式进行解决,最终都可以得到正确答案。人类思考同一个问题可能会有不同的思路,但是最后可能得到相同的结论。可以理解为“一题多解”“条条大路通罗马”。SC相比于CoT性能进一步得到了更大的提升。

通过多次采样回答,最终选择一致性最高的结果作为最终结果,这在很大程度上可以避免LLM随机性带来的错误问题。
TOT
Tree of Thoughts(ToT)框架,⽤于改进语⾔模型(LMs)的推理能⼒。该框架是对流⾏的“Chain of Thought”⽅法的⼀种
泛化,允许模型在解决问题的过程中进⾏更多的探索和策略性前瞻。
ToT允许模型⾃我评估不同的选择,以决定下⼀步的⾏动,并在必要时进⾏前瞻或回溯,以做出全局性的选择。
在24点游戏中,使⽤链式思考提示的GPT-4仅解决了4%的任务,⽽使⽤ToT⽅法的成功率达到了74%
在其他场景中的应用型不是很大。
GoT
GoT有三种操作:
-
Aggregation
-
Refining
-
Generation
Aggregation指的是几个想法的整合,变成了一个更好的想法,图上表现为多个节点指向同一个节点;
Refining指节点自身进行反思,不断改善自己本身的内容,图上表现为一个节点重新指向自己;
Generation指通过一个节点,产生了后续1个或者更多新的想法,图上表现为一个节点指向一个或多个节点。

ReAct
和langchain 中的Agent是一个道理
使用 LLM 以交错的方式生成推理轨迹和特定于任务的动作,从而实现两者之间更大的协同作用。
推理轨迹帮助模型归纳、跟踪和更新行动计划以及处理异常,而操作允许它与外部源(例如知识库或环境)交互,以收集附加信息。我们应用我们的方法,名为 ReAct,适应各种语言和决策任务,并证明其在最先进的基线上的有效性,以及比没有推理或行动组件的方法提高的人类可解释性和可信度。
具体来说,在问答(HotpotQA)和事实验证(Fever)方面,ReAct 通过与简单的维基百科 API 交互,克服了思维链推理中普遍存在的幻觉和错误传播问题,并生成类似人类的任务解决轨迹,比没有推理痕迹的基线更容易解释。

相关文章:
大模型之Prompt研究和技巧
大模型之Prompt研究和技巧 大模型之Prompt编写简介组成技术Zero-ShotFew-shotCOTCOT-SCTOTGoTReAct 大模型之Prompt编写 简介 Prompt是是给 AI **模型的指令,**一个简短的文本输入,用于引导AI模型生成特定的回答或执行特定任务。 Prompt是你与语言模型沟…...
掌握Golang匿名函数
一个全面的指南,以理解和使用Golang中的匿名函数 Golang以其简单和高效而闻名,赋予开发人员各种编程范式。其中一项增强代码模块化和灵活性的功能就是匿名函数。在这篇正式的博客文章中,我们将踏上探索Golang匿名函数深度的旅程。通过真实世…...
HarmonyOS云开发基础认证---练习题二
【判断题】 2/2 Serverless是云计算下一代的默认计算范式。 正确(True) 【判断题】 2/2 接入认证服务后,用户每次收到验证码短信都需要开发者买单。 错误(False) 【判断题】 2/2 认证服务手机号码登录需要填写国家码。 正确(True) 【判断题】 2/2 在Cloud Functi…...
ffmpeg视频解码器的配置选项含义
lowres的含义 lowres是AVCodecContext结构体中的一个成员变量,用于指定编解码器的降低分辨率级别。 在某些情况下,为了加快编解码的速度或减少计算资源的消耗,可以通过设置lowres参数来降低编解码器的分辨率级别。这将导致编解码器在处理视…...
enter ubuntu boot option in virt-manager
在全屏模型下,启动过程中按下F8或者Ctrl F8。 参考:https://serverfault.com/questions/463024/how-do-i-access-the-f8-bootmenu-while-booting-a-windows-2008r2-kvm-guest-vm...
电商运营该如何做 AB 测试
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近年,电商行业进入了一个新的发展阶段,一方面电商市场规模持续扩大,另一方面直播电商、即时零售、社区团购等新兴电商业态在疫情…...
go环境部署
#env 命令查看 PATH 发现 #这两条环境变量是把 通过brew 安装的所有程序加入到环境变量中,其中就包含了go /opt/homebrew/sbin /opt/homebrew/bin#mac 系统 将原本 brew 安装的 go 1.20.5版本卸载 brew uninstall go #然后 去官网下载 https://go.dev/dl/ 想要的版本 1.21.0 …...
HTTP/2 中的漏洞
另一个热门漏洞是 CVE-2023-44487。 该漏洞与 HTTP/2 协议实施中的一个缺陷有关,可用于实施 DDoS 攻击。使用该漏洞的攻击被命名为 HTTP/2 快速重置。 为什么它很危险 要利用该漏洞,攻击者需要在 HTTP/2 会话中打开大量请求,然后在不等待服…...
智能油烟机 优化烹饪体验
如果说空调是夏天最伟大的发明,那么油烟机则是健康厨房的伟大推进者。随着科技的发展,智能化的油烟机逐渐走进了人们的日常生活。每当我们在爆炒、油炸食物的时候,油烟总能呛得人眼睛痛、鼻子难受,传统的油烟机面前我们还需要手动…...
啥?PS一秒成图?Adobe的逆天黑科技大公开
在日前举行的 Adobe MAX 创意大会上,Adobe Adobe Firefly Image 2(萤火虫二代成像模型)、Firefly Vector Model(萤火虫矢量模型)和Firefly Design Model(萤火虫设计模型)。 Firefly矢量模型是世…...
扫描器(xray和bp联动)
文章目录 分类主动扫描和被动扫描bp与xray联动 分类 扫描器分为对web的扫描器和对主机的扫描器 主动扫描和被动扫描 主动扫描: 输入某个URL,然后由扫描器中的爬虫模块爬取所有链接,对GET、POST等请求进行参数变形和污染,进行重放测…...
[C++]:1.初识C++和C语言缺陷补充。
初识C和C语言缺陷补充 一.主要内容:二.具体内容:一: 作用域1.命名空间:2.函数声明和定义:3.不存在命名冲突的情况: 二.输入输出:1.基本输入输出:2.关于std的展开: 三.函数…...
BUUCTF学习(三): PHP 代码审计
1、介绍 2、解题 (1)查看网页源代码 (2)返回链接 (3)代码审计...
推荐《Blue prison》
电视动画片《蓝色监狱》改编自金城宗幸原作、野村优介作画的同名漫画作品,于2021年7月31日宣布电视动画化的消息 [1]。该片由8Bit负责动画制作,于2022年10月9日起播出 [2],全24集。 该作评为Anime Corner 2022年年度体育动画 [24]࿰…...
goland安装教程
安装版本: goland-2023.2.3.exe...
java中okhttp和httpclient那个效率高
在比较OkHttp和HttpClient的效率时,需要考虑多个因素,包括性能、吞吐量、资源消耗等。这些因素往往取决于具体的使用场景和需求。 OkHttp是一个由Square开发的现代化HTTP客户端库,它在Android平台上广泛使用,并且也可以在Java应用…...
内存占用问题
虚拟内存介绍 虚拟内存就是将部分磁盘变成内存的拓展,用上去就好像是将内存变大了一样。 比如同样是16G的物理内存,有人能比你多开几个应用,你开两三个就要黑屏,然后浏览器说你内存不够。 打开任务管理器,内存也没有…...
代码随想录二刷 Day 34
455.分发饼干 这个题差不多是两个for循环遍历,然后用双指针法化简,自己可以大概写出来,漏了一个边界条件 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end(…...
软件开源快速开发框架:降本增效,助力流程化办公!
随着时代的进步和社会的发展,应用软件开源快速开发框架的优势特点,可以让不少客户朋友顺利实现流程化办公,朝着数字化方向迈进。流辰信息是专业研发低代码技术平台的服务商,一直在低代码平台领域深耕细作,努力钻研&…...
Flink on k8s容器日志生成原理及与Yarn部署时的日志生成模式对比
Flink on k8s部署日志详解及与Yarn部署时的日志生成模式对比 最近需要将flink由原先部署到Yarn集群切换到kubernetes集群,在切换之后需要熟悉flink on k8s的运行模式。在使用过程中针对日志模块发现,在k8s的容器中,flink的系统日志只有jobma…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
