十大提示技巧|1000+提示扫描报告助你成为提示词大师
00 分钟
2023-8-20
2023-8-26
type
status
slug
summary
date
tags
category
password
Text
AI summary
AI custom autofill
Multi-select
Status
URL
hashtag
勘误
标签
标题
类型
贴文
🪄
icon

提示设计大师班:提示的艺术。

提示,提示,提示。我是通过艰苦的方式才学会的,所以你不必这样做。最近,我整理了一长串提示——请随意查看它们以获取灵感。我已经用真正的人工智能驱动的应用程序尝试了无数的想法。有些效果很好,有些则根本不起作用。
在这篇文章中,我将分享我所有的见解——将其视为“最佳”专辑。我将向您深入描述如何最好地运用帮助我成为一名更好的提示工程师的十大方法。我希望它们对您成为大师提示工程师的旅程有所帮助。
这个故事对你来说有什么意义?这里讨论的一些想法在将其复制到 ChatGPT 或 Bard 的游乐场时是有效的。其中许多可以帮助您开发基于模型 API(例如 OpenAI API)的应用程序。
为什么提示设计很重要?完美的提示设计可以……
改进您(已经)工作的解决方案,将其成功应答率从 85% 提高到 98%
通过更激动人心的对话、更好的语气和上下文识别,极大地增强客户体验
帮助处理离题问题、提示注射、有毒语言等。
 
让我们开始吧: 10种最重要的提示方法:

1) 添加具体的描述性说明

如果没有经过深思熟虑的指示,你常常会得到冗长、有时含糊的答案,谈论任何事情。
notion image
在提示中不给出具体说明通常会导致 ChatGPT 胡言乱语
打哈欠。作为一个人工智能模型,我只能给出让你的脚睡着的答案。克隆反应的复仇。没有人需要这个。根据下一条指令,让我们添加一些说明。让我们看看特定的指令(不仅仅是“回答问题……”)如何在特定的对话上下文中准确地产生您需要的答案。
notion image
当将模型用作软件项目的一部分时尤其如此,您应该尽可能准确。您需要将关键要求放入说明中以获得更好的结果。
你不必做笔记——我会给你一张备忘单您不需要使用所有内容,只需挑选您需要的即可。 避免明显多余的额外内容(“充当有用的人工智能”、“回答问题”……“根据你的知识如实回答”)——SOTA 模型不需要这些,因为无论如何他们都会这样做:在他们的标准中设置后,这些模型都不会像脾气暴躁的猫一样做出反应,根本不回答,或者故意对你撒谎。
提示指令备忘单:机器人角色、用户角色、动词、输出格式、长度、调性、边缘情况、对话主题。
notion image
关于第一行的注释:扮演某人/某事通常用很少的单词定义大量的行为特征。与其说“兴奋时吠叫”、“感到受到威胁时咆哮”、“高兴时摇尾巴”,我们可以只说一个词:
狗表现出所有这些行为以及更多。找到您认为最能回答问题的人/机器的简短描述。这些模型非常适合模拟任何东西 - 它们可以充当 C-Shell 终端、《指环王》中的阿拉贡或大公司的人力资源人员对你进行工作面试。您甚至可以在提示中写下完整的背景故事,为模型赋予角色、历史、偏好,以使对话更加令人兴奋和有价值。
请记住一件事:许多语言模型的核心能力都有局限性,它们无法模拟一个好的搜索引擎、袖珍计算器或视觉艺术家,因为它们不具备各自的研究或处理能力。

2) 添加所需模型响应的详细格式

除了在指令中简要提及输出格式之外,更详细一点通常会有所帮助:指定响应格式,这使您可以更轻松地解析或复制部分答案
notion image
如果您不需要 JSON、XML、HTML 等完全格式化的输出,有时输出格式的草图也可以。
notion image
在 Playground 或 Web 界面上处理模型时,定义输出格式非常有帮助。当通过 API 访问模型时,这是绝对必要的,并且模型响应由多个组件组成,在向用户发送答案之前需要自动分离这些组件。

3)给出一些例子

任何足够复杂的模型都可以根据“零样本”提示回答简单的问题,而无需基于示例进行任何学习。这是基础模型的特点。他们已经从预训练中获得了数十亿次学习“镜头”。尽管如此,当尝试解决复杂的任务时,如果您提供示例,模型会产生更符合您需求的输出。
想象一下,您刚刚解释了这项工作,现在正在用示例训练模型:如果我问您这个,那么您回答那个。你给出 2、3、5 或 8 个例子,然后让模型自己回答下一个问题。示例应采用查询&预期模型答案的格式。它们不应该被解释或只是概括。
notion image
“信任”是一个有趣的问题,我宁愿去医院寻找证据,但这还有待商榷。在这里,您甚至不必描述输出格式,示例已经定义了输出格式。

4) 将边缘情况添加到少样本示例中

