谷歌68页白皮书解密:提示工程如何重塑AI交互逻辑

我看远山,远山悲悯

写在前面


我看远山,远山悲悯

持续分享技术干货,感兴趣小伙伴可以关注下 ^_^


谷歌发布的《提示工程白皮书》揭示了一个重要趋势:​​人类与AI的交互正从“指令式问答”升级为“思维协同编程” ​​。数据显示 ,优化后的提示设计可使LLM生成结果的准确率提升58%,代码生成效率提高120%

这标志着提示工程(Prompt Engineering)不再只是技术极客的玩具,而是每个AI使用者必须掌握的“元技能”。

白皮书导读

白皮书详细介绍了prompt工程的概念、重要性以及各种技巧和策略,旨在帮助用户优化与大型语言模型(LLM)的互动以获得更准确、更有用的输出。

首先,强调了prompt在引导LLM产生预期响应中的核心作用,并指出即使是非数据科学家或机器学习工程师也能通过适当的方法编写有效的提示

接着,文章深入探讨了LLM输出配置、输出长度、采样控制(包括温度、top-K和top-P设置)、和综合应用这些设置的最佳实践。

此外,还介绍了多种prompting技术,例如通用提示/零样本、一对一示例和少量示例提示、系统级、上下文级和角色级提示,以及如何利用这些技术来提高生成文本的质量和相关性

文章还特别讨论了诸如自动prompt工程和代码相关的提示编写方法。最后,对多模态提示的应用潜力进行了展望,并提出了最佳实践建议,包括提供具体示例、设计简洁明了的提示以及随着模型更新而调整提示等,以促进更有效的LLM交互。

关键要点

  1. 提示工程是一种设计高质量提示的过程,以引导语言模型产生准确输出。
  2. 选择合适的模型和优化配置对提示工程至关重要。
  3. 输出长度控制需要考虑能源消耗、响应时间和成本等因素。
  4. 温度、Top-K和Top-P等采样设置可控制预测结果的随机性和多样性。
  5. 高质量的提示应具备简洁性、具体性和适应性,并且需要不断迭代和实验。

文档简单介绍

Prompt Engineering: 如何高效地撰写语言模型输入

主要介绍了Prompt Engineering的概念和作用,以及如何有效地编写提示语来提高语言模型的输出效果。

在编写提示语时需要考虑多个因素,包括模型、训练数据、配置等,因此提示语工程是一个迭代的过程。白皮书还介绍了一些常用的提示技巧和最佳实践,并探讨了在构建提示语时可能遇到的一些挑战。对于想要使用语言模型进行自然语言处理任务的人来说,掌握Prompt Engineering是非常重要的技能之一。

如何设计高质量的提示来引导LLM生成准确输出

主要讲述了LLM的工作原理和如何进行prompt engineering来引导模型生成准确的输出。

在输入一段文本后,LLM会根据其训练数据预测下一个单词,并将其添加到输入序列末尾,以此不断重复。因此,在编写prompt时需要考虑如何设置合适的输入序列,以便让LLM产生正确的输出。

Prompt engineering是一个优化过程,需要调整prompt长度、风格和结构等因素,以适应不同的任务需求。此外,还需要选择适当的模型并配置好各种参数,如输出长度等,才能获得最佳效果。最后需要注意的是,增加输出长度会导致更高的能耗和成本,因此需要权衡利弊。

LLM预测与采样控制参数解析

介绍了如何使用不同的配置设置来控制语言模型(LLM)生成的输出结果的随机性和多样性。其中温度、top-K和top-P是最常用的三种配置设置。

  • 温度可以控制选择下一个预测标记时的随机程度
  • top-K和top-P则用于限制预测分布中的前K个或前P个标记作为下一个标记的选择范围。

较低的温度适合期望更确定性响应的提示,而较高的温度可能会导致更多样化或意外的结果。通过实验不同方法,可以选择最适合您需求的方法。

如何选择和调整语言模型的采样参数?

主要介绍了在使用语言模型生成文本时需要考虑的一些参数设置和技巧。其中包括top-K、top-P、温度等参数的含义和影响,以及如何根据具体应用场景进行选择。

