一文了解提示工程(Prompt Engineering)

引言

在机器学习的世界里,有一句众所周知的话,"机器学习模型的好坏取决于您为其提供的训练数据。" 它指出了数据质量在您从这些算法中获得的结果中发挥的关键作用。

在使用生成式 AI 模型时,这一想法也很重要 - 无论它们生成文本、代码还是图像。如果你是工程师或决策者,计划在其应用程序中添加生成式人工智能功能,那么你使用的提示(prompt)至关重要。精心设计的提示可能会导致无用或错误的输出。这使得了解如何创建良好的提示(也称为提示工程)对于你的项目至关重要。在本文中,我们将解释提示工程的基础知识、不同的类型和技术,以及为什么它是将生成式人工智能成功集成到应用程序中的关键。

提示工程的概念及其重要性

提示工程是精心设计和优化问题或指令以从生成式 AI 模型中得出具体、有用的响应的实践。这是一门战略学科,可将人类意图和业务需求转化为生成式 AI 模型的可行响应,确保系统与预期结果紧密结合。

提示工程用于不同类型的生成式人工智能模型:

  • 基于文本的模型(例如ChatGPT),
  • 图像生成器(例如,MidJourney),以及
  • 代码生成器(例如,Copilot)。

让我们考虑一个可能影响你业务的实际案例。假设你是酒店行业的CTO或软件工程师,你正在集成生成式 AI 聊天机器人来回答员工有关酒店物业管理系统 (PMS) 的疑问。如果聊天机器人的提示设计不当,诸如"什么是PMS?"之类的问题可能会导致人工智能给出PMS的定义,而不是与你的业务环境相关或有用。

通过精心设计的提示提供必要的行业背景 - 例如"旅游业中的 PMS 是什么?" --- 你可以收到有关"的针对性回复酒店物业管理系统、"这正是你需要的信息。

除了提供更准确和相关的响应之外,良好的提示工程还具有其他几个优势。

  • 效率和速度。有效的提示可以加快解决问题的速度-解决,大大减少产生有用结果所需的时间和精力。对于寻求将生成式 AI 集成到时间至关重要的应用程序中的公司来说,这一点尤其重要。

  • 可扩展性。 一个精心设计的提示可以适应各种场景,使人工智能模型更加通用和可扩展。对于希望扩展 AI 功能而无需为每个新应用程序重新发明轮子的企业来说,这一点至关重要。

  • 定制。 快速工程使您能够根据特定业务需求或用户偏好定制人工智能的响应,从而提供独特的定制体验。

要获得所有由于上述好处,组织聘请及时工程师对提示进行微调以确保查询产生具体且有用的响应并与精确的业务目标保持一致就变得非常宝贵。

提示工程师的角色和职责

A 提示工程师是一位在业务需求和 AI 技术(即 GPT-4 等大型语言模型)交叉点上具有独特定位的专家。他们扮演双重角色:一方面他们是语言学家,了解人类语言的细微差别和复杂性;另一方面作为数据科学家能够分析和解释机器行为和响应。

提示工程师的主要职责是设计、测试和优化提示,将业务目标转化为与生成人工智能模型的有效交互。 利用技术工具包(我们将进一步解释),他们精心制作提示,持续诱导AI做出有用且具体的反应。 提示工程师还使用遥测数据定期更新针对不同工作流程定制的专门提示库,评估提示的有效性。

这个提示库就像一个共享工具箱。 它针对各种情况提供了一系列经过验证的提示,使公司中的每个人都能更轻松地找到他们需要的内容。 提示工程师根据音调、域、产生的输出和其他因素对这些提示进行排序,以便轻松查找和重用现有提示。

包括《时代》杂志在内的许多出版物都报道了各个领域的提示工程师日益增长的重要性。 计划将生成式人工智能集成到业务应用程序中的公司越来越认识到提示工程师的价值。

Indeed 和 LinkedIn 等领先就业平台已经拥有许多提示工程师职位。 仅在美国,该职位的招聘信息就有数千个,反映出需求不断增长。 提示工程师的薪水也很有吸引力,根据经验和专业知识,每年从 50,000 美元到 150,000 美元以上不等。

技术职责

如果你想获得快速工程师的职位或正在寻找一名工程师,请注意以下关键技术职责。

  • 了解 NLP。能够集成生成式人工智能模型。API提示工程师了解如何与 API 交互也很重要API知识。 ,尤其是 GPT-3.5 等模型。Python了解如何工作系统集成需要使用 JSON 文件并基本掌握 JSON 和基本 Python。拥有诸如此类模型的经验GPT-3.5、GPT-4、BERT 等对于理解其局限性和可能性至关重要。

  • 熟悉大语言模型(LLM)。必须对语言算法和技术有深入的了解。

  • 数据分析和解释。 提示工程师必须能够分析模型响应、识别模式并做出基于数据的决策来完善提示。

  • 实验和迭代。提示工程师进行A/B 测试、跟踪指标并根据实际反馈和机器输出优化提示。

