位置编码外推性:为什么Transformer无法处理比训练时更长的序列
一个被忽视的基本问题 2017年,当Vaswani等人在论文《Attention is All You Need》中提出Transformer架构时,他们做出了一个看似合理的假设:模型应该能够外推到比训练时更长的序列。原论文中写道:“我们推测它可能外推到比训练时遇到的序列更长的序列。” ...
一个被忽视的基本问题 2017年,当Vaswani等人在论文《Attention is All You Need》中提出Transformer架构时,他们做出了一个看似合理的假设:模型应该能够外推到比训练时更长的序列。原论文中写道:“我们推测它可能外推到比训练时遇到的序列更长的序列。” ...
一个检索增强生成(RAG)系统为回答用户问题,从知识库中检索了10篇相关文档。其中第6篇文档包含了正确答案的关键信息。然而,模型最终输出的答案却是错的——它"看到"了放在第1篇和第10篇的干扰信息,却完全忽略了中间那篇真正有用的文档。 ...
2023年,MIT韩松实验室的研究团队在测试一个看似简单的问题时,发现了一个令人困惑的现象。他们尝试用滑动窗口来限制大模型的KV Cache大小——这是控制显存占用的标准做法。然而,当窗口滑动、第一个Token被踢出缓存时,模型不是逐渐变差,而是瞬间崩溃。 ...
把"我 爱 北 京"四个字打乱顺序,变成"北 京 我 爱",意思完全变了。但对Transformer的自注意力机制来说,这两个输入几乎没有区别——它会以完全相同的方式计算每个词与其他词的关联度。 ...
你有没有遇到过这样的情况:把一篇三万字的技术文档投给大模型,它告诉你"上下文长度超出限制";或者好不容易把文档拆成小块分别处理,却发现模型完全忘记了前面章节的内容,给出的分析前后矛盾。 ...
2018年之前,Visual Studio Code用户经常报告一个奇怪的问题:打开某些文件会导致内存溢出崩溃。罪魁祸首是一个35 MB的文件——听起来不大,但它有1370万行。VSCode为每一行创建一个对象,每个对象占用40-60字节,结果光是行数组就消耗了约600 MB内存,是原文件大小的近20倍。 ...