news 2026/7/1 23:51:29

从输入到输出:大语言模型一次完整推理简单解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从输入到输出:大语言模型一次完整推理简单解析

前言

大语言模型(LLM)的推理过程,本质上是一个在离散 token 空间中进行条件概率建模与自回归采样的计算流程。从系统角度看,这一过程可以被严格拆解为:文本离散化、全量上下文建模(Prefill)、概率分布构造、候选空间裁剪、随机采样、状态递推,直至满足终止条件。以下按照真实执行顺序,对每一阶段进行完整解析。


一、文本输入与 Tokenisation:离散化的起点

模型无法直接处理字符串。所有文本输入首先通过 tokenizer 映射为 token ID 序列。Tokenisation 是一个确定性函数,其输出完全由 tokenizer 和词表定义,与模型参数无关。tokenization分为字词级、子词级、字节级词元化,各有优劣。

现代 LLM 普遍采用子词级(subword)tokenisation(如 BPE、Unigram LM)。其核心目标不是“语言学合理”,而是相对于其他词元化的规则,子词级有以下优势:

  • 控制词表规模;
  • 覆盖长尾词与未登录词;
  • 压缩 token 数以降低 Attention 计算成本。

Tokenisation 的结果直接决定:

  • 输入 token 数(影响 Attention 的O(n2)O(n^2)O(n2)复杂度);
  • 可用上下文长度(context window 是 token 数上限,而非字符数);
  • 推理成本与延迟的下限。

模型后续所有计算均发生在 token 空间中,任何字符串级操作在此之后都不再存在。


二、Embedding 与 Transformer:进入连续空间

每个 token ID 通过 embedding lookup 映射为一个定长向量,其维度为模型的 hidden size,与词表大小无关。Embedding 层的本质是一个形状为 (∣V∣×d|V| \times dV×d) 的查表矩阵,其中单个 token 对应的向量长度为 (d)。

Embedding 向量叠加位置编码后,输入 Transformer Decoder 堆栈。每一层 Transformer 由:

  • 多头自注意力(Self-Attention)
  • 前馈网络(FFN)
  • 残差连接与 LayerNorm
    组成。

Self-Attention 的计算复杂度随 token 数平方增长,这是长上下文推理的根本瓶颈。


三、Prefill:全量上下文的 Attention 展开

Prefill 是指模型对全部输入 token进行一次前向传播的阶段,其核心目的不是生成输出,而是构建 Attention 所需的 Key / Value Cache

在 Prefill 阶段:

  • 每一层 Transformer 都会为每个 token 计算对应的 Key 和 Value;
  • Attention 在完整序列上展开,复杂度为O(n2)O(n^2)O(n2)
  • Prefill 只执行一次,但计算量巨大。

工程上,长 prompt 导致的首 token 延迟,几乎完全由 Prefill 决定。RAG、长对话、系统 prompt 叠加,本质上都是在放大这一阶段的成本。


四、KV Cache:自回归生成的状态基础

Prefill 结束后,模型已为当前上下文中所有 token 构建好 KV Cache。KV Cache 存储的是各层 Attention 的 Key / Value 张量,其维度属于 hidden space,而非词表空间。

KV Cache 的存在,使得后续生成阶段无需重新计算历史 token 的 Attention,从而将自回归生成的复杂度从O(n2)O(n^2)O(n2)降为O(n)O(n)O(n)。代价是显存占用随上下文长度线性增长。


五、Logits 与 Softmax:从连续表示到词表空间

  • 在 Prefill 的最后一个 token,或 Decode 阶段的每一步,模型都会输出一个 logits 向量,其维度等于词表大小 (∣V∣|V|V)。这是模型唯一一次显式进入“词表空间”。
  • Logits 是未归一化的对数得分,不具备概率意义。通过 softmax,将 logits 映射为一个在词表上的概率分布:
    pi=ezi/T∑jezj/T p_i = \frac{e^{z_i / T}}{\sum_j e^{z_j / T}}pi=jezj/Tezi/T
  • Temperature本质上是对 logits 的线性缩放,用于调节概率分布的陡峭程度。Temperature 不改变 token 排序,仅影响概率差距与分布熵,因此只在 sampling 场景中生效。
    设模型在某一步输出的 logits 为:
    z=(z1,z2,…,z∣V∣),zi∈R \mathbf{z} = (z_1, z_2, \dots, z_{|V|}), \quad z_i \in \mathbb{R}z=(z1,z2,,zV),ziR
    带 Temperature 的 softmax 定义为:
    pi(T)=exp⁡(zi/T)∑j=1∣V∣exp⁡(zj/T) p_i(T) = \frac{\exp(z_i / T)}{\sum_{j=1}^{|V|} \exp(z_j / T)}pi(T)=j=1Vexp(zj/T)exp(zi/T)
    其中(T>0T > 0T>0) 为 temperature,pi(T)p_i(T)pi(T)是 token (iii) 的生成概率
  • Temperature 数学性质
    • 排序不变性:对任意T>0T>0T>0,若za>zbz_a > z_bza>zb,则pa(T)>pb(T)p_a(T) > p_b(T)pa(T)>pb(T),Temperature 不改变 token 排序,只改变概率差距。
    • 对数概率差缩放log⁡papb=za−zbT\log \frac{p_a}{p_b} = \frac{z_a - z_b}{T}logpbpa=Tzazb,Temperature 实际是在缩放 logits 差值,从而控制概率分布的熵。
    • 极限行为
      • T→0T \to 0T0:分布收敛为 one-hot(近似 argmax)
      • (T \to \infty):分布收敛为均匀分布

