【论文浅尝】LLM as a System Service on Mobile Devices

本文提出了一种新的移动AI范式LLM-as-a-Service(LLMaaS),通过LLMS系统解决LLM上下文管理问题,特别是通过容差感知压缩、IO-重新计算流水线加载和区块生命周期管理技术减少上下文切换延迟。实验表明,LLMS有效减少了设备内存使用,提升服务质量。
摘要由CSDN通过智能技术生成

        由于功能更强大,对用户与设备交互的侵入性更强,LLM渴望在设备上执行以更好地保护用户隐私。在这项工作中,我们提出了一种新的移动AI范式:移动设备上的LLM as a system service(LLM AAS)。与以无状态方式执行的传统DNNs不同,这样的系统服务是有状态的:LLMs执行通常需要跨多个调用维护持久状态(主要是KV cache)。为了在设备内存预算紧张的情况下最大限度地减少LLM上下文切换开销,本文提出了LLMS,该技术通过细粒度、分块、全局优化的KV缓存压缩和交换的关键思想来解耦app和LLM上下文的内存管理。通过充分利用KV cache的独特特性,它提出了三种新颖的技术:

(1)容差感知压缩:它根据块对压缩的测量精度容差来压缩块。

(2)IO-重新计算流水线加载:它将重新计算引入换入加速。

(3)区块生命周期管理:它通过提前换出和基于LCTRU(最不可压缩和最近使用的)队列的回收来优化区块的内存活动。

在对完善的跟踪和各种边缘设备进行的评估中,与竞争基准解决方案相比,LLMS将上下文切换延迟降低了多达2个数量级。

LLM-as-a-Service(LLMaaS)

        在这项工作中,我们提出了一种新的移动人工智能范式:LLM作为移动设备上的系统服务(LLMaaS)。这表明,移动操作系统将LLM及其推理基础设施作为系统特性公开给移动应用程序,类似于位置或通知服务。应用程序和LLM服务之间的接口基于自然语言的提示。这种模式从根本上不同于现有技术,在现有技术中,应用程序分别拥有自己的模型,而操作系统对此没有可见性。这种范式的转变在LLM时代是很自然的,由以下观察结果驱动:

(1) LLM具有世界知识,可以通过适当的策划甚至学习提示来支持一般的ML任务。

(2) LLMaaS在存储器中只需要LLM权重的一个副本,而不管LLM在应用中的使用强度如何;否则不同app拥有的LLM容易把设备内存吹爆;

(3)系统级LLM可以更好地为设备上的加速器定制,并享受比商用硬件更高的性能增益。

LLMaaS范式的一个例子是最近发布的Android AICore ,这是一个独立的LLM系统服务,已经被几个Google应用程序用于设备上的摘要和Gboard智能回复。

为了实现LLMaaS的愿景,这项工作识别并解决了一个独特的系统挑战:LLM上下文管理。具体来说,与以无状态方式执行的传统dnn不同,LLMs执行通常需要跨多个调用维护持久状态(主要是KV cache )。例如,与仅使用最后一条消息相比,智能回复应用程序需要记住其历史对话文本,以生成更准确的回复建议。

实验发现,单个LLM上下文可以消耗大量的设备存储器(例如,对于具有4k上下文窗口大小的Llama2-7B,2GB更多这样的LLM上下文很快支配了LLM服务的内存使用。因此,如何正确管理跨应用程序的持久LLM上下文对于提高LLM服务质量变得至关重要。人们可以将LLM上下文内存视为应用程序内存的一部分,并重用移动内存管理器以统一的方式管理它们。然而,由于LLM上下文的独特特征,这种方法是低效的。

LLMS

        这项工作提出了第一个面向移动设备上的LLMaaS的系统,名为LLMS,它将LLM上下文的内存管理从应用程序中分离出来。LLMS的目标是在紧张的内存预算下最小化LLM上下文切换开销,类似于专注于减少应用冷启动延迟的传统移动内存机制。为了缓解有限的设备内存,LLMS推出了新的技术,对细粒度,分块,全局优化千伏缓存压缩和交换。LLMS将KV缓存拆分为一系列区块,即覆盖相同数量令牌的内存块(一个令牌中的所有层)。每个块都被独立地压缩和换出/换入。实际上,基于系统和LLM的配置,例如16个令牌,根据经验确定块大小。类似于操作系统的分页机制,我们观察到分块的想法在设备内存和I/O带宽的利用之间取得了良好的平衡,并且优于令牌级或上下文级管理。

        分块充分利用KV缓存的独特特性来优化上下文切换。

(1)KV缓存容易被分块。其布局在令牌维度上增长,该维度可以以灵活的粒度划分为块。

(2)KV缓存对压缩的容忍度不均衡。KV缓存的一部分可以更积极地压缩。区块级压缩可以最大限度地发挥KV缓存的压缩潜力。

(3)KV缓存可以重新计算。作为LLM的中间激活,KV缓存可以从提示文本中重新计算,以将其恢复到内存中。通过在区块中管理KV缓存,在上下文切换期间,需要从磁盘加载的区块可以通过重新计算和I/O同时恢复到内存中,从而充分利用硬件。

为了充分探索块级内存管理的设计空间,LLMS采用了三种新颖的技术。

(1)容差感知压缩。LLMS使用数据块的信息密度作为衡量标准来量化其压缩容忍度。它根据注意力分数来计算信息密度,注意力分数表示令牌之间的注意力水平。其基本原理是,吸引其他令牌更多“注意力”的令牌更有可能提供信息。然后,LLMS会明智地确定每个区块的压缩率,以最大限度地提高上下文的整体信息密度,同时满足操作系统配置的全局平均压缩率。

(2)交换-重新计算管道。LLMS从原始文本重新计算块,并通过管道将计算时间与其他块的I/O时间重叠。

然而,块可以独立交换,而LLM的连续位置编码和因果掩码不能处理交叉块的重新计算。因此,LLMS设计了编码/掩码来动态适应交错的块。

(3)组块生命周期管理。LLMS设计的KV缓存块的生命周期对上下文切换更友好。关于要换出哪个块,它采用一个最近使用的最小压缩可容忍队列来确定驱逐优先级。其基本原理是,将大量和最近最少使用的块交换到磁盘可以更好地利用块的时间局部性和LLMS的交换计算管道。关于何时换出,它采用提前换出的方法来隐藏上下文切换期间回收内存的时间。

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是饿梦啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值