【收藏必备】提示词工程完全指南:谷歌白皮书解读与大模型应用技巧

前言:大语言模型(LLM)的兴起,让机器与人类的交流达到了前所未有的深度。然而,想要让这些智能助手真正理解我们的意图,并产出我们期待的精准、有价值的成果,需要掌握一门精妙的艺术与科学——提示词工程。它不再是数据科学家或机器学习工程师的专属领域,而是每一位与AI对话的普通人都能掌握的关键技能。它像一座桥梁,连接着人类的思维与机器的理解,决定着我们能否从AI的潜力中汲取最大价值。由谷歌(Google)撰写的白皮书——《提示词工程》(Prompt Engineering),系统地阐述了提示词工程的方方面面,从基础概念到高阶技巧,从模型配置到最佳实践,为我们描绘了一幅清晰而实用的学习路径。

一、揭开面纱:谷歌《提示词工程》白皮书的全面洞察


当今世界,大型语言模型(LLM)已然成为一股不可忽视的力量。它们是能够理解并生成人类语言的“预测引擎”,通过分析海量的训练数据,预测出下一个最可能出现的词元(token)。每一次我们与聊天机器人互动,本质上都在进行“提示”,但若要深度掌控模型的产出,提示词工程就显得尤为重要。

那么,究竟何为提示词工程?提示词工程是设计高质量提示词以引导LLM产出准确结果的过程。这像是一场精密的调校,需要我们不断尝试、优化提示词的长度、写作风格与结构,以使其与任务需求完美契合。一个不够精良的提示词,可能导致模型给出模棱两可、甚至不准确的回答,从而阻碍其提供有意义的输出。

这份白皮书不仅深入探讨了提示词工程的各项技术,还分享了成为提示词专家的实用技巧和最佳实践,并坦诚地指出了在创作提示词过程中可能面临的挑战。它涵盖了从文本摘要、信息提取、问答、文本分类、语言或代码翻译、代码生成到代码文档或推理等多种理解和生成任务。

白皮书的核心内容可以概括为以下几个关键维度:

1、LLM输出配置(LLM output configuration):探讨如何通过调整模型的各项配置,如输出长度、采样控制(温度、Top-K和Top-P),来精准控制模型生成内容的特性。

2、提示词技巧(Prompting techniques):详细介绍了多种实用的提示词策略,从最基础的零样本(Zero-shot)到更高级的思维链(Chain of Thought)、自洽性(Self-consistency)、思维树(Tree of Thoughts)乃至行动与思考(ReAct)等。

3、最佳实践(Best Practices):提供了大量经验证的指导原则,帮助我们提升提示词的有效性,例如如何提供高质量的示例、如何简洁设计、如何明确输出要求、以及如何记录迭代过程等。

理解这些要素,是驾驭大型语言模型、实现高效人机协作的关键。白皮书强调,无论我们使用Gemini、GPT、Claude还是Gemma、LLaMA等开源模型,都可能需要针对特定模型优化提示词。这是一个持续迭代、不断学习的过程。

二、提示词工程(Prompt Engineering)的核心要义:


白皮书开篇便点明了核心:大型语言模型是一个预测引擎。它接收连续的文本作为输入,然后根据其训练数据预测下一个词元。这个过程会不断重复,将之前预测的词元添加到序列末尾,再预测下一个,其预测依据是现有词元与模型训练时所见数据之间的关系。

因此,当我们撰写提示词时,本质上就是试图设定LLM来预测正确的词元序列。提示词工程,正是这个“设定”的过程,它关乎如何设计出能精确引导LLM生成目标输出的高质量提示词。这个过程充满了“修修补补”的意味,需要我们不断尝试,以找到最佳的提示词,并优化其长度、写作风格与结构,使其与我们期望完成的任务完美契合。

白皮书指出,不恰当的提示词会导致模型给出模糊不清、甚至不准确的回答,从而阻碍其提供有意义的输出。一个有效的提示词,其效力受到诸多因素的影响,包括:您选择的模型、模型的训练数据、模型的配置、您的措辞、风格和语气、结构以及上下文——所有这些都至关重要。正因如此,提示词工程被视为一个迭代的过程

虽然我们日常与聊天机器人互动时,就已经在“写提示词”了,该白皮书更侧重于在Vertex AI或通过API直接与Gemini模型交互,因为这能让我们更深入地访问和配置模型参数,如“温度”等。

三、LLM输出配置:掌控模型产出的“旋钮”


除了提示词本身,我们还需要细致地调整LLM的各种配置选项,因为它们直接决定了模型输出的特性。有效地进行提示词工程,离不开为特定任务设置最优的配置。

1、输出长度的考量

一个重要的配置是响应中生成的词元数量。生成更多的词元意味着LLM需要进行更多的计算,这不仅会消耗更高的能源,还可能导致响应时间变慢,进而增加成本。

白皮书特别强调,减少LLM的输出长度,并非让模型在风格或文本上变得更加简洁,而仅仅是在达到限制时停止预测更多的词元。如果您的需求是简短的输出,那么您可能还需要精心设计提示词以适应这一需求。例如,对于ReAct等特定的提示词技术,输出长度的限制尤为关键,因为如果模型持续生成无用词元,将会耗费宝贵的计算资源。

2、采样控制:随机性与确定性的平衡

