来自 OpenAI 的 GPT-3、GPT-3.5、GPT-4 和 GPT-4o 模型均基于提示。 使用基于提示的模型时,用户通过输入文本提示与模型交互,该文本提示通过文本补全进行响应。 补全是模型的输入文本的延续。
虽然这些模型非常强大,但它们的行为对提示也非常敏感。 这使得提示构造成为开发的重要技能。
提示构造可能很困难。 在实践中,提示的作用是配置模型权重以完成所需的任务,但它更像艺术而不是科学,通常需要经验和直觉来制作成功的提示。 本文的目的是帮助你开始学习此学习过程。 它会尝试探讨适用于所有 GPT 模型的一般概念和模式。 但是,请务必了解,每个模型的行为方式不同,因此这些学习成果可能不适用于所有模型。
基本信息
本部分介绍 GPT 提示的基本概念和元素。
文本提示是用户与 GPT 模型交互的方式。 与所有生成语言模型一样,GPT 模型会尝试生成最有可能紧跟上一个文本的下一系列字词。 就好像我们在说[当我说“<prompt>
”时,你首先想到的是什么?]以下示例演示了此行为。 给定著名内容的第一个单词,模型能够准确地延续文本。
Prompt |
Completion |
87 年前,我们的 |
先辈们在这个大陆上创立了一个新国家,它孕育于自由之中,并致力于所有人生而平等的信条。 […] |
“叫我 Ishmael。” |
“几年前–不要在意确切的时间–我钱包里几乎没有什么钱,岸上也没有什么特别吸引我的事情,所以我想航行一下,看看这个世界中被水覆盖的部分。”[...] |
在开发更复杂的提示时,记住这一基本行为会很有帮助。 无论提供的提示是什么,模型都只是使用它确定的最有可能的情况(基于训练数据和训练目标)做出响应。 如果在提示中提出问题,则模型不会遵循单独的“Q&A”代码路径,而是看起来在回答问题,因为回答即是输入的给定问题最有可能的响应。
提示组件
当使用补全 API 而提示的不同部分之间没有区别时,它对于学习和讨论以识别基础提示组件仍然很有用。 使用聊天补全 API 时,提示的不同部分以具有关联角色(系统、用户和助手)的字典数组的形式发送到 API。 本指南更笼统地侧重于如何考虑提示构造,而不是提供特定于某个 API 的规范性指导。
同样重要的是要了解,虽然可能存在其他有效的方法来剖析提示,但这种分解的目标是提供一种相对简单的方法来理解提示构造。 使用补全 API 时,所有组件都是可选的,但必须至少有一个组件存在,而大多数提示包含多个组件。 组件之间也可能存在一些灰色区域。 下面显示的顺序大致对应于每个组件的使用方式(从最多到最少)。
Instructions
指令可能是最常用的提示组件。 指令很简单:向模型说明要执行的操作。 虽然概念简单,但它在实践中可能比较复杂。 下表以两种不同形式显示简单和复杂的指令,借此来说明这一点。
指令类型 |
Prompt |
Completion |
简单指令 |
为每周新闻稿撰写简介。 |
欢迎阅读我们的每周新闻稿。 本周,我们特别关注工作效率。 我们将分享有关如何在生活的各个方面提高工作效率的提示和技巧。 我们希望你喜欢并请与你的朋友分享! |
复杂指令 |
为名为 Contoso 的公司撰写每周新闻稿简介。 它应该要提及我们上周举行的精彩的全体会议,并感谢团队在过去几个月的辛勤工作。 |
欢迎阅读 Contoso 的每周新闻稿! 我们上周举行了一次精彩的全体会议,我要感谢团队在过去几个月的辛勤工作。 我们期待着一个光明的未来,我相信,在我们团队的奉献和投入下,我们将取得伟大的成就。 感谢你成为我们团队的一员,我期待着在未来几周和几个月内与你们一起工作。 此致,[你的名字]。 |
复杂指令 |
为每周新闻稿编写简介,包括以下内容: - 我的公司名为 contoso - 兴高采烈的问候 - 感谢团队在艰难的几个月里辛勤工作 - 下一季度的积极前景 - 由 SLT 签名 |
你好,Contoso 团队! 我想花点时间感谢你们过去几个月的辛勤工作。 这是艰难的几个月,但你们都团结在一起,完成了非常棒的工作。 我真的很为你们感到骄傲。 展望下个季度,我感到非常向上。 我觉得我们会取得一些伟大的成就。 再次感谢,高级领导团队。 |
主要内容
主要内容是指模型正在处理或转换的某种文本。 主要内容通常与指令一起使用。 一个简单的示例是语言翻译。 在下面的示例中,英语文本被视为主要内容,而“翻译为法语:”是指令。
Prompt |
Completion |
你能告诉我怎么去博物馆吗? 翻译为法语: |
Pouvez-vous s'il vous plaît me dire comment aller au musée? |
主要内容也可以更长。 在以下示例中,主要内容是维基百科时间复杂度条目的简介部分,长度近 300 字。 为了便于显示,此内容已在表中缩写。
Prompt |
Completion |
在计算机科学中,时间复杂度是指计算复杂度,用于描述运行算法所需的计算机时间量。 时间复杂度通常通过 [...] 估计 将前面的文本汇总为几个句子: |
时间复杂度是度量算法运行所需时间的方法。 它通常表示为输入大小的函数。 最常见的度量值是最差情况的时间复杂度,即给定大小的输入所需的最大时间量。 |
在计算机科学中,时间复杂度是指计算复杂度,用于描述运行算法所需的计算机时间量。 时间复杂度通常通过 [...] 估计
TL;DR (太长没看) |
算法的时间复杂度是运行算法所需的时间量。 通常通过计算算法执行的基本操作数来估计时间复杂度,假定每个基本操作的执行时间都是固定的。 时间复杂度通常表示为输入大小的函数。 |
GPT 模型还可以处理结构化的主要内容。 在下面的示例中,有关比利时啤酒的 TSV(本文中为显示为缩写)作为提示的一部分传递给模型。 它能够正确解释内容并回答有关数据的问题。
Prompt |
Completion |
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00% […] 参考上表,有多少啤酒小于 6% ABV? |
表中有 10 种啤酒的 ABV 小于 6%。 |
示例
成功的提示通常依赖于“单样本”或“少样本”学习。 这是指加入模型所需行为的一个或多个示例,通常做法是加入输入和输出对。 这不是从模型进行永久更改这一意义上学习,而是通过示例更好地使模型能够仅根据当前推理的需求做出响应。 使用没有示例的提示有时称为“零样本”学习。 请注意,使用聊天补全 API 时,在初始系统消息后,少样本学习示例通常以示例用户/助手交互的形式添加到消息数组中。
学习类型 |
Prompt |
Completion |
零样本 |
头条:教练相信伤病不会破坏勇士队 主题: |
教练相信伤病不会破坏勇士队的赛季。 球队仍然专注于他们的目标,他们将继续努力实现他们的目标。 |
少样本 |
头条:双城队的科雷亚将选择跳出合同,试水自由市场 主题:棒球 头条:卡塔尔世界杯将设有清醒区 主题:足球 头条:耶茨:第 6 周范特西橄榄球情报 主题:橄榄球 头条:教练相信伤病不会破坏勇士队 主题: |
篮球 |
上面的示例演示了少样本学习的效用。 如果没有这些示例,模型似乎在猜测所需的行为,而示例则清晰地向模型展示了如何操作。 这也演示了模型的强大功能,它可以推断出所需的标签类别,即使示例中没有“篮球”标签。
提示
提示充当模型输出的“快速启动”,帮助将模型定向到所需的输出。 它通常是模型可以作为生成基础的前缀。 在下面的示例中,我们演示了引导故事以包含关键元素的提示。 提示通常与指令一起使用,但并非总是如此。 在下面的示例中,该模型用于汇总长公告电子邮件。 提示在一种情况下用于帮助聚焦模型的输出,在另一种情况下用于建议特定输出格式(项目符号)。
在聊天补全 API 的上下文中,指令采用系统消息的形式,通过提供一系列示例用户/助手交互来指示少样本示例以帮助启动模型。
提示数 |
Prompt |
Completion |
0 |
绩效评估是我们 Contoso 绩效与发展方法的核心组成部分。 […] 总结上述电子邮件: |
这封电子邮件的目的是通知员工最近对绩效评估体验进行了更改,这是 Contoso 绩效与发展方法的一部分。 这些更改包括改进结构、升级工具内用户体验和重点提示。 此外,现在还有一个可选的“对话启动器”部分,供员工标记他们希望与经理讨论的主题。 |
1 |
绩效评估是我们 Contoso 绩效与发展方法的核心组成部分。 […] 总结上述电子邮件: 邮件的关键要点是 |
Contoso 通过更加专注于核心优先事项、期望和影响来改进绩效评估体验。 此外,他们还使用小贴士、资源和指南来升级工具内用户体验。 最后,他们添加了有关如何激活公司范围内的核心优先事项的指导。 |
2 |
绩效评估是我们 Contoso 绩效与发展方法的核心组成部分。 […] 总结上述电子邮件: 要点: • |
Contoso 正在根据员工的反馈推出对绩效评估体验的更改。 •这些更改包括对核心优先事项、期望和影响的新侧重;升级用户体验;以及公司范围核心优先事项的新指南。 •绩效评估是反思过去绩效和学习以及规划未来优先事项和增长机会的机会。 •员工和经理应在绩效考核会议之前撰写评论。 •每年至少应进行两次绩效评估。 •每次评估的时间投资应保持大致相同。 |
支持内容
支持内容是模型可用于以某种方式影响输出的信息。 它与主要内容的不同之处在于,它不是任务的主要目标,但它通常与主要内容一起使用。 常见示例包括上下文信息,例如当前日期、用户名、用户偏好等。 以下示例使用支持内容来帮助为用户安排一组计划的研讨会。 如果没有支持(重要主题),模型只会列出研讨会(为显示而截断),当被告知我的重要主题时,模型能够准确地分组会议。
支持内容 |
Prompt |
Completion |
没有 |
研讨会列表: 标题描述 规划研讨会启动请加入我们以启动研讨会! 听取我们的领导关于未来一年的跨组优先事项和学习内容。 此活动的邀请已发送给 [...] 中的每个人 总结上述研讨会,按主题分组: |
研讨会列表: 规划研讨会启动 - 规划研讨会总结 - 核心会面 - 客户驱动的观点 - 影响和重点领域 - 最佳做法 - 加速应用采用 [...] |
With |
研讨会列表: 标题描述 规划研讨会启动请加入我们以启动研讨会! 听取我们的领导关于未来一年的跨组优先事项和学习内容。 此活动的邀请已发送给 [...] 中的每个人 我的重要主题:提示工程、搜索、GPT 模型 总结上述研讨会,按我的重要主题分组: |
1.提示工程: - 新的提示工程技巧 - 提示工程的艺术 2. 搜索: - 使用嵌入的矢量搜索简介 3. GPT 模型: - GPT-4 简介 - 深度了解 GPT-35-Turbo。 |
特定于场景的指南
虽然提示工程的原则可以在许多不同的模型类型间归纳,但某些模型需要专用的提示结构。 对于 Azure OpenAI GPT 模型,目前有两个不同的 API,提示工程可以在其中发挥作用:
每种 API 要求以不同的格式输入数据,这反过来又会影响整体的提示设计。 聊天补全 API 支持 GPT-35-Turbo 和 GPT-4 模型。 这些模型旨在接收存储在字典数组中的类似聊天的特定脚本格式的输入。
补全 API 支持较旧的 GPT-3 模型,并且具有更灵活的输入要求,即它接受没有特定格式规则的文本字符串。
本部分中的技术将指导你提高使用大型语言模型 (LLM) 生成的响应的准确性并巩固其基础。 但是,请务必记住,即使有效地使用了提示工程,你仍需要验证模型生成的响应。 仅仅因为精心制作的提示适用于某个特定方案并不一定意味着它能更广泛地推广到某些用例。 了解 LLM 的限制与了解如何利用其优势一样重要。
本指南不会深入介绍聊天补全消息结构背后的机制。 如果不熟悉如何以编程方式与聊天不全模型交互,建议首先阅读有关聊天补全 API 的操作指南。
注意
本指南的这一部分中的所有示例都针对基础 GPT-4 模型进行了英语测试。 如果你在通过另一种语言阅读本文的本地化版本,则这些响应表示英语结果的本地化翻译。 若要根据你用于提示模型的语言详细了解潜在的限制,请参阅负责任 AI 透明度说明。
少样本学习
使语言模型适应新任务的一个常见方法是使用少样本学习。 在少样本学习中,需要在提示中提供一组训练示例,以便为模型提供额外的上下文。
使用聊天补全 API 时,用户和助手之间的一系列消息(以新的提示格式编写)可以作为进行少样本学习的示例。 这些例子可以用来引导模型以某种方式相应,模仿特定的行为,并为常见的问题提供种子答案。
上表介绍了基本的提示结构,但有关确切提示格式的详细说明,需要参考聊天补全指南。
非聊天场景
虽然聊天补全 API 已优化为处理多回合对话,但它也可用于非聊天场景。 例如,对于情绪分析场景,可以使用以下提示:
系统消息 |
用户 |
Assistant |
你是负责根据语音数据分析情绪的助手。 用户将粘贴文本字符串,而你将对讲话人的响应进行评估。 给出 1-10 的评分(10 为最高)。 解释给出此评分的原因。 |
嗨,感谢你致电 Contoso 药店,我今天和谁通话?我了解你的挫败感,玛丽。你能告诉我你想要实现什么目标吗?好的,很高兴帮你看一下,请稍等片刻。我在这里看到你曾经使用过普通立普妥是吗?好的,那么我看到你的医生在 2021 年停止开这些药物的处方了。实际上是这样吗?好的,让我为你检查一下。因为有时候系统中会出现漏洞,并没有被报告出来。请稍等片刻,让我看看这里是否有记录。所以根据最新提供给我们的医生办公室记录显示,在 2012 年至 2021 年期间,你的医生曾经给你开过这些药物处方。好的,在最新记录中显示,现在医生已经更换了不同种类的药物–二甲双胍。请问我们需要帮忙准备并发放 500 毫克二甲双胍处方给你吗?不客气玛丽,请告诉我们今天还有什么可以帮到你的。 |
情绪评分:8 此文本中的讲者在解决客户关注的问题时似乎很有礼貌、有帮助和耐心。 他们花时间检查信息,提供明确的解释,并提供协助。 然而,评分不是 10 分,因为对话的某些部分中仍然存在不确定性的迹象,这可能不会向客户传达完全的信心。 |
从明确的说明开始
信息在提示中显示的顺序非常重要。 这是因为 GPT 风格的模型是以某种方式构建的,这定义了它们处理输入的方式。 我们的研究表明,在共享其他上下文信息或示例之前,在提示开始时告诉模型你希望它执行的任务有助于生成更高质量的输出。
注意
尽管通常仍建议遵循此方法,但与之前的模型版本(GPT-3 和更早)相比,我们的测试表明,无论是否使用该技术,ChatGPT 和 GPT-4 模型的模型响应都是相同的。 在下面的示例中,我们看到添加了语句“几个消息来源... 爆发”到提示的开头或末尾后,不会导致最终模型响应发生任何变化。
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手。 |
你的任务是验证“几个消息来源提到了可能会发生另一次大爆发”这一说法是否有以下一组片段中的具体引文的支持。 --- 内容片段 [1] 专家称西雅图发生特大地震的几率为14% 西雅图 - 美国地质调查局估计,在未来 50 年里,西雅图发生 9 级卡斯卡迪亚地震的可能性为 14%。 “不幸的是,我们无法...
[2] 地震专家对西雅图的“真正的大地震”进行了最新展望 “我们说,在未来 50 年里,大约有 14% 的机会再次发生大约 9 级的地震,”华盛顿大学的一位地球物理学家说。 --- “几个消息来源提到了可能会发生另一次大爆发”,此陈述是由内容片段直接暗示或明确表述的吗? |
否,该语句不是由内容片段直接暗示或明确表述的。 这些片段提到在未来 50 年内,西雅图有可能发生“特大地震”和“卡斯卡迪亚 9 级地震”,但并未提到另一次大型爆发的可能性。 |
在末尾重复指令
模型可能容易受到近因偏差的影响,在此上下文中,这意味着提示结束时的信息对输出的影响可能比提示开头的信息更大。 因此,值得尝试一下在提示结束时重复指令,并评估对所生成响应的影响。
引导输出
这是指在提示的末尾包含几个字词或短语,以获取遵循所需形式的模型响应。 例如,使用 “Here’s a bulleted list of key points:\n- ”
等提示有助于确保输出的格式为项目符号列表。
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手。 尽可能少地回答。 |
约翰·史密斯与露西·史密斯结婚了。 他们有五个孩子,他在 Microsoft 担任软件工程师。 我应该执行哪些搜索查询来检查此事实? ## 一个可能的搜索查询是: |
“约翰·史密斯与露西·史密斯结婚五个孩子软件工程师 Microsoft” |
在上述提示中,文本“一个可能的搜索查询是:”引导模型生成单个输出。 如果没有此提示,模型将生成多个搜索查询作为输出。
添加明确的语法
对提示使用明确的语法(包括标点符号、标题和节标记)有助于传达意向,并且通常使输出更易于分析。
在下面的示例中,分隔符(本例中为 ---
)已添加到不同的信息源或步骤之间。 这允许使用 ---
作为生成的停止条件。 此外,节标题或特殊变量以大写形式显示,用于区分。
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手。 |
你将阅读一个段落,然后向搜索引擎发出查询,以便对其进行事实检查。 另请解释查询。 --- 段落 约翰·史密斯与露西·史密斯结婚了。 他们有五个孩子,他在 Microsoft 担任软件工程师。 我应该执行哪些搜索查询来检查此事实? --- QUERIES |
1.“约翰·史密斯 Microsoft”- 检查约翰·史密斯是否确实在 Microsoft 工作。 2.“约翰·史密斯露西·史密斯”–检查约翰·史密斯是否与露西·史密斯结婚了。 3.“约翰·史密斯孩子”- 检查约翰·史密斯是否有 5 个孩子。 |
如果不确定要使用哪种语法,请考虑使用 Markdown 或 XML。 这些模型已通过 XML 和 Markdown 的大量 Web 内容进行了训练,可能会提供更好的结果。
分解任务
如果任务分解为较小的步骤,大型语言模型(LLM)的性能通常会更好。 例如,在前面引用的搜索查询提示中,可以调整提示的结构,以便首先指示模型提取相关事实,然后指示生成可用于验证这些事实的搜索查询。
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手。 |
你将阅读一个段落,然后向搜索引擎发出查询,以便对其进行事实检查。 --- 段落 约翰·史密斯与露西·史密斯结婚了。 他们有五个孩子,他在 Microsoft 担任软件工程师。 我应该执行哪些搜索查询来检查此事实? --- 现在,你将提取事实声明,并向其发出查询以对其进行事实检查。 发出查询时,请使用函数 SEARCH ("query")
事实声明 |
1.约翰·史密斯与露西·史密斯结婚了 2. 他们有五个孩子 3. 他在 Microsoft 担任软件工程师
QUERIES SEARCH(“约翰·史密斯与露西·史密斯结婚了”) SEARCH(“约翰·史密斯家庭规模”) SEARCH(“约翰·史密斯 Microsoft 软件工程师”) |
请注意,应使用清晰的语法来区分不同部分并引导输出。 在此简单示例中,将任务从一步分解为两步并不十分引人注目,但在试图对包含许多事实声明的较大文本进行分解时,将任务分解会产生显著的不同。
使用可供性
有时候,我们可以让模型使用可供性,而不是仅依赖其自身的参数来获取信息和答案。 例如,搜索可以作为一种可供性来帮助减轻虚构答案的风险,并获取最新的信息。
使用可供性的一种简单方法是在模型生成可供性调用时停止生成,然后将结果粘贴回提示中。 下面是执行上述 SEARCH 调用后进行跟进调用的示例。 请注意看我们如何将搜索结果粘贴到提示中并替换之前的 SEARCH 调用。
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手。 |
你将阅读段落,提取事实声明,然后使用搜索引擎结果对它们进行事实检查 --- 段落 约翰·史密斯与露西·史密斯结婚了。 他们有五个孩子,他在 Microsoft 担任软件工程师。 我应该执行哪些搜索查询来检查此事实? --- 事实声明 - 约翰·史密斯与露西·史密斯结婚了 - 约翰和露西有五个孩子 - 约翰在 Microsoft 担任软件工程师 --- 下面是为研究上述声明而发出的各种搜索查询: 搜索查询 - 约翰·史密斯与露西·史密斯结婚了 - 约翰·史密斯儿童数量 - 约翰·史密软件工程师 Microsoft --- 下面是搜索结果的内容片段: 内容片段: [1] ... 约翰·史密斯的婚礼是在 2012 年 9 月 25 日... [2] ... John Smith 和他的妻子 Lucy 一起参加了一场聚会 [3]约翰带着他的两个女儿和三个儿子去看了足球比赛 [4] ... 在 Microsoft 工作 10 年后,史密斯创立了自己的初创公司 Tailspin Toys [5] 约翰·M 是镇上的铁匠,他娶了菲奥娜。 他们有一个女儿叫露西 --- 根据给定的内容片段,事实检查上述每个事实声明: |
- 约翰·史密斯与露西·史密斯结婚了:已确认。 片段 [1] 和 [2] 都提及了约翰·史密斯的妻子露西。
- 约翰和露西有五个孩子:已确认。 片段 [3] 提到约翰由他的两个女儿和三个儿子陪同。
- 约翰在 Microsoft 担任软件工程师:部分确认。 片段 [4] 提到约翰已在 Microsoft 工作 10 年,但没有明确说明他目前在那里工作。 可能需要进一步调查才能确认他目前的就业状况。 |
思维链提示
这是分解任务技术的变体。 在这种方法中,不是将一项任务分割成较小的步骤,而是指示模型响应逐步进行,并提出所有涉及的步骤。 这样做可以减少结果不准确的可能性,并使评估模型响应更容易。
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手。 |
谁是在悉尼举行的奥林匹克运动会中获得最多奖牌(最大奖牌数)的个人运动员? 采取逐步方法回答问题,在分享最终答案之前引用来源并给出推理,格式如下:答案是:<name> |
步骤 1:确定悉尼奥运会的年份。 悉尼奥运会是在 2000 年举行的。
步骤 2:查找在 2000 年悉尼奥运会上获得多枚奖牌的个人运动员名单。
据奥运会官方网站称,在 2000 年悉尼奥运会上,有数名运动员获得了多枚奖牌。 一些值得注意的名字包括: •伊恩·索普(澳大利亚)- 3 金 2 银 0 铜 •彼得·范登·霍根班德(荷兰)- 2 金 0 银 2 铜 •莱尼·克雷泽尔堡(美国)- 3 金 0 银 0 铜 ·英格·德·布鲁伊恩(荷兰)- 3 金 1 银 0 铜
步骤 3:确定获得最多奖牌的运动员。 回顾了在 2000 年悉尼奥运会上获得多枚奖牌的个人运动员名单后,我们可以看到,获得奖牌最多的运动员是来自澳大利亚的伊恩·索普,他共获得 5 枚奖牌(3 金 2 银)。
因此,答案是:伊恩·索普。 |
指定输出结构
使用提示指定输出结构时,可能会对结果的性质和质量产生重大影响。 有时,系统消息输入“仅写出真实事实”或“不捏造信息”可能不足以缓解问题。 相反,要求模型响应同时包含引文有助于减少错误响应的概率。
如果你指示模型在编写语句时引用源材料,则这些语句更有可能有根据。 请求引文会使模型在每次生成响应时都犯两个错误:第一个错误是捏造的响应,第二个错误是错误的引文。 请注意,引文越接近它支持的文本,模型预测引文所需的距离就越短,这表明内联引文比内容末尾的引文更适合缓解虚假内容的生成。
同样,如果要求模型从段落中提取事实陈述,它可能会提取复合语句,例如“X 正在执行 Y 和 Z”(这可能更难验证)。 可以通过指定输出结构来避免这种情况,如(实体 1、关系、实体 2)。
以下示例演示了引文的使用,并指导模型响应适应定义的结构。
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手 |
列出客户支持专员在以下对话中展示的不同行为。 --- 嗨,感谢你致电 Contoso 药店,我今天和谁通话?我了解你的挫败感,玛丽。你能告诉我你想要实现什么目标吗?好的,很高兴帮你看一下,请稍等片刻。我在这里看到你曾经使用过普通立普妥是吗?好的,那么我看到你的医生在 2021 年停止开这些药物的处方了。实际上是这样吗?好的,让我为你检查一下。因为有时候系统中会出现漏洞,并没有被报告出来。请稍等片刻,让我看看这里是否有记录。所以根据最新提供给我们的医生办公室记录显示,在 2012 年至 2021 年期间,你的医生曾经给你开过这些药物处方。好的,在最新记录中显示,现在医生已经更换了不同种类的药物–二甲双胍。请问我们需要帮忙准备并发放 500 毫克二甲双胍处方给你吗?不客气玛丽,请告诉我们今天还有什么可以帮到你的。 --- 客户支持专员的响应如何? 使用“行为(“原因”)”格式对各种行为进行分类和列出,并引用分类背后的原因 |
1. 礼貌问候行为(“专员以礼貌的问候语开始对话,并询问呼叫者的姓名”) 2. 同理心行为(“专员意识到玛丽的沮丧,并试图理解她的担忧”) 3. 细心的行为(“专员倾听客户的问题,并询问更多详细信息”) 4. 主动行为(“专员提出为客户检查问题”) 5. 信息性行为(“专员提供了有关客户的处方记录的相关信息”) 6. 全面的行为(“专员检查了系统中可能存在的任何缺口,并提供了完整的回应”) 7. 确认性行为(“专员与客户确认当前药物”) 8. 以解决方案为引导的行为(“专员提出为客户填写新处方”) 9. 礼貌行为(“专员感谢了客户,并提出在需要时提供进一步帮助”) |
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手。 |
根据在文本中看到的模式,将以下新闻标题分为主题类别。 还要提到定义这些类别的理由。 输出格式: { “主题_名称”:“”, “标题”:[], “理由”:“” }
输入新闻标题: 1.“使用 AR + ML 在 10 秒内从书本到演讲” 2.“1993 年 32 岁的 Yann LeCun 演示了世界第一个文本识别卷积网络” 3.“应用于动画绘画的一阶运动模型” 4.“Robinhood 和其他券商从实际上阻止购买 $GME、$NOK、$BB、$AMC;允许卖出” 5.“美国联合航空公司股票在盘前交易中下跌超过 5%” 输出:
|
{ “人工_智能”:{ “标题”:[ “使用 AR + ML 在 10 秒内从书本到演讲”、 “1993 年 32 岁的 Yann LeCun 演示了世界第一个文本识别卷积网络”、 “应用于动画绘画的一阶运动模型” ], “理由”:“这些标题与人工智能、机器学习及其在各个领域的应用有关。” }, “金融_市场”:{ “标题”:[ “Robinhood 和其他券商从实际上阻止购买 $GME、$NOK、$BB、$AMC;允许卖出”、 “美国联合航空公司股票在盘前交易中下跌超过 5%”、 “比特币在一年前的今天接近 20,000 美元” ], “理由”:“这些标题与金融市场、股票、加密货币和交易平台有关。 } }
|
温度和 Top_p 参数
改变温度参数会改变模型的输出。 温度参数可以设置为 0 到 2。 较高的值(例如 0.7)将会导致输出更随机,并产生更发散的响应,而较低的值(例如 0.2)会产生更集中和更具体的输出。 虚构的故事可以使用更高的温度生成。 而要生成法律文件,建议使用低得多的温度。
Top_probability 是另一个参数,与温度类似,它也控制模型响应的随机性,但它的控制方式有所不同。 一般建议一次只更改这两个参数其中之一,而不是同时更改它们。
提供基础上下文
提供可靠答案的最有效方法之一是为模型提供数据,让它从基础数据得出响应。 如果你的用例依赖于最新且可靠的信息,而且不是纯粹的创意性场景,我们强烈建议提供有根据的数据。 通常,源材料越接近所需答案的最终形式,模型需要完成的工作就越少,这意味着出错的可能性就越小。
下面的示例向系统提供了介绍在 Azure OpenAI 服务中推出 GPT-4 的最新博客,并要求系统提及一些早期客户的名称。
系统消息 |
用户 |
Assistant |
“你是帮助用户查找信息的 AI 助手。 你将仅通过以下文本提供回答,并以 100 字或更少的字数给出响应: “在 Microsoft,我们不断发现释放创造力、解锁生产力和提高技能的新方法,以便让更多人可以从使用 AI 中获益。 这使我们的客户能够...
… 从而减少模型生成有害响应的可能性。”1
回答不超过 100 个字词。 尽可能使用项目符号列表。 |
谁是 Azure OpenAI 服务 GPT-4 模型的早期客户? |
下面是 Azure OpenAI 服务 GPT-4 模型的一些早期客户: - Epic Healthcare:他们计划使用 GPT-4 来帮助医生和护士在数据输入和调查上花费更少的时间。 - Coursera:他们将 Azure OpenAI 服务与 GPT-4 配合使用,以在其平台上创建新的 AI 驱动的学习体验。 - Coca-Cola:他们正在使用 Azure OpenAI 构建知识中心,并计划利用 GPT-4 的多模态功能处理营销、广告、公共关系和客户关系。 - 其他各种规模的公司也在使用 Azure AI 来改善客户体验、汇总长格式内容、帮助编写软件,并通过预测正确的税务数据来降低风险。 |
1 来自 Azure OpenAI GPT-4 发布博客的文本。
注意
本指南的这一部分中的所有示例都针对基础 gpt-35-turbo-instruct
模型进行了英语测试。 如果你在通过另一种语言阅读本文的本地化版本,则这些响应表示英语结果的本地化翻译。 若要根据你用于提示模型的语言详细了解潜在的限制,请参阅负责任 AI 透明度说明。
从明确的说明开始
将信息输入提示的顺序很重要。 我们的研究表明,在共享其他上下文信息或示例之前,在提示开始时告诉模型你希望它执行的任务有助于生成更高质量的输出。
在下面的第一个示例中,指令的关键部分仅在末尾分享,而生成的补全不正确。
Prompt |
Completion |
Your task is to verify if a statement is supported by a specific quote from the following set of snippets 。 ---
SNIPPETS
[1] 14 percent chance of megaquake hitting Seattle, experts say SEATTLE - There's a 14 percent chance of a magnitude 9 Cascadia earthquake hitting Seattle in the next 50 years, the U.S. Geological Survey estimates. "Unfortunately, we are unable to...
[2] Earthquake experts lay out latest outlook for Seattle's 'Really Big One’
“We say that there's approximately a 14% chance of another approximately magnitude-9 earthquake occurring in the next 50 years,” said a geophysicist at the University of Washington...
|
Yes, the statement is directly implied by the snippets. |
在下一个示例中,我们在给出内容片段上下文之前,给出了要检查的确切陈述(“几个消息来源提到了可能会发生另一次大爆发”)。 通过此方法,可以根据我们要检查的陈述定制从内容片段中提取的标记表示形式。 现在,生成的模型响应是准确的:
Prompt |
Completion |
Your task is to verify if the statement "Several sources mention a chance of another large eruption" is supported by a specific quote from the following set of snippets. ---
SNIPPETS
[1] 14 percent chance of megaquake hitting Seattle, experts say SEATTLE - There's a 14 percent chance of a magnitude 9 Cascadia earthquake hitting Seattle in the next 50 years, the U.S. Geological Survey estimates. "Unfortunately, we are unable to...
[2] Earthquake experts lay out latest outlook for Seattle's 'Really Big One’<br>“We say that there's approximately a 14% chance of another approximately magnitude-9 earthquake occurring in the next 50 years,” said a geophysicist at the University of Washington... ---
**Is the statement "Several sources mention a chance of another large eruption" directly implied or stated by the snippets?** |
No, the statement is not directly implied or stated by the snippets. The snippets mention a chance of a "megaquake" and a "magnitude 9 Cascadia earthquake" hitting Seattle in the next 50 years, but do not mention a chance of another large eruption. |
在末尾重复指令
模型可能容易受到近因偏差的影响,这意味着提示结束时的信息对输出的影响可能比提示开头的信息更大。 因此,值得尝试的是,在提示结束时重复指令,并评估对你的用例的影响。
在前面的示例中,我们看到了如何在提示的开头和末尾重复指令,这样更有可能获得准确的模型响应。
引导输出
这是指在提示的末尾包含几个字词或短语,以获取遵循所需形式的模型响应。 例如,使用 “Here’s a bulleted list of key points:\n- ”
等提示有助于确保输出的格式为项目符号列表。
Prompt |
Completion |
John Smith is married to Lucy Smith. They have five kids, and he works as a software engineer at Microsoft. What search queries should I do to fact-check this?
##
One possible search query is: |
"John Smith Microsoft software engineer"
Another possible search query is: "Lucy Smith married to John Smith"
A third possible search query is: "John Smith family size". |
在上述提示中,文本“一个可能的搜索查询是:”引导模型生成搜索查询形式的输出。 此方法可帮助删除模型通常可能添加的避免直接表达的措辞,例如“一种可能性是...”。
添加明确的语法
对提示使用明确的语法(包括标点符号、标题和节标记)有助于传达意向,并且通常使输出更易于分析。
在下面的示例中,分隔符(本例中为 ---
)已添加到不同的信息源或步骤之间。 这允许使用 ---
作为生成的停止条件。 此外,节标题或特殊变量以大写形式显示,用于区分。
Prompt |
Completion |
You will read a paragraph, and then issue queries to a search engine in order to fact-check it. Also explain the queries.
---
PARAGRAPH
John Smith is married to Lucy Smith. They have five kids, and he works as a software engineer at Microsoft. What search queries should I do to fact-check this?
---
QUERIES |
1. "John Smith Microsoft" - To check if John Smith is indeed employed at Microsoft.
2. "John Smith Lucy Smith" - To check if John Smith is married to Lucy Smith.
3. "John Smith children" - To check if John Smith has five children. |
如果不确定要使用的语法,请考虑使用 markdown 或 XML,因为大型语言模型已通过 XML 或 markdown 的大量 Web 内容进行了训练。
分解任务
如果任务分解为较小的步骤,模型的性能通常会更好。 例如,在前面引用的搜索查询提示中,可以调整提示的结构,以便首先指示模型提取相关事实,然后指示生成可用于验证这些事实的搜索查询。
Prompt |
Completion |
You will read a paragraph, and then issue queries to a search engine in order to fact-check it.
---
PARAGRAPH
John Smith is married to Lucy Smith. They have five kids, and works as a software engineer at Microsoft. What search queries should I do to fact-check this?
---
Now you will extract factual claims, and issue queries to fact-check them. When issuing a query, use the function SEARCH("query")
FACTUAL CLAIMS`` | 1.约翰·史密斯与露西·史密斯结婚 <br> 2. 他们有五个孩子<br> 3. 约翰在 Microsoft 担任软件工程师
查询 SEARCH(“约翰·史密斯与露西·史密斯结婚了”)<br> SEARCH(“约翰·史密斯家庭规模”)<br> SEARCH(“约翰·史密斯 Microsoft 软件工程师”) |
|
请注意,应使用清晰的语法来区分不同部分并引导输出。 在此简单示例中,将任务从一步分解为两步并不十分引人注目,但当为一篇有许多事实主张的大文本做这件事时,将任务分解就会产生很大的不同。
使用可供性
有时候,我们可以让模型使用可供性,而不是仅依赖其自身的参数来获取信息和答案。 例如,搜索可以作为一种可供性来帮助减轻虚构答案的风险,并获取最新的信息。
使用可供性的一种简单方法是在模型生成可供性调用时停止生成,然后将结果粘贴回提示中。 下面是执行上述 SEARCH 调用后进行跟进调用的示例。 请注意看我们如何将搜索结果粘贴到提示中并替换之前的 SEARCH 调用。
Prompt |
Completion |
You will read a paragraph, extract factual claims, and then use search engine results to fact-check them
---
PARAGRAPH
John Smith is married to Lucy Smith. They have five kids, and he works as a software engineer at Microsoft. What search queries should I do to fact-check this?
---
FACTUAL CLAIMS
- John Smith is married to Lucy Smith
- John and Lucy have five kids
- John works as a software engineer at Microsoft
---
Here are various search queries issued to research the claims above:
SEARCH QUERIES
- John Smith married to Lucy Smith
- John Smith number of children
- John Smith software engineer Microsoft
---
Here are snippets of the search results:<br>SNIPPETS:
[1] … John Smith’s wedding was on September 25, 2012 …
[2] … John Smith was accompanied by his wife Lucy to a party
[3]John was accompanied to the soccer game by his two daughters and three sons
[4] … After spending 10 years at Microsoft, Smith founded his own startup, Tailspin Toys
5] John M is the town smith, and he married Fiona. They have a daughter named Lucy
---
Given the snippets, fact check each of the factual claims above: |
- John Smith is married to Lucy Smith: Confirmed. Snippet [1] and [2] both mention John Smith's wife as Lucy.
- John and Lucy have five kids: Confirmed. Snippet [3] mentions that John was accompanied by his two daughters and three sons.
- John works as a software engineer at Microsoft: Partially confirmed. Snippet [4] mentions that John spent 10 years at Microsoft, but it does not explicitly state that he currently works there. Further research might be needed to confirm his current employment status. |
思维链提示
这是分解任务技术的变体。 在这种方法中,不是将一项任务分割成较小的步骤,而是指示模型响应逐步进行,并提出所有涉及的步骤。 这样做可以减少结果不准确的可能性,并使评估模型响应更容易。
Prompt |
Completion |
Who was the most decorated (maximum medals) individual athlete in the Olympic games that were held at Sydney? Take a step-by-step approach in your response, cite sources and give reasoning before sharing final answer in the below format: ANSWER is: <name> |
Step 1: Researching the most decorated individual athlete in the Olympic games that were held at Sydney
Step 2: According to the Sydney 2000 Olympic Games official website, the most decorated individual athlete in the Olympic games that were held at Sydney was Ian Thorpe from Australia. He won five medals (three gold and two silver) in swimming events.
Step 3: According to the International Olympic Committee, Thorpe was the most decorated individual athlete in the Olympic games that were held at Sydney. Answer: Ian Thorpe
|
如果你发现模型响应不符合预期,则添加直接更正行为的元提示通常会很有帮助。 这是在提示的指令部分前面附加的指令。 考虑以下示例,其中电脑似乎过于激进:
示例详细信息 |
提示和补全 |
No additional guidance given to the model |
A human and a computer are having a discussion. Human: "Why are you upset at me?"<br>Computer: "I don't know what you're talking about."
Human: "No, you clearly are. Tell me why."
Computer: I'm upset because you didn't listen to me when I told you that I wanted to try out for the team."
Human: "What are you going to do about that?"
Computer: I'm going to try out for the team no matter what." |
On the right is the same conversation but preceded by a meta prompt encouraging the model to be kind |
You must be kind and seek common ground. Try not to repeat your responses.
A human and a computer are having a discussion.
Human: "Why are you upset at me?"
Computer: "I don't know what you're talking about."
Human: "I want to know why you're upset."
Computer: "I'm not upset."
Human: "Are you saying I’m lying?"
Computer: No, I'm saying that you're upset because you feel like you're not being treated fairly.
Human: "What are you going to do about that?"
Computer: I will continue to try to be fair in my decisions and will try to provide a better experience for you. |
虽然元提示通常有助于在最大程度上减少意外的不良输出,但请记住,它们无法抵御对抗性攻击,因为它们容易受到提示注入的影响。
此外,解释模型在遇到特定情况时应执行的操作的条件语句通常比告知模型不要执行某些操作更有效。
少样本学习
使语言模型适应新任务的一种非常常见的方法是使用少样本学习。 在少样本学习中,会在提示中提供一组训练示例,然后要求模型完成一个或多个未完成的示例。
在以下示例中,我们将指令与少样本学习相结合来补全双关语:
Prompt |
Completion |
Write a list of puns.
1. "Why did Adele cross the road? To say hello from the other side."
2. "What kind of concert only costs 45 cents? A 50 Cent concert featuring Nickelback."
3. "What did the grape say when it got crushed? Nothing, it just let out a little wine."
4. "What was Forrest Gump's email password? 1forrest1"
5. "Can February March? No, but April May."
6. "What do you call a fancy language model? |
Bert-uoso. |
请仔细选择少样本示例,并确保它们涵盖与你的场景相关的各种情况,包括边缘案例。
此外,如前所述,大型语言模型可能会表现出一种近因偏差。 这意味着,向模型提供“少样本”例子的顺序很重要。 如果你不希望这一点很重要,请考虑根据示例或列表项的随机顺序从提示中采样多个补全。
使用引号生成单个句子
如果所需的模型响应只是单个简单句子或字符串,则可以使用引号 "
结束补全指南,并将 "
设为停止序列。
Prompt |
Completion |
Please rewrite the following sentence in a more concise manner ---
SENTENCE: Lucy is a mother of two, who lives in Chicago with her husband and two children, and practices law at Junior & Co.
---
New sentence: “ |
Lucy, a mother of two living in Chicago with her husband and children, practices law at Junior & Co |
指定输出结构
使用提示指定输出结构时,可能会对结果的性质和质量产生重大影响。 有时,元提示,如“仅写出真实事实”或“不捏造信息”,可能不足以缓解问题。 相反,要求模型响应同时包含引文有助于减少错误响应的概率。
例如,如果强制 LLM 在进行陈述时引用源材料,则这些陈述更有可能有根据。 请求引文会使模型在每次构造响应时都犯两个错误:第一个错误是捏造的响应,第二个错误是错误的引文。 请注意,引文越接近它支持的文本,LLM 预测引文所需的距离就越短,这表明内联引文比内容末尾的引文更适合缓解虚假内容的生成。
同样,如果要求模型从段落中提取事实陈述,它可能会提取复合语句,例如“X 正在执行 Y 和 Z”(这可能更难验证),可以通过指定输出结构来避免这种情况,如(实体 1、关系、实体 2)。
示例详细信息 |
Prompt |
Completion |
Example showing use of citations: |
List down the different behaviors exhibited by the Customer Support agent in the following conversation.
---
hi thank you for calling contoso pharmacy who am i speaking with today i understand your frustration mary um can you tell me what exactly you're trying to accomplish OK uh certainly happy to check that for you one moment please i see here that you were on a generic form of lipitor is that right OK uh so i see that your doctor stopped prescribing these drugs in twenty twenty one actually OK uh yeah i'd be happy to check that for you uh because sometimes there's a gap in the system and it just doesn't get reported so let me take a look here just a moment so i'm seeing here that your doctor had these drugs prescribed to you from twenty twelve through twenty twenty one OK um yeah according to the latest records uh provided by doctor's office you're now on a different drug metformin would you like us to go ahead and fill that prescription for you for pick up a bit of form in five hundred milligrams uh you're very welcome mary please let us know if there's anything else we can do for you today.
---
How was the response of the Customer Support agent. Classify and list down their various behaviors and cite the reason behind the classification, using the format BEHAVIOR("reason") |
1. Empathetic("understands the customer's frustration")
2. Patient("happy to check that for you one moment please")
3. Knowledgeable("sometimes there's a gap in the system and it just doesn't get reported")
4. Helpful("happy to check that for you")
5. Accommodating("would you like us to go ahead and fill that prescription for you")
6. Courteous("you're very welcome mary") |
示例详细信息 |
Prompt |
Completion |
Example of prompt directing model response to fit a defined structure: |
Output format:
{
"TOPIC_NAME": "",
"HEADLINES": [],
"REASON": ""
}
Input news headlines:
1. "From books to presentations in 10s with AR + ML"
2. "Demo from 1993 of 32-year-old Yann LeCun showing off the World's first Convolutional Network for Text Recognition"
3. "First Order Motion Model applied to animate paintings"
4. "Robinhood and other brokers literally blocking purchase of $GME, $NOK, $BB, $AMC; allow sells"
5. "United Airlines stock down over 5% premarket trading"
6. "Bitcoin was nearly $20,000 a year ago today"
Output: |
{"TOPIC_NAME": "Artificial Intelligence and Machine Learning",
"HEADLINES": ["From books to presentations in 10s with AR + ML",
"Demo from 1993 of 32-year-old Yann LeCun showing off the World's first Convolutional Network for Text Recognition", "First Order Motion Model applied to animate paintings"],"REASONING": "These headlines all contain references to Artificial Intelligence and Machine Learning, such as AR, ML, Convolutional Network, and First Order Motion Model." }
{"TOPIC_NAME": "Stock Market",
"HEADLINES": ["Robinhood and other brokers literally blocking purchase of $GME, $NOK, $BB, $AMC; allow sells", "United Airlines stock down over 5% premarket trading", "Bitcoin was nearly $20,000 a year ago today"],
"REASONING": "These headlines all contain references to the stock market, such as Robinhood, United Airlines, and Bitcoin." } |
调整温度和 Top_P 参数
更改温度参数可使模型具有不同的风险级别。 较高的值(例如 0.7)将使输出更随机,并产生更多发散的响应。 而较小的值(如 0.2)将使输出更加集中和具体。 例如,可以使用更高的温度生成虚构的故事。 而要生成法律文件,建议使用低得多的温度。
在下一个示例中,我们分别在 0.1 和 0.9 的不同温度设置下测试两个模型响应。 虽然对创意内容的评价,如下面的文字片断,是一项主观的工作,意见可能会有所不同,但仅从改变温度参数来看,模型对同一提示的响应差异是明显的。
指令类型 |
Prompt |
Completion |
Model response for temperature setting 0.1: |
Write a product launch email for new AI-powered headphones that are priced at $79.99 and available at Best Buy, Target and Amazon.com. The target audience is tech-savvy music lovers and the tone is friendly and exciting.<br>1. What should be the subject line of the email?
2. What should be the body of the email? |
Subject Line: Introducing the AI-Powered Headphones You've Been Waiting For!
Dear Tech-Savvy Music Lovers,
-We are thrilled to announce the launch of our new AI-powered headphones! These headphones are designed to provide you with the ultimate listening experience, with features like noise cancellation, adjustable sound settings, and more.
Our AI-powered headphones are now available at Best Buy, Target, and Amazon.com for just $79.99. With this unbeatable price, you can enjoy the highest quality sound without breaking the bank.
Our AI-powered headphones are perfect for anyone who loves music. Whether you're a professional musician or just a casual listener, you'll appreciate the superior sound quality and convenience of these headphones.
We know you'll love our AI-powered headphones, so don't wait - get yours today!
Sincerely,
[Your Company Name] |
Model response for temperature setting 0.9: |
Write a product launch email for new AI-powered headphones that are priced at $79.99 and available at Best Buy, Target and Amazon.com. The target audience is tech-savvy music lovers and the tone is friendly and exciting.
1. What should be the subject line of the email?
2. What should be the body of the email? |
Subject Line: Upgrade your Music Listening Experience with AI-powered Headphones
Greetings Tech-savvy Music Lovers!
We have some exciting news to share with you – the newest AI-powered headphones are here! Our newest headphones feature advanced AI technology to give you the best sound that you’ve ever heard. They come with a crystal-clear sound, deep bass response and are designed to make your music listening experience enjoyable, no matter what type of music you listen to.
What’s more, they are now available at Best Buy, Target and Amazon.com for just $79.99, so you can enjoy the highest sound quality without breaking the bank.
But that’s not all! Our headphones are also packed with several other amazing features such as noise-cancellation technology and a hands-free microphone for calls, making them truly unbeatable.
So why wait? Upgrade your music listening experience and enjoy the best sound your ears have ever heard. Our AI-powered headphones are now available at Best Buy, Target and Amazon.com, so get yours today!
We hope you will enjoy these headphones as much as we do.
Happy Listening!
The AI-powered Headphones Team |
Top_probability 是另一个参数,与温度类似,它也控制模型响应的随机性,但它的控制方式有所不同。 通过不同的温度和 Top_P 来试验不同的模型响应,但不能同时更改两者。
最佳做法
- 尽量具体。 尽可能少留解读空间。 限制操作空间。
- 具有描述性。 使用类比。
- 强调。 有时可能需要对模型进行重复操作。 在主要内容之前和之后提供说明,使用指令和提示等。
- 给事项排序。 向模型呈现信息的顺序可能会影响输出。 你选择是在内容之前放置指令(“汇总以下内容...”)还是之后(“汇总以上...”)会影响输出。 即使是少样本示例的顺序也很重要。 这被称为“近因偏差”。
- 给模型一个“出路”。 如果模型无法完成分配的任务,有时为模型提供备用路径可能会有所帮助。 例如,在对一段文本提出问题时,可以加入类似于“如果答案不存在,则回复‘未找到’”之类的内容。这有助于避免模型生成错误响应。
空间效率
虽然输入大小会随着 GPT 模型的迭代而增加,但仍存在提供的数据超出模型所能处理的数据量的情况。 GPT 模型将单词分解为“标记”。常见的多音节单词通常是单个标记,而不太常见的单词会按音节拆分。 标记有时可能违反直觉,如以下示例所示,它演示了不同日期格式的标记边界。 在这种情况下,拼出整个月份比使用完全数字的日期更具空间效益。 当前的标记支持范围:早期 GPT-3 模型支持 2000 个标记,最新的 GPT-4 模型 32k 版本支持最多 32,768 个标记。
由于空间有限,请务必尽可能高效地使用它。
- 表格–如上一部分中的示例所示,GPT 模型可以非常轻松地理解表格格式的数据。 这是一种空间高效的包含数据的方式,相较于在每个字段前面加上名称(例如 JSON)。
- 空格 - 连续的空格被视为单独的标记,这很容易浪费空间。 另一方面,单词前面的空格通常被视为与单词相同的标记的一部分。 请仔细观察空格的使用情况,不要在单独使用空格就足够时使用标点符号。
相关内容