ChatPaper.aiChatPaper

PRIMA.CPP: Accelerazione dell'Inferenza di LLM su Scala 70B su Cluster Domestici a Basse Risorse

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

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

Abstract

L'emergenza di DeepSeek R1 e QwQ 32B ha superato le barriere di prestazioni per l'esecuzione di modelli linguistici di grandi dimensioni (LLM) all'avanguardia su dispositivi domestici. Sebbene l'hardware consumer stia diventando più potente e la quantizzazione dei modelli stia migliorando, le soluzioni esistenti lato client richiedono ancora cluster GPU, grandi quantità di RAM/VRAM e un'ampia larghezza di banda, ben al di là di ciò che un comune cluster domestico può gestire. Questo articolo introduce prima.cpp, un sistema di inferenza distribuito che esegue modelli di scala 70B su dispositivi domestici di uso quotidiano utilizzando una combinazione di CPU/GPU, bassa RAM/VRAM, Wi-Fi e supporto cross-platform. Utilizza mmap per gestire i pesi del modello e introduce il parallelismo a pipeline con prefetching per nascondere il caricamento da disco. Modellando l'eterogeneità in termini di calcolo, comunicazione, disco, memoria (e il suo comportamento di gestione) e sistema operativo, assegna in modo ottimale i livelli del modello alla CPU e alla GPU di ciascun dispositivo, riducendo ulteriormente la latenza dei token. Un elegante algoritmo chiamato Halda è proposto per risolvere questo problema di assegnazione NP-hard. Valutiamo prima.cpp su un comune cluster domestico a quattro nodi. Supera llama.cpp, exo e dllama su modelli 30B+ mantenendo la pressione sulla memoria al di sotto del 6%. Questo porta modelli all'avanguardia da 30B a 70B, come Llama 3, DeepSeek R1, Qwen 2.5 e QwQ, agli assistenti domestici, rendendo l'IA avanzata veramente accessibile agli individui. Il codice è open source e disponibile all'indirizzo 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

PDF1127April 15, 2025