LLM并非简单地预测一个单一词元,而是为词汇表中的每个词元预测一个概率分布,然后根据这些概率进行采样,以确定最终生成的词元。温度(Temperature)、Top-K和Top-P是三种最常见的配置设置,它们决定了如何处理这些预测的词元概率,以选择最终的输出词元。

1)温度(Temperature):温度控制着词元选择中的随机程度。

  • 较低的温度适用于需要更确定性响应的提示词。例如,在回答数学问题时,将温度设为0(贪婪解码:每一步都选择当前预测概率最高的那个词(token)作为输出,不进行随机采样或多样化选择),模型将始终选择概率最高的词元,从而得到确定性的结果。
  • 较高的温度则能带来更多样化或出乎意料的生成结果。温度值越高,所有词元被预测为下一个词元的可能性就越接近。白皮书甚至将Gemini的温度控制与机器学习中的softmax函数进行了类比,低温度类似于低softmax温度,强调单一首选;高温度则像高softmax温度,使得更宽范围的词元都能被接受,增加了不确定性,适用于创意输出等不要求严格精确的场景。

2)Top-K和Top-P采样:Top-K和Top-P是两种用于限制预测下一个词元来源的采样设置,它们只从预测概率最高的词元中进行选择。与温度类似,它们也控制着生成文本的随机性、多样性和质量,避免模型总是输出相同、无趣或过于确定的答案。

  • Top-K采样:选择模型预测分布中概率最高的K个词元。K值越高,模型输出的创意性和多样性越强;K值越低,模型输出越受限制,越倾向于事实性。将Top-K设置为1,其效果与贪婪解码相同。
  • Top-P采样**:选择累积概率不超过特定值P的最高概率词元。P值的范围从0(贪婪解码)到1(LLM词汇表中的所有词元)。白皮书建议,在Top-K和Top-P之间进行选择的最佳方式是通过实验**,观察哪种方法(或两者结合)能产生您想要的结果。

3)综合运用:配置参数的协同效应

选择Top-K、Top-P、温度以及要生成的词元数量,取决于具体的应用和期望的结果,并且这些设置是相互影响的。理解您所选模型如何组合不同的采样设置也至关重要。

如果温度、Top-K和Top-P都可用(例如在Vertex Studio中),那么首先会筛选出同时满足Top-K和Top-P条件的词元作为候选,然后温度会应用于这些通过筛选的词元进行采样。如果只有Top-K或Top-P可用,则行为相同,只是仅使用单一的Top-K或Top-P设置。

在某些极端设置下,某个采样配置值会抵消其他配置设置或变得无关紧要

  • 如果将温度设置为0,Top-K和Top-P将变得无关紧要——因为模型将始终预测概率最高的词元作为下一个词元。
  • 如果将温度设置得极高(通常高于1,达到10左右),温度本身将变得无关紧要,任何通过Top-K和/或Top-P筛选的词元都将随机采样以选择下一个预测词元。
  • 如果将Top-K设置为1,温度和Top-P将变得无关紧要。只有一个词元会通过Top-K标准,而那个词元将是下一个预测词元。
  • 如果将Top-P设置为0(或一个非常小的值),大多数LLM采样实现将只考虑概率最高的词元来满足Top-P标准,这会使得温度和Top-K变得无关紧要。

白皮书提供了一些实用的起始点建议

  • 对于相对连贯但不过于创意的结果:推荐温度0.2,Top-P 0.95,Top-K 30。

  • 如果您需要特别有创意的结果:可以尝试温度0.9,Top-P 0.99,Top-K 40。

  • 如果您需要不那么有创意的结果:可以尝试温度0.1,Top-P 0.9,Top-K 20。

  • 如果您的任务总有一个单一的正确答案(例如,解决数学问题):请务必从温度0开始。需要注意的是,更多的自由度(更高的温度、Top-K、Top-P和输出词元)可能会导致LLM生成不那么相关的文本

四、提示词技巧:与LLM高效协作的策略


大型语言模型经过大量数据训练,能够理解提示并生成答案,但它们并非完美。您的提示词文本越清晰,LLM预测下一个可能文本的效果就越好。此外,利用LLM训练方式和工作原理的特定技巧,将帮助您从LLM获得更相关的结果。白皮书详细介绍了多种重要的提示词技巧:

1、通用提示 / 零样本(General prompting / Zero shot)

零样本提示是最简单的提示类型。它只提供任务的描述和一些供LLM开始处理的文本。这可以是任何内容:一个问题、一个故事的开头或一些指令。顾名思义,“零样本”代表着“不提供示例”。

白皮书以电影评论分类为例,展示了零样本提示的应用。在这样的分类任务中,模型温度通常应设为低值,因为不需要创造性。同时,白皮书强调了以表格形式记录提示词的重要性,因为提示词在最终投入使用前可能经历多次迭代,系统化地追踪提示词工程工作至关重要。

2、单样本与少样本(One-shot & few-shot)

当零样本提示无法满足需求时,我们可以在提示词中提供演示或示例,这便引出了“单样本”和“少样本”提示。提供示例对于创建AI模型提示词非常有帮助。这些示例能帮助模型理解您的要求,尤其是在您希望模型遵循特定输出结构或模式时。

1)单样本提示(One-shot prompt):顾名思义,它只提供一个示例。其理念是让模型有一个可以模仿的例子,以便最好地完成任务。

