大语言模型的工作原理——训练与推理

大语言模型的工作原理,在一张交互式画布上讲清楚:预训练、微调,以及逐个 token 生成每一句回复的那个循环。

大语言模型本质上是一个规模巨大的下一个词预测器:它从极其庞大的文本中学到统计规律,再靠预测接下来会是什么,一次一个 token 地生成回复。

大语言模型的工作原理——训练与推理

The interactive FlowJam canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.

How to read this visual

  • 先读“训练”这一列——它解释模型的能力从何而来——再读“推理”这一列,看这份能力如何被使用。
  • 反馈回路是关键动作:“继续生成?”的“是”分支指回注意力层,“停止”分支则往下流向解码后的文本。
  • 推理的三行是一条流水线:输入变成 token,token 变成预测,预测变成输出。

训练:模型从何而来

“在海量文本上做预训练”是根基——模型被投喂一个极其庞大的语料,只训练一个任务:把被盖住的那个词预测出来。仅凭这一个目标,它就学会了语法、事实和推理的规律。“模型学到词与词之间的统计规律”把这种学习的性质挑明,而“微调让模型适配某个具体任务”是那一次引导——用一个更小的、经过精选的数据集,把行为拉向想要的风格或领域。

推理:把输入变成输出

“提示词被切分成 token”和“token 变成数值化的嵌入向量”是输入这一半:文本被拆成很小的单位,再转换成模型可以拿来计算的向量。“注意力层衡量哪些词该被放在一起看”正是让上下文产生力量的机制——“bank”这个词挨着“river”和挨着“money”读出来并不一样,因为注意力让每一个 token 都能考虑其他所有 token。

生成循环

“模型预测最可能的下一个 token”是生成这件事最小的动作。“继续生成?”把循环挑明:每一次预测都被喂回去当作新的输入,这正是回复为什么是一个 token 一个 token 搭出来的,而不是整段一次写成。“token 被解码回可读的文本”和“回复返回给用户”让流水线走完——用户看到的输出,是这个循环解码之后的尾巴。

Key relationships and takeaways

  • LLM 是一个下一个 token 的预测器,不是一套答案检索系统——每一句回复都是一连串单个 token 的预测。
  • 预训练提供能力;微调和提示词把这份能力引导到具体任务上。
  • 模型思考所用的单位是 token,既不是字符,也不是完整的词。
  • 注意力让上下文能够重塑含义,这就是同样的词在不同句子里意思不同的原因。
  • 生成是递归的:每一个输出的 token 都成为新的输入,这既是回复能够很长、很连贯的原因,也是它能同样自信地出错的原因。

When to use this visual

  • 向非技术的听众解释 LLM 到底在做什么,以及它为什么会一本正经地说错。
  • 教产品团队分清训练、微调和提示词这三件事,好让他们能判断模型的行为由什么决定。
  • 把关于 token 上限、成本和延迟的讨论,落回到逐个 token 生成的机制上。

运作方式

  1. 标注你所依赖的训练阶段

    在预训练那个方框上写明你使用的模型家族,以及它的权重是否公开;在微调那里写明你是真的做了微调,还是改用提示词。

  2. 补上系统提示词

    在提示词被切分之前插入一步,把系统指令注入进去——对多数用户来说,行为其实是在那里被塑形的。

  3. 画出安全与护栏这一层

    在预测循环和输出之间加一步内容审核,落在明确的拦截或改写上,以反映生产系统是怎样为生成设卡的。

  4. 把 token 数追踪起来

    在分词那一步标注你的模型真实的 token 预算,在解码那一步标注让输出边生成边显示的流式传输。

常见问题

什么是大语言模型?

大语言模型(LLM)是一种神经网络,被训练用来预测序列中的下一个词,而且规模极其巨大。仅凭这一个目标,它就把语法、事实、推理和文风学到了足以生成流畅文本的程度。这个名字本身描述的就是机制:它很大(有数十亿参数),在语言上训练,而且骨子里是一个下一个 token 的预测器。

LLM 为什么一次只生成一个 token?

因为它唯一的操作,就是根据目前已有的全部内容预测最可能的下一个 token。每预测一次,这个 token 就被追加进输入,过程再重来一遍——也就是图中“继续生成?”那个循环。正是这种递归设计让模型能产出任意长的文本,也正因如此,输出可能跑题或重复:每一步只看得见它已经生成的那些 token。

预训练和微调有什么区别?

预训练是规模庞大的初始阶段:模型从数以 TB 计的文本里学到通用的语言规律,这给了它最原始的能力。微调是之后规模小得多的阶段,用精选的数据针对某个具体任务或风格,改变这个已预训练模型的行为方式。多数 LLM 的使用者从不做微调——他们写提示词,在推理时引导同一个模型。

LLM 为什么有时会很自信地给出错误答案?

因为模型优化的目标是可能性高的文本,而不是真相。它没有内部数据库,也没有正确性检查器;它产出的是符合训练规律的续写。当那个规律恰好是一句听起来合理的论断时,它就会自信地说出来。这就是为什么这张图解把模型描述成预测器而不是检索器——这条诚实的告诫是机制本身的性质,而不是靠单纯扩大规模就能修好的缺陷。

在 QueryChart(FlowJam)中编辑这张图解

把上面这张 LLM 画布原样打开成你自己的图表,把各个阶段改名成你的流水线,并标注你实际使用的模型。

在 QueryChart(FlowJam)中编辑这张图解

可视化图解中的更多内容