提示工程

ChatGPT 中的提示工程的必备指南

mm

自从其发布以来,ChatGPT 已在人工智能领域掀起波澜,吸引了超过 1 亿用户,创下了记录。ChatGPT令人印象深刻的性能和多样性背后的秘密在于其编程中微妙地嵌入的一种艺术——提示工程。

2022 年推出的 DALL-E、MidJourney 和 StableDiffusion 强调了生成式人工智能的颠覆性潜力。但是,真正登上舞台的还是 Open AI 的 ChatGPT,后者在 2022 年后期真正引起了人们的关注。这种势头并没有减缓的迹象。

Google 的 BardMeta 的 Llama 2 对 OpenAI 的 ChatGPT 的回应显著地放大了人工智能竞赛的势头。通过向这些模型提供输入,我们正在指导它们的行为和响应。这使得我们都在某种程度上成为提示工程师。科技行业已经注意到了这一点。风险投资家正在向专注于提示工程的初创公司(如 Vellum AI)投入资金。另外,根据 Forbes 的报道,提示工程师的薪水超过了 30 万美元,这表明这是一个蓬勃发展且有价值的就业市场。

在这篇文章中,我们将解开 ChatGPT 中提示工程的世界。我们将探索核心原则和技术,并检查它们的商业应用。

让我们首先了解 ChatGPT 的工作原理以及提示工程在这个过程中的关键作用。

ChatGPT 提示工程的机制

ChatGPT 成功的秘密在于其理解和模仿人类对话细微差别的能力。该模型是在互联网上各种文本上训练的,但它并不知道其训练集中的特定文档或来源,这使得它可以泛化而不是特化。这种训练方法使 ChatGPT 能够生成创造性的响应,导航复杂的对话,甚至表现出幽默感。然而,必须记住,ChatGPT 并不真正理解或拥有信念;它根据在训练期间学习的模式生成响应。

ChatGPT 能够以细致入微和上下文感知的方式理解和响应人类语言,使其成为非常多功能的工具。

这些模型的机制基于“令牌”的概念——语言的离散块,可以从单个字符到整个单词。这些模型一次处理一定数量的令牌(对于 GPT-3.5-Turbo 为 4096,对于 GPT-4 为 8192 或 32768),预测下一个令牌序列。模型使用复杂的线性代数处理令牌,预测最可能的下一个令牌。


ChatGPT 令牌化器 - 提示工程 - Unite AI

例如,一个简单的九个字的句子可能变成十个令牌。即使是一个复杂的单词也可能变成多个令牌,这有助于模型更好地理解和生成语言。即使对于具有复杂单词结构的语言(如德语),也可以通过令牌化来管理。

提示工程 - 大型语言模型令牌和预测插图

 

生成式预训练变换器(GPT)模型通过从第一个令牌开始,一次生成一个令牌,直到最后一个令牌。生成每个令牌后,模型会重新处理整个序列,以生成下一个令牌。这个迭代过程继续,直到生成最终令牌,使文本生成类似于一个大型的 for 循环。

但这里有一个问题——这些响应的质量在很大程度上取决于它们接收到的提示。就像与人类引导对话一样,引导与 ChatGPT 的对话需要一定的技能和理解力。这就是提示工程的用武之地。

什么是提示工程?

提示工程是指为人工智能(自然语言处理/视觉)模型(如 ChatGPT)设计精确、有效的提示/输入,以引导它们生成最具成本效益、准确、有用和安全的输出。

提示工程不仅仅局限于文本生成,还有广泛的应用领域,包括机器人流程自动化机器人、3D 资产、脚本、机器人指令和其他类型的内容和数字媒体。它提供了逻辑、编码、艺术和某些情况下的特殊修饰符的独特融合。

虽然提示可以包括自然语言文本、图像或其他类型的输入数据,但输出可能会在不同的人工智能服务和工具中有很大差异。每个工具都有其特殊的修饰符,用于描述单词的权重、样式、视角、布局或所需响应的其他属性。

这个领域对于创建更好的人工智能服务和从现有的生成式人工智能工具中获得更好的结果至关重要。例如,企业开发人员经常使用提示工程来定制大型语言模型(LLM),如 GPT-3,以支持面向客户的 聊天机器人 或处理创建行业特定合同等任务。

提示的迭代改进和人工智能性能测量的过程是使人工智能模型能够在各种情况下生成高度针对性和有用的响应的关键要素。

成为提示工程师

