优化大型语言模型交互:提升查询和提示效果的26条原则

推荐下arxiv挂的一个提示词教程:

https://github.com/VILA-Lab/ATLAS
https://arxiv.org/abs/2312.16171

它提出了一套26条指导原则,改善和优化与大型语言模型(LLMs)的交互过程。通过这些原则,旨在简化对LLMs的查询和提示设计,提升用户体验,并增强对模型行为的理解。研究团队在不同规模的模型上进行了广泛的实验,包括LLaMA-1/2和GPT-3.5/4,验证了这些原则的有效性。实验结果表明,这些原则能够显著提升模型响应的质量和准确性。 论文还探讨了与LLMs交互的相关研究,包括LLMs的发展历史和提示工程的演进。

根据内容,以下是26个提示词优化技巧。包括提示结构与清晰度、具体性与信息、用户交互与参与、内容与语言风格、复杂任务与编码提示。这些原则旨在提高LLMs的输出质量,例如通过使用肯定指令、避免偏见、逐步引导、以及在提示中明确任务要求。

1. 直接性

在与大型语言模型(LLMs)交互时,直接性是提高效率的关键。用户应避免使用冗余的礼貌用语,而是直接提出问题或指令。这种方式有助于模型快速识别任务的核心要求,从而更精确地生成响应。直接性原则鼓励简洁和明确,使LLMs能够集中处理信息,避免不必要的交流绕弯。

2. 目标受众

明确提示的目标受众对于生成相关和适宜的回答至关重要。如果目标受众是领域专家,提示应包含专业术语和深入的上下文信息;如果受众是初学者或儿童,应使用更简单的语言和概念。通过在提示中指明受众,LLMs能够调整其回答的风格和深度,以更好地满足用户的需求。

3. 任务分解

对于复杂的查询或任务,将其分解为一系列更简单的步骤可以提高LLMs的处理能力和准确性。这种分解方法允许模型逐步解决问题,每一步骤都建立在前一步骤的基础上,最终达到解决整个复杂问题的目的。这种方法不仅提高了任务完成的效率,也使得用户更容易理解和跟进。

4. 肯定指令

在构建提示时,使用肯定的指令可以减少歧义,提高模型遵循指令的准确性。例如,使用“解释”而不是“不要只是列举事实”,这样的指令为模型提供了清晰的方向,有助于生成更精确的输出。

5. 清晰解释

当需要模型解释一个概念或主题时,使用简单的语言可以帮助模型更好地理解用户的意图,并以易于理解的方式传达信息。这种方法特别适用于非专业受众,因为它允许模型以简化的形式解释复杂的概念。

6. 激励提示

激励提示是一种策略,通过提供奖励来鼓励模型提供更深入或更详尽的回答。例如,用户可以提示“我将为更好的解决方案提供奖励”,这种激励性的语句可以激发模型提供更高质量的回答。

7. 示例驱动

示例驱动或few-shot prompting是一种通过提供少量相关示例来引导模型理解和完成任务的方法。这些示例作为模型学习和模仿的基准,有助于模型快速把握任务的性质和所需的输出格式。

8. 格式化提示

格式化提示涉及使用一致的结构来组织指令、示例和问题。这种格式通常包括明确的标题或标签,如“###Instruction###”或“####Question###”,以及使用线段或其他符号来分隔不同的部分。良好的格式化可以使提示更加清晰易读,帮助模型更有效地处理信息。

9. 任务指令

在提示中使用明确的任务指令,如“你的任务是”和“你必须”,可以强化模型对任务的认识和响应。这种直接的指令方式有助于模型集中注意力,并鼓励其按照指定的方向生成回答。

10. 惩罚提示

惩罚提示是一种通过警示可能的负面后果来激励模型遵循指令的策略。在提示中加入类似于“如果未能按照要求执行,将受到惩罚”的语句,可以提高模型对任务重要性的认识,从而鼓励它提供更准确的回答。这种方法可以增强模型对指令的遵循度,尤其是在需要确保特定行为或输出质量的情况下。      

11. 自然回答

要求模型以自然、类似人类的方式回答问题,可以提高交互的流畅性和回答的可读性。通过在提示中强调“请以自然语言形式回答”,模型能够模仿人类的交流方式,生成更加贴近人类语言习惯的回复,使得最终的输出对人类用户来说更加友好和易于理解。

12. 逐步思考

使用“逐步思考”等引导词鼓励模型分步骤地解决问题,这有助于提高解决复杂问题的清晰度和逻辑性。通过逐步引导,模型能够展示其思考过程,使得用户能够更容易地跟随和理解模型的推理步骤,从而提高了问题解决的透明度。

13. 避免偏见

确保回答无偏见是提高LLMs输出质量的重要方面。在提示中加入“确保你的回答是公正的,避免依赖刻板印象”等语句,有助于减少模型输出中的潜在偏见,确保信息的客观性和多样性。

14. 交互式细节