六、候选空间裁剪:Top-k 与 Top-p

直接在完整词表上采样在工程上不可控,因此需要对概率分布进行裁剪。
设经过 softmax(已包含 temperature)后得到的概率分布为:
p=(p1,p2,…,p∣V∣),∑ipi=1p = (p_1, p_2, \dots, p_{|V|}), \quad \sum_i p_i = 1p=(p1,p2,,pV),ipi=1将所有 token 按概率从大到小排序:
p(1)≥p(2)≥⋯≥p(∣V∣) p_{(1)} \ge p_{(2)} \ge \dots \ge p_{(|V|)}p(1)p(2)p(V)

  • Top-k:仅保留概率最高的 (k) 个 token,形成硬截断的候选集。
  • Top-p(Nucleus Sampling):保留累计概率达到阈值 § 的最小 token 集合,属于分布感知型裁剪

若同时启用,最终候选集为二者的交集。实践中通常以 Top-p 为主、Top-k 为安全阀,用于限制极端平坦分布。

裁剪并不等于选择,它只是定义“哪些 token 仍有资格被选中”。


实际执行顺序为:

logits;→/T;softmax;→Top-p;Vp;→re-normalize;sampling \text{logits} ;\xrightarrow{/T}; \text{softmax} ;\xrightarrow{\text{Top-p}}; V_p ;\xrightarrow{\text{re-normalize}}; \text{sampling}logits;/T;softmax;Top-p;Vp;re-normalize;sampling

Temperature 决定概率如何分布,Top-p 决定哪些概率仍然存在。


七、重归一化与随机采样:离散决策的发生点

候选集确定后,系统会将候选集外 token 的概率置零,并在候选集内重新归一化,形成新的合法概率分布。随后进行一次分类分布采样,选出下一个 token ID。

这是整个推理过程中唯一引入随机性的步骤。所有生成多样性、漂移、重复、幻觉风险,最终都可以追溯到这一采样操作及其参数设置。

当候选集退化为单一 token 时,采样等价于 greedy decoding。


八、Decode 循环:自回归推进

采样得到的 token 会立即:

  • 转换为 embedding;
  • 输入 Transformer;
  • 使用已有 KV Cache,仅计算新 token 的 Attention;
  • 输出新的 logits。

同时,新 token 对应的 Key / Value 会被追加进 KV Cache。随后再次进入“logits → 裁剪 → 采样”的循环。

这一 Decode 过程持续进行,直到满足停止条件(EOS、最大 token 数或自定义规则)。Streaming 输出只是 Decode 阶段逐 token 暴露中间结果的表现形式,不改变计算本质。


九、整体视角下的因果链

从系统角度看,整个推理过程可以压缩为一条因果链:

  • Tokenisation 决定 token 数与计算下限;
  • Prefill 决定首 token 延迟与 Attention 成本;
  • KV Cache 决定 Decode 阶段是否可扩展;
  • Sampling 决定输出行为的稳定性与熵。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 2:39:21

硬件研发周期变长怎么办?3 个跨部门协作方法让项目管理提速

硬件研发周期变长,往往不是单点效率问题,而是跨部门协作缺少共同节奏、共同事实与共同验收,导致等待与返工叠加。本文基于 IPD(集成式产品开发)体系,并结合其中常用的 阶段门/决策门(Stage-Gate…

作者头像 李华
网站建设 2026/7/1 20:05:37

偶信科技是干嘛的?——解码深蓝,让海洋“开口说话”

当人类仰望星空时,别忘了脚下还有另一片未知疆域——覆盖地球71%表面的浩瀚海洋。它深邃、流动、充满声响,却因水体的隔绝而难以被直接感知。如何穿透这片“液态迷雾”,获取真实、可靠、连续的海洋信息?这正是偶信科技自创立以来所…

作者头像 李华
网站建设 2026/7/1 16:12:50

LobeChat默认模型推荐列表:哪些开源LLM表现最出色?

LobeChat 与开源大模型的完美搭档:谁才是本地 AI 助手的最佳选择? 在如今这个“人人都想拥有自己的 AI 助手”的时代,一个直观、高效且安全的交互界面变得前所未有的重要。尽管像 ChatGPT 这样的闭源服务提供了强大的语言能力,但高…

作者头像 李华
网站建设 2026/7/1 22:08:49

简单理解:电机驱动板的种类有哪些?

从行业通用分类逻辑(按控制方式、功能定位、功率等级),电机驱动板的完整分类及核心区别如下,覆盖所有场景(不止你的 2804 无刷电机):一、按控制算法分类(核心维度)1. 六步…

作者头像 李华
网站建设 2026/6/26 9:34:50

用Miniconda实现Python 3.8与3.9共存

用 Miniconda 实现 Python 多版本共存:轻量级 AI 开发环境实战 你有没有遇到过这种场景?刚跑通一个基于 PyTorch Lightning 的实验,信心满满地想复现一篇新论文的代码,结果 requirements.txt 里写着“仅支持 Python ≥3.9”——而…

作者头像 李华
网站建设 2026/6/30 21:35:08

卷积神经网络基础:YOLO初学者必备知识

卷积神经网络基础:YOLO初学者必备知识 在智能摄像头自动识别行人、无人机实时追踪移动目标、工厂流水线自动检测产品缺陷的今天,背后支撑这些“看得见”的智能能力,往往离不开一个核心算法——YOLO(You Only Look Once&#xff09…

作者头像 李华