Alibaba --- 如何写好 Prompt ?

news2024/11/19 9:33:58

如何写好 Prompt

提示工程(Prompt Engineering)是一项通过优化提示词(Prompt)和生成策略,从而获得更好的模型返回结果的工程技术。总体而言,其实现逻辑如下:
(注:示例图来自 Cohere 官网)
简单而言,大模型的运行机制是“下一个字词预测”。用户输入的 prompt 即为大模型所获得上下文,大模型将根据用户的输入进行续写,返回结果。因此,输入的 prompt 的质量将极大地影响模型的返回结果的质量和对用户需求的满足程度,总的原则是“用户表达的需求越清晰,模型更有可能返回更高质量的结 果”。

一、Prompt 的类别

用户的 prompt 难以简单归类,需求丰富多样,总的而言,我们将用户需求将 prompt 分为如下几个大类:
  • 信息查询:用户通过咨询大模型,通过 QA 获得所需信息,比如:“冰岛的首都是哪里?”
  • 指令:用户通过下达指令,希望大模型执行特定任务。比如:“帮我写一段快速排序的 C++代码。”
  • 包含上下文的 prompt:这类 prompt 一般是用户给出相关背景信息,需要模型返回相关问题答案、建议等,比如:“NBA 最新战报:最新的比赛结果显示, 在东部决赛中热火目前大比分 3:1 领先凯尔特人,而西部决赛则已结束,掘金 4:0 战胜湖人获得西部冠军。根据以上信息,你认为哪只球队最有可能夺得 NBA 总冠军?”
  • 咨询意见和建议:用户向模型针对特定话题咨询意见和建议,或者咨询方案等,比如:“我想创业开一家 AI 设计公司,请给我一些开公司的建议。”
  • 比较类:用户给出不同选项,让模型选出更好的并给出理由。比如: “Tensorflow 和 Pytorch 各有什么优劣势?”
  • 角色扮演:这类 prompt 覆盖范围非常广,主要是用户将模型当作一个 Copilot,希望模型能灵活扮演不同角色完成不同的需求。比如:“假如你是猫娘,你总是用可爱的话语回复我。下面我将开始跟你对话……”
  • ……
  • 当然用户还有非常多的需求,在此就不一一列出。

二、prompt 组成组件

(一) 指令
指令是最常用的提示组件,主要功能是向模型说明要执行的操作。虽然概念简单,但是实践中仍然比较复杂,下面是简单和复杂的一些指令例子。
指令
类型
prompt
简单指令
简要介绍一下阿里巴巴。
复杂指令
简要介绍一下阿里巴巴,包含以下内容:
阿里巴巴的创始人姓名
阿里巴巴的使命
阿里巴巴的积极的前景
(二) 主要内容
主要内容是指模型正在处理的文本内容。主要内容通常与指令一起使用。下面会从翻译,摘要等场景来示例:
(三) 示例样本
好的 prompt 也经常包含一些示例样本(单样本或者少样本)学习,指的是需要加入一些示例的输入和输出对。
通过少样本学习,模型从猜测应该如何生成,而变得清楚的学习了按照示例生成,充分的演示了模型的能力,不需要通过专门的训练,通过少样本学习,也可以生成正确的答案。
(四) 明确的提示
充当模型输出的快速启动,帮助模型固定所需要的输出。可以作为模型生成的前缀,也可以引导模型一步一步的按照要求思考并给出答案

三、写好 Prompt 的原则

