LLM提示工程的技巧

news2024/9/8 10:24:00
1. 从简单开始(Start Simple)

避免在一开始就增加太多的复杂性。 从简单的提示开始,然后在后续提示中添加更多信息和上下文。 这样,提示就是一个迭代过程,提示在此过程中进一步发展。 从简单的开始,就有足够的空间进行实验和实践,以达到最佳结果。

2. 清晰简洁(Be Clear and Concise)

提示语言最好不含任何行话。 坚持使用简单的词汇并专注于提供直接的指示。 尽量避免使用 OpenAI 所说的“空洞的描述”。 任何不必要的文字都可能分散法学硕士手头任务的注意力。

3. 具体的(Be Specific )

在提示交互中,为模型提供给出响应所需的一切信息。 在上面的幼儿示例中,更有效的方法可能是为他们拿着的物品命名,带他们走到垃圾桶,向他们展示如何将其扔进去,然后庆祝成功。 就法学硕士而言,这种方法涉及添加描述性和上下文信息来说明所需的结果。 在某些情况下,这种程度的特异性最终可能与讲故事非常相似。 详细说明所需的背景、结果、长度、格式和风格。 解释某种情况之前和之后发生的情况。 描述所涉及的利益相关者。 这些步骤可能看起来很广泛或与前两个步骤相矛盾,但是阶段设置得越彻底,模型就越能理解参数。

4. 注意结构(Consider the Structure)

对于人类和大语言模型来说,巨大的、不间断的文本块都很难理解。标点符号和段落样式对于人类读者和大语言模型来说都起着至关重要的作用。 使用项目符号、引号和换行符可以帮助模型更好地理解文本,并防止断章取义。

5. 限制无关令牌(Limiting Extraneous Tokens)

一个常见的挑战是在没有无关标记的情况下生成响应(例如: "Sure! Here's more information on...")。

通过组合角色、规则和限制、显式指令和示例,可以提示模型生成所需的响应。

You are a robot that only outputs JSON.
You reply in JSON format with the field 'zip_code'.
Example question: What is the zip code of the Empire State Building?
Example answer: {'zip_code': 10118}
Now here is my question: What is the zip code of Menlo Park?

# "{'zip_code': 94025}"

6. 关注“该做”而不是“不该做” (Focus on the "Do's" not the "Don'ts")

当世界充满可能性时,只从可用选项列表中划掉一两件事并不是很有帮助。 即使有一些选项不可用,本质上仍然存在无限数量的选项。

回到幼儿的例子——如果成人和孩子在一起的环境中,他们不希望孩子触摸附近的物体,因为这些物体易碎、肮脏或禁止进入,那么简单地指导孩子接触附近的物体并不是很有帮助或有效的。 孩子:“别碰任何东西。” 很有可能,这个指令会激发他们触摸周围一切的欲望,因为好奇心会占据他们的最佳位置,他们想知道把手放在哪里。 更有效的选择是开玩笑地指导他们把手放在手上或放在口袋里。 该指示为他们提供了明确且可实现的任务。 

与幼儿一样,法学硕士对“该做”的反应比“不该做”更积极。 通过提供有限的指令,法学硕士可以学习所需的行为,而不会出现任何混乱、分心或神秘感。

7. 使用引导词(Use Leading Words)

现在,是时候探索提示,而不仅仅是提供行为指令,而是专注于教模型推理。 引导词对于指导模型采用更有效的方法解决问题很有用。 通过在提示末尾写入特定单词,将模型推向特定格式。 例如,如果用户希望模型通过用Python编写来响应,他们可以在提示符末尾添加“import”。 同样,通过提供“think step by step”的提示,模型被迫将解决方案分解为多个步骤,而不是仅仅抛出一个大的猜测。

8. 举多个例子(Use Few Shot Prompting )

要使多个例子提示,首先了解举例子提示非常重要。 没有例子的提示仅由一项指令和一项请求组成。 然而,没有例子的编程并不总是有效。 它通常仅在模型已经准确理解该概念时才有效。 当模型不熟悉手头的概念时,举例子可以帮助模型解释概念。 

9. 使用思维链提示(Use Chain of Thought Prompting)

当Few Shot提示未能达到预期效果时,思路链(CoT)提示就是下一个合乎逻辑的步骤。 CoT 包括向法学硕士提供一个初始问题,然后通过一系列自然语言推理步骤得出答案。 从本质上讲,CoT 提示要求用户将一项大任务分解为遵循逻辑进展的较小块。 虽然与少量提示有点相似,但 CoT 提示利用线性步骤来教授推理并鼓励法学硕士解释其推理。

10. Retrieval-Augmented Generation