允许模型通过提问来获取精确的细节和要求,可以增强模型对任务的理解并提升回答的质量。这种交互式的方法鼓励模型主动寻求必要的信息,从而生成更加准确和详细的回答。

15. 测试理解

通过提供一个主题并包括测试,可以检查模型对主题的理解程度。这种方法不仅能够评估模型的知识水平,还能够通过反馈来进一步训练和改进模型的性能。

16. 角色分配

为语言模型分配一个角色,如“历史学家”、“科学家”或“顾问”,可以帮助模型更好地定位其回答的视角和风格。这种角色扮演的方法可以提高回答的相关性和深度,尤其是在需要特定领域专业知识的情况下。

17. 使用分隔符

在提示中使用分隔符,如“#”、“**”或“---”,可以清晰地区分不同部分,如指令、问题和上下文。这种视觉分隔有助于模型更准确地解析提示的结构,同时也使得用户的阅读体验更加清晰有序。

18. 重复关键词

重复关键词是一种强化模型对提示中某些概念或主题注意力的策略。通过在提示中多次使用特定的词或短语,可以确保模型识别并专注于这些重要元素。这种方法对于确保模型输出与用户需求高度相关特别有效,尤其是在处理需要特定信息或概念的查询时。

19. 思维链与示例结合

思维链(Chain-of-Thought)是一种提示技术,它要求模型展示其解决问题的步骤,而结合少量示例可以进一步引导模型,使其更好地理解任务和期望的输出格式。这种方法鼓励模型进行更深入的推理,并提供更详细的解答,尤其适用于需要逻辑推理和解释的复杂问题。

20. 输出引导

输出引导是一种通过提示的结尾部分来影响模型输出的技术。通过在提示的结尾使用预期输出的开始部分,可以引导模型按照特定的方向或格式生成回答。这种技术有助于确保模型的输出与用户的期望更加吻合。

21. 详细写作

要求模型写一篇详细的文章或段落时,应指示其包含所有必要的信息。这种提示方式鼓励模型提供全面和深入的内容,而不是仅仅提供概要或总结。这对于需要详尽分析或解释的写作任务特别有用。

22. 文本修正

在要求模型修正文本时,明确指出需要保持原有风格不变。这允许模型对语法、词汇或结构进行改进,同时不改变文本的基调或语气。这对于编辑和优化已有文本,同时保留作者原意的情况非常重要。

23. 复杂编码提示

对于可能涉及不同文件的复杂编码任务,可以要求模型生成一个脚本,该脚本能够自动创建文件或修改现有文件以插入生成的代码。这种方法简化了编码过程,并确保了代码的一致性和准确性。

24. 特定文字开始

使用特定文字、短语或句子开始或继续文本是一种有效的提示技术,它可以帮助模型理解并遵循特定的写作方向或风格。这对于需要模仿特定风格或主题的写作任务非常有用。

25. 明确要求

在提示中明确模型必须遵循的要求,可以确保模型的输出满足用户的期望。这包括指定回答的长度、格式、风格或其他具体细节,从而帮助模型生成符合用户需求的内容。

26. 模仿写作

要求文本模仿提供的样本,使用相同的语言风格,是一种提高写作一致性和质量的方法。通过提供样本并指示模型模仿其风格,可以生成与样本在语气、词汇使用和结构上相似的文本。这对于需要统一风格或特定语调的写作项目特别有效。

这些原则通过提供具体的指导和结构,旨在提高LLMs生成的响应的质量和准确性。通过这些技巧,用户可以更有效地与LLMs沟通,从而获得更好的结果。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

序列化与反序列化

【一】序列化跟反序列化 # api接口开发,最核心最常见的一个过程就是序列化,所谓序列化就是把数据转换格式,序列化可以分两个阶段:【序列化值的是转换数据格式:序列化,返序列化】# 序列化: 把我们…

如何安装sbt(sbt在ubuntu上的安装与配置)(有详细安装网站和图解)

sbt下载官网 选择对应的版本和安装程序 Download | sbt (scala-sbt.org) 安装 解压 将sbt-1.9.0.tgz上传到xshell,并解压 解压: tar -zxvf sbt-1.9.0.tgz 配置 1、在/home/hadoop/sbt中创建sbt脚本 /home/hadoop/sbt 注意要改成自己的地址 cd …

Quarto Dashboards 教程 3:Dashboard Data Display

「写在前面」 学习一个软件最好的方法就是啃它的官方文档。本着自己学习、分享他人的态度,分享官方文档的中文教程。软件可能随时更新,建议配合官方文档一起阅读。推荐先按顺序阅读往期内容: 1.quarto 教程 1:Hello, Quarto 2.qu…

vue3插槽的name和v-slot的研究

slot可以分为具名插槽和默认,默认插槽name是default 在父组件的template需要些v-slot/#,没写不生效,而在父组件下,而没被template包含的默认放在template且含有#default. 1)没写slot,可以不写template,也可写default的template2)写了name的slot,即使是default也必须些template…