GPT-4 模型在理解复杂指令和准确解决复杂问题方面的能力使其成为一项宝贵的资源。然而,存在不同的方法来利用该模型的功能,了解这些方法对于提示工程师在优化效率和成本效益方面的作用至关重要。

有两种基本的方法来与 GPT 模型(如 GPT-4)交互。其中一种方法是通过 OpenAI 的 API,成本按输入和输出令牌计算。在这种情况下,1K 令牌的成本可能会根据上下文大小而波动。例如,在一个较大的 32K 上下文中,输入令牌的成本可能会增加到 0.06 美元,输出令牌的成本可能会增加到 0.12 美元。因此,在处理大量请求时,使用成本可能会迅速增加。

或者,ChatGPT 利用 GPT-4 模型,采用基于订阅的模式。

提示工程中的另一个关键任务是模型参数调整。这涉及调整模型用于预测的变量。通过微调这些参数,提示工程师可以提高模型响应的质量和准确性,使其更加上下文相关和有用。

虽然许多提示工程师来自技术背景,但该领域的跨学科性质使其对来自不同专业背景的个人开放。越来越多的作家、研究人员,甚至艺术家正在利用他们独特的技能来提高人工智能模型的有效性。这一转变也反映在就业市场上,越来越多的公司正在寻找具有多样化技能和背景的提示工程师。

ChatGPT 中的提示设计和工程

提示设计和工程在优化语言模型的性能方面起着至关重要的作用,涉及的不仅仅是编写问题,还需要对人工智能模型有深刻的理解和高度迭代和精炼的方法。

ChatGPT 示例提示 - 提示工程 - Unite AI

提示设计

提示设计在其核心上是为大型语言模型(LLM)如 ChatGPT 创建完美提示的艺术和科学,以实现明确的目标。它是以下内容的融合:

  • 对 LLM 的理解:不同的语言模型可能对相同的提示做出不同的响应。此外,某些语言模型可能具有唯一的关键字或触发器,它们以特定的方式解释这些关键字或触发器。
  • 领域知识:在设计提示时,相关领域的专业知识至关重要。例如,生成一个提示以推断医疗诊断将需要医疗知识。
  • 迭代方法和质量测量:创建理想提示的过程通常涉及试错。因此,除了主观判断之外,具有评估输出质量的方法至关重要,特别是在大规模使用提示时。

提示工程

提示工程是提示设计的扩展领域,包括几个关键过程:

  • 批量提示设计:此过程包括元提示(生成其他提示)的设计和提示模板的设计,后者是可以在运行时实例化的参数化提示。
  • 工具设计和集成:提示有时可以包括外部工具的结果,将这些工具无缝集成到系统中至关重要。
  • 工作流、规划和提示管理:部署 LLM 应用程序(如聊天机器人)通常需要管理提示库、规划和选择合适的提示以及高效集成各种工具。
  • 提示的评估和质量保证:此方面包括定义指标和过程以自动和人工评估提示。
  • 提示优化:人工智能模型的成本和延迟可能取决于模型的选择和提示的长度(令牌数量)。

已经开发了许多自动提示设计方法、工具和框架来管理批量提示。然而,理解这些工具无法取代经验丰富的提示工程师的细致理解、判断和经验至关重要。

提示工程:技术和最佳实践

1)提示放置和描述

将指令放在提示的开头可以显著影响人工智能的理解和响应。考虑一下总结文本为项目符号列表的任务。一个不太有效的方法可能是:

用户:总结以下文本为项目符号列表中的最重要点。
{文本输入这里}

相反,更有效的技术可能是:

用户:总结以下文本为项目符号列表中的最重要点。
文本:”””
{文本输入这里}
“””

通过使用诸如###或””””之类的符号清晰地分隔指令和上下文,人工智能模型可以更好地确定其任务和需要处理的文本,从而提供更准确和相关的响应。

其次,关于上下文、预期结果、长度、格式、风格等方面的具体、描述性和详细信息可以显著提高人工智能响应的准确性。假设您需要为一篇科学论文生成一个简短的、吸引人的概述,以便非专业人士能够理解。一个模糊的指令,如“总结科学论文”,将比一个具体的、详细的提示产生更少有效的结果,例如:

用户:生成一份关于以下科学论文的简要(约 200 字)和吸引人的摘要。该摘要应使没有科学背景的人能够理解,同时准确反映论文的主要发现。
论文:”””
{科学论文文本这里}
“””

2)人物模式