2)少样本提示(Few-shot prompt):则向模型提供了多个示例**。这种方法向模型展示了一个需要遵循的模式。它的理念与单样本类似,但多个期望模式的示例能增加模型遵循该模式的可能性。

少样本提示所需的示例数量取决于任务的复杂性、示例的质量以及您所使用生成式AI(gen AI)模型的能力。通常的经验法则是,少样本提示应使用至少三到五个示例。然而,对于更复杂的任务,您可能需要更多示例;或者由于模型的输入长度限制,您可能需要减少示例数量。

白皮书以将披萨订单解析为JSON格式的例子,展示了少样本提示的强大之处。选择示例时,务必使用与您希望执行的任务相关的示例。这些示例应该多样化、高质量且编写良好。一个小的错误就可能混淆模型,导致意想不到的输出。此外,如果您尝试生成对各种输入都稳健的输出,那么在示例中包含边缘情况(edge cases)非常重要。边缘情况是那些不寻常或意料之外的输入,但模型仍应能够处理。

3、系统、情境与角色提示(System, contextual and role prompting)

系统、情境和角色提示都是用于指导LLM生成文本的技巧,但它们侧重于不同的方面:

1)系统提示(System prompting):设定语言模型的整体上下文和目的。它定义了模型应该做什么的“大局”,例如翻译语言、分类评论等。系统提示对于生成满足特定要求的输出非常有用。例如,您可以利用它生成与特定编程语言兼容的代码片段,或者要求模型返回特定结构的数据。白皮书提供了一个将电影评论分类并以JSON格式返回的例子,展示了系统提示在结构化输出方面的强大能力。将数据以JSON对象形式返回具有多重好处:在实际应用中无需手动创建JSON,能够返回排序数据,更重要的是,它强制模型创建结构并限制幻觉(hallucinations)。系统提示甚至可以用于安全性和毒性控制,例如,简单地在提示词中添加一行“您的回答应该 respectful”即可。

2)角色提示(Role prompting):为语言模型分配一个特定的角色或身份。这有助于模型生成更相关、信息更丰富的输出,因为它会根据被分配的角色及其相关的知识和行为来调整其响应。例如,您可以将生成式AI模型设置为图书编辑、幼儿园老师或励志演说家。一旦模型被分配了角色,您就可以向它提供特定于该角色的提示。白皮书展示了模型扮演旅行向导的角色,根据用户位置和兴趣提供旅行建议的示例。为AI模型定义角色视角,能够为其提供期望的语气、风格和专业知识蓝图,从而提高输出的质量、相关性和有效性。白皮书还列出了一些有效的风格选择,如对抗性、描述性、直接、正式、幽默、有影响力、非正式、鼓舞人心、说服性等,并用一个幽默风格的旅行建议进一步阐释了其应用。

3)情境提示(Contextual prompting):提供与当前对话或任务相关的特定细节或背景信息。它帮助模型理解所提问内容的细微之处,并相应地调整响应。它高度特定于当前任务或输入,并且是动态变化的。通过提供情境提示,您可以确保AI交互尽可能无缝和高效。模型将能够更快地理解您的请求,并生成更准确和相关的响应。一个关于为复古游戏博客建议文章主题的例子,清楚地展示了情境信息(“您正在为一篇关于80年代复古街机视频游戏的博客撰稿”)如何引导模型生成更精准的输出。

值得注意的是,系统、情境和角色提示之间可能存在显著的重叠。例如,一个为系统分配角色的提示词也可以包含上下文。然而,每种提示词类型都有其略微不同的主要目的:系统提示定义模型的基本能力和总体目的;情境提示提供即时、任务特定的信息来指导响应;角色提示则塑造模型的输出风格和声音,增加了特异性和个性。区分这些提示类型,能为设计意图清晰的提示词提供框架,从而实现灵活组合,并更容易分析每种提示类型如何影响语言模型的输出。

4、退一步提示(Step-back prompting)

退一步提示是一种通过引导LLM首先思考与当前特定任务相关的一般性问题,然后将该一般性问题的答案输入到后续的特定任务提示中,来提高性能的技巧。这种“退一步”的操作,使得LLM能够在尝试解决具体问题之前,激活相关的背景知识和推理过程

通过考虑更广泛和深层次的原则,LLM能够生成更准确和富有洞察力的响应。退一步提示鼓励LLM批判性地思考,并以新的、有创意的方式应用其知识。它通过利用LLM参数中更多知识,改变了执行任务的最终提示词,而这些知识在直接提示LLM时可能无法发挥作用。它甚至可以通过关注一般原则而非具体细节,帮助缓解LLM响应中的偏见

白皮书通过一个编写第一人称射击游戏(FPS)关卡故事情节的例子,生动地展示了退一步提示的效用。传统的直接提示虽然也能生成故事情节,但可能较为随机和通用。而通过“退一步”,先让模型思考“流行FPS游戏中,有哪些能提升挑战性和吸引力的5个虚构关键设定?”,然后将这些“设定”作为上下文输入到原任务中,模型便能产出更具想象力、更引人入胜的故事情节,如“水下研究设施”的描绘。这清楚地表明,通过使用退一步提示技巧,可以显著提高提示词的准确性

5、思维链(Chain of Thought, CoT)

思维链提示是一种通过生成中间推理步骤来提高LLM推理能力的技巧。这有助于LLM生成更准确的答案。白皮书指出,鉴于零样本思维链面临的挑战,它可以与少样本提示结合使用,以便在需要推理的更复杂任务上获得更好的结果。

