部署大语言模型(LLMs)到移动设备的需求日益增长,这一趋势主要由隐私保护、降低延迟以及高效带宽使用的需求驱动。然而,LLM的庞大内存需求和计算要求构成了巨大挑战。为应对这一挑战,LinguaLinked应运而生。这个由加州大学欧文分校的一组研究人员开发的新系统,旨在通过分布式推理,将LLM推理过程分布在多个移动设备上,利用它们的集体能力高效地执行复杂任务。
挑战
在移动设备上部署如GPT-3或BLOOM之类的大语言模型面临以下挑战:
- 内存限制:LLM需要大量内存,往往超出单个移动设备的容量。
- 计算能力限制:移动设备通常计算能力有限,难以运行大型模型。
- 隐私问题:将数据发送到中央服务器进行处理可能引发隐私问题。
LinguaLinked 的解决方案
LinguaLinked通过以下三个关键策略应对这些挑战:
- 优化模型分配:
- 系统通过线性优化将LLM分割成较小的子图,并将每个子图匹配到设备的能力。
- 这确保了资源的高效使用,并减少了设备间的数据传输。
- 运行时负载平衡:
- LinguaLinked实时监控设备性能,并重新分配任务以防止瓶颈。
- 这种动态方法确保了所有可用资源的高效利用,提高了整体系统的响应速度。
- 优化通信:
- 高效的数据传输图指导设备间信息流动,保持模型的结构完整性。
- 这种方法减少了延迟,确保了移动设备网络中的数据处理及时性。
单个大语言模型(LLM)被分成不同的部分(或片段),并分布在多个移动设备上。此方法使每个设备仅处理总计算和存储需求的一部分,使得即使资源有限的设备也能运行复杂的模型。以下是其工作原理的简要概述:
模型分割与分布
- 模型分割:
- 大语言模型被转换为一个计算图,其中网络中的每个操作都表示为一个节点。
- 然后将此图划分为较小的子图,每个子图都能独立运行。
- 优化模型分配:
- 通过线性优化,这些子 图(或模型片段)被分配到不同的移动设备。
- 分配时考虑了每个设备的计算和内存能力,确保了资源的高效利用,并最小化了设备之间的数据传输开销。
- 协作推理执行:
- 每个移动设备处理其分配的模型片段。
- 设备之间相互通信以根据需要交换中间结果,确保整个推理任务正确完成。
- 采用优化的通信策略,保持原始模型结构的完整性,确保数据流的高效性。
示例场景
设想将一个大语言模型如GPT-3分割成若干部分。一个移动设备可能处理模型的初始token嵌入和前几层,而另一个设备处理中间层,第三个设备完成最后的层并生成输出。在整个过程中,设备间共享中间输出,确保完整的模型推理无缝执行。
性能与结果
LinguaLinked通过在各种高端和低端Android设备上的广泛测试展示了其效果。主要发现包括:
- 推理速度:与基线相比,LinguaLinked在单线程环境中加速了推理性能1.11倍至1.61倍,在多线程环境中加速1.73倍至2.65倍。
- 负载平衡:系统的运行时负载平衡进一步提升了性能,整体加速达1.29倍至1.32倍。
- 可扩展性:较大的模型显著受益于LinguaLinked的优化模型分配,展示了其处理复杂任务的可扩展性和有效性。