ChatPaper.aiChatPaper

PRIMA.CPP : Accélération de l'inférence de modèles de langage à 70 milliards de paramètres sur des clusters domestiques à ressources limitées

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

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

Résumé

L'émergence de DeepSeek R1 et QwQ 32B a permis de franchir les barrières de performance pour exécuter des modèles de langage de pointe (LLMs) sur des appareils domestiques. Bien que le matériel grand public devienne plus puissant et que la quantification des modèles s'améliore, les solutions existantes côté utilisateur nécessitent toujours des clusters GPU, une grande quantité de RAM/VRAM et une bande passante élevée, bien au-delà de ce qu'un cluster domestique standard peut gérer. Cet article présente prima.cpp, un système d'inférence distribué qui exécute des modèles de l'échelle des 70B sur des appareils domestiques courants en utilisant un mélange de CPU/GPU, une faible quantité de RAM/VRAM, le Wi-Fi et un support multiplateforme. Il utilise mmap pour gérer les poids du modèle et introduit un parallélisme en anneau avec préchargement pour masquer le chargement depuis le disque. En modélisant l'hétérogénéité dans le calcul, la communication, le disque, la mémoire (et son comportement de gestion) ainsi que le système d'exploitation, il attribue de manière optimale les couches du modèle au CPU et au GPU de chaque appareil, réduisant ainsi davantage la latence des tokens. Un algorithme élégant nommé Halda est proposé pour résoudre ce problème d'affectation NP-difficile. Nous évaluons prima.cpp sur un cluster domestique standard à quatre nœuds. Il surpasse llama.cpp, exo et dllama sur des modèles de 30B+ tout en maintenant la pression mémoire en dessous de 6%. Cela rend accessibles les modèles de pointe de 30B à 70B, tels que Llama 3, DeepSeek R1, Qwen 2.5 et QwQ, aux assistants domestiques, rendant ainsi l'IA avancée véritablement accessible aux particuliers. Le code est open source et disponible à l'adresse 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