CoT具有诸多优势:

1)低投入高效率:它是一种低成本但非常有效的策略,并且能很好地适用于现成的LLM,无需进行额外的微调。

2)可解释性:CoT提示词提供了可解释性,因为您可以从LLM的响应中学习,并查看其遵循的推理步骤。如果出现故障,您将能够识别问题所在

3)提高鲁棒性:思维链似乎在不同LLM版本之间移动时提高了鲁棒性,这意味着您的提示词性能在不同LLM之间漂移的程度会降低,而非使用推理链的提示词则可能表现不一。

然而,CoT也并非没有缺点,其中最直观的一点是:LLM的响应中包含了思维链的推理过程,这意味着更多的输出词元,从而导致预测成本更高、耗时更长

白皮书通过一个简单的数学问题展示了CoT的强大。当直接提问“我3岁时,我的伴侣是我的3倍大。现在我20岁了,我的伴侣多大?”时,模型可能会给出错误的答案“63岁”。这是因为LLM通常在数学任务上表现不佳,即使是简单的乘法也可能给出不正确的答案。但当我们在问题后加上“让我们一步一步地思考”(Let’s think step by step),模型便能清晰地列出推理步骤,最终给出正确的答案“26岁”。这表明,清晰地指示LLM解释每一步,而非仅仅返回答案,能显著改善输出质量

白皮书还指出,上面的表12是“零样本”思维链的一个例子。而当思维链提示与单样本或少样本结合时,它能变得非常强大。比如,通过提供一个范例问题及其详细的思维过程,模型在解决后续类似问题时,能更好地模仿人类的推理方式,给出更精准的答案。

CoT提示词适用于多种用例:

1)代码生成:将请求分解为几个步骤,并将其映射到具体的代码行。

2)创建合成数据:当您有一些种子数据时,如“产品名称为XYZ,请根据产品标题撰写一份描述,引导模型思考其应有的假设”。

3)任何可以通过“说出来”来解决的任务:如果您能够解释解决问题的步骤,那么可以尝试思维链。

6、自洽性(Self-consistency)

尽管大型语言模型在各种自然语言处理任务中取得了令人印象深刻的成功,但它们的推理能力常常被视为一个局限,无法仅仅通过增加模型规模来克服。正如前述思维链提示部分,模型可以被提示生成像人类解决问题一样的推理步骤。然而,CoT通常采用简单的“贪婪解码”策略,这限制了其有效性。

自洽性通过结合采样和多数投票来生成多样化的推理路径,并选择最一致的答案。它提高了LLM生成响应的准确性和连贯性。虽然自洽性提供了一个答案正确性的伪概率可能性,但显然成本较高

它遵循以下步骤:

步骤1.生成多样化的推理路径:LLM会多次收到相同的提示词。高温度设置鼓励模型生成不同的推理路径和问题视角。

步骤2.从每个生成的响应中提取答案

步骤3.选择最常见的答案

白皮书通过一个邮件分类系统(将邮件分类为“重要”或“不重要”)的例子,展示了自洽性的实际应用。邮件中友好的语气、措辞和讽刺意味可能会“欺骗”LLM。在多次零样本思维链提示下,模型可能会给出不同的结论,例如第一次尝试分类为“重要”,而第二次尝试则分类为“不重要”。通过生成多条思维链,并选取最常出现的答案(例如“重要”),我们就能从LLM获得更一致正确的答案。这个例子展示了自洽性提示如何通过考虑多个视角并选择最一致的答案来提高LLM响应的准确性。

7、思维树(Tree of Thoughts, ToT)

在熟悉了思维链和自洽性提示之后,白皮书进一步引入了思维树(ToT)概括了CoT提示词的概念,因为它允许LLM同时探索多个不同的推理路径,而不仅仅是遵循单一的线性思维链。图1清晰地描绘了思维链与思维树提示之间的区别,后者呈现为一种分支结构。

这种方法使得ToT特别适用于需要探索的复杂任务。它的工作原理是维护一个“思维树”,其中每个“思维”代表一个连贯的语言序列,作为解决问题的中间步骤。模型可以通过从树中不同的节点分支出来,从而探索不同的推理路径。

8、思考与行动(ReAct, reason & act)

思考与行动(ReAct)提示是一种新范式,旨在使LLM能够利用自然语言推理结合外部工具(如搜索、代码解释器等)来解决复杂任务。它允许LLM执行某些操作,例如与外部API交互以检索信息,这是迈向智能体建模的第一步。

ReAct模仿了人类在现实世界中的运作方式,因为我们进行口头推理并可以采取行动来获取信息。ReAct在各种领域中,相较于其他提示词工程方法,表现出色。

ReAct提示词通过将推理和行动结合成一个“思想-行动循环”来工作。LLM首先对问题进行推理并生成一个行动计划。然后,它执行计划中的行动并观察结果。接着,LLM利用这些观察结果更新其推理并生成一个新的行动计划。这个过程会持续进行,直到LLM找到问题的解决方案。

白皮书通过一个Python代码片段展示了ReAct的实际应用,该代码利用LangChain框架与VertexAI以及Google搜索结果pip包,来计算乐队Metallica成员的孩子总数。在执行过程中,LLM会刮取Google搜索结果,将结果列为“观察”,并为下一次搜索“串联”思考。最终,模型通过多次搜索,逐步累计乐队成员的孩子数量,并给出最终答案。

