基本信息

来源摘要/节选

公开展示已截断至最多 800 个字符;请访问原始来源查看完整上下文。

从自回归生成说起 在前面的章节中,我们学习了大模型的核心原理:给定前面的Token序列,预测下一个Token。但是,当我们实际使用大模型进行文本生成时,会遇到一个严重的 性能问题 。 自回归生成的过程 假设我们要让模型生成一句话:“今天天气真好”(5个Token) 第1步 :输入提示词"今天" 输入序列:[“今天”](1个Token) 模型计算注意力,输出:[“天气”] 第2步 :继续生成 输入序列:[“今天”, “天气”](2个Token) 模型 重新 计算这2个Token的注意力,输出:[“真”] 第3步 :继续生成 输入序列:[“今天”, “天气”, “真”](3个Token) 模型 重新 计算这3个Token的注意力,输出:[“好”] 注意到问题了吗? 每次生成新Token时,模型都要重新计算前面所有Token的注意力! 重复计算的代价 让我们用数学来量化这个问题。 注意力计算回顾 在注意力机制中,对于每个Token,我们需要计算: Q

X ⋅ W Q (Query) K

X ⋅ W K (Key) V

X ⋅ W V (Value) Output

softmax ( Q ⋅ K T d k ) ⋅ V \begin{aligned} Q &= X \cdot W_Q \quad \text{(Query)} \\ K &= X \cdot W_K \quad \text{(Key)} \\ V &= X \cdot W_V \quad \text{(Value)} \\ \text{Output} &= \text{softmax}\left(\frac{Q \cdot K^T}{\sqrt{d_k}}\right) \cdot V \end{aligned} Q K V Output ​

X ⋅ W Q ​ (Query)

X ⋅ W…

来源说明

当前只保存了公开页面节选,不代表原文全文。请以原始来源为准。

本页只呈现已做哈希绑定的来源证据,不包含基于旧正文或缺失原文的扩展推断。