最核心的写一条好 prompt 的原则就是尽可能清晰、明确地表达你的需求。细分下来,具体原则包括:
  • 清晰:足够清晰明确地说明你希望模型为你返回什么,最后更加细致地说明需求,避免模糊表达。
  • 提供上下文和例子:给出较为充分的上下文信息,让模型更好地理解相关背景。如果能够提供示例,模型能表现更好(类似传统 LLM 中的 in-context learning)
  • 设定边界:说明你希望模型回答的范围,尽量减少模型生成的幻觉内容。
  • 细分需求:也许你的需求实际上是一个复杂需求,比如“帮我写一篇关于 xx 的论文”,你可以进一步细分需求,如“[背景信息]请帮我写提纲”、“[背景信息]请帮我写简介部分”、……
  • 迭代优化:很多时候我们可能得到令人沮丧的结果,不要灰心,建议你多尝试修改措辞,激励模型生成更好的答案,或者直接点击“重新生成”也许也能获得惊喜。
  • 给出选项并要求模型解释:模型不一定因为能做出正确选择,但模型可以根据候选项做出相比直接从头生成更好的结果,同时模型还会给出它的理由,用户可以通过理由判断内容的合理性。
  • 激励模型反思和给出思路:可以在 prompt 中用一些措辞激励模型给出理由,这样有助于我们更好地分析模型生成结果,同时,思维过程的生成,也有助于其生成更高质量的结果,参考思维链相关技术。
  • 给容错空间:如模型无法完成指定的任务,给模型提供一个备用路径,比如针对文本提问,可以加入如果答案不存在,则回复“无答案”。

四、好 Prompt 的典型框架

优质的 prompt 千变万化,但遵循上述原则,我们总结出一个比较实用的框架, 可以帮助用户更高概率获得更高质量的模型生成结果。设计 prompt 的时候,建议包含如下内容:
  • 身份:你希望大模型扮演什么角色,来解决你当前的问题。大模型具有较强的角色扮演能力,相比直接回答往往表现更好。
  • 指令:明确说明你希望大模型做什么事情,不要含糊其辞。
  • 上下文:如果可能,提供尽可能丰富的上下文信息。
  • 原因:详细解释你希望模型做这件事情的原因、动机、希望的结果等,这样大模型能更好地理解你的想法,执行需求。

五、What's Next

总之,提示工程是一门新兴学科,它相对来说要求用户反复尝试和练习,但它也没有那么难。它更像是一门“如何说话”的艺术,多多练习即可。

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

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

相关文章

【C++杂货铺】模板进阶

目录 🌈前言🌈 📁 泛型编程 📁 函数模板 📂 概念 📂 格式 📂 class 和 typename 📂 原理 📂 函数模板实例化 📂 匹配原则 📁 类模板 &#x1…

全球历年GDP增长率_探数API数据统计