实践中,ReAct提示词需要不断重新发送先前的提示/响应(并修剪额外生成的内容),并为模型设置适当的示例/指令。

9、自动提示词工程(Automatic Prompt Engineering, APE)

至此,您可能已经意识到,撰写提示词可能非常复杂。如果能自动化这个过程(编写提示词来编写提示词),那岂不是很好?白皮书指出,这正是**自动提示词工程(APE)**减少了人工输入的需求,还提高了模型在各种任务中的性能

其核心思想是:您将提示一个模型来生成更多提示词。然后,您评估这些提示词,可能会修改其中好的部分,并重复这个过程。

白皮书以训练一个T恤网店聊天机器人为例。为了了解顾客可能如何表达购买乐队周边T恤的各种方式,我们可以使用APE。具体步骤是:

步骤1. 编写生成输出变体的提示词:例如,使用Gemini-pro生成10个语义相同但表达方式不同的指令变体,如“我想要一件小号的Metallica T恤”的各种说法。

步骤2. 评估所有指令候选:根据选定的指标(如BLEU或ROUGE)对候选进行评分。

步骤3. 选择评估得分最高的指令候选:这个候选将是您在软件应用或聊天机器人中可以使用的最终提示词。您还可以对选定的提示词进行微调并再次评估。

10、代码提示(Code prompting)

Gemini主要关注基于文本的提示词,这也包括用于返回代码的提示词。白皮书介绍了四种与代码相关的提示词应用:

1)编写代码的提示(Prompts for writing code)Gemini可以扮演开发者的角色,帮助您编写任何您选择的编程语言的代码。这能显著加快编写代码的过程。白皮书以一个Bash脚本为例,演示了如何让模型生成一个在指定文件夹中为所有文件添加“draft”前缀的重命名脚本。需要注意的是,由于LLM无法真正“推理”,只会重复训练数据,因此务必先阅读并测试生成的代码。

2)解释代码的提示(Prompts for explaining code)当开发者在团队中工作时,常常需要阅读他人的代码。Gemini也能在这方面提供帮助。白皮书展示了如何让模型解释一份不带注释的Bash脚本,模型能够清晰地分解代码的逻辑和功能,例如用户输入、文件夹存在性检查、文件列表和文件重命名等。

3)翻译代码的提示(Prompts for translating code)LLM可以帮助将代码从一种语言翻译到另一种语言。白皮书将上述Bash重命名脚本翻译成Python代码,这为开发者将脚本功能集成到具有UI的独立应用程序提供了起点。**

4)调试和审查代码的提示(Prompts for debugging and reviewing code)这是LLM在代码方面最令人印象深刻的应用之一。白皮书演示了如何向LLM提供一个带有toUpperCase函数未定义错误的Python脚本,并要求模型调试错误并提供改进建议。模型不仅准确地指出了toUpperCase函数不存在的问题,并建议使用字符串的upper()方法来解决,更令人惊叹的是,它还主动识别并提出了其他几项代码改进建议:

保留新文件名的文件扩展名。

优雅地处理文件夹名称中的空格(例如,替换为下划线或连字符)。

使用f字符串语法进行字符串插值,使其更具可读性和简洁性。

通过将shutil.move调用包装在try…except块中,处理重命名过程中可能发生的错误。最终,模型提供了一个经过改进的、更健壮和灵活的代码版本。这充分展示了LLM在代码调试和审查方面的巨大潜力。

白皮书还简要提及了多模态提示(multimodal prompting),这是一种独立于代码提示的关注点。它指的是使用多种输入格式(如文本、图像、音频、代码甚至其他格式)来引导大型语言模型的技术,而非仅仅依赖文本,这取决于模型的能力和具体任务。

五、成为提示词专家的最佳实践

找到一个完美的提示词,就像雕琢一件艺术品,需要反复打磨。Vertex AI Studio等工具提供了理想的试验场,能让您轻松测试不同模型下的提示词效果。白皮书提炼了以下几项核心最佳实践,助您成为真正的提示词工程行家:

1、提供示例(Provide examples)

最重要的最佳实践就是在提示词中提供(单样本/少样本)示例。这是一种极其有效的“教学工具”,因为它能展示期望的输出或类似的响应,让模型从中学习并相应地调整其生成内容。这就像是给模型设定一个参考点或目标,从而提高其响应的准确性、风格和语气,使其更好地符合您的预期。

2、设计简洁(Design with simplicity)

提示词应该简洁、清晰,并且易于您和模型理解。一个经验法则是:如果您自己都觉得困惑,那么模型也很可能感到困惑。尽量避免使用复杂的语言,也不要提供不必要的信息。

例如:原来:我现在正在纽约游玩,我想了解更多关于景点的信息。我有两个3岁的孩子。我们度假期间应该去哪里?改写后:作为一名旅行向导。描述纽约曼哈顿适合带3岁孩子游玩的景点。

尝试使用描述动作的动词,它们能让您的指令更明确:例如:行动、分析、分类、对比、比较、创建、描述、定义、评估、提取、查找、生成、识别、列出、测量、组织、解析、选择、预测、提供、排名、推荐、返回、检索、重写、选择、展示、排序、总结、翻译、撰写。

3、明确输出要求(Be specific about the output)

