如何使用StreamingLLM提高LLM的速度

improve-the-speed-of-your-large-language-model.webp

如果您注意到本地安装的LLM在尝试包含更大的提示时速度变慢。您可能对一种新的解决方案感兴趣,该解决方案可以提高大型语言模型的速度和性能,以StreamingLLM的形式帮助提高LLM的速度和性能。将 Llama 2 和 Falcon 扩展到 4 万个代币,并提供比标准 LLM 快 22 倍的推理速度。

查看下面由AI Jason创建的视频,他解释了有关StreamingLLM的更多信息以及如何使用它来提高本地安装的AI模型的性能。探索这些挑战并探索潜在的解决方案,专注于一个新的研究项目,旨在提高LLM的数据输入能力和效率。

在流应用程序中部署LLM的主要挑战之一是解码阶段的大量内存消耗。这是由于缓存了以前令牌的键和值状态 (KV)。流行的LLM,如Llama-2,MPT,Falcon和Pythia,不能推广到比训练序列长度更长的文本,这一事实进一步加剧了这个问题。此限制主要是由于 GPU 内存限制以及这些模型中使用的复杂转换器架构所需的计算时间。

管理大型数据输入的常见解决方案是使用窗口注意力。此方法涉及仅缓存最新的 KV,从而有效地限制需要存储的数据量。但是,此方法有一个明显的缺点:它丢失了有关已删除令牌的上下文。当文本长度超过缓存大小时,窗口注意力的性能会下降,从而导致上下文丢失和生成内容质量下降。

这个问题导致研究人员观察到一种有趣的现象,称为注意力下沉。他们发现,该模型比后来的代币更关注初始代币,即使初始代币在语义上并不重要。他们发现,可以利用这种现象在很大程度上恢复窗口注意力的性能。

基于这一分析,研究人员引入了StreamingLLM,这是一个有效的框架,使使用有限长度注意力窗口训练的LLM能够推广到无限序列长度,而无需任何微调。此方法使用具有注意力接收器的前几个令牌和最新令牌的滚动缓存的组合。这允许LLM维护有关之前讨论的内容以及最近的对话的上下文,从而有效地扩展了有效的上下文窗口。

StreamingLLM方法已经显示出有希望的结果,使LLM能够使用多达4万个代币或更多来执行稳定高效的语言建模。在流式处理设置中,它的性能比滑动窗口重新计算基线高出 22.2 倍。这使得它对于长篇内容生成和具有长期记忆的聊天机器人等应用程序特别有用。

但是,重要的是要注意StreamingLLM并非没有局限性。虽然它确实保留了有关对话开始和结束的上下文,但它仍然在中间丢失了详细的上下文。这意味着它可能不适用于汇总大量数据,例如研究论文。

StreamingLLM的引入和注意力汇的概念代表了克服向LLM提供无限数据的挑战的重大进步。但是,它们只是上下文限制问题的一种解决方案。随着人工智能领域的不断发展,可能会出现更多创造性的概念,以进一步提高LLM的能力和效率。

未经允许不得转载:表盘吧 » 如何使用StreamingLLM提高LLM的速度