人物模式是一种策略,设置人工智能以特定角色或虚构人物的视角运行。这种策略使模型能够提供与特定角色处理的输出相关的输出。例如,您可以指示人工智能在代码审查期间担任网络安全专家。这种模式在用户需要帮助但不确定输出中需要的确切细节时特别有用。

以下是一个例子:

用户:”假设您是一位专门研究法国大革命的高级历史学家。作为这个角色,解释导致法国君主制垮台的关键事件和原因。”

在这种情况下,人工智能被期望以历史学家的身份对法国大革命进行深入分析,重点关注君主制的衰落。

引入新信息

ChatGPT 没有超出其训练截止日期的知识,因此它无法提供有关最近事件或更新的信息。然而,您可以通过提示向模型引入新信息。

用户:”什么是加密货币?”
ChatGPT:”加密货币是一种数字或虚拟货币,使用密码学进行安全保障。最著名的加密货币是比特币。”

现在,如果我们在提示中添加更多上下文,我们可以使解释更加直观:

用户:”向学习数字金融的高中生解释加密货币的概念。”
ChatGPT:”想象一下你正在玩一个在线视频游戏,并且有游戏货币可以赚取来购买升级或新角色。加密货币有点像这样,但它不是仅限于游戏,而是可以用来购买现实世界的商品和服务。它就像数字货币,不受任何银行或政府控制。”

3)提示大小限制

了解 ChatGPT 的大小限制对于我们可以输入的信息量和类型至关重要。语言模型不是为同时处理无限数据而设计的。它们对我们可以创建和输入的提示大小有内在的限制。这种限制对提示的设计和执行有着深远的影响。

ChatGPT 具有令牌限制(通常为 2048 个令牌),包括提示和生成的响应。这意味着长提示可以限制响应的长度。因此,保持提示简洁但具有信息量至关重要。

在实际使用中,我们必须像编辑一样,选择最相关的信息来完成任务。想象一下写一篇论文或一篇文章,有字数或页数限制——你不能随便抛出一些事实,而是要仔细选择和组织与主题相关的信息。

用户:”鉴于模型的令牌限制,总结第二次世界大战的关键事件,控制在 1000 个字以内。”

通过承认模型的令牌限制,该提示指示人工智能提供一个简洁但全面的第二次世界大战摘要。

重复使用的提示:在对话场景中,您可以重复使用提示或根据之前的响应对其进行改进。这提供了对话流程并保持上下文。

4)问题改进模式

ChatGPT 也可以帮助改进您的提问。例如,如果您提出一个问题,它可以建议一个更好的提问以获得更准确的结果。

问题改进模式涉及大型语言模型(LLM)改进用户提出的问题。这种模式特别适用于用户不是某个领域的专家或不确定如何提问时。

一个示例提示可能如下所示:

用户:”每当我问一个关于数据科学的问题时,考虑到统计分析的具体情况,建议一个更完善的问题,并询问我是否要继续使用完善的问题。”

在这里,人工智能被期望改进用户的通用数据科学问题,以考虑统计分析方面,从而提出更详细的问题。

5)认知验证模式

认知验证模式将复杂的问题分解为较小的可管理的子问题。然后将这些子问题的答案组合起来,提供对主要问题的全面回答。这种方法在初始问题过于高层次或需要额外的清晰度以提供完整的回答时特别有用。

例如:

用户:”如果我问一个关于气候变化的问题,请将其分解为三个较小的问题,以帮助您提供更准确的答案。将这些子问题的答案组合起来,给出最终答案。”

在这种情况下,人工智能将气候变化的复杂问题分解为三个可管理的子问题。收到这些子问题的答案后,人工智能将这些答案组合起来,提供一个更全面和准确的最终答案。

这种模式涉及生成多个问题以获得更准确的最终答案。它是一个验证和巩固信息的过程,以获得强大的最终输出。

6)少次提示方法

少次提示是一种强大的方法,用于教导人工智能模型遵循特定的模式或执行任务。该方法的思想是向模型提供几个示例,然后提出期望的问题。这种方法有助于建立期望的行为并指导模型的响应。

考虑一个用户试图为新技术产品草拟一份简洁、有吸引力的营销文案的情景:

用户:”以下是技术营销文案的几个例子:‘体验前所未有的音乐感受,使用我们的尖端无线耳机。’‘使用我们的超薄动作相机,以惊人的 4K 分辨率捕捉您的世界。’鉴于这些例子,草拟一份我们新的人工智能智能手表的营销文案。”

