当前位置: 首页 > article >正文

六、Prompt工程——进阶迭代

Prompt工程——进阶迭代

  • 一、Prompt样本提示
    • 零样本提示(Zero-shot Prompting)
    • 少量样本提示(Few-shot Prompting)
  • 自洽性/自一致性(Self-Consistency)
  • Prompt生成知识提示
    • 生成知识提示(Generate Knowledge Prompting)


这些都是业界总结出来的一些方法论,大家主要是学习其理念和方法。当我们要使用大模型去完成比较复杂任务的时候,可能提示词要复杂的多,我们要做的就是尝试各种办法让大模型返回我们想要的结果。提示词优化的过程就是不断迭代的过程。

一、Prompt样本提示

零样本提示(Zero-shot Prompting)

零样本提示(Zero-shot Prompting),也就是不需要微调,不需要提供任何示例样本也可以直接通过提问来让模型解决相应的任务。这是因为模型本身就通过了大量数据进行了训练。

在这里插入图片描述

少量样本提示(Few-shot Prompting)

虽然模型只通过 zero-shot 零样本的能力就已经很强大了,但如果你的任务需求比较复杂,直接使用 Zero-shot不一定能满足需求。这时候就应该使用 few-shot 少量样本提示,相当于在 Prompt 中给问题提供一个 Context上下文,在上下文里面给模型提供示例,这个示例的作用并不是让模型去学习,因为光靠几个示例是完全不够学习的。这几个示例的作用实际上是引导,引导模型找到对应的回答方式,从而生成更准确的响应。
在这里插入图片描述
few-shot 虽然解决了 zero-shot 的问题,能够适用于分类等许多基本任务,但如果遇到了需要推理的复杂任务时,few-shot 就无能为力了。因为模型无法从少量样本中学习到完整的推理过程。这时候就要引申出另外一个概念思维链提示CoT (Chain-of- Thought Prompting)。
通常涉及到推理的复杂任务,并不是可以一步直接得到答案的,中间会有很多的计算和推理过程。当我们让ChatGPT 回答这些推理问题时,并没有给模型足够的思考空间,他没有草稿纸去进行计算。所以我们在给到模型提供示例时,不要只给一个答案,而是要把解题思路也给到模型,这样的话模型学习到的效果会更好。
在这里插入图片描述类似这类逻辑题,如果ChatGPT没有回答对,可以加上“请一步步分析”,在某些场景有奇效,有时英文效果更好“Let’s think step by step”,“Analyze step by step”

在这里插入图片描述

自洽性/自一致性(Self-Consistency)

如果你发现这样还是不能解决问题。那还可以更进一步的对 Prompt 进行优化 ,这些优化的方法是 CoT 变种。比如可以让 ChatGPT 产生多个思维链,也就是多个推理路径,最终选择一个一致性最高的答案。这种方法叫做 Self-Consitency 自洽性。为一个问题,提供3个解决方案,最终结合3个解决方案给出与问题一致性最高的答案。
在这里插入图片描述
在这里插入图片描述

Prompt生成知识提示

生成知识提示(Generate Knowledge Prompting)

还有很小的情况下,无论如何模型都没法解决我们的问题。因为模型本身可能本身缺少解决问题的背景知识,或者模型想不到要用什么背景知识。

如果是前者,那只能是我们主动通过上下文 Context 的方式把背景知识直接添加到 Prompt 中再让模型去回答。而如果是后者,则可以先给模型一些示例来让模型自己去生成对应问题的背景知识,这个技巧叫做 Generate Knowledge Prompting生成知识提示,这样有了背景知识后,再把生成后得到的背景知识添加到 Context 中向模型提问,这样模型因为有了背景知识自然就能准确回答我们的问题。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

更多知识可以参考:https://learnprompting.org/zh-Hans/docs/intro


http://www.kler.cn/a/429309.html

相关文章:

  • Golang Gin系列-3:Gin Framework的项目结构
  • 深入云电脑PC Farm技术探讨,以阿里云、华为云、ToDesk为例
  • Unity搭配VS Code使用
  • 优化 Vue项目中 app.js 文件过大,初始化加载过慢、带宽占用过大等问题
  • [Qt]常用控件介绍-按钮类控件-QPushButton、QRedioButton、QCheckBox、QToolButton控件
  • 灵活妙想学数学
  • 现代C++16 pair
  • 美畅物联丨视频接入网关如何配置 HTTPS 证书
  • 大数据(Hadoop)学习案例—通过Shell脚本定时采集数据到HDFS
  • 信号与槽机制的使用
  • centos kafka单机离线安装kafka服务化kafka tool连接kafka
  • MacOS 下 pico/pico2 学习笔记
  • java+springboot+mysql党务(党员)管理系统
  • ros2人脸检测
  • 【中间件开发】Nginx中过滤器模块实现
  • MFC 自定义静态文本控件:增强型标签控件
  • 40分钟学 Go 语言高并发:负载均衡与服务治理
  • 【前端】全面解析 JavaScript 中的 this 指向规则
  • 二阶段nginx1.0
  • 一些好用的网站
  • 深入理解Linux进程管理机制
  • 服务器数据恢复—LINUX下各文件系统删除/格式化的数据恢复可行性分析
  • java:commons-configuration2读取yaml及组合配置定义(CombinedConfiguration)
  • 华为:LLM工具调用数据合成方法
  • 开源向量数据库介绍说明
  • LearnOpenGL学习(高级OpenGL --> 帧缓冲,立方体贴图,高级数据)