检索增强生成(RAG)描述了在提示中包含从外部数据库检索的信息的做法。 这是将事实纳入 LLM 申请的有效方法,并且比微调更经济,微调也可能对基础模型的功能产生负面影响。

这可以像查找表一样简单,也可以像包含公司所有知识的矢量数据库一样复杂:

Given the following information about temperatures in Menlo Park:
2023-12-11 : 52 degrees Fahrenheit
2023-12-12 : 51 degrees Fahrenheit
2023-12-13 : 55 degrees Fahrenheit
What was the temperature in Menlo Park on 2023-12-12?

# Sure! The temperature in Menlo Park on 2023-12-12 was 51 degrees Fahrenheit.

What was the temperature in Menlo Park on 2023-07-18 ?

# Sorry, I don't have information about the temperature in Menlo Park on 2023-07-18. The information provided only includes temperatures for December 11th, 12th, and 13th of 2023.

11. 程序辅助语言模型

LLM本质上不擅长执行计算。 虽然法学硕士不擅长算术,但他们非常擅长代码生成。 程序辅助语言通过指示LLM编写代码来解决计算任务来利用这一事实。

Python code to calculate: ((-5 + 93 * 4 - 0) * (4^4 + -7 + 0 * 5))

Here is the Python code to calculate the given expression:

((-5 + 93 * 4 - 0) * (4**4 + -7 + 0 * 5))

# Calculate the expression inside the parentheses
a = -5 + 93 * 4 - 0
b = 4**4 + -7 + 0 * 5

# Multiply a and b
result = a * b

# Print the result
print(result)

12. 自我一致性(Self-Consistency)

LLM是概率性的,因此即使使用思想链,一代人也可能会产生不正确的结果。 自我一致性通过从多代中选择最常见的答案来提高准确性(以更高的计算成本为代价):

John found that the average of 15 numbers is 40.
If 10 is added to each number then the mean of the numbers is?
Report the answer surrounded by three backticks, for example: ```123```

运行上述几次并采用最常见的返回值作为答案将利用self-consistency方法。

13. 使用思维树提示(Use Tree-of-Thought Prompting)

思想树提示是一种新兴方法,目前仍在研究以了解其有效性。 作为 CoT 的下一步,思想树提示反映了涉及多个利益相关者的组织决策过程。 

参考资料

https://llama.meta.com/docs/how-to-guides/prompting/

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

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

相关文章

基于transformers框架实践Bert系列5-阅读理解(文本摘要)