ChatGPT:”通过我们的人工智能智能手表,赋予您的生活以力量,它是您健康、连接和生产力的伴侣。”少次学习的显著特点是,它不需要对如何执行任务的详细描述。相反,它需要对正在执行的内容的演示,这可以使其适用于许多应用。

此外,该技术可以扩展到处理中间步骤以实现目标。

7)链式思维提示

在他们最近的研究论文《链式思维提示在大型语言模型中引发推理》中,Jason Wei 和他的团队旨在激发大型语言模型中的推理。与传统的直接提示不同,该团队使用了一系列相互连接的提示,形成了一条“链式思维”。

例如,用户可能对人工智能对就业市场的潜在影响感兴趣:

用户:”您能简要解释一下人工智能的概念吗?”

ChatGPT:”人工智能,简称 AI,指的是机器模仿人类智能行为的能力。它是关于设计能够像人类一样思考和学习的机器,使其能够执行诸如语言翻译、决策和问题解决等任务。”

用户:”人工智能如何影响当前的就业市场?”

ChatGPT:”人工智能既创造了新的就业机会,也改变了现有的就业形态。一方面,它自动化了例行任务,导致某些领域的工作岗位流失。另一方面,它创造了以前不存在的需求,例如人工智能伦理官、数据分析师和机器学习工程师。此外,人工智能可以增强人类的角色,使人们能够更高效、更准确地完成任务。”

链式思维提示遵循一系列相关提示的进展,保持与模型的“对话”,引导它朝着更精确和上下文相关的响应方向发展。

从开发者的角度理解 ChatGPT API 和提示工程

从开发人员或研究人员的角度来看,提示工程是一个更复杂的过程。它涉及设计算法和技术,以帮助人工智能模型更有效地理解和响应提示。这可能包括处理模糊提示的策略,识别提示的上下文或将提示链接在一起以在人工智能中刺激更复杂的思维过程。

 

ChatGPT API 接口

在上面的插图中,用户与由 GPT-4 提供支持的聊天界面交互。他们的输入由一个专用模块增强以获得清晰度和上下文一致性,然后输入人工智能模型。该模块的作用是改进和增强用户的输入以获得更好的理解,同时保持对话的上下文。人工智能模型根据改进的提示生成的响应通过聊天界面返回给用户。交互历史记录不断更新,保持对话的上下文。总体而言,该图说明了由提示工程技术实现的动态用户和人工智能对话流程。

ChatGPT API 的接口是通过各种超参数设计的,允许用户改进人工智能对提示的响应,使其更加有效和多功能。这些包括温度、最大长度和停止序列参数。让我们探索它们的功能以及如何在不同情况下使用它们。

 

Open AI ChatGPT API - 超参数

1)温度

温度参数影响人工智能响应的随机性。较高的温度(例如 1.0)鼓励更随机的输出,可能导致多样化但可能离题的响应。相反,较低的温度(例如 0.2)会导致人工智能选择更确定的响应,这对于专注和具体的输出很有用,但可能缺乏多样性。

示例:如果您正在撰写一篇创意故事并希望有不可预测、富有想象力的元素,请将温度设置为较高的值。提示可能是:“写一个关于时间旅行猫的短篇故事。”具有较高温度时,您可能会得到一个疯狂、富有想象力的故事,具有不可预测的曲折。

2)最大长度

此参数控制模型输出的最大令牌长度,包括消息输入和消息输出中的令牌。设置较高的限制允许更长的响应,而较低的限制使输出保持简洁。

示例:对于诸如“谁在 2020 年获得了诺贝尔文学奖?”之类的简短答案,您可能希望将最大长度设置为较低的值,以确保响应简洁直接。

3)停止序列

停止序列是特定的文本字符串,当模型遇到这些字符串时,它将停止生成进一步的输出。该功能对于控制输出的长度或指示模型在逻辑终点处停止很有用。

示例:对于一封正式的信件,您可以使用“真诚地”作为停止序列,以确保人工智能不会在信件的适当结尾之后生成任何额外的文本。

4)Top P

“Top P”参数,也称为核采样,是一种动态选择在每个预测步骤中考虑的单词数量的方法。较低的值(例如 0.5)会导致更安全、更集中的输出。较高的值(例如 0.9)会包括更广泛的单词选择,导致更多样化的输出。

示例:如果您正在创建一个人工智能来撰写诗歌并希望它使用广泛的词汇和风格,请将“Top P”设置为较高的值。提示可能是:“为秋天的美景而作一首诗。”

5)频率惩罚

