跳转至

P1-12.1 提示词(prompt)指定了什么

Section ID: P1-12.1 Version: 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 分别在哪一步发生变化。

来源与参考资料