Prompt Engineering 从第一原理:他们不教你的机制 第1部分

发布: (2025年12月28日 GMT+8 16:42)
13 min read
原文: Dev.to

Source: Dev.to

请提供您想要翻译的具体文本内容,我将为您翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。

为什么这个系列与众不同

大多数博客会直接给你现成的模板:

  • “试试这个提示!”
  • “使用这 10 种技巧!”

这不是我们要做的。

我们要 深入 探讨大语言模型(LLM)的工作原理:

  • LLM 实际上是如何处理你的提示的?
  • 在机械层面上,是什么让提示有效?
  • LLM 在什么地方会失效,原因是什么?

我们的目标是为你提供 思维模型,让你能够自行设计提示,而不是复制别人的示例。

系列大纲(截至目前)

  1. 基础——LLM 的真实工作原理
  2. 提示的艺术与科学
  3. 提示技术与优化
  4. 提示评估与规模化
  5. 技巧、窍门与经验

我们以后可能会添加更多章节。

让我们进入第 1 部分

快速现实检查

你认为大型语言模型(LLM)像人类一样聪明吗?
它们是否拥有一个“脑子”,能够理解你的问题并思考答案?

如果你的回答是 yes,那你 错了

LLM 不思考。它们不理解。它们是 下一个标记预测器——基于已见模式来猜测下一个标记的高级自动完成机器。

“等等,简单的下一个词预测怎么能回答复杂的问题、编写代码或进行对话呢?”

这是个好问题。答案涉及令人着迷的工程技术,但我们将重点放在 你需要了解的编写更好提示的内容,仅此而已。

如果你 真的 对机器学习感兴趣,请查看我的更长篇写作 here(链接占位符)。

Source:

Prompt 的基本工作流程

当你输入提示并按下 Enter 时,模型会执行以下简化步骤:

  1. 分词(Tokenization) – 将你的文本拆分为 tokens(文本块)。
  2. 嵌入(Embedding) – 每个 token 被转化为一个数字向量。
  3. Transformer 处理 – 多层注意力计算 token 之间的关系。
  4. 概率分布 – 模型为每个可能的下一个 token 分配概率。
  5. 采样 / 解码 – 选取一个 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.” 中,注意力会把 bankrivermuddy 关联起来,帮助模型将 “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)

  1. Supervised Fine‑Tuning (SFT) – 人类编写成千上万的示例对话(问题 → 良好答案)。模型学习将 问题 映射为 有帮助的答案,而不是仅仅继续提示。
  2. Reinforcement Learning from Human Feedback (RLHF) – 人类对多个模型回复进行 “好” 或 “坏” 的排序。模型被优化以产生 有帮助、无害、诚实 的回复。

这些步骤会转移概率质量:模型现在预测的 token 更像是有帮助的助理回复,因为这种模式已成为最可能的。

回顾

  • 大型语言模型是 下一个标记预测,构建过程为分词 → 嵌入 → Transformer → 概率分布 → 采样。
  • 预训练为它们提供原始知识(统计模式)。
  • SFT + RLHF 将这些知识转化为 有用、对齐的行为

理解这一流水线为你提供了基础,使你能够 设计提示,让提示与模型的机制相匹配,而不是试图“智胜”一个黑箱。

接下来

Part 2 我们将探讨 The Art & Science of Prompting —— 如何措辞、结构化和框定提示,以从您现在已经了解的系统中获得最佳结果。

敬请期待! 🚀

控制生成

它仍然只是下一个 token 的预测。训练只会影响哪些预测拥有更高的概率。

还记得我们之前讨论的概率分布吗?这就是你可以进行控制的地方。模型会给出概率,但配置参数决定了实际从这些概率中如何选择 token。

Temperature

控制模型选择的“随机程度”。

示例情景 – 模型预测:

令牌概率
Paris85 %
beautiful3 %
London2 %
  • 低温度(例如 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.70.9创意但连贯
0.21.0确定且聚焦

Top‑K

将模型限制在 K 个最可能的 token 上。

示例: Top‑K = 50 → 只考虑概率最高的 50 个 token,其他全部忽略。
这是一种更简单的 Top‑P 形式,在现代系统中使用得较少。

完整的逐步示例

提示: “用简单的语言解释光合作用”

  1. 分词
    ["Explain", " photosynthesis", " in", " simple", " terms"]

  2. 模型处理 – transformer 计算 token 之间的关系。

  3. 下一个 token 的概率分布

TokenProbability
Photosynthesis40 %
It15 %
The12 %
In8 %
  1. 应用配置 – Temperature 0.3, Top‑P 0.9

    • 低温度会使分布更尖锐:Photosynthesis → 65 %
    • 模型选择 Photosynthesis
  2. 重复 – 现在序列为

    Explain photosynthesis in simple terms Photosynthesis

    计算下一个 token 的概率,按照相同配置进行选择,并持续进行直至答案完成。

模型从未“理解”光合作用。它预测的 token 只是基于训练数据中模式的统计组合,形成解释。

关键要点

LLM 是 概率引擎,而不是推理机器。每个回复都是对下一个 token 的统计预测,由训练数据塑造,并受配置参数控制。

调整概率

你的提示不仅仅是提问——它塑造了模型使用的整个概率分布。通过微调措辞、重新排列指令或添加示例,你可以让不同的 token 更有可能出现,从而得到不同的输出。

在接下来的部分,我们将探讨 提示的艺术与科学——如何有意地构造提示,以将概率导向有利于你的方向。

资源

我已经为本系列建立了一个 GitHub 仓库,将在其中分享代码和其他资源。查看并给它加星!

欢迎在下方分享你的想法、评论和见解。让我们一起学习成长!

Back to Blog

相关文章

阅读更多 »

为你的LLMs设立护栏

!Forem 标志 https://media2.dev.to/dynamic/image/width=65,height=,fit=scale-down,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%...