非技术责任

技术责任只是问题的一方面。一名提示工程师必须具备以下非技术技能。

  • 沟通。必须能够清晰地表达想法,与他人合作跨职能团队,并收集用户反馈以进行及时改进。

  • 道德监督。 提示工程师确保提示不会产生有害或有偏见的反应,符合道德人工智能实践。

  • 相关垂直行业的专业知识。 根据应用的不同,拥有特定领域的专业知识可能非常宝贵。

  • 创造性地解决问题。 思维超越了人工智能与人类交互的传统界限,以创新新的解决方案。

如你所见,提示工程师的角色是多方面的,需要结合技术技能和将业务目标转化为有效的人工智能交互的能力。这些专家对于成功集成生成式人工智能功能具有无价的价值。考虑到这一点,让我们探索一些提示工程的基本概念。

提示工程中需要了解的核心技术概念

提示工程不仅仅是提出问题,而是最有效地提出问题,通常需要对自然语言处理 (NLP) 有细致入微的了解自然语言处理 (NLP) 和大语言模型 (LLM)。因此,让我们概述一下与提示工程相关的核心概念。

自然语言处理 (NLP) 是人工智能 (AI) 中的一个专业领域,专注于人与人之间的交互计算机和人类语言。它使机器能够根据上下文分析、理解和响应人类语言。

大语言模型 (LLM) 是语言模型的高级子集,经过训练广泛的数据集来预测各种单词序列的可能性。简而言之,他们努力根据前面的单词猜测句子中的下一个单词,从而有效地理解上下文以生成有意义的文本。

Transformer 是许多LLMs的基础,包括著名的 GPT 系列。它们是一种特定类型的深度神经网络,针对处理语言等顺序数据进行了优化。 Transformer 擅长理解句子中单词之间的上下文关系。Transformer内的注意力机制允许模型关注输入文本的不同部分,帮助它"注意"输入文本。到最相关的任务。

参数是从训练数据中学习到的模型变量。虽然提示工程师通常不会调整这些,但了解它们是什么可以帮助理解为什么模型以某种方式响应提示。

Token 是模型读取的文本单元。token可以小至单个字符或长至单词(例如,"a"或"apple")。 LLM 具有最大tokens限制,了解这一点对于提示工程非常重要,尤其是对于较长的查询或数据输入。

多模态是多模态 AI 的新兴趋势,可以理解、解释和生成各种类型数据的模型------无论是文本、图像还是代码。提示工程扩展了可以工作的画布,使我们能够根据模型的功能制作提示,生成不同的输出形式。

有了这些基本概念,你就可以创建提示。将更好地理解后续关于提示工程技术和最佳实践的讨论。

什么是提示?

提示是你期望 AI 模型输出的精确蓝图。它们充当中介语言,将人类意图转化为人工智能可以执行的任务。

提示的关键要素

让我们采取一个完整的提示并解释它的组成部分。

"考虑到最近对气候变化的研究,并以新闻风格总结所附报告中的主要发现。"

  • 指令。这是提示的核心组成部分,告诉模型你期望它做什么。作为提示中最直接的部分,指令应清楚地概述您要求模型执行的操作。在我们的示例提示中,指令为"总结所附报告中的主要发现。"

  • 上下文。 上下文提供应发生操作(指令)的背景或设置。它可以帮助模型以与您想到的场景相关的方式构建其响应。通过将模型集中在特定主题或主题上,提供上下文可以使你的提示更加有效。我们提示中的上下文元素是"考虑到最近的情况"气候变化研究。"

  • 输入数据。是你希望模型在生成输出时考虑的特定信息。这可以是文本片段、文档、一组数字或你希望模型处理的任何其他数据点。在我们的示例中,输入数据隐含为 "附加报告"。输出指示器指导模型的格式或您想要的回应风格。这在输出格式与内容同样重要的情况下特别有用。在我们的示例中,提示"以新闻形式呈现您的摘要"风格" 指定了输出风格。

提示工程中的权重

加权的概念加权是指对提示的特定部分添加额外的强调或关注。这可以帮助引导人工智能模型专注于这些元素,从而影响响应类型或生成的内容。提示中的权重并非所有模型的标准功能:某些平台或工具可能会提供以特殊语法或符号形式实现的权重,以指示哪些术语应受到更多关注。

