先这样答
LLaMA 的输入不能无限长。输入越长,计算成本和延迟越高,KV Cache 占用的显存也越多。模型还未必能有效利用新增的内容。我会从注意力计算、KV Cache 显存和训练长度外推三个方面回答。这三点分别解释了处理长输入要花多少算力、占用多少显存,以及模型能不能用好更长的文本。
注意力复杂度随输入长度的平方增长。长度增加,计算负担和延迟也会上涨。KV Cache 则占用更多显存,显存需求随长度线性增长。即使暂时不讨论回答质量,算力、延迟和显存也会限制实际可用的输入长度。不能只看文本能否送进模型,还要看处理这段文本的成本。
输入超过训练时覆盖的长度后,模型的外推能力可能退化。RoPE 外推需要技巧,不能只靠把输入拉长。长文还会出现 lost in the middle 现象,模型对中部信息的利用率会下降。所以,输入变长不等于有效信息变多。面试里要同时说清成本上涨和有效注意力下降:前者解释为什么不能无限加长,后者解释为什么加长后也未必能用好内容。
面试官会怎么追问
- 「为什么输入一变长,计算成本就会涨?」 注意力复杂度随长度的平方增长。输入越长,计算开销和延迟越高。因此不能只问模型能否接收文本,还要看处理长输入的成本。
- 「KV Cache 和注意力复杂度是同一种限制吗?」 不是。注意力复杂度对应计算成本和延迟,KV Cache 对应显存占用。前者随长度平方增长,后者随长度线性增长。
- 「输入放得下,模型就一定能用好长文吗?」 不一定。超过训练长度后,外推能力可能退化,RoPE 外推也需要技巧。长文中部的信息还可能更难被利用,这就是 lost in the middle 现象。
回答的坑
- 只说显存不够,漏掉注意力的平方复杂度和训练长度外推退化。
- 把能输入更长文本当成能有效利用全部内容,忽略长文中部信息利用率下降。
同系列的题
—— 本题完 ——