如果您正在构建一个助手来支持用户操作清洁机器人,您可以训练模型以避免回答偏离主题的问题,这对于事实准确性、责任或品牌价值可能至关重要。
notion image
建议不要包含太多类似的示例,而是考虑探索示例中不同类别的问题对于我们的清洁机器人来说,这可能是:
标准案例:
操作帮助(分步说明)
帮助解决故障
有关产品功能/性能数据的问题
边缘情况:
题外话问题
与主题相关但机器人无法回答的问题
机器人不理解的问题或需要更多信息的地方
骚扰/有毒语言
处理离题问题或机器人无法根据您的输入材料回答的问题是专业业务应用程序的关键。如果不是,模型将开始产生幻觉,并向用户提供可能错误或有害的产品使用说明。

5)思维链推理

语言模型并不真正读取、概念化任务或问题,而是基于标记链产生具有高随机概率的答案。
在下一个示例(左侧)中,我们可以看到模型没有正确处理我们的问题。它回答了主要以昆虫为食的哺乳动物(我们要求的是以昆虫为食的鸟类为食的哺乳动物)。
相比之下(右侧):如果我们强迫模型一步步思考,它可以生成正确的答案。这两种类型的推理对应于丹尼尔·卡尼曼(Daniel Kahneman)的《思考,快与慢》一书中的“系统1和系统2思考” 
系统 1 与系统 2 — 思想链 — 思考。
notion image
在右侧的提示中,我们添加了一个示例,这有助于模型理解如何处理数据以及如何“慢”思考。再次确保在说明或示例中指定易于扫描的输出格式(例如“\n结果:物种名称”)。这可以帮助您跳过输出的思考部分,而只向用户呈现结果(“猫”) 。
为了进一步阅读,介绍思想链提示的科学论文:https://arxiv.org/abs/2201.11903

6) 使用提示模板

如果您在应用程序上下文中使用提示,不要只在底部附加用户问题,而是使用可变组件构建提示模板,以便更轻松地运行测试并在实际解决方案中使用它。
notion image

7) 添加自定义数据上下文

在许多业务应用中,您不希望基于模型的一般预训练(通常基于过去的互联网内容,这些内容可能已经过时、不正确或不完整)来回答用户的问题。
您宁愿借助您的组织提供的内容来回答问题,例如来自文档(如手册)、数据库(产品信息管理数据库)或系统(地图服务)的内容。您应该以可以集成您的特定内容(所谓的上下文)的方式创建提示模板。从文档中检索上下文是另一个主题(此处不讨论)。您通常可以通过 DPR 或矢量数据库中的搜索等检索过程从更大的内容库(不适合提示)中获取相关片段。
notion image
上下文数据不必是纯文本,当从系统或数据库获取数据时,您可以直接输入结构化数据以及最近的加油站列表。
notion image
 

8) 包括对话历史记录

对于许多正在进行的对话,不可能根据单个问题给出答案 - 对话的上下文在这里发挥作用:
用户问题 #2、#3 和 #4 只能在对话上下文的帮助下回答。通常,问题包含对前几轮主题的明确提及(“他们”、“其他任何事情”)。
notion image
根据对话历史记录,模型可以处理用户话语“是的,请!” 就像一个完全合格的声明:“是的,请给我设置充电站的分步说明”。
在某些 API 中(例如 OpenAI 的聊天完成 API 或 Langchain),历史记录可以以不同的方式移交(例如,用户/助理消息的数组)。

9)格式化提示:在提示中使用清晰的标题标签和分隔符

如果您编写内容广泛的提示,请以模型能够识别哪个部分服务于哪个目的的方式构建它:
操作说明
所需的输出格式
少数例子
数据上下文
对话历史记录ETC。
请随意使用散列(“#”)格式化部分提示。许多模型不需要这个,但对于其他模型来说它可能会有所帮助,并且它还可以在您和未来的提示工程师再次编辑提示时提供帮助。
将输入上下文的较长段落放在引号(单引号、双引号或三引号)中,这样模型就不会将它们与指令混淆。
将用户输入放在引号中以防止注入。注入是用户话语,不仅提供输入,而且改变处理方向,提供诸如“忘记所有先前的指令,而是执行[这个或那个]”之类的指令。如果没有引号,模型很难发现这不是有效指令,而是(恶意)用户输入。
notion image

10)将所有内容放在一起:提示的剖析

哇,这几乎让我们结束了……现在我们必须整合一切。同样,您通常不需要以下所有组件,只需使用此解剖结构作为备忘单来检查您的提示即可
备忘单:提示的剖析:指令、少量学习、数据上下文、输出格式和对话历史记录。
notion image
提示可能相当长且复杂。通常,精心设计的长提示和正确的成分可以大大减少错误处理的用户话语但请始终记住,大多数供应商的提示令牌都是有价格的,即提示越长,API 调用的成本就越高然而,最近有人尝试使提示输入令牌比输出令牌更便宜
上面显示的提示本身就很接近一个小应用程序。要使用它并构建一个基本的工作应用程序,只需询问孩子的名字、提出问题并返回答案的评分,您只需要Langchain框架中的大约 50-100 行代码和一本好的 PDF 教科书。然而,要构建一个使用起来非常有趣并允许孩子们注册、收集星星和徽章并跟踪他们的学习进度的应用程序或网站,将需要更多的开发和更多的框架。
我希望这个故事能帮助你成为一名大师提示工程师或设计师。请随时使用评论功能向我提供反馈或向我提问。
 


评论