生成式人工智能从外部看常常像魔术。你给大语言模型一个提示词,它就能流畅生成结构化代码、翻译复杂文本,或者进行多轮推理。但剥掉高层抽象和营销话术,大语言模型本质上是一个概率引擎。它唯一的核心任务是建模文本的概率分布,并在给定前序词元序列的情况下,预测最可能出现的下一个词元。
这篇文章会跳过 PyTorch 或 Hugging Face 这类框架抽象,直接拆解把连续概率分布转化为连贯生成文本的数学机制。
序列建模的联合概率视角
从根本上看,任何文本序列 W = (w_1, w_2, …, w_N) 都可以表示为一个联合概率分布 P(w_1, w_2, …, w_N)。应用概率链式法则后,这个联合概率可以分解为一系列条件概率的乘积:P(w_1, w_2, …, w_N) = ∏_{t=1}^{N} P(w_t | w_1, w_2, …, w_{t-1})。这就是自回归语言模型的数学基础。模型严格基于前序词元 w_
从 Logits 到概率:Softmax 与温度的作用
当 Transformer 的最后一层线性层处理上下文词元时,会输出原始的、未归一化的连续分数,称为 Logits(z)。要把这些原始数字转化为整个词表 V 上的有效概率分布,需要经过 Softmax 函数:Softmax(z_i) = e^{z_i} / ∑_{j∈V} e^{z_j}。
为了控制模型回答的确定性或创造性程度,引入一个缩放因子,即温度(T):Softmax(z_i, T) = e^{z_i/T} / ∑_{j∈V} e^{z_j/T}。低温(T < 1.0)会锐化分布,迫使模型选择高概率词元,适合代码和数学任务;高温(T > 1.0)会拉平分布,让低概率词元获得更高的被选中机会,适合创意写作。
下面是用纯 NumPy 实现的简单温度缩放:
- 将 logits 除以温度进行缩放,温度下限设为 1e-8 防止除零
- 减去最大值以保证数值稳定性
- 对缩放后的 logits 做指数运算
- 用指数结果除以总和得到概率分布
以一个包含 4 个词表词元的 logits 数组 [2.0, 1.0, 0.1, 4.0] 为例,标准 Softmax(T=1.0)、确定性模式(T=0.2)和创意模式(T=1.5)会给出三种不同的概率分布结果。
模型如何学习:负对数似然
训练阶段,模型的目标是最大化真实下一个词元的概率。实际实现中,这通常转化为最小化负对数似然(Negative Log-Likelihood, NLL)。模型在每一步都会计算预测分布与真实词元之间的差距,并通过反向传播更新参数,让正确词元的概率逐步提高。
这套机制贯穿了从预训练到微调的整个过程。无论是海量网页文本的预训练,还是针对特定任务的指令微调,底层都在做同一件事:调整模型参数,使得给定上下文时,真实词元的条件概率尽可能大。
温度如何影响生成质量
温度参数直接决定了模型输出的随机程度。当 T 接近 0 时,模型几乎总是选择概率最高的词元,输出变得高度可预测,但也容易陷入重复。当 T 远大于 1 时,分布趋于均匀,低概率词元被频繁选中,输出可能变得多样但缺乏连贯性。
实际应用中,代码生成、数学推理等任务通常使用较低的温度,以保证准确性和一致性;而故事创作、广告文案等任务则使用较高的温度,以增加多样性和意外感。温度的选择本质上是在利用率和探索性之间做权衡。
从概率分布到连贯文本
大语言模型生成文本的过程,就是反复执行“给定前序词元,预测下一个词元概率分布,然后采样”的循环。每一步采样得到的词元会被追加到上下文中,成为下一步预测的输入。这种自回归的生成方式,让模型能够逐步构建出任意长度的文本序列。
理解这套底层数学,有助于看清大语言模型的能力边界。它不是在“思考”,而是在做条件概率计算。所谓的推理能力、创造能力,都是在这个概率框架上涌现出来的表现。
热门跟贴