- En exécutant le modèle
deepseek_r1_distill_llama_8b_q40sur 4 Raspberry Pi 5 8GB avec distributed-llama v0.12.2, les vitesses d’évaluation et de génération se sont révélées supérieures à celles d’une configuration à 2 nœuds - La configuration à 2 nœuds a enregistré Evaluation 7.70 tok/s et Prediction 3.54 tok/s, tandis que la configuration à 4 nœuds a atteint Evaluation 11.68 tok/s et Prediction 6.43 tok/s
- Le log Prediction de la configuration à 4 nœuds affiche environ 155.60 ms par token, contre environ 282.22 ms par token pour la configuration à 2 nœuds, ce qui met en évidence la différence de vitesse de traitement du même modèle avec un nombre de nœuds plus élevé
- Un autre utilisateur a partagé des résultats sur 8 nœuds avec la v0.12.7, un réseau 2.5G LAN et une configuration basée sur d’anciens CPU Intel, avec Evaluation 33.64 tok/s et Prediction 16.63 tok/s
- Pour les cas où le processus s’arrête faute de mémoire sur 2 Raspberry Pi 5 8GB, une réponse indique qu’il faut réduire la taille du contexte avec
--max-seq-len 4096
Résultats d’exécution sur une configuration Raspberry Pi 5 8GB
- Le modèle testé est
deepseek_r1_distill_llama_8b_q40, et la version de distributed-llama est 0.12.2 - La comparaison porte sur les configurations 2 x Raspberry Pi 5 8GB et 4 x Raspberry Pi 5 8GB
| Configuration | Evaluation | Prediction |
|---|---|---|
| 2 x Raspberry Pi 5 8GB | 7.70 tok/s | 3.54 tok/s |
| 4 x Raspberry Pi 5 8GB | 11.68 tok/s | 6.43 tok/s |
Valeurs de log pour la configuration à 2 nœuds
- La configuration 2 x Raspberry Pi 5 8GB a enregistré les valeurs suivantes en Evaluation
nBatches: 32nTokens: 19tokens/s: 7.70129.89 ms/tok
- En Prediction, elle a enregistré les valeurs suivantes
nTokens: 77tokens/s: 3.54282.22 ms/tok
- À la fin de l’exécution, le log affiche Network is closed
Valeurs de log pour la configuration à 4 nœuds
- La configuration 4 x Raspberry Pi 5 8GB a enregistré les valeurs suivantes en Evaluation
nBatches: 32nTokens: 19tokens/s: 11.6885.63 ms/tok
- En Prediction, elle a enregistré les valeurs suivantes
nTokens: 77tokens/s: 6.43155.60 ms/tok
- Le log affiche de manière répétée, pendant la génération des tokens, des envois de
864 kBet des réceptions de1191 kB
Résultats sur 8 nœuds d’un autre utilisateur
- Un utilisateur a partagé le résultat obtenu avec 8 nœuds sur distributed-llama v0.12.7
- Principalement d’anciens CPU Intel, en configuration 4 cœurs ou 6 cœurs
- Prise en charge d’AVX2
- Connexion 2.5G LAN
- Les résultats d’exécution de cette configuration sont les suivants
- Evaluation:
33.64 tok/s,29.73 ms/tok - Prediction:
16.63 tok/s,60.13 ms/tok - Le nombre de tokens en Prediction est de
245
- Evaluation:
- La commande utilisée suit la forme
./dllama inferenceavec le modèle, le tokenizer,--buffer-float-type q80,--nthreads 6,--max-seq-len 4096, plusieurs--workerset--steps 256
Problèmes d’exécution et réponses
- Un cas a été partagé où, sur une configuration de 2 Raspberry Pi 5 8GB, l’exécution s’est terminée par
Killedaprès l’affichage de RequiredMemory: 20474 MB- La commande du nœud racine incluait
--buffer-float-type q80,--steps 16,--nthreads 4et une adresse worker - La réponse indique qu’il faut réduire la taille du contexte avec
--max-seq-len 4096
- La commande du nœud racine incluait
- Un autre utilisateur a signalé qu’après connexion à plusieurs workers, le prompt
what is 99+12ne produisait que des espaces et des points- Le log affiche
RopeScaling: f=8.0, l=1.0, h=4.0, o=8192,RequiredMemory: 3310 MB,Chat template: deepSeek3 - L’administrateur a demandé quelle version était utilisée, si les derniers changements avaient bien été récupérés avec pull, et sur quel CPU l’exécution avait lieu
- Le log affiche
1 commentaires
Avis sur Hacker News
Les annonces disant qu’on fait tourner Deepseek R1 sur Raspberry Pi suivent globalement toujours le même schéma : en pratique, on exécute plutôt un Llama ou Qwen modifié via la technique de distillation de DeepSeek
DeepSeek pousse les grands modèles de langage distillés à interrompre leur sortie avec « Wait. » pour les amener à faire un peu de raisonnement, mais cela reste bien plus faible que la capacité de raisonnement du modèle complet, et au lieu de faire progresser leur conclusion avec de nouvelles nuances, ils peuvent tomber dans une boucle de doute de soi où ils répètent indéfiniment « Wait. »
Cela dit, la section Distilled Model Evaluation[1] du dépôt officiel de R1 montre que DeepSeek-R1-Distill-Llama-8B s’en sort plutôt bien, et dépasse même 4o-0513 et Sonnet-1022 sur certains benchmarks
Il faut aussi se rappeler qu’il peut y avoir un échantillonnage depuis une grammaire formelle.
llama.cppa GBNF, et il y a maintenant aussi un réglage de lazy grammar[2], ce qui l’a rendu assez utilisable pour certains cas d’usage. Cela signifie que la grammaire intervient ensuiteEn plus, il reste une marge pour du fine-tuning supplémentaire. Plusieurs entreprises proposent désormais des services de « RFT », qui consistent à enrichir un dataset classique de fine-tuning supervisé avec des données de raisonnement synthétiques générées par un grand R1. Donc ce résultat préliminaire peut avoir bien plus de valeur qu’il n’y paraît
Un décodage à 6 tok/s n’est pas rapide, mais les utilisateurs de Raspberry Pi s’en soucient rarement vraiment
[1] https://github.com/deepseek-ai/DeepSeek-R1#distilled-model-e...
[2] https://github.com/ggerganov/llama.cpp/pull/9639
Que veut dire le fait que R1 entraîne un modèle Llama, et qu’a de particulier la méthode de distillation de DeepSeek ?
Un vrai modèle « distillé » devrait être entraîné dès le départ à imiter complètement le plus grand modèle, ce qui n’est pas ce qui se passe ici
Comme toujours, les chiffres de tok/s sont à prendre avec énormément de recul
Dans la démo, on « résout » une question de moins de 500 tokens. Le simple fait que ce soit possible reste impressionnant, mais sur de vrais problèmes et avec une longueur de contexte réellement utile pour un modèle « pensant », c’est-à-dire 8 à 16k tokens, on est loin d’atteindre cette vitesse. Même un Epyc avec beaucoup de canaux tombe à 2–4 tok/s une fois la longueur de contexte passée autour de 4096
pos=0 => P 138 ms S 864 kB R 1191 kB Connect
pos=2000 => P 215 ms S 864 kB R 1191 kB .
pos=4000 => P 256 ms S 864 kB R 1191 kB manager
pos=6000 => P 335 ms S 864 kB R 1191 kB the
Même si le modèle n’aide qu’un peu, cela peut déjà les rendre bien plus capables qu’aujourd’hui
Ce n’est pas un mauvais résultat, mais si on va dépenser 320 £ pour quatre Pi 5, on peut trouver une 3080 12 Go d’occasion, et la vitesse en tokens sera probablement au moins 10 fois supérieure
https://github.com/geerlingguy/ollama-benchmark?tab=readme-o...
Ce qui est intéressant ici, c’est qu’on peut exécuter l’inférence de Llama de façon distribuée sur plusieurs ordinateurs
Est-ce qu’on ne pourrait pas, comme avec Seti@HOME, connecter des outils à un modèle R1 complet lent mais réparti à l’échelle mondiale, pour lui faire raisonner publiquement sur des tâches profondes et complexes ?
C’est une version moderne d’un cluster Beowulf
En mettant un peu plus d’argent que pour quatre Pi 5, on peut trouver sur eBay un serveur Dell 1U avec un CPU Epyc 32 cœurs et 64 Go de mémoire, avec des performances au minimum d’un ordre de grandeur supérieur
Si on veut vraiment parler de cluster Beowulf dans un homelab, il faudrait au moins faire tourner des nœuds de calcul avec un réseau FDR Infiniband très bon marché, et une configuration du type Slurm+Lustre ou k8s+OpenStack+Ceph. Ce genre de montage avec quatre nœuds lents qui n’atteint même pas une mise à l’échelle linéaire, c’est difficile à défendre
Je n’ai pas vu ni compris comment plusieurs Raspberry Pi étaient utilisés en parallèle
Quelqu’un pourrait indiquer la direction à suivre
Quand pourra-t-on installer ces super nouveaux outils d’IA avec
apt-get install?brew install ollamapeut être un bon point de départollama pulls’en approche déjà pas malapt-get, mais la plupart des composants d’infrastructure rangés sous « outils d’IA » peuvent être installés avecconda installqui enregistre les conversations et facilite le téléchargement des modèles
Si vous voulez tester ce modèle sur Mac, le modèle utilisé semble proche de DeepSeek-R1-Distill-Llama-8B, et vous pouvez l’exécuter avec le nouveau plugin llm-mlx
brew install llm # or pipx install llm or uv tool install llmllm install llm-mlxllm mlx download-model mlx-community/DeepSeek-R1-Distill-Llama-8Bllm -m mlx-community/DeepSeek-R1-Distill-Llama-8B 'poem about an otter'Les performances sont aussi plutôt bonnes : quand je viens de l’exécuter, j’ai obtenu 22 tokens/seconde : https://gist.github.com/simonw/dada46d027602d6e46ba9e4f48477...
Est-ce qu’ajouter de la mémoire aiderait ? Une version du RPi 5 avec 16GB RAM est sortie récemment
Tant que le modèle tient en mémoire, c’est la bande passante mémoire qui détermine le comportement réel
Un modèle Q4 de 8B paramètres devrait tenir sur un Pi 8GB
J’ai réussi à en acheter un quand Adafruit a reçu du stock récemment, mais il a de nouveau été épuisé presque immédiatement
Cela dit, indépendamment des performances, certains modèles demandent plus de 8GB rien que pour s’exécuter, donc Ollama ne peut tout simplement pas les faire tourner
Il faudrait un produit du genre Alexa ou Google Home
sauf qu’au lieu d’être connecté au cloud, il devrait exécuter un grand modèle de langage en local. Je ne sais pas pourquoi ça n’existe pas encore ou pourquoi personne n’en fabrique
Les bons grands modèles de langage coûtent cher, donc la vraie question est de savoir s’il est possible de proposer un modèle assez utile pour que les gens l’achètent, tout en restant assez bon marché pour conserver une marge
Je ne sais pas si l’usage d’outils fonctionne, mais on peut au moins exposer des choses qu’on voudrait demander, comme la météo