对期望的输出要具体明确。一个过于简洁的指令可能无法充分引导LLM,或者会导致其生成过于泛化的内容。在提示词中提供具体细节(通过系统提示或情境提示)可以帮助模型聚焦于相关内容,从而提高整体准确性。

例如:应该这样做:生成一篇3段长的博客文章,内容关于五款顶尖视频游戏主机。这篇博客文章应该信息丰富、引人入胜,并以对话风格撰写。不应该这样做:生成一篇关于视频游戏主机的博客文章。

4、优先使用指令而非限制(Use Instructions over Constraints)

指令和限制都用于引导LLM的输出,但方式有所不同:

1)指令(instruction):提供关于响应期望格式、风格或内容的明确指示。它指导模型应该做什么或产生什么。

2)限制(constraint):则是对响应的一组限制或边界。它限制模型不应该做什么或避免什么。

越来越多的研究表明,在提示词中侧重积极指令比严重依赖限制更有效。这种方法与人类偏爱积极指令而非“禁止事项”清单的方式不谋而合。指令直接传达期望的结果,而限制可能让模型猜测什么被允许。指令赋予模型灵活性,并鼓励在定义好的边界内发挥创造力,而限制则可能束缚模型的潜力。此外,一连串的限制也可能相互冲突。

当然,限制在某些情况下仍然有其价值,例如防止模型生成有害或有偏见的内容,或者当需要严格的输出格式或风格时。最佳实践是,尽可能使用积极指令:与其告诉模型不该做什么,不如告诉它应该做什么。这可以避免混淆并提高输出的准确性。

例如:应该这样做:生成一篇1段长的博客文章,内容关于五款顶尖视频游戏主机。只讨论主机、制造公司、年份和总销量。不应该这样做:生成一篇1段长的博客文章,内容关于五款顶尖视频游戏主机。不要列出视频游戏名称。

作为最佳实践,请优先使用指令,明确说明您希望模型做什么,并仅在安全、清晰或有特定需求时才使用限制。不断实验和迭代,测试指令和限制的不同组合,以找到最适合您特定任务的方法,并务必进行文档记录。

5、控制最大令牌长度(Control the max token length)

为了控制LLM响应的长度,您可以在配置中设置一个最大词元限制,或在提示词中明确要求特定长度。例如:“用推文长度的消息解释量子物理学。”

6、在提示词中使用变量(Use variables in prompts)

为了复用提示词并使其更具动态性,请在提示词中使用变量,这些变量可以根据不同的输入进行更改。例如,如白皮书所示,一个提供城市事实的提示词,无需将城市名称硬编码在提示词中,而是使用一个变量{city}。使用变量可以节省您的时间和精力,避免重复。当您需要在多个提示词中使用相同的信息时,可以将其存储在一个变量中,然后在每个提示词中引用该变量。这对于将提示词集成到您自己的应用程序中非常有意义。

7、尝试不同的输入格式和写作风格(Experiment with input formats and writing styles)

不同的模型、模型配置、提示词格式、措辞和提交方式都可能产生不同的结果。因此,尝试提示词的属性(如风格、措辞和提示词类型——零样本、少样本、系统提示)至关重要

例如,一个旨在生成关于革命性视频游戏机世嘉Dreamcast文本的提示词,可以被表述为问题、陈述或指令,从而产生不同的输出:

问题:“世嘉Dreamcast是什么,它为什么是一款如此革命性的主机?”

陈述:“世嘉Dreamcast是世嘉于1999年发布的第六代视频游戏主机。它…”

指令:“撰写一个单一段落,描述世嘉Dreamcast主机并解释它为何如此具有革命性。”

8、对于少样本分类任务,混合类别(For few-shot prompting with classification tasks, mix up the classes)

通常来说,少样本示例的顺序影响不大。然而,在进行分类任务时,请务必在少样本示例中混合可能的响应类别。这是因为否则您可能会过度拟合示例的特定顺序。通过混合可能的响应类别,您可以确保模型学习识别每个类别的关键特征,而不仅仅是记住示例的顺序。这将带来在未见数据上更健壮和可泛化的性能。一个好的经验法则是,从6个少样本示例开始,并在此基础上测试准确性

9、适应模型更新(Adapt to model updates)

随时关注模型架构变化、新增数据和新功能对您来说非常重要。尝试使用更新的模型版本,并调整您的提示词以更好地利用新的模型功能。像Vertex AI Studio这样的工具非常适合存储、测试和文档化您的提示词的各种版本。

10、尝试不同的输出格式(Experiment with output formats)

除了提示词输入格式,还要考虑尝试不同的输出格式。对于非创意性任务,如数据提取、选择、解析、排序、排名或分类,尝试将输出以JSON或XML等结构化格式返回

白皮书再次强调了从提示词中返回JSON对象的好处:在实际应用中无需手动创建这种JSON格式,可以返回已排序的数据(在处理日期时间对象时非常方便),但最重要的是,通过提示词要求JSON格式,它会强制模型创建结构并限制幻觉

11、与其他提示词工程师共同实验(Experiment together with other prompt engineers)

如果您处于需要尝试想出一个好的提示词的情况,您可能希望召集多人进行尝试。当每个人都遵循最佳实践时(如本章所列),您会看到所有不同提示词尝试之间存在性能差异。

12、思维链(CoT)最佳实践(CoT Best practices)