权重经常在图像生成的上下文,因为负责此任务的模型 - 例如DALL-E 或 MidJourney - 更有可能根据对提示的轻微调整产生显著变化的输出。然而,如果系统允许,这个概念理论上可以应用于其他生成模型,例如基于文本或基于代码的模型。

例如,使用"fireworks"来表示。和"fire::works"作为MidJourney的提示会带来截然不同的结果。如下所示:

  • "fireworks" (没有任何权重)通常会引导模型生成一幅图像,该图像具有我们与庆祝活动和活动相关的明亮、多彩的空中显示。
  • "fire::works"分隔两个词并着重强调该术语的第一部分"fire"。在这种情况下,生成的图像可能具有以火为主要焦点的场景,例如被火焰吞没的房屋。
    添加"::"作为"fire"和"works"之间的权重,影响生成的输出,将焦点转移到提示词的第一部分,并导致完全不同的视觉表示。

这表明权重在图像生成器的提示工程中的重要性。通过简单地调整权重,您就可以改变所生成图像的整个上下文和含义。

实际应用中的提示接口:OpenAI的playground

对于那些将 ChatGPT 等生成式 AI 模型集成到其应用程序中的人来说,了解操作提示的接口至关重要。 OpenAI 的 Playground 为开发者提供了一个测试和优化提示的环境,提示分为三个角色:系统、用户和助理。

  • 角色"系统"。提示工程师可以在此处设置对话的一般准则,并说明 ChatGPT 在聊天对话消息中应具有什么样的个性。 例如,酒店管理应用程序中的"系统"消息可能是:"您是一位有用的酒店聊天机器人助手",确保人工智能模型知道专注于与酒店相关的查询。

  • "用户"角色代表与人工智能交互的人或系统。 根据我们的酒店聊天机器人示例,"用户"提示可能是:"退房时间是几点?"

  • "助理"角色是模型对"用户"提示的响应。 按照我们的例子,"助理"可以回复:"退房时间通常是上午 11 点,但可以根据要求安排延迟退房。"

这些角色不仅可以指导对话,还可以作为准备数据集以微调 AI 模型的重要框架。 微调的目的是调整模型的行为以更好地适应您的特定应用程序,例如在我们的示例中重点关注酒店管理查询。 根据 OpenAI 的微调指南,您必须为该过程提供至少 10 个示例。 然而,当使用 50 到 100 个训练示例时,通常会看到明显的改进。

拥有将 ChatGPT 集成到旅行应用程序中的实践经验,我们了解此过程中涉及的细微差别和挑战。 您可以阅读我们的专门文章,更详细地了解。

现在我们已经讨论了制作提示的基础知识和实际方面,包括决定对话流程的角色,让我们深入研究更先进的提示工程技术,这些技术可以帮助您微调与 AI 的交互。

AI提示工程技术示例

有很多提示类型可用于与 AI 对话 - 从更简单的零样本提示到更复杂的思维链技术。

但是,在深入探讨提示工程的各种技术之前,了解一些可以显著影响你收到的输出质量的通用最佳实践至关重要。这是一个需要记住的快速列表。

  • 清晰是关键:清晰简洁的提示可以带来更好、更准确的结果。您说得越具体,人工智能就越能理解您的请求。
  • 避免信息过载:虽然包含尽可能多的细节很诱人,但过多的信息可能会适得其反,并可能使模型感到困惑。
  • 使用约束:添加约束可帮助您缩小对需求的响应范围。例如,指定输出的长度或格式(如果这对您的用例很重要)。
  • 避免引导性问题和开放式问题:引导性问题可能会使结果产生偏差,而开放式问题可能会得到过于宽泛或笼统的答复。你应该找到平衡。
  • 迭代和微调很有帮助:无论您采用何种技术,迭代提示和微调通常是获得所需输出的必要步骤。

这些技巧并不详尽,但可以作为一个很好的起点。它们可以应用于不同的技术和组合。

零样本提示

零样本提示是提示工程中最简单但最通用的技术之一。它的核心是为语言模型提供一条指令,通常以问题或陈述的形式呈现,而不给出任何额外的示例或上下文。然后该模型基于其训练数据生成响应,本质上"完成"模型。以与其对语言和上下文的理解相一致的方式进行提示。

零样本提示对于为各种查询生成快速、即时的响应非常有用。

假设您正在寻找酒店评论的情感分析。 您可以使用以下提示。

"从以下评论中提取情感:'房间很宽敞,但服务很糟糕。'"

如果没有事先进行情绪分析任务的训练,该模型仍然可以处理此提示并为您提供答案,例如"该评论有一个复杂的情绪:对房间空间积极但对服务消极。"

