Prompt Engineering 从第一原理:他们不教你的机制 第1部分
Source: Dev.to
请提供您想要翻译的具体文本内容,我将为您翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。
为什么这个系列与众不同
大多数博客会直接给你现成的模板:
- “试试这个提示!”
- “使用这 10 种技巧!”
这不是我们要做的。
我们要 深入 探讨大语言模型(LLM)的工作原理:
- LLM 实际上是如何处理你的提示的?
- 在机械层面上,是什么让提示有效?
- LLM 在什么地方会失效,原因是什么?
我们的目标是为你提供 思维模型,让你能够自行设计提示,而不是复制别人的示例。
系列大纲(截至目前)
- 基础——LLM 的真实工作原理
- 提示的艺术与科学
- 提示技术与优化
- 提示评估与规模化
- 技巧、窍门与经验
我们以后可能会添加更多章节。
让我们进入第 1 部分
快速现实检查
你认为大型语言模型(LLM)像人类一样聪明吗?
它们是否拥有一个“脑子”,能够理解你的问题并思考答案?
如果你的回答是 yes,那你 错了。
LLM 不思考。它们不理解。它们是 下一个标记预测器——基于已见模式来猜测下一个标记的高级自动完成机器。
“等等,简单的下一个词预测怎么能回答复杂的问题、编写代码或进行对话呢?”
这是个好问题。答案涉及令人着迷的工程技术,但我们将重点放在 你需要了解的编写更好提示的内容,仅此而已。
如果你 真的 对机器学习感兴趣,请查看我的更长篇写作 here(链接占位符)。
Source: …
Prompt 的基本工作流程
当你输入提示并按下 Enter 时,模型会执行以下简化步骤:
- 分词(Tokenization) – 将你的文本拆分为 tokens(文本块)。
- 嵌入(Embedding) – 每个 token 被转化为一个数字向量。
- Transformer 处理 – 多层注意力计算 token 之间的关系。
- 概率分布 – 模型为每个可能的下一个 token 分配概率。
- 采样 / 解码 – 选取一个 token,追加到序列中,重复该过程直至满足停止条件。
下面我们逐一展开每个步骤。
分词
Token 大致是文本的一个块——有时是完整的单词,有时是单词的一部分,有时是标点符号。
"Hello world" → ["Hello", " world"] # 2 tokens
"apple" → ["apple"] # 1 token
"12345" → ["123", "45"] # 2 tokens
为什么分词很重要
- 上下文窗口 是以 tokens 为单位衡量的,而不是以单词计数。
- 文本的分词方式决定了模型“看到”的内容。
- 有些词是单个 token(处理更高效);有些则会被拆成多个 token。
嵌入
模型无法直接处理原始文本,只能理解数字。
每个 token 被转换为一个 高维向量(即 embedding),该向量捕捉其语义属性。
Transformer 层与注意力
Token 嵌入会依次通过一系列 Transformer 层。
注意力机制 让模型决定哪些 token 之间相互关联。
示例: 在句子 “The bank of the river was muddy.” 中,注意力会把 bank ↔ river 和 muddy 关联起来,帮助模型将 “bank” 解释为河岸而不是金融机构。
词汇表上的概率分布
经过注意力层后,模型会为词汇表中的 每个 token 产生一个概率(词表通常超过 50 000 个 token)。
Paris → 0.85 (85 %)
the → 0.05 (5 %)
beautiful → 0.03 (3 %)
London → 0.02 (2 %)
… (其余成千上万的 token 概率极小)
模型 并不“知道” 巴黎是法国的首都;它只是从训练数据中学到,在短语 “The capital of France is” 后面高频出现 “Paris”。
采样 / 解码
根据概率分布(如贪婪、top‑k、核采样)选取一个 token,追加到输出中,然后整个过程重复,直至出现结束符 token 或满足其他停止条件。
底线: 大语言模型(LLM)本质上是一个 重复的下一个 token 预测器,其行为由学习到的统计模式驱动。
从“猜下一个词”到有用的行为
如果大型语言模型只是概率机器,它们如何能够:
- 正确回答问题?
- 编写可运行的代码?
- 进行连贯的对话?
- 遵循复杂指令?
答案在于 两个主要的训练阶段,它们塑造了模型的行为。
Pre‑training (unsupervised)
模型读取 数万亿个 token,来源多样:
- 网站(维基百科、论坛、博客)
- 书籍
- 代码仓库(GitHub)
- 学术论文
- 社交媒体
它学习到的: 统计共现模式。
它 没有 学到的: 如何充当一个有帮助的助手。
示例: 向一个未经指令微调的基础模型询问 “法国的首都是什么?” 它可能会列出其他首都,因为它只是在继续它在测验类数据中看到的模式。
Instruction‑tuning (supervised + RLHF)
- Supervised Fine‑Tuning (SFT) – 人类编写成千上万的示例对话(问题 → 良好答案)。模型学习将 问题 映射为 有帮助的答案,而不是仅仅继续提示。
- Reinforcement Learning from Human Feedback (RLHF) – 人类对多个模型回复进行 “好” 或 “坏” 的排序。模型被优化以产生 有帮助、无害、诚实 的回复。
这些步骤会转移概率质量:模型现在预测的 token 更像是有帮助的助理回复,因为这种模式已成为最可能的。
回顾
- 大型语言模型是 下一个标记预测,构建过程为分词 → 嵌入 → Transformer → 概率分布 → 采样。
- 预训练为它们提供原始知识(统计模式)。
- SFT + RLHF 将这些知识转化为 有用、对齐的行为。
理解这一流水线为你提供了基础,使你能够 设计提示,让提示与模型的机制相匹配,而不是试图“智胜”一个黑箱。
接下来
在 Part 2 我们将探讨 The Art & Science of Prompting —— 如何措辞、结构化和框定提示,以从您现在已经了解的系统中获得最佳结果。
敬请期待! 🚀
控制生成
它仍然只是下一个 token 的预测。训练只会影响哪些预测拥有更高的概率。
还记得我们之前讨论的概率分布吗?这就是你可以进行控制的地方。模型会给出概率,但配置参数决定了实际从这些概率中如何选择 token。
Temperature
控制模型选择的“随机程度”。
示例情景 – 模型预测:
| 令牌 | 概率 |
|---|---|
| Paris | 85 % |
| beautiful | 3 % |
| London | 2 % |
-
低温度(例如 0.2) – 模型变得更“自信”,几乎总是选取最高的选项。Paris 的概率实际上可能升至 95 %+。
- 结果: 确定性、聚焦、重复的输出。
- 适用场景: 代码生成、数据提取、事实性回答。
-
高温度(例如 0.8) – 概率曲线变平。Paris 可能降至约 60 %,beautiful 上升至约 10 %,London 上升至约 8 %。
- 结果: 更丰富、多样、不可预测的输出。
- 适用场景: 创意写作、头脑风暴、多视角输出。
真实示例
Prompt: "The sky is"
Temperature 0.2 → "blue" (almost always)
Temperature 0.8 → "blue" or "cloudy" or "vast" or "filled with stars" (varies)
Top‑P (Nucleus Sampling)
设置一个概率阈值。
如果你设定 Top‑P = 0.9,模型只会考虑累计概率达到前 90 % 的 token,忽略其余所有 token。
为什么这很重要
- 没有 Top‑P 时,即使温度设置合理,模型有时也会选到概率只有 0.001 % 的 token → 完全胡言乱语。
- 使用 Top‑P = 0.9,这些极低概率的 token 永远不会被考虑。模型在保持连贯性的同时仍能保持创意。
实用组合
| 温度 | Top‑P | 效果 |
|---|---|---|
| 0.7 | 0.9 | 创意但连贯 |
| 0.2 | 1.0 | 确定且聚焦 |
Top‑K
将模型限制在 K 个最可能的 token 上。
示例: Top‑K = 50 → 只考虑概率最高的 50 个 token,其他全部忽略。
这是一种更简单的 Top‑P 形式,在现代系统中使用得较少。
完整的逐步示例
提示: “用简单的语言解释光合作用”
-
分词
["Explain", " photosynthesis", " in", " simple", " terms"] -
模型处理 – transformer 计算 token 之间的关系。
-
下一个 token 的概率分布
| Token | Probability |
|---|---|
| Photosynthesis | 40 % |
| It | 15 % |
| The | 12 % |
| In | 8 % |
| … | … |
-
应用配置 – Temperature 0.3, Top‑P 0.9
- 低温度会使分布更尖锐:Photosynthesis → 65 %
- 模型选择 Photosynthesis。
-
重复 – 现在序列为
Explain photosynthesis in simple terms Photosynthesis计算下一个 token 的概率,按照相同配置进行选择,并持续进行直至答案完成。
模型从未“理解”光合作用。它预测的 token 只是基于训练数据中模式的统计组合,形成解释。
关键要点
LLM 是 概率引擎,而不是推理机器。每个回复都是对下一个 token 的统计预测,由训练数据塑造,并受配置参数控制。
调整概率
你的提示不仅仅是提问——它塑造了模型使用的整个概率分布。通过微调措辞、重新排列指令或添加示例,你可以让不同的 token 更有可能出现,从而得到不同的输出。
在接下来的部分,我们将探讨 提示的艺术与科学——如何有意地构造提示,以将概率导向有利于你的方向。
资源
我已经为本系列建立了一个 GitHub 仓库,将在其中分享代码和其他资源。查看并给它加星!
欢迎在下方分享你的想法、评论和见解。让我们一起学习成长!