ChatPaper.aiChatPaper

PRIMA.CPP: Aceleración de la inferencia de modelos de lenguaje a escala de 70B en clústeres domésticos de bajos recursos

PRIMA.CPP: Speeding Up 70B-Scale LLM Inference on Low-Resource Everyday Home Clusters

April 7, 2025
Autores: Zonghang Li, Tao Li, Wenjiao Feng, Mohsen Guizani, Hongfang Yu
cs.AI

Resumen

La emergencia de DeepSeek R1 y QwQ 32B ha superado las barreras de rendimiento para ejecutar modelos de lenguaje grandes (LLMs) de vanguardia en dispositivos domésticos. Aunque el hardware de consumo se está volviendo más potente y la cuantización de modelos está mejorando, las soluciones existentes para dispositivos finales aún requieren clústeres de GPU, grandes cantidades de RAM/VRAM y un ancho de banda elevado, muy por encima de lo que un clúster doméstico común puede manejar. Este artículo presenta prima.cpp, un sistema de inferencia distribuida que ejecuta modelos de escala 70B en dispositivos domésticos cotidianos utilizando una combinación de CPU/GPU, baja RAM/VRAM, Wi-Fi y soporte multiplataforma. Utiliza mmap para gestionar los pesos del modelo e introduce un paralelismo en anillo con prefetching para ocultar la carga desde el disco. Al modelar la heterogeneidad en computación, comunicación, disco, memoria (y su comportamiento de gestión) y el sistema operativo, asigna óptimamente las capas del modelo a la CPU y GPU de cada dispositivo, reduciendo aún más la latencia por token. Se propone un algoritmo elegante llamado Halda para resolver este problema de asignación NP-hard. Evaluamos prima.cpp en un clúster doméstico común de cuatro nodos. Supera a llama.cpp, exo y dllama en modelos de 30B+ mientras mantiene la presión de memoria por debajo del 6%. Esto lleva modelos de vanguardia de 30B-70B, como Llama 3, DeepSeek R1, Qwen 2.5 y QwQ, a asistentes domésticos, haciendo que la IA avanzada sea verdaderamente accesible para individuos. El código es de código abierto y está disponible en https://github.com/Lizonghang/prima.cpp.
English
Emergency of DeepSeek R1 and QwQ 32B have broken through performance barriers for running frontier large language models (LLMs) on home devices. While consumer hardware is getting stronger and model quantization is improving, existing end-side solutions still demand GPU clusters, large RAM/VRAM, and high bandwidth, far beyond what a common home cluster can handle. This paper introduces prima.cpp, a distributed inference system that runs 70B-scale models on everyday home devices using a mix of CPU/GPU, low RAM/VRAM, Wi-Fi, and cross-platform support. It uses mmap to manage model weights and introduces piped-ring parallelism with prefetching to hide disk loading. By modeling heterogeneity in computation, communication, disk, memory (and its management behavior), and OS, it optimally assigns model layers to each device's CPU and GPU, further reducing token latency. An elegant algorithm named Halda is proposed to solve this NP-hard assignment problem. We evaluate prima.cpp on a common four-node home cluster. It outperforms llama.cpp, exo, and dllama on 30B+ models while keeping memory pressure below 6%. This brings frontier 30B-70B models, such as Llama 3, DeepSeek R1, Qwen 2.5, and QwQ to home assistants, making advanced AI truly accessible to individuals. The code is open source and available at https://github.com/Lizonghang/prima.cpp.

Summary

AI-Generated Summary

PDF1267April 15, 2025