虽然这对人类来说似乎是显而易见的事情,但人工智能能够做到这一点的事实令人印象深刻。

单样本提示

单样本提示是一种通过单个示例指导 AI 模型输出的技术。该示例可以是问答对、简单指令或特定模板。目的是使模型的响应与用户的具体意图或所需格式更紧密地结合起来。

假设您正在撰写一篇有关"绿色出行"的博客文章,您的提示可能如下所示:

"I give you the keyword 'sustainable travel,' and you write me blog post elements in this format: Blog post H1 title: Meta title: Meta description:"

收到此一次性提示后,模型将生成与示例模板紧密一致的博客文章大纲,生成如下内容:

Blog post H1 title: Exploring the World Sustainably Meta title: The New Age of Sustainable Travel Meta description: A detailed look at how to make your travels more eco-friendly without sacrificing comfort or experience.

该技术允许更高程度的定制,并且在输出必须符合特定样式或格式时特别有用。

小样本提示

小样本提示是一次性提示的扩展,其中提供了多个示例来指导 AI 模型的输出。概念相似,但包含几个示例为模型提供了更多上下文线索。这使得模型能够更好地理解用户的需求,生成与给定示例密切相关的输出。

假设您正在从事一个与"酒店收入管理"相关的项目,并且您需要一份策略列表。

Prompt: "I give you the topic 'revenue management in hospitality,' and you provide me with the list of strategies in this format:

Strategy 1: Dynamic Pricing

Strategy 2: Yield Management

Strategy 3: Overbooking

Please continue the list (without explaining)"

收到带有多个示例的提示后,模型可能会生成其他策略,如下所示:

我们向 ChatGPT 询问了这一点,它很容易地列出了最常见的策略,例如入住时间折扣、季节性定价、渠道管理和 RevPAR。

通过在几次提示中提供多个示例,您可以增加生成的输出与您所需的格式和内容更加一致的可能性。

角色扮演技巧

角色扮演技术采用独特的方法来制作提示:您可以为 AI 模型分配特定的"角色"或"角色",而不是使用示例或模板来指导模型的输出。 这通常包括明确解释目标受众、人工智能的角色以及交互的目标。 角色和目标提供上下文信息,帮助模型理解提示的目的以及其响应中应达到的语气或详细程度。

考虑一下提示: "You are a prompt engineer, and you need to explain to a 6-year-old kid what your job is."

在这里,角色是"提示工程师",目标是以 6 岁孩子可以理解的方式解释提示工程师的工作。使用角色扮演技术,您可以为 AI 模型设置上下文,指导其生成适合指定角色和受众的输出。"6 岁孩子。"

Positive和Negative的提示

Positive和Negative提示是用于引导模型向特定方向输出的技术。 顾名思义,Positive提示鼓励模型包含某些类型的内容或响应,而Negative提示则阻止模型包含其他特定类型。 这种框架对于控制模型输出的方向和质量至关重要。

例子。 假设您是一名可持续发展顾问,希望模型生成一系列减少组织碳足迹的建议。

您的Positive提示可能如下所示:

"You are a sustainability expert. Generate a list of five feasible strategies for a small business to reduce its carbon footprint."

基于上述场景,您应该确保模型不会为小型企业建议过于昂贵或复杂的策略。 因此,您可以按如下方式扩展初始提示:

"You are a sustainability expert. Generate a list of five feasible strategies for a small business to reduce its carbon footprint. Do not include suggestions that require an initial investment of more than $10,000 or specialized technical expertise."

在此处添加Negative提示会过滤掉过于昂贵或技术性的策略,从而定制模型的输出根据您的具体要求。

思路链提示

思维链提示是一种旨在引导 AI 模型完成逻辑推理过程的技术。该策略不仅仅是要求输出,而是包含了"思想链"。这演示了如何逐步得出正确答案。这种方法对于需要批判性思维或解决问题技能的任务(例如数学计算或复杂查询)特别有价值。

示例。 假设您负责优化运输公司卡车车队的燃油效率 。您可以采用思路链提示来指导模型完成这项复杂的任务,如下所示。

提示:"You're the fleet manager for a transportation company with 50 diesel trucks. Each truck gets 6 miles per gallon, and the fleet covers a total of 10,000 miles each day. You're looking to reduce fuel consumption to save costs. Let's think step by step."

通过将提示构建为一条思想链,你可以获得解决方案并了解人工智能如何推理,从而产生更完整和更有洞察力的输出。

迭代提示