对于CoT提示词,将答案放在推理之后是必需的,因为推理的生成会改变模型在预测最终答案时获得的词元。在使用CoT和自洽性时,您需要能够从提示词中提取最终答案,并将其与推理过程分开。对于CoT提示词,务必将温度设置为0。这是因为思维链提示基于贪婪解码,它根据语言模型分配的最高概率预测序列中的下一个词。通常来说,当使用推理来得出最终答案时,很可能只有一个正确的答案。因此,温度应始终设置为0。

13、记录各种提示词尝试(Document the various prompt attempts)

白皮书在多个地方强调了这一重要性,但它仍旧值得再次强调:完整详细地记录您的提示词尝试,以便您能够随着时间的推移学习哪些做得好,哪些做得不好

提示词输出在不同模型、不同采样设置、甚至同一模型的不同版本之间都可能存在差异。此外,即使对同一模型使用相同的提示词,输出语句的格式和措辞也可能出现细微差异(例如,正如前面提到的,如果两个词元具有相同的预测概率,平局可能随机打破,这会影响随后的预测词元)。

白皮书推荐使用Google表格,并提供了模板(如表21所示)。这种方法的优点是,当您不可避免地需要重新审视提示词工作时,您将拥有完整的记录。无论是在未来继续这项工作(您会惊讶于短暂休息后会忘记多少),还是测试提示词在不同版本模型上的性能,或者帮助调试未来的错误,这都将大有裨益。

除了表格中的字段,跟踪提示词的版本(迭代次数)、捕获结果是“OK/NOT OK/SOMETIMES OK”的字段以及捕获反馈的字段也很有帮助。如果您幸运地使用Vertex AI Studio,可以将您的提示词保存下来(使用与文档中相同的名称和版本),并在表格中跟踪保存提示词的超链接。这样,您只需点击一下即可重新运行您的提示词。

在处理检索增强生成(RAG)系统时,您还应该捕获影响提示词中内容插入的RAG系统的特定方面,包括查询、分块设置、分块输出以及其他信息。

一旦您觉得提示词已接近完美,便可将其纳入您的项目代码库。在代码库中,将提示词与代码分开保存到单独的文件中,以便于维护。最后,理想情况下,您的提示词应作为操作化系统的一部分,作为提示词工程师,您应该依赖自动化测试和评估程序来了解您的提示词在任务中的泛化能力。

提示词工程是一个迭代过程。不断地制作和测试不同的提示词,分析并记录结果。根据模型的表现来改进您的提示词。持续实验,直到达到您期望的输出。当您更改模型或模型配置时,请重新实验之前使用过的提示词。

结语


谷歌《提示词工程》白皮书不仅是关于如何与机器对话的技术指南,更是关于如何精确表达人类意图、激发AI最大潜力的智慧结晶。

从基础的输出配置,到零样本、少样本的示例引导,再到系统、情境、角色的多维度设定,以及思维链、自洽性、思维树乃至ReAct等复杂推理技巧的运用,直至代码生成与调试,这份白皮书为我们勾勒出了一条清晰的进阶之路。而自动提示词工程的出现,更预示着未来提示词创作的智能化趋势。

最重要的是,白皮书反复强调的最佳实践,如同提示词工程师的“武功秘籍”,指引我们通过提供高质量示例、力求简洁明确、优先使用积极指令、灵活运用变量、持续实验、以及最重要的——严谨的文档记录,来不断精进我们的“提示技艺”。它承认了AI的局限性(例如可能出现“幻觉”),也提醒我们在追求效率的同时,要保持批判性思维,对模型产出进行验证。

提示词工程,不是一劳永逸的解决方案,而是一个持续迭代、永无止境的学习过程。每一次与LLM的交互,都是一次新的探索。掌握这门艺术,我们便能更好地驾驭人工智能这把双刃剑,让它们真正成为我们思想的延伸,助我们解锁前所未有的创造力与效率。

希望通过这份深度解读,能为您开启提示词工程的大门,助您在人机共创的时代浪潮中,乘风破浪,智享未来。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01教学内容

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例:带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:

04视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)

05行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!

0690+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

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

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

相关文章

41岁,失业的第七周。降薪50%,明天终于入职了。

这是小红书上一位上海的Java程序员失业想转行的分享贴。 Java开发的就业市场正在经历结构性调整,竞争日益激烈 传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业…

Playwright性能优化:减少测试执行时间的10个技巧

当你的E2E测试套件执行时间从几分钟膨胀到半小时,每天能完整运行的次数屈指可数时,优化就不再是可选项,而是必需品。我们团队曾面对一个45分钟的测试套件,通过系统优化最终将其缩减到8分钟。以下是经过实战验证的10个技巧。 1. 并…

Java【四则运算计算器】_java四则运算计算器,零基础入门到精通,收藏这篇就够了

Swing 编程 Swing 是 Java 基类的一部分,是基于 AWT 开发的;AWT 是 Java 语言开发用户界面程序的基本工具包,是 Swing 的基础。Swing 提供了大量的轻量级组件,还提供了一个用于实现包含插入式界面样式等特性的 GUI 的下层构件&am…

基于VUE的轻琢线条塑形管理系统[VUE]-计算机毕业设计源码+LW文档

摘要:随着健身行业的发展,高效的管理系统对于塑形机构至关重要。本文介绍基于VUE的轻琢线条塑形管理系统,阐述其采用的关键技术,分析系统需求,包括用户管理、教练信息管理等功能需求,详细描述系统设计中的架…

