P1-12.1 提示词(prompt)指定了什么¶
Section ID:
P1-12.1Version:v2026.07.20
在第 11 章中,我们看了 LLM(large language model) 是从哪里来的。语言模型(language model)起始于“下一个 token 的概率”这个问题,而 Transformer 与预训练(pretraining)成为现代 LLM 的关键基础。
这里开始看用户是如何使用 LLM 的。这个入口就是提示词(prompt)。
这里的核心问题是:提示词究竟是一种向模型提供什么信息的输入?
这里最重要的视角是:
提示词不是让模型重新学习的数据,
而是一种把指示(instruction)、上下文(context)、示例(example)、约束(constraint)、输出格式(output format)
放进当前输入里、供模型在生成回答时参考的方法。
在 Part 1 中,本节先建立 提示词(prompt)、指示(instruction)、上下文(context)、示例(example)、约束(constraint)、输出格式(output format)、提示词 vs fine-tuning 的基本区分。11.3 已经先区分了 in-context learning 与 预训练(pretraining);这里会在这个基础上继续整理:用户究竟可以通过输入指定什么? 更具体的输入结构会在 12.2 中继续展开,而限制与评估会在 12.3 中讨论。
提示词并不会直接向我们展示 LLM 的内部结构。但当同一个模型面对不同输入条件时,它能让我们观察输出是如何变化的。因此,提示词不是证明模型内部机制的工具,而更像是从外部观察模型执行(inference)行为的入口。
这里不会系统罗列 prompt engineering 技巧。Chain-of-thought、few-shot 示例设计、角色设定会在 P1-12.2 中再讲;评估类提示词与限制分析会在 P1-12.3 中再讲。
提示词、指示、上下文、示例、约束、输出格式 在开始时都可能听起来像相似的输入成分。先简短区分一下它们的作用:
| 术语 | 极简含义 | 本节中的作用 |
|---|---|---|
| 提示词 | 包含当前回答条件的完整输入 | 第 12 章的起点 |
| 指示 | 告诉模型要做什么的请求 | 任务指定的核心 |
| 上下文 | 任务所需的背景信息 | 决定输出方向的参考材料 |
| 示例 | 展示期望输入输出模式的示范 | 引导格式与判断方式 |
| 约束 | 对长度、范围、禁止项等施加限制 | 划定任务边界的装置 |
| 输出格式 | 指定结果应该长成什么样 | 让后续处理与审阅更容易的工具 |
这里至少要保留的区分是:提示词是完整输入、指示是任务、上下文是背景、示例展示模式、约束负责边界。
这里聚焦的只是:提示词能指定什么。
| 主题 | 本节要看的问题 |
|---|---|
| 指示(instruction) | 如何告诉模型要执行什么任务? |
| 上下文(context) | 如何提供回答所需的背景信息? |
| 示例(example) | 如何展示想要的输入输出模式? |
| 约束(constraint) | 如何限制长度、格式、范围或禁止条件? |
| 输出格式(output format) | 希望结果以什么形式返回? |
提示词并不是魔法咒语。即使是同一个模型,输入安排不同也可能得到不同输出,但提示词并不会改变模型权重。
这里的重点是把提示词理解成 输入结构。示例布局与评估标准会分别留到 12.2 与 12.3。
提示词指定的输入条件¶
- 把提示词(prompt)理解成给 LLM 的自然语言输入。
- 说明提示词可以指定指示、上下文、示例、约束与输出格式。
- 理解提示词让我们能够观察输入条件如何影响生成结果。
- 区分 prompting 与 fine-tuning。
- 理解提示词本身并不保证事实验证或真实性。
- 不把“好提示词”理解成“会说漂亮话”,而是理解成“把任务条件清晰地写进输入”。
三个基准¶
这里不会去搜集措辞技巧,而是专注于说明提示词在输入中承担什么角色。只要抓住下面三个基准,整体脉络就会清楚。
| 基准 | 为什么重要 | 本节所需的理解水平 |
|---|---|---|
| 提示词是一种给模型做输入设计的方式 | 这能减少把提示词看成魔法咒语的误解。 | 只要理解成它是装入问题、条件与背景的输入即可。 |
| 提示词不会改变模型参数 | 这能再次把“学习阶段”和“使用阶段”区分开。 | 只要知道措辞或结果变了,不代表模型被重新训练了即可。 |
| 提示词里可以包含指示、上下文与示例 | 这能自然通向下一节对组成部分的讲解。 | 只要知道它可以指定做什么、参考什么、按什么模式回答即可。 |
提示词是为了生成当前回答而给出的输入¶
LLM 会读取输入 token,然后生成下一个 token。用户输入的问题、命令、文档、示例、对话历史,都会成为模型在构造下一个输出时可参考的输入。
正因为如此,提示词能帮助我们理解 LLM 的行为。对于同一个主题,如果换了目标读者、范围、示例或禁止条件,输出就会变化。这并不能解释模型内部电路如何运作,但能让我们观察到:LLM 对当前输入上下文非常敏感。
例如看下面这个请求:
请向第一次接触 AI 历史的读者解释 AI 的历史。
这个提示词至少指定了三件事:
| 元素 | 指定了什么 |
|---|---|
| 主题 | AI 的历史 |
| 任务 | 进行解释 |
| 读者 | 第一次接触的读者 |
如果再写得具体一些:
请向第一次接触 AI 历史的读者解释 AI 的历史。
请区分规则式 AI、机器学习、深度学习、LLM 的发展脉络。
每个阶段控制在 3 句话以内,并避免夸张表述。
这时,提示词不仅指定了主题,还指定了范围、结构、长度与语气。模型会把这些条件当作当前输入的一部分来生成回答。
提示词不是学习,而是条件指定¶
输入提示词并不等于模型学到了新知识。正如 11.3 中所说,更安全的理解是:in-context learning 指的是模型不更新权重,而是在当前输入上下文中的指示与示例影响下改变当前输出行为。
fine-tuning:
使用训练数据更新模型权重(weight)prompting:
把任务条件放进当前输入,来引导输出
Brown 等人的 GPT-3 论文在比较 zero-shot、one-shot、few-shot 设置时,明确说明:任务与示范是通过文本交互提供给模型的,而不是通过 gradient update 或 fine-tuning 来改变模型。
因此,更安全的区分方式是:
改变模型本身:
训练、预训练、fine-tuning改变当前回答条件:
提示词、示例、对话历史、提供的文档
如果忽略这个区分,就很容易误解成“提示词写好了,模型就会永久学会这个事实”,或者“只要告诉过一次,它以后都会记住”。
提示词同时包含指示与上下文¶
提示词通常同时包含 指示(instruction) 与 上下文(context)。
指示:
模型被要求做什么?上下文:
它在做这件事时需要参考什么信息?
例如下面这个提示词:
请把下面这句话改写成面向入门者的说明。
原句:
Transformer 会使用 self-attention 计算序列表示。
这里,请把下面这句话改写成面向入门者的说明 是指示;Transformer 会... 这句话既是处理对象,也是局部上下文。
当提示词变长时,指示与上下文很容易混在一起。因此,实际工作中更安全的方式往往是显式分开写:
任务:
请把下面这句话改写成适合入门者阅读的说明。原句:
Transformer 会使用 self-attention 计算序列表示。条件:
- 控制在 3 句话以内
- 只使用 1 个类比
- 避免“像人一样理解”这样的表述
这样更有可能让模型区分输入中各部分各自扮演的角色。但即便如此,这也不是保证。提示词只是让条件表达得更清楚的方法,并不是自动保证正确性的装置。
示例会展示想要的输出模式¶
示例(example) 是用来向模型展示你希望它遵循什么模式的输入。
输入: AI
输出: 人工智能(artificial intelligence)输入: ML
输出: 机器学习(machine learning)输入: LLM
输出:
在这种例子下,模型更可能接着写出 大语言模型(large language model)。
这就是 few-shot prompting 的基本直觉:在提示词里放进几组输入输出示范,让模型推断当前任务的形式与意图。
示例可以很强,但也带来风险。
错误示例:
可能强化错误模式有偏的示例:
可能把输出方向压得太窄过长的示例:
可能把重要指示挤出有效 context window
示例不是永久训练数据,而是当前输入里供模型参考的模式。因此,示例质量会直接影响输出质量。
约束会缩小结果范围¶
提示词还可以给出 约束(constraint),用来缩小输出允许的范围。
请用 200 字以内解释。
请整理成表格。
如果没有可验证依据,就标记为需要验证。
不要对第一次阅读的读者使用困难公式。
韩文术语后请同时标出英文原语。
约束会告诉模型任务的边界。写这本书时,约束尤其重要。
例如,下面两个提示词很可能得到不同结果:
提示词 A:
请解释 LLM。提示词 B:
请向正在重新学习 AI 导论的读者解释 LLM。
只讨论 Transformer、预训练、prompt 的关系。
把 RAG 与 agent 留到下一章。
不要写没有依据的展望。
提示词 B 同时指定了任务、读者、范围、排除内容与验证标准。它更有用,不是因为更长,而是因为所需条件更清楚。
提示词并不保证事实性¶
更好的提示词确实能提高得到更有用回答的概率。但提示词本身无法保证 事实性(factuality)、依据性(evidence)、安全性(safety)。
例如,下面这样的请求就很危险:
请把这个主张写得像事实一样可信。
这种提示词可能会鼓励模型把没有依据的内容写得很有说服力。而在本书里,我们优先使用的是相反方向的条件:
只有有依据的内容才写成事实。
如果依据薄弱,就标记为需要验证。
个人解释要和标准说明分开。
提示词可以引导输出,但不能替代验证责任。尤其在学习型书稿里,依据审查比提示词措辞更重要。
检查清单¶
- 我可以把提示词(prompt)解释成给 LLM 的当前输入。
- 我可以区分指示(instruction)与上下文(context)。
- 我可以说明示例(example)承担的是展示输出模式的作用。
- 我可以说明约束(constraint)承担的是缩小结果范围的作用。
- 我可以说明输出格式(output format)也能由提示词指定。
- 我可以说明提示词虽然不能直接解释 LLM 内部,但能让我们观察输入条件变化如何影响输出。
- 我可以说明 prompting 与 fine-tuning 的区别。
- 我可以说明 in-context learning 是在不更新权重的前提下,由输入上下文引起的行为变化。
- 我可以说明提示词并不会自动保证事实性、依据性与安全性。
- 我可以不把提示词理解成“会说话的技巧”,而是用
当前输入、任务条件、不更新权重、验证责任另行承担的结构来解释。 - 我可以区分 prompting、fine-tuning 与 in-context learning 分别在哪一步发生变化。
来源与参考资料¶
- Tom B. Brown et al., Language Models are Few-Shot Learners, arXiv, 2020, 确认日期: 2026-06-23.
- OpenAI, Prompt engineering, OpenAI API documentation, 确认日期: 2026-07-19.
- Anthropic, Prompt engineering overview, Anthropic documentation, 确认日期: 2026-06-23.