作者也提到了一些常见的问题和解决方法,如重复循环、输出不相关等问题,并给出了相应的调整建议。总之,对于理解语言模型生成文本的基本原理和实践操作非常有帮助。

利用提示技术优化大型语言模型

介绍了如何使用语言模型(LLMs)进行自然语言处理任务,并且强调了清晰的提示对获得准确结果的重要性。

作者列举了一些重要的提示技术,如零样本提示、示例提示和少量样例提示等。此外,文章还提供了一个示例表格来记录提示工程的过程和进展,以及最佳实践建议。最后,文章提到了一些输出配置参数的选择,例如温度、top-K和top-P值,这些参数可以影响生成的结果。

AI模型提示设计:单例和少量示例的应用与技巧

主要介绍了在创建AI模型提示时提供示例的重要性,并且区分了一次性提示和多次提示的区别

一次性提示提供了一个例子,而多次提示则提供了多个例子来引导模型遵循特定的输出结构或模式。文中还提到了在使用生成式AI(gen AI)模型进行少样本提示时需要考虑的因素,如任务复杂度、示例质量等。最后,文中给出了一个示例表格,展示了如何使用多次提示来完成一项任务。

如何引导语言模型生成文本?

主要介绍了系统、上下文和角色提示的作用和区别

  • 系统提示定义了语言模型的总体目的和能力;
  • 上下文提示提供了与当前任务或输入相关的具体信息;
  • 角色提示指定了语言模型要采用的具体角色或身份。

同时,区分这三种提示有助于设计具有明确意图的提示,并使其更灵活组合,更容易分析每种提示类型对语言模型输出的影响。

最后,通过返回JSON格式的数据可以限制语言模型的输出范围并提高安全性。

角色提示在自然语言处理中的应用及效果展示

主要介绍了角色提示技术在prompt工程中的应用

通过给AI模型分配特定的角色,可以提高其生成输出的相关性和信息量。例如,可以让AI模型扮演书编辑、幼儿园老师或励志演讲者等角色,并针对该角色给出相应的提示。

该章节还提供了一些有效的prompt风格供读者选择,如对抗式、描述性、直接式、正式式、幽默式、影响力式、非正式式、鼓舞人心式和说服力式等。最后,该章节还给出了一个幽默式的角色提示示例,旨在让读者更好地理解这种技术的应用方法。

如何进行有效的提示工程?

主要介绍了如何通过提供上下文提示来帮助AI更好地理解请求并生成更准确、相关的响应

具体来说,通过使用不同的模型和参数设置,可以得到不同的输出结果。在本例中,给出了三个主题的文章建议,并对每个主题进行了简要描述。

这些文章涵盖了从80年代早期的木制和金属机柜到现代游戏和数字艺术中的像素艺术等不同方面的内容。通过这种方式,可以帮助读者更好地了解复古游戏文化的历史和发展趋势。

提高AI表现的步骤提示技术——Step-back prompting

介绍了什么是Step-back prompting以及如何使用它来提高LLM的性能

通过先考虑与任务相关的通用问题,然后将答案输入到后续提示中,这种技术可以让LLM激活相关背景知识和推理过程,从而生成更准确、更有洞察力的回答。

Step-back prompting可以改变最终的任务提示,利用更多在LLM参数中的知识,帮助减轻偏见并鼓励LLM进行批判性思考和创造性应用知识。此外,该章节还提供了两个示例,展示了传统提示和Step-back提示之间的区别,并解释了为什么Step-back提示可以产生更好的结果。

提高语言模型准确性的方法与应用

主要介绍了Prompt Engineering的概念和应用场景。Prompt Engineering是一种通过生成中间推理步骤来提高语言模型推理能力的技术,可以帮助模型更准确地回答问题。

该技术结合了Few-Shot Prompting,可以用于处理需要推理的复杂任务,并且不需要对模型进行微调。使用CoT提示的优点包括低努力、高效率、可解释性等,但也存在缺点,如增加输出标记数量导致预测成本更高。最后,作者给出了一个例子来说明Prompt Engineering的应用效果。

链式思维提示在AI中的应用与最佳实践

