PRIMA.CPP:加速低资源日常家庭集群上700亿参数规模LLM的推理

发表
LIKirinLIKirin 提交
作者: LIKirinZonghang Li, TaoLiTao Li, Wenjiao FengWenjiao Feng, Mohsen Guizani, Hongfang Yu

摘要

DeepSeek R1 和 QwQ 32B 的出现突破了在家用设备上运行前沿大型语言模型 (LLM) 的性能障碍。虽然消费级硬件越来越强大,模型量化也在不断改进,但现有的终端侧解决方案仍然需要 GPU 集群、大型 RAM/VRAM 和高带宽,远远超出普通家用集群的处理能力。本文介绍了 prima.cpp,这是一个分布式推理系统,它使用 CPU/GPU、低 RAM/VRAM、Wi-Fi 和跨平台支持,在日常家用设备上运行 70B 规模的模型。它使用 mmap 来管理模型权重,并引入了带有预取的管道环形并行性来隐藏磁盘加载。通过对计算、通信、磁盘、内存(及其管理行为)和操作系统的异构性进行建模,它可以最佳地将模型层分配给每个设备的 CPU 和 GPU,从而进一步减少令牌延迟。提出了一种名为 Halda 的优雅算法来解决这个 NP-hard 分配问题。我们在一个常见的四节点家用集群上评估了 prima.cpp。在 30B+ 模型上,它的性能优于 llama.cpp、exo 和 dllama,同时保持内存压力低于 6%。这使 Llama 3、DeepSeek R1、Qwen 2.5 和 QwQ 等前沿 30B-70B 模型能够应用于家庭助手,使先进的 AI 真正为个人所用。代码是开源的,可在 https://github.com/Lizonghang/prima.cpp 获取。
查看 arXiv 页面查看 PDF

评论

LIKirinLIKirin
论文作者
论文提交者

prima.cpp 是 llama.cpp 的分布式实现,可让您在日常设备上运行 70B 级别的 LLM——💻 笔记本电脑、🖥️ 台式机、📱 手机和平板电脑(GPU 或无 GPU,都很好)。有了它,您可以直接从本地家庭集群运行 QwQ-32B、Qwen 2.5-72B、Llama 3-70B 或 DeepSeek R1 70B!

担心 OOM 或设备卡顿?再也不会了!prima.cpp 将其内存压力保持在 10% 以下,您可以运行非常大的模型,同时享受 Tiktok(如果您不介意推理速度)。

速度如何?基于 llama.cpp 构建,但速度快了 15 倍!🚀 在较差的设备上,QwQ-32B 每秒生成 11 个 tokens,而 Llama 3-70B 每秒生成 1.5 个 tokens。这与有声读物应用程序的速度大致相同,从慢速到快速说话。然后,您可以进行私密聊天,而无需担心隐私问题。

如果您的设备更强大,您可以解锁更多可能性,例如直接在家中运行 LLM 代理!

LIKirinLIKirin
论文作者
论文提交者

主要特点:

  • 异构、低资源、跨平台集群(例如,通过 Wi-Fi 连接的家用设备)

  • 量化(Q4K 和 IQ1)

  • 混合 CPU/GPU 计算

  • 磁盘卸载

  • 带有预取的管道环形并行

  • 自动工作负载分配

Nitish PandeyNitish Pandey
此评论已隐藏。
Angelino SantiagoAngelino Santiago

等等,你是说我可以在我的 16GB 内存和 8GB 显存上以合理的速度运行 70B 模型?在 Vulkan 中也可以?哪里?怎么做?我想要! 🤗😳

LIKirinLIKirin
论文作者
论文提交者

如果只有一个设备,只需使用 llama.cpp 或 vllm,但速度会非常慢。但是如果你能邀请你的朋友加入你的集群,prima.cpp 会有所帮助。

现在 prima.cpp 仅支持基于 CUDA 的 GPU。Vulkan 已在我们的路线图中。

ArmirArmir

> Vulkan 已在我们的路线图中。

Vulkan 是每个人在家中运行 LLM 而无需 Nvidia 显卡的途径 :D 很高兴看到这一点 :D