频率惩罚控制模型应该偏爱使用较少出现的单词的程度。较高的惩罚(最高 1)鼓励模型使用较少出现的单词,而较低的值(最低 -1)鼓励模型使用更常见的单词。

示例:如果您正在生成商业提案并希望避免使用行话,您可能会将频率惩罚设置为较低的值,以保持语言清晰和通俗。

6)存在惩罚

存在惩罚参数影响模型被惩罚生成新想法或在对话历史中不存在的主题的程度。较高的值鼓励模型坚持已经提到的主题,而较低的值允许模型更自由地引入新概念。

示例:对于头脑风暴会议,您可能会将存在惩罚设置为较低的值,以鼓励多样化的想法。您可以使用一个提示,如“为在线教育平台生成创新营销策略。”

提示工程在行业中的应用

客户支持和 FAQ 生成

在客户支持领域,提示工程的用途不言而喻。人工智能驱动的聊天机器人是人工智能在该领域最令人瞩目的应用之一。例如,考虑一个电子商务平台,如 eBay。他们利用一个高级聊天机器人系统,该系统经过提示工程的精细调整,可以处理客户询问。聊天机器人能够处理各种问题,包括提供交货更新、处理退货请求和回答有关产品规格的问题。

当客户询问“我的订单在哪里?”时,人工智能聊天机器人不会仅仅用通用消息作出回应;相反,它会访问订单管理系统,获取实时数据,并提供个性化的回应,例如:“您的订单 #1234 目前正在运输,预计将在明天晚上交付。”这样的个性化和相关的回应是精心设计的提示的直接结果,这些提示构成了这些智能聊天机器人系统的核心。

内容创建和营销

在内容创建和营销领域,提示工程是人工智能驱动的创新背后的基石。像 Grammarly 这样的公司使用人工智能驱动的引擎来帮助用户创建引人入胜且语法正确的内容。这些平台的工作原理是基于提示,指导人工智能模型生成建议或更正,以增强内容的整体质量。

考虑一个用户旨在创建有关人工智能进步的引人入胜的内容。他们可以使用一个提示,如“以初学者可以理解的简单、引人入胜的方式解释人工智能的最新进展。”人工智能模型利用这个提示,可以草拟一篇关于复杂人工智能概念的简洁、通俗易懂的文章,从而弥合知识差距并激发读者的兴趣。这只是提示工程可以增强内容创作的众多方式之一。

编码辅助和代码解释

在此背景下,提示工程就像开发人员和人工智能之间的双向对话一样。开发人员向人工智能提供一个提示——一个问题或功能的描述,他们需要实现——人工智能则以相关代码或建议作出响应,从而辅助软件开发过程。

此外,像 GitHub Copilot 这样的 AI 增强型编码工具已经使用 OpenAI 的专业知识开发。这些高级工具经过广泛的训练,可以执行复杂的任务,例如填充不完整的代码文件。它们执行此操作的方式并不局限于编码过程,而是可以处理中间步骤以实现目标。

教育和个性化学习

人工智能在教育领域的整合近年来有了显著的增长,提示工程在其中发挥着至关重要的作用。已经开发了人工智能导师,为每个学生提供个性化的学习体验,适应他们的学习节奏和风格。

例如,考虑一个基于人工智能的学习平台,如 Duolingo。它使用精心设计的提示来评估学生在新语言方面的熟练程度,并提供适合的练习。如果学生正在学习法语并且难以掌握动词变位,人工智能导师可以引入定制的练习,例如“现在时态下变位动词‘manger’(吃)。”学生的表现和进度不断被评估,提示也被改进和适应以确保高效且个性化的学习体验。

提示工程的不可阻挡的崛起

当我们接近对提示工程的深入探讨的结论时,必须强调这个领域有多么年轻。我们正处于一个时代的前沿,人工智能不仅仅是响应预编程的命令,还在处理精心设计的提示时能够产生高度特定的结果。

我们探索的众多应用,从客户支持到内容创作、数据分析和个性化学习,仅仅是冰山一角。随着该领域的研究加深,我们可以期待看到更复杂和细致入微的提示工程应用。人类创造力和人工智能的融合正在推动我们走向一个未来,在那里人工智能不仅仅是协助,而是将改变我们生活的各个方面。

我已经沉浸在了令人着迷的机器学习和深度学习世界中五年了。我的热情和专业知识让我为超过50个不同的软件工程项目做出了贡献,特别关注AI/ML。我的持续的好奇心也让我对自然语言处理产生了兴趣,这是一个我渴望进一步探索的领域。