介绍了Chain of Thought(CoT)提示的概念和应用。它是一种通过逐步解释问题解决步骤来帮助模型理解任务的方法。

在零样本和单/少量样本的情况下,CoT提示可以非常强大。它可以用于代码生成、数据合成等任务。对于任何可以通过“谈论解决问题”的方式解决的任务,都可以考虑使用CoT提示。最后,该章节提供了一个关于CoT提示的详细说明的笔记本链接。

自洽性提升语言模型回答准确性与一致性

主要介绍了一种名为“自一致性”的技术,它能够提高大型语言模型在回答问题时的准确性和连贯性。该技术通过多次生成不同的推理路径,并进行多数投票来选择最一致的答案

此外,文中还举了一个关于电子邮件分类的例子,展示了如何使用这种技术对邮件进行重要性分类。最后,文章强调了在应用这种技术时需要注意成本和精度之间的平衡。

Prompt Engineering——利用语言模型进行任务解决的新思路

主要介绍了三种不同的prompt engineering方法,分别是chain of thought``、self-consistencyTree of Thoughts(ToT)。其中,

  • chain of thought 是通过引导模型思考多个可能的路径来得到更准确的答案;
  • self-consistency 则是通过对模型的回答进行一致性验证来提高答案的准确性;
  • ToT 则是在多个不同的思维路径之间进行探索,适用于解决复杂的任务。

此外,还介绍了一种名为ReAct的方法,它将自然语言推理与外部工具结合使用,使模型能够执行某些操作并获得信息,从而更好地解决问题。最后,文章提供了一些示例代码和实践建议,帮助读者更好地理解和应用这些方法。

自动提示工程:训练聊天机器人的好帮手

介绍了自动提示工程(APE)的方法,它可以自动化生成提示并提高模型的性能。这种方法可以用于训练聊天机器人等任务,并且可以通过不断生成和评估指令来优化最终的提示。

例如,在一个乐队商品T恤网上商店中,我们可以使用APE方法生成各种不同的订单方式,以便训练聊天机器人更好地理解客户的意图。

在实践中,我们需要先编写一个生成指令的提示,然后通过评分指标选择最佳的指令作为最终的提示。这个过程需要不断迭代和调整,以达到更好的效果。最后,我们可以在代码提示方面应用类似的APE方法,帮助我们更高效地编写代码。

使用Gemini编写Bash脚本批量重命名文件

介绍了如何使用Gemini来编写代码,并且给出了一个具体的例子——在Bash中编写脚本来重命名文件夹中的所有文件。

作者通过演示和解释,详细说明了如何使用Gemini的Prompt功能来生成代码,并提供了多种参数设置选项供用户选择。最后,作者还提供了一个测试步骤,让用户可以验证生成的代码是否正确。这个章节对于想要学习编程或者提高编程效率的人来说是非常有用的。

解释Bash代码的prompt工程

介绍了如何使用大型语言模型Gemini来解释Bash代码,并给出了三个示例代码的解释结果。

这些代码包括用户输入、文件夹存在检查、文件列表和重命名等操作。通过这种方式,读者可以更好地理解代码的功能和实现方式。同时,这个例子也展示了如何使用prompt engineering来生成合适的提示信息,以便让模型更好地完成任务。

将Bash脚本翻译成Python代码的提示工程

主要讲述了如何将Bash代码翻译成Python代码,并提供了三个不同的Prompt示例。其中,

  • 第一个Prompt是使用gemini-pro模型进行翻译的
  • 第二个Prompt是将Bash代码直接转换为Python代码
  • 第三个Prompt则是通过迭代文件列表并使用shutil库来实现文件重命名的功能。

在最后的部分,作者还提供了一个测试代码的方法,即在Terminal窗口中执行命令python file_renamer.py。

Python代码调试与优化实践

主要介绍了一个Python脚本的调试和修改过程。在原始代码中,存在一个名为“toUpperCase”的函数未定义的问题,导致程序无法正常运行。

作者通过手动编辑代码的方式,将该函数改为正确的函数名,并且添加了对文件夹不存在情况的判断。最后,作者使用了语言模型来帮助自己进一步优化代码。整个过程中,作者通过仔细分析错误信息、查找问题原因并进行修正,展现了良好的编程思维和技能。