以下是数据的详细说明: 全球GDP增长最快的年份是1964年,全球GDP增速达到6.65%。2021年的GDP增长率也相当高,主要受2020年衰退后的恢复性增长推动。 全球GDP增长最慢的年份包括:1974年、1975年(第一次石油危机引发&…

clion最新安装教程

还在用Dev-C吗?也尝试了很多C编辑器,不是太老,就是太复杂。对于c开发者来说clion真的好用,CLion是一款专为开发C及C所设计的跨平台IDE。难受的是cion并不免费,仿佛是在证明好货不贵的道理,只能免费用30天。…

2024年阿里云优惠券领取攻略

阿里云作为国内领先的云计算服务提供商,以其稳定、高效、安全的服务赢得了众多用户的青睐。为了吸引用户上云,阿里云经常推出各种优惠活动,其中就包括阿里云优惠券。本文将为大家详细解读2024年阿里云优惠券的领券攻略,帮助大家轻…

【WinForm】如何在自己的程序窗口中显示并调用外部桌面程序

当你爱上一个程序的功能,并且希望扩展它以满足自己的需求时,你可能会觉得困惑。毕竟,你已经为此付出了很多努力,并希望能够有效地整合这些功能。那么,是否可以将这些功能嵌套到自己的程序中呢? 首先&#…

【操作系统专题】详解操作系统 | 操作系统的目标和功能 | 操作系统如何工作

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1.操作系统的目标和功能2…

计算机炸了,电子信息也是劝退专业?

还不是因为这个版本,计算机专业受到了制裁,导致这些偏计算机类的专业也受到了牵连 我本科的时候是一所双一流院校的计科专业,我们学校的电子信息专业堪称苦逼,我们计科学的东西,他们都要学,他们学的一些东…

如何使用 LangChain 构建基于LLMs的应用——入门指南

大型语言模型(LLMs)是非常强大的通用推理工具,在各种情况下都非常有用。 但是,与构建传统软件不同,使用LLMs存在一些挑战: 调用往往是长时间运行的,并且随着可用输出而逐步生成输出。与固定参数的结构化输入&#xf…

力扣面试150 整数转罗马数字 打表 + 贪心

Problem: 12. 整数转罗马数字 文章目录 思路💖 打表 贪心 思路 👨‍🏫 参考:打表贪心 💖 打表 贪心 class Solution {public String intToRoman(int num) {int[] value {1000, 900, 500, 400, 100, 90, 50, 40, …

微服务之Consul 注册中心介绍以及搭建

一、微服务概述 1.1单体架构 单体架构(monolithic structure):顾名思义,整个项目中所有功能模块都在一个工程中开发;项目部署时需要对所有模块一起编译、打包;项目的架构设计、开发模式都非常简单。 当项…

MGRE环境下运行OSPF

一、分析要求 自行定义公网网段和私有网段,ISP设备仅配置IP地址R1/R4/R5构建Full-Mesh结构R1/R2/R3构建Hub-Spoke结构,R1为NHS除ISP设备,其余路由器运行OSPF 二、实施过程 1. 配置IP及环回地址 R1 [R1]int g 0/0/0 [R1-GigabitEthernet0/…

运筹说 第112期 | M/M/s等待制排队模型

通过上期学习,大家已经了解了排队论中的一些基本概念,以及生灭过程和Poisson过程。 那么本期小编将基于这些基本原理,为大家介绍M/M/s混合制排队模型,包括单服务台模型和多服务台模型,介绍模型的概念以及推导过程等内容…

全栈的自我修养 ———— react实现滑动验证

实现滑动验证 展示依赖实现不借助create-puzzle借助create-puzzle 展示 依赖 npm install rc-slider-captcha npm install create-puzzleapi地址 实现 不借助create-puzzle 需要准备两张图片一个是核验图形,一个是原图------> 这个方法小编试了后感觉比较麻烦…

1panel更新系统

准备两个软件包 名为dist的前端包 以.jar为后缀的后端jar包 更新后端 进去1Panel管理页面(浏览器收藏里有) http://127.0.0.1:42689/f2a8a874bd 点击容器,将名为app的容器直接删除掉 打开软件electerm 点击书签,连接2222 连接成功后长这样&#xff…

咸鱼之王_手游_开服搭建架设_内购修复无bug运营版

视频演示 咸鱼之王_手游_开服 游戏管理后台界面 源码获取在文章末尾 源码获取在文章末尾 源码获取在文章末尾 或者直接下面 https://githubs.xyz/y28.html 1.安装宝塔 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh &…

软考之零碎片段记录(十五)+复习巩固(十)

一、学习 1. 多对多关系模式 举例:学生和课程。顾客和商品等。 多对多关系的确立需要有中间表,需要使用两个外键确认表中的唯一数据。 2. 数据库范式 1nf 表中每个字段都是原子性不可查分的。在关系(或表)中,每一行…

软件设计师——软件工程基础知识

软件工程基础知识 软件过程软件过程模型软件测试方法进度管理软件复杂性度量环路复杂度耦合聚合和组合 软件过程 软件过程模型 软件测试方法 黑盒测试和白盒测试 白盒测试中,语句覆盖对程序执行逻辑的覆盖很低,因此一般认为它是很弱的逻辑覆盖。 进度管…

微服务架构使用和docker部署方法(若依)

这里以若依官方网站开源的微服务框架为例子记录使用方法过程。 开源地址:RuoYi-Cloud: 🎉 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本 下载后,用IDEA社区版开发工具打…

Vol.41 SEO基本术语解释

1.TDK TDK:即标题、描述、关键词;TDK是网站的基本属性,对SEO非常重要,可以帮助搜索引擎了解你的网站; T:title 谷歌建议不超过70个字符 D:description 谷歌建议不超过150个字符 K&#xff1…

麒麟服务器操作系统安装DHCP服务02

原文链接:麒麟服务器操作系统安装DHCP服务02 Hello,大家好啊!继昨天介绍了在麒麟服务器操作系统上部署DHCP服务并演示了终端自动获取IP地址的过程之后,今天我们将进一步探讨如何通过绑定终端的MAC地址来为其分配固定的IP地址。这种…