LLM生成文本每次是把之前所有的token都输入,还是只输入上一个token?

LLM生成文本时,是自回归地生成。那每次是把之前所有的token都输入,还是只输入上一个token?

答:在逻辑层面上,是输入"之前所有的token";但在物理运算层面,我们通过一种技术手段避免了重复计算。

1. 逻辑层面:为什么需要"全量输入"?

LLM(如 GPT 系列)基于 Transformer Decoder 架构。为了预测下一个词,模型必须理解上文的语境。

如果只输入"上一个 token",模型就像一个只有极短记忆的人,它知道当前的词,但不知道之前的逻辑。例如:

  • 上文: "巴黎是法国的..."
  • 当前输入: "的"
  • 逻辑: 模型需要看到"巴黎"、"是"、"法国"才能准确预测出"首都"。

因此,在自回归生成(Autoregressive Generation)的定义中,每一步生成的概率公式如下:

P(xt∣x1,x2,...,xt−1)P(x_t | x_1, x_2, ..., x_{t-1})P(xt∣x1,x2,...,xt−1)

这代表第 ttt 个词的产生,取决于前面 所有 词的序列。


2. 物理层面:KV Cache(键值缓存)技术

虽然逻辑上需要全量信息,但如果每次都把成千上万个词重新通过模型计算一遍,效率会极其低下(计算量呈平方级增长)。

为了解决这个问题,现代 LLM 使用了 KV Cache 技术:

  • 只"计算"最新 Token: 实际上,每一轮推理中,只有最新生成的那个 token 会经过完整的神经网络计算。
  • 缓存旧信息: 之前所有 token 的计算结果(具体为 Attention 机制中的 Key 和 Value 向量)已经存在显存里了。
  • 拼接与注意力: 模型通过将"新生成的 KV"与"缓存的旧 KV"进行拼接,让新 token 能够与历史信息产生"注意力(Attention)"连接,从而得出预测结果。
相关推荐
乌恩大侠1 分钟前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
TMedical5 分钟前
MedPlanning 截骨模拟矫形功能
c++·图像处理·人工智能·qt·健康医疗
u13013032 分钟前
GitHub 热榜项目:日榜(2026-10-29)
人工智能·github
QXWZ_IA34 分钟前
路面病害漏检的成因与识别率提升
人工智能
深蓝AI1 小时前
EMBRACE 攻击打穿五个 AI 编程工具的浏览器:本地开发机成了最大攻击面
人工智能·程序员
锋行天下1 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python
ZhengEnCi1 小时前
agent 为什么需要自进化:从静态模型到经验驱动的持续成长
人工智能
QXWZ_IA1 小时前
RTK平面很准、高程总飘,问题出在哪
人工智能
Ferries2 小时前
用 WorkBuddy+DeepSeek 跑了30天自动矩阵,事情没那么简单
人工智能·aigc·vibecoding
用户837133200762 小时前
AI总是会忘记细节咋办?我用GitHub实现外部记忆管理
人工智能·github