本系列用于Bert模型实践实际场景,分别包括分类器、命名实体识别、选择题、文本摘要等等。(关于Bert的结构和详细这里就不做讲解,但了解Bert的基本结构是做实践的基础,因此看本系列之前,最好了解一下transformers和Bert…

力扣503. 下一个更大元素 II

Problem: 503. 下一个更大元素 II 文章目录 题目描述思路复杂度Code 题目描述 思路 由于此题是环形数组,我们在利用单调栈模板的基础上还需要将给定数组扩大一倍,但实际上我们只需要利用取余的操作模拟扩大数组即可(具体操作看代码。在解决有…

git push后一直卡在在Writing objects:问题

git push后一直卡在Writing objects: 解决:设置 git config --global http.postBuffer 5242880000在执行git push。 一般设置后就可以成功了,后面不用看。 2. 我这里结果又报错: fatal: protocol error: bad line length 8192 MiB | 107.46 …

科技与心理学的协同舞蹈

在探讨盲人如何利用如“蝙蝠避障”这样的辅助软件融入日常生活的同时,我们不得不深入触及盲人教育心理学的核心,这一领域致力于理解盲人在学习与成长过程中独特的心理需求与挑战,以及如何通过教育策略激发他们的潜能,促进全面发展…

帝国CMS验证码不显示怎么回事呢?

帝国CMS验证码有时候会不显示或打叉,总结自己的解决方法。 1、检查服务器是否开启GD库 测试GD库是否开启的方法:浏览器访问:/e/showkey/index.php,如果出现一堆乱码或报错,证明GD库没有开启,开启即可。 2…

统信UOS专业版操作系统如何安装惠普打印机驱动

通用集成驱动安装方法 以惠普P1566激光打印机为例介绍一下,在打印机管理器中选择打印机,手动选择安装驱动,找到品牌:惠普,型号:1566,安装驱动后测试打印;LaserJet Pro P1566 Foomati…

springcloud 之 Ribbon Hystrix Feign bus 动态修改配置

Ribbon 是微服务架构图中负责负载均衡的 组件。 BeanLoadBalancedpublic RestTemplate getRestTemplate() {return new RestTemplate();}测试如下: //微服务方式 Ribbon方式GetMapping("ribbon/{name}")public String RibbonTest(PathVariable String nam…

vulhub——Aria2、bash、catic

文章目录 一、Aria2 任意文件写入漏洞二、CVE-2014-6271(Bash Shell 漏洞)三、CVE-2022-46169(Cacti 前台命令注入漏洞) 一、Aria2 任意文件写入漏洞 Aria2是一个命令行下轻量级、多协议、多来源的下载工具(支持 HTTP…

C# WPF入门学习主线篇(四)—— Button的常用属性

本期来详细介绍一下WPF中Button组件的属性都有哪些 一、准备阶段 首先,打开我们之前创建好的工程。 这是我们之前几期一起做过的工程,现在重新创建一个button,来熟悉一下他的属性。 选中创建的button,点击属性栏 二、接下来介绍…

基于Netty实现安全认证的WebSocket(wss)服务端

1.Netty服务端 服务端代码参考【基于Netty实现WebSocket服务端-CSDN博客】中的两种方式都可以;这里用的是第一种简单方式。 新增如下逻辑:添加SSLHandler SSLContext sslContext SslUtil.createSSLContext("JKS","D:\\workSpace\\day…

开源网页视频会议,WebRTC音视频功能比较

1. 概述 OpenAI 发布了新一代旗舰生成模型 GPT-4o,这是一款真正的多模态大模型,可以「实时对音频、视觉和文本进行推理」。 支持与 AI 实时语音对话,且响应时间达到毫秒级;交互中可识别人类情绪并以相应的情感做出回应;多语言能力的提升,WebRTC 成为大模型关键能力。 视频会议…

STL-list

目录 【本节目标】 1.list的介绍及使用 1.1 list的介绍(双向链表) 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用(迭代器) 1.2.3 list capacity(容量) 1.2.4 list element access 1…

一键接入大模型:One-Api本地安装配置实操,POSTMAN、APIFOX调用CURL

前言 最近准备学习一下 Semantic Kernel, OpenAI 的 Api 申请麻烦,所以想通过 One-api 对接一下国内的在线大模型,先熟悉一下 Semantic Kernel 的基本用法,本篇文章重点记录一下OneApi安装配置的过程。 讯飞星火有 3.5 模型的 200w 个人免费 token,可以拿来学习。 讯飞星…

2.冒泡排序

样例输入 5 8 3 6 4 9 样例输出 3 4 6 8 9 以下是解题答案&#xff1a; class demo1{public static void main(String[] args) {Scanner scnnew Scanner(System.in);int[] array new int[scn.nextInt()];if(array.length>0&&array.length<200){for(int…

单点登录(JWT实现)

单点登陆的英文名是&#xff1a;Single Sign On&#xff08;简称SSO&#xff09;&#xff0c;只需要登陆一次&#xff0c;就可以访问所有信任的应用系统。 在单体项目中&#xff0c;我们登陆之后可以把验证用户信息的值放入session中&#xff0c;单个tomcat中的session是可以共…

MySQL 8窗口函数详解:高效数据处理的必备技能

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 MySQL 8窗口函数详解&#xff1a;高效数据处理的必备技能 前言窗口函数概述窗口函数的基本语法常用窗口函数类型窗口帧的定义与使用性能优化与注意事项 前言 你是否曾经遇到过需要对数据进行复杂统计…

软考高项 各章节知识点【细】

文章目录 前五章项目管理概论项目立项管理项目整合管理范围管理进度管理成本管理质量管理资源管理沟通管理风险管理采购管理干系人管理绩效域配置与变更管理招投标、政府采购 前五章 数字经济是继农业经济、工业经济之后的主要经济形态&#xff0c;是以数据资源为关键要素&…

ElementPlus 步骤条嵌套Popover 气泡卡片

业务场景&#xff1a;当前步骤条鼠标悬浮提示框&#xff0c;步骤条是for循环出来的 如下图: <el-steps finish-status"success"><el-popoverv-for"item in uniqueReverseArr"placement"top-start":title"item.title":width&…

“胖东来”超市商业模式,为何被誉为中国零售业是神一般的存在?

“胖东来”超市商业模式&#xff0c;为何被誉为中国零售业是神一般的存在&#xff1f; 文丨微三云营销总监胡佳东&#xff0c;点击上方“关注”&#xff0c;为你分享市场商业模式电商干货。 - 胖东来是中国商超界的天花板&#xff0c;被小米老板雷军&#xff1a;誉为“中国零…

img标签添加::before ::after 伪元素无效,伪元素增加:hover伪类无效

1 问题 img标签添加::before ::after 伪元素无效伪元素增加:hover伪类无效 2 解决 只能在img前后增加dom元素可以这样写:hover::before{} :hover::after{} 3 分析 3.1 定义 ::before 创建一个伪元素&#xff0c;其将成为匹配选中的元素的第一个子元素。常通过 content 属…