Python代码调试与优化提示

主要介绍了如何在Python中修改文件名,并且提供了一些改进代码的建议。

首先需要获取用户输入的文件夹名称和前缀字符串,然后检查文件夹是否存在并列出其中的所有文件。接着使用字符串操作将前缀添加到文件名前面,并根据原文件名提取扩展名。最后,使用shutil库中的move函数移动文件,并处理可能出现的错误。此外,还可以通过一些技巧来使代码更加简洁易读,例如使用f-string语法进行字符串插值、替换空格等。这些改进建议可以帮助我们编写更健壮、灵活、易于理解和维护的代码。

多模态提示技术在自然语言处理中的应用与最佳实践

主要介绍了多模态提示的概念和应用方法。多模态提示是指使用多种输入格式来引导大型语言模型,包括文本、图像、音频、代码等。

在使用时需要遵循一些最佳实践,如提供示例、设计简洁明了的提示、明确期望输出等。通过这些方法可以提高生成结果的质量和准确性。同时,也可以利用语言工作室等工具进行实验和测试。

Prompt Engineering: 如何优化语言模型的输出

主要介绍了如何使用指令和限制来引导语言模型的输出。指令提供了明确的格式、风格或内容要求,而限制则是对响应的一系列限制或边界

研究表明,关注积极的指令而非过度依赖限制可以更有效地指导模型生成内容。此外,变量在提示中的应用也可以提高效率和灵活性。在实际操作中,应该优先考虑指令,并仅在必要时使用限制,同时不断尝试不同的组合方式以找到最适合特定任务的方式。

探索输入格式和写作风格对模型结果的影响

主要介绍了如何进行prompt工程设计,包括实验不同的输入格式和写作风格、混合分类任务的少量示例、适应模型更新以及尝试输出格式等几个方面。

在进行prompt设计时,需要考虑不同输入形式和写作风格的影响,并且要注意在少量示例中混合分类任务的类别,以避免过拟合。同时,随着模型架构的变化和数据的增加,我们需要不断调整我们的prompt设计来更好地利用新的模型功能。

最后,在非创造性任务中,我们可以使用结构化输出格式(如JSON或XML)来提取、选择、解析、排序、排名或分类数据,这有助于限制模型的幻觉并使输出更易于处理。

如何使用JSON修复和输入结构化数据

主要讲述了在使用自然语言处理技术时,如何通过结构化的JSON格式来提高数据的可读性和处理效率,并且介绍了如何使用JSON Schema定义输入数据的结构和类型,从而帮助LLM更加准确地理解并生成相关的内容。

同时,文章还提到了一些工具和技术,如json-repair库等,可以帮助修复不完整或错误的JSON对象,避免输出结果无法使用的情况发生。最后,文章强调了这种结构化输入的方法对于大规模数据和复杂应用的重要性

Prompt Engineering: 如何设计高效的自然语言生成提示

主要讲述了如何进行Prompt Engineering(提示工程),包括最佳实践、文档记录和迭代过程等。在CoT(Chain of Thought)提示中,需要将答案放在推理之后,并且温度应该设置为0

同时,为了能够学习到好的提示,我们需要详细地记录各种尝试的输出结果,以便于后续的学习和调试。最终,我们需要不断实验和改进,直到达到预期的结果。

如何训练更好的语言模型

主要介绍了prompt engineering的相关技术和方法,包括零提示、少样本提示、系统提示、角色提示、上下文提示、倒退提示、链式思维和自我一致性等。

其中,ReAct技术是将推理和行动相结合的方法,能够帮助语言模型更好地解决问题。此外,该白皮书还讨论了生成AI的挑战以及如何成为更好的prompt工程师。最后,文中提供了一些相关的参考文献和代码示例供读者学习和实践。

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知 :)


https://www.kaggle.com/whitepaper-prompt-engineering


© 2018-至今 liruilonger@gmail.com, 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)

发布于

2025-04-13

更新于

2025-04-14

许可协议

评论
加载中,最新评论有1分钟缓存...
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×