迭代提示是一种策略,涉及在模型之前的输出的基础上进行改进、扩展或更深入地挖掘初始答案。 这种方法使您能够将复杂的问题或主题分解为更小、更易于管理的部分,从而获得更准确、更全面的结果。

这项技术的关键是密切关注模型的初始输出。 然后,您可以创建后续提示来探索特定元素、查询子主题或要求澄清。 这种方法对于需要深入研究、规划或分层响应的项目非常有用。

最初的提示可能是:

"I am working on a project about fraud prevention in the travel industry. Please provide me with a general outline covering key aspects that should be addressed."

假设模型的输出包括身份验证、安全支付网关和交易监控等点。

后续提示1:* "Great, could you go into more detail about identity verification methods suitable for the travel industry?"*

此时,该模型可能会详细说明多因素身份验证、生物识别扫描和安全文档检查。

后续提示2:"Now, could you explain how transaction monitoring can be effectively implemented in the travel industry?"

然后,该模型可以讨论实时监控、异常检测算法以及机器学习在识别可疑活动中的作用。

这种迭代方法使您能够以结构化的方式从广泛的问题转向具体的、可操作的见解,这使得它对于复杂的主题(例如旅游业中的欺诈预防)特别有用。

模型引导提示

另一种有用的方法是模型引导提示,它通过指示模型询问您完成给定任务所需的详细信息来翻转脚本。 这种方法可以最大限度地减少猜测,并阻止模型胡编乱造。

例子。 假设您从事旅游技术工作,并且希望 AI 模型为您平台上的新旅行预订功能生成常见问题解答部分。 您可以按如下方式提示 AI:

*"I need you to generate a FAQ section for a new travel booking feature we're launching. Can you ask me for the information you need to complete this?"

ChatGPT 可能会问你 "What is the name of the new travel booking feature?" 以及 "What is the primary purpose or functionality of this new feature?"

通过使用模型引导提示,您可以确保生成的常见问题解答具有相关性、准确性,并且适合您的特定旅行预订功能,而不是依赖于模型的假设。

我们在这里概述了一些关键的提示类型和技术。然而,值得注意的是,这并不是一个详尽的列表;可以采用许多其他技术来充分利用您的模型。此外,这些技术并不相互排斥,通常可以组合起来以获得更有效或更细致的结果。例如,提示组合技术涉及将不同的指令或问题合并为一个单一的、多方面的提示,以从人工智能中得出全面的答案。

讨论了提示类型的基本要素后,让我们来看看提示类型的要点。我们将继续扮演快速工程师的角色,他是有效利用这些技术的关键角色。

提示工程的未来

提示工程的前景充满了令人着迷的前景,超越了我们迄今为止探索的方法。一些可能彻底改变该领域的突破性趋势和范式包括:

  • 自动提示工程 (APE)。能够为特定任务或自定义提示的算法的出现数据集可以提高与法学硕士互动的效率。 APE 致力于减少手动调整,加速人工智能生成有意义且精确的内容。

  • 实时语言翻译。 随着机器翻译能力的增强,提示工程可以在即时语言翻译服务中发挥作用。该应用程序可以扩展到文本数据之外,涵盖实时音频翻译,从而促进跨越语言障碍的无缝通信。

这些进步的发展仅代表了可能性的一小部分。随着生成式人工智能模型变得更加先进,提示工程在确保顺利集成到现有系统和工作流程方面的作用只会越来越大。

相关推荐
lmxnsI6 分钟前
后端项目打包发布
ide·python·pycharm
wenzhangli710 分钟前
探寻 OneCode 核心优势:MVVM 进阶与前后端协同之魅
深度学习·低代码·前端框架
HsuHeinrich36 分钟前
流程图(二)利用python绘制网络图
python·数据可视化
顾道长生'36 分钟前
(NIPS-2024)PISSA:大型语言模型的主奇异值和奇异向量适配
人工智能·语言模型·自然语言处理
Macropodus38 分钟前
near-synonym反义词生成(2):Prompt +Bert-MLM(FT)
自然语言处理·prompt·反义词生成·中文反义词·bert-mlm
语音之家41 分钟前
CultureLLM 与 CulturePark:增强大语言模型对多元文化的理解
人工智能·语言模型·自然语言处理
Tasfa41 分钟前
【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)
人工智能·gpt·学习
一个处女座的程序猿44 分钟前
LLMs之o3:《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读
人工智能·深度学习·机器学习
爱学习的Allan1 小时前
使用 pyreqs 快速创建 requirements.txt & PyCharm 中 UnicodeDecodeError 问题
ide·python·pycharm·pip
静静AI学堂1 小时前
动态头部:利用注意力机制统一目标检测头部
人工智能·目标检测·计算机视觉