电子手轮控制步进电机程序探索

电子手轮控制步进电机程序手轮控制步进电机的頻率,脉冲数,内容包括欧姆龙plc程序,mcgs程序。 内容不复杂,用别的plc也可以实现。在自动化控制领域,通过电子手轮精准控制步进电机的频率与脉冲数是一项常见且关键的任务。…

2026年1月哪些房产中介管理系统客户管理功能完善

在房产经纪行业数字化转型加速的2026年,客户资源已成为中介企业核心竞争力的关键。一套客户管理功能完善的房产中介管理系统,不仅能帮助经纪人精准把握客户需求、提升跟进效率,更能助力企业实现客户资源的规范化沉淀与高效转化。不少中介从业…

基于VUE的企业员工工资管理系统[VUE]-计算机毕业设计源码+LW文档

摘要:企业员工工资管理是企业管理中的关键环节,传统管理方式效率低且易出错。本文介绍基于VUE的企业员工工资管理系统,阐述其采用的技术,深入分析系统在员工信息管理、工资计算、统计等方面的需求,详细描述系统设计过程…

基于 MATLAB 的机械故障诊断技术

1.基于 MATLAB 的机械故障诊断技术案例教程(包含 第1章 认识MATLAB 1.1 MATLAB简介 1.1.1 MATLAB概述 1.1.2 MATLAB的功能特点 1.2 MATLAB的用户界面 1.3 MATLAB矩阵运算 1.3.1 MATLAB中的变量 1.3.2 基本矩阵的操作 1.3.3 稀疏矩阵 1.3.4 矩阵的运算 1.4 MATLAB的编…

风速发电预测(线性回归模型 、XGBoost模型 、决策树回归模型 、随机森林回归模型 、梯度提升回归模型与LSTM模型对比,多特征输入,单标签输出,可轻易替换为其它时序数据集)

1.前言 1.1.运行效果:风速发电预测(线性回归模型 、XGBoost模型 、决策树回归模型 、随机森林回归模型 、梯度提升回归模型与LSTM模型对比,多特征输入,单标签输出,可轻易替换_哔哩哔哩_bilibili 1.2.环境库&#xff…

【无人机控制】基于 6 维简化线性模型设计 LQR 最优控制器,实现无人机三维定点位置跟踪附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#…

【无人机路径规划】基于粒子群PSO、灰狼优化GWO、鲸鱼优化WOA的多无人机协同三维航迹规划考虑航程 高度 雷达威胁 火炮威胁 时间协同 空间避撞 航角约束 禁飞区附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#…

【深度好文】大模型智能体开发全攻略:64张图解析14项关键技术,小白也能轻松掌握

基于大语言模型(LLM)的 AI 智能体正在变得越来越普遍,似乎正在取代我们 熟悉的“常规”对话式 LLM。这些令人惊叹的能力并非轻易就能实现,需要许多组件协同工作。在这篇文章中,我们将通过64张图,探索 AI 智…

【收藏必备】2026年AI核心关键词:智能体(Agent)六大工作流设计模式,助你构建会思考的系统

2026年AI最大关键字无疑是:智能体(Agent)。 从医疗领域的「全病程智能诊疗助手」,到工业场景的「产线动态调度 Agent」;从政务大厅的「多业务协同办理终端」,到消费端的「跨平台智能客服中枢」,…

收藏必看:AI、机器学习和深度学习:从零开始理解大模型的基础概念与联系

现在AI,大模型等各种时髦新潮词汇层出不穷,说起来都是与人工智能相关的,那人工智能,机器学习,深度学习到底具体是什么?它们之间有什么联系与区别?1.基本概念 1.1人工智能(artificial…

数字员工是什么?熊猫智汇在现代企业中的应用价值有哪些?

数字员工在现代企业中扮演着愈发重要的角色,尤其是在优化业务流程、降低运营成本和提升效率方面。通过AI销冠系统的应用,企业可以实现系统化的流程自动化,从而显著减少人工操作带来的时间和成本消耗。这种智能化转变不仅提高了任务完成的准确…

程序员必备:大模型算力概念速成,收藏这篇就够了

你是否曾被“FLOPS”、“显存”、“Token”这些围绕大模型的神秘术语搞得晕头转向?就像想学烹饪却被“焯水”、“炝锅”、“勾芡”劝退一样,面对大模型的算力世界,零基础的你也许正站在门口踌躇。 别担心!这篇“零基础学大模型&am…

【图像检测】基于粒子群算法优化SVM实现病灶图片训练与测试分类,gabor小波纹理特征提取附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#…

企业级安康旅游网站管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着旅游业的快速发展,安康地区凭借其独特的自然景观和丰富的文化资源吸引了大量游客。然而,传统的旅游管理模式难以满足现代游客的个性化需求,尤其是在信息查询、行程规划和服务反馈等方面存在效率低下、数据分散等问题。为了提高旅游管…

Java计算机毕设之基于vue野生濒危物种公益救助交流平台基于SpringBoot濒危物种公益救助交流平台(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

Java Web 学生宿舍信息系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 随着高校信息化建设的不断推进,学生宿舍管理作为校园生活的重要组成部分,亟需通过数字化手段提升管理效率和服务质量。传统宿舍管理多依赖人工操作,存在信息更新滞后、数据统计繁琐、安全隐患排查困难等问题。学生宿舍信息系统通过整合住…