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)"连接,从而得出预测结果。
相关推荐
To_OC16 分钟前
大模型蒸馏是啥?说白了就是大厨带徒弟的学问
人工智能·llm·agent
新手来了@click30 分钟前
JAVA+AI 简化开发操作|文章被 AI Agent 技术社区收录分享
人工智能
GuWenyue1 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue1 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
老云讲算力市场1 小时前
WAIC首日观察:国产算力与机器人加速落地,奇点算力迎来产业新机遇
人工智能·科技
糖果店的幽灵2 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
小林ixn2 小时前
大模型随机说话的秘密:Temperature 和 Top K 深度解析,LangChain 实战调优
人工智能·langchain
ALINX技术博客2 小时前
ALINX 亮相 2026 WAIC 世界人工智能大会,展示 AI 视觉 FPGA+GPU 异构计算与电子后视镜解决方案
人工智能·ai·fpga·世界人工智能大会·电子后视镜
程序员老猫2 小时前
当 AI 能写 80% 的代码时,后端工程师的核心价值还剩什么?
人工智能
想会飞的蒲公英2 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理