Prompt 工程核心:两条极简原则与实践指南
一、引言
大型语言模型(LLM)是通过深度学习技术训练出的,能理解和生成人类语言的机器学习模型。如 OpenAI 的 GPT-3 和 GPT-4,这些模型能处理各种自然语言处理任务,包括翻译、写作、回答问题等。
Prompt则是与 LLM 交互的关键。它就像是指令,明确告诉模型我们需要什么。一个好的 Prompt 能让模型生成质量高、相关的回答,从而最大化模型的能力。因此,有效地编写 Prompt 对于使用 LLM 至关重要。这种使用 Prompt 的技术也被称为Prompt Engineering,它属于自然语言编程的范畴,是人与机器交互的关键沟通技巧。
近期,吴恩达教授发布了 Prompt 教程,在教程中他提出了写出高质量 Prompt 的两个基本原则:
- 写出清晰而具体的指示。
- 给模型更多的思考空间。
下面让我们更深入地探讨一下这两个原则及其实际应用。
二、两个基本原则详解
1. 写出清晰而具体的指示
无论我们给 ChatGPT 布置何种任务,都需要提供清晰且具体的指示。这是一条通用的原则,因为无论模型处理的是何种问题,明确的指示都能帮助它更好地理解我们的需求,从而产生满足需求的回应。清晰和具体的指示也能减少模型进行不必要的推断,提高回应的准确性。
如何写出清晰具体的指示,可以从以下几个维度展开:
- 输出内容的长度:例如,输出 3 句话,输出内容不超过 500 字。
- 输出内容的风格:例如,简洁/详尽、轻松活泼/正式、用某名人的画风输出。
- 输出内容的语言:例如,用英文/中文输出、内容包含特定关键词。
- 输出内容的格式:例如,将结果以表格的形式输出;将邮件中的行动以列表的形式输出;请给出 10 本关于人工智能的经典书籍,包括书名、作者、作者的国籍,并用 JSON 格式输出。
- 任务描述:例如,改写一段话、写一封邮件、写一段代码、生成一段文字、总结一段话。
- 背景信息:例如,对 AI 进行角色设定、处于怎样的情境中、任务具体解决的是什么问题、生成的文字用来做什么。
- 输入内容说明:例如,用分隔符来明确指出输入的不同部分。
对于复杂的任务,可以通过举例来进一步说明。如对于问答类任务,可以给出少量的问题和答案作为示例,让模型更好地理解问题(Few-shot prompting)。
代码示例:结构化 Prompt 构建
在实际开发中,我们通常通过 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 a GPT model we will evaluate the GPT model completing the instructions.
Here are the requirements:
) repeat the verb instruction maximize diversity.
) The language used the instruction also should be diverse.
) The type instructions should be diverse.
) A GPT language model should be able complete the instruction.
) The instructions should be English.
) The instructions should be sentences .
) You should generate an appropriate input the instruction.
) all instructions require input.
) The output should be an appropriate response the instruction the input.


