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)"连接,从而得出预测结果。
相关推荐
小赖同学啊5 分钟前
智能连接器集群化高可用生产方案
linux·运维·人工智能
ZStack开发者社区12 分钟前
基于AI Agent的ZCF API文档全链路自动化
运维·人工智能·自动化
沈麽鬼14 分钟前
别瞎用AI写代码!90%开发者都搞错了AI编程的底层逻辑
人工智能·ai编程·trae
小陈爱编程17 分钟前
我终于把 Codex 的 API 配置理顺了:从踩坑到跑通
人工智能
不爱洗脚的小滕20 分钟前
【Agent】如何为 AI Agent 设计高可用的 Tools
人工智能·aigc·ai编程·rag
姗姗来迟了22 分钟前
前端传图片给多模态 Agent:压缩、预览、格式那些破事
人工智能
Sam092734 分钟前
Spec Coding 和 Vibe Coding 的区别:AI Coding 从感觉驱动到规格驱动
人工智能·ai
Kobebryant-Manba1 小时前
学习RNN(简洁实现)
人工智能·rnn·学习
德迅--文琪1 小时前
当前 2026 年 AI 狂潮时代,抗 DDoS 产品公司品牌推荐
人工智能·ddos
机器之心1 小时前
Claude Fable 5四日惊魂
人工智能·openai