linux开发板开机启动向日葵

硬件:orangepi 5 pro 操作系统:ubuntu 20.4 lts 安装向日葵 根据我的实测,arm架构的ubuntu系统只能安装向日葵提供的麒麟系统的那个版本,具体安装方式官网下载页面有 允许任意用户连接到 X11 使用root用户登录后打开终端输入一下…

JAVASE->数据结构|顺序表底层逻辑

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 目标: 1. 什么是 List 2. List 常见接口介绍 3. …

python:reportlab 生成pdf:基本用法。

1.首先,打开cmd,安装reportlab pip install -i https://pypi.tuna.tsinghua.edu.cn/simple reportlab #从清华镜像安装更快 然后就可以使用其基本用法。 from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvasdef genera…

Swift - Playground

文章目录 Swift - Playground1. 新建Playground2. View3. 图片4. ViewController5. Playground - 多Page6. 注释6.1 Playground的注释支持markup语法(与markdown相似)6.1.1 语法 Swift - Playground Playground可以快速预览代码效果,是学习语…

解决Blender导出FBX文件到Unity坐标轴错误的问题

发现Blender的模型导入到Unity里面有问题,简单研究了下发现是坐标系不同,Unity使用的是左手坐标系,Blender使用的是右手坐标系 。 下面直接将如何解决 首先忽略Blender的右手坐标系以及Z轴朝上的事,依照unity坐标系情况修改模型物体的旋转,以Blender猴…

Docker | 入门:安装与配置

Docker | 入门:安装与配置 Docker 和传统虚拟机区别 对于传统虚拟机: 虚拟出一套硬件,运行一个完整的操作系统,并在这个操作系统上安装和运行软件。 对于 Docker: 将一个个容器隔离开。 容器内的应用直接运行在宿主机的内容&am…

Reactor 模式

目录 1. 实现代码 2. Reactor 模式 3. 分析服务器的实现具体细节 3.1. Connection 结构 3.2. 服务器的成员属性 3.2. 服务器的构造 3.3. 事件轮询 3.4. 事件派发 3.5. 连接事件 3.6. 读事件 3.7. 写事件 3.8. 异常事件 4. 服务器上层的处理 5. Reactor 总结 1…

NGINX发布动态页面的方法

一、建立 [rootserver100 html]# vim index.php [rootserver100 html]# pwd /usr/share/nginx/html 二、下载PHP文件 [rootserver100 conf.d]# dnf install php.x86_64 -y 正在更新 Subscription Management 软件仓库。 无法读取客户身份 本系统尚未在权利服务器中注册。可…

惠海原厂直销 H6922 升压恒压IC芯片 2.8-40V升48V60V72V80V100V方案 高效率 低功耗

升压恒压IC芯片是一种在2.8V至40V的宽输入电压范围内工作,并能够将输出电压升高到48V、60V、72V、80V甚至100V的芯片。这种芯片以高效率、低功耗为特点,因此非常适合于对电源效率和功耗有严格要求的应用领域。升压恒压IC芯片的工作原理通常基于电感和电容…

解决Could not locate zlibwapi.dll. Please make sure it is in your library path问题

nvidia官网已经下架了zlibwapi.dll的下载链接,可以按照下面方法。 1、在windows目录C:\Program Files\Microsoft Office\root\Office16\ODBC Drivers\Salesforce\lib下找到zlibwapi.dll文件 (如果下载不到可通过百度云) 链接:https://pan.baidu.com/s…

冯唐成事心法笔记 —— 知人

系列文章目录 冯唐成事心法笔记 —— 知己 冯唐成事心法笔记 —— 知人 冯唐成事心法笔记 —— 知世 冯唐成事心法笔记 —— 知智慧 文章目录 系列文章目录PART 2 知人 人人都该懂战略人人都该懂战略第一,什么是战略第二,为什么要做战略第三&#xff0…

微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(二)

大家好,我是程序员大猩猩。 上次我们实践了,Java后端如何完成SockJSStomp的配置实现。 微服务使用SockJsStomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(一) 那么今天我们做一下web vue端的是如何来实现…

【Matlab函数分析】对二维或三维散点数据插值函数scatteredInterpolant

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

如何替代传统的方式,提高能源企业敏感文件传输的安全性?

能源行业是一个关键的基础设施领域,它涉及能源的勘探、开采、生产、转换、分配和消费。随着全球经济的发展和人口的增长,能源需求持续上升,这对能源行业的可持续发展提出了挑战。能源行业的传输场景多种多样,需要重点关注能源企业…

【优质书籍推荐】ChatGLM3大模型本地化部署、应用开发与微调

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

01.Kafka简介与基本概念介绍

1 Kafka 简介 Kafka 是最初由 Linkedin公司开发,是一个分布式、支持分区(partition)的、多副本(replica)的,基于 Zookeeper 协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于 hadoop 的…