Prompt 工程核心:两条极简原则与实践指南
探讨了大型语言模型(LLM)交互中的 Prompt 工程核心。重点阐述了两个基本原则:一是写出清晰而具体的指示,涵盖长度、风格、语言、格式等多个维度;二是给模型更多的思考空间,介绍了思维链(CoT)、自洽性(Self-Consistency)及渐进提示(PHP)等方法。文章还提供了调试迭代的步骤、进阶工具推荐及标准模板结构,旨在帮助开发者编写高效 Prompt,充分利用大模型能力。

探讨了大型语言模型(LLM)交互中的 Prompt 工程核心。重点阐述了两个基本原则:一是写出清晰而具体的指示,涵盖长度、风格、语言、格式等多个维度;二是给模型更多的思考空间,介绍了思维链(CoT)、自洽性(Self-Consistency)及渐进提示(PHP)等方法。文章还提供了调试迭代的步骤、进阶工具推荐及标准模板结构,旨在帮助开发者编写高效 Prompt,充分利用大模型能力。

大型语言模型(LLM)是通过深度学习技术训练出的,能理解和生成人类语言的机器学习模型。如 OpenAI 的 GPT-3 和 GPT-4,这些模型能处理各种自然语言处理任务,包括翻译、写作、回答问题等。
Prompt则是与 LLM 交互的关键。它就像是指令,明确告诉模型我们需要什么。一个好的 Prompt 能让模型生成质量高、相关的回答,从而最大化模型的能力。因此,有效地编写 Prompt 对于使用 LLM 至关重要。这种使用 Prompt 的技术也被称为Prompt Engineering,它属于自然语言编程的范畴,是人与机器交互的关键沟通技巧。
近期,吴恩达教授发布了 Prompt 教程,在教程中他提出了写出高质量 Prompt 的两个基本原则:
下面让我们更深入地探讨一下这两个原则及其实际应用。
无论我们给 ChatGPT 布置何种任务,都需要提供清晰且具体的指示。这是一条通用的原则,因为无论模型处理的是何种问题,明确的指示都能帮助它更好地理解我们的需求,从而产生满足需求的回应。清晰和具体的指示也能减少模型进行不必要的推断,提高回应的准确性。
如何写出清晰具体的指示,可以从以下几个维度展开:
对于复杂的任务,可以通过举例来进一步说明。如对于问答类任务,可以给出少量的问题和答案作为示例,让模型更好地理解问题(Few-shot prompting)。
在实际开发中,我们通常通过 Python 脚本动态构建 Prompt。以下是一个简单的示例,展示了如何组合上述要素:
prompt_template = """
你是一名资深的数据分析师。
任务:分析以下销售数据并总结趋势。
背景:这是季度末报告,需要提交给管理层。
要求:
1. 输出为 Markdown 格式。
2. 包含至少三个关键发现。
3. 语气专业且客观。
数据:
{input_data}
"""
# 实际使用时替换 input_data
final_prompt = prompt_template.format(input_data="Q1 Sales: 1M, Q2 Sales: 1.2M...")
下面是一个来自斯坦福大学的 Prompt 示例,他们在使用 ChatGPT 生成微调任务以训练自己的 Alpaca 模型时,其使用的 Prompt 便体现出了明确和详细的优点:
You are asked to come up with a set of 20 diverse task instructions. These task instructions will be given to a GPT model and we will evaluate the GPT model for completing the instructions.
Here are the requirements:
1) Try not to repeat the verb for each instruction to maximize diversity.
2) The language used for the instruction also should be diverse.
3) The type of instructions should be diverse.
4) A GPT language model should be able to complete the instruction.
5) The instructions should be in English.
6) The instructions should be 1 to 2 sentences long.
7) You should generate an appropriate input to the instruction.
8) Not all instructions require input.
9) The output should be an appropriate response to the instruction and the input.
这个原则主要针对那些需要逻辑推理和创新解答的问题。对于这类问题,模型需要有足够的自由度来考虑多种可能的答案,进行比较和选择。在这种情况下,一个好的 Prompt 应当能够鼓励模型自主思考,而不是仅仅按照既定的路径进行回应。
目前,主要有两种思路来启发模型的思考:
2022 年 10 月,Google 发布了一篇论文'Chain-of-Thought Prompting Elicits Reasoning in Large Language Models'。在这篇文章中,他们在 Prompt 中的举例说明部分中,不仅仅给出问题的答案,还给出得到答案的步骤,实验表明这种方法能够产生更可靠的答案。
随后,东京大学和谷歌于 2022 年 10 月下旬发布了论文'Large Language Models are Zero-Shot Reasoners',在文章中提出不需要给出具体示例,只需要在原始 Prompt 后面加一句'Let's think step by step'就可以得到更高质量的答案。
谷歌在 2023 年发表'Self-Consistency Improves Chain of Thought Reasoning in Language Model'论文,该论文的主要思想就是利用少数服从多数原则,对于一个问题生成多个版本的答案,选择最高频的那个作为最终答案。具体的分为三步:
除了上述两种方法,近期香港中文大学和华为共同发表文章'Progressive-Hint Prompting Improves Reasoning in Large Language Models',提出 PHP 方法。该方向的核心思想是将上一轮模型生成的答案融入到下一轮的 Prompt 中,直到答案收敛。
编写一个优秀的 Prompt 通常需要迭代的过程,不是一蹴而就的。这个过程与机器学习工作的优化流程有类似之处,主要步骤包括:构思、实施、评估结果、错误分析和产生新的构思。
在解决问题的过程中,要始终保持对之前提到的两条原则的关注:提供清晰而具体的指示,以及为模型留出更多的思考空间。持续迭代并遵循这些原则,最终将帮助你编写出高效的 Prompt。
为了进一步提高 Prompt 的质量,除了掌握核心原则外,还可以借助工具和高级技巧。
可以使用专门的 Prompt 优化工具,例如 PromptPerfect。这是一个优化提示词的产品,只需要选择一个大模型(如 ChatGPT,GPT-4,Claude 等),输入你的原始 Prompt,系统就会返回一个调优过之后的 Prompt,并给出两个 Prompt 对应的大模型的输出结果用于比较。
这里只需要使用下面的 Prompt,然后和 LLM 进行交互即可:
你是一名 Prompt 工程师,非常清楚通过哪些问题能让 AI 提供令人满意的答案。我是向你咨询的客户,我很难表达清楚我的需求,我希望你能一步步通过问题引导我完成我的需求描述,使它变成具体、简洁又详细带有背景的 Prompt。
在实际工作中,建立一套标准的 Prompt 模板可以提高效率。推荐的结构如下:
随着大型语言模型(LLM)的能力日益增强,对 Prompt 质量的要求可能会逐步降低。这是因为高级模型可能无需过多的'思维链(CoT)',就能在逻辑推理或问答等任务中提供准确的答案。相比原则二,原则一(清晰明确地表达需求)会更重要一些,只有准确地传达我们的需求,大模型才能提供我们希望的结果。
为了进一步简化原则一,一个可能的解决方法是通过类似智能助手的应用来学习用户的表达习惯。这样,大模型就可以更准确地理解用户的需求,达到心灵相通的效果。未来,Prompt Engineering 可能会逐渐演变为一种隐式的交互方式,用户只需表达意图,系统自动优化指令。
Prompts 不仅仅是一个引导,而是实现人工智能交互的关键元素。优秀的 Prompt 能够引领 ChatGPT 为我们提供高质量、精确、富有创造性的输出。因此,熟练使用 Prompt,正是充分发挥 LLM 潜力的关键。
但我们要记住,理论只是第一步,真正的技能掌握源于大量的实践。只有不断尝试,才能发现 Prompt 的无限可能,才能更好地理解和使用 LLM。不论你是要编写文章,还是需要解决具体问题,或者只是想享受与人工智能的对话,都鼓励你尽情探索,实践你的想法,发挥出 LLM 的巨大潜力。
在 AI 时代,人工智能不再是遥不可及的科幻概念,而是我们日常生活和工作中的实用工具。学习和应用高质量的 Prompt 不仅可以帮助我们更好地利用 LLM,还能促使深入理解沟通的本质。未来无论是在工作还是在生活中,都将拥有更强大的竞争优势。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online