Exécuter TinyLlama sur une carte à 10 $ avec PicoLM – Tutoriel complet

Exécuter TinyLlama sur une carte à 10 $ avec PicoLM – Tutoriel complet

L’IA embarquée n’est plus un luxe réservé aux GPU ou aux serveurs cloud. PicoLM, un moteur d’inférence léger en C uniquement, vous permet d’exécuter un modèle complet de 1 milliard de paramètres sur un appareil de 256 MB comme le Raspberry Pi Zero 2W ou le LicheeRV Nano. Ce tutoriel passe en revue chaque étape :

  1. Pourquoi PicoLM ? | TinyLlama 1.1B au format GGUF, sans dépendances, binaire de moins de 80 KB, ~45 MB de RAM d’exécution.
  2. Prérequis matériels – Raspberry Pi 5 (4 cœurs), Pi 4, Pi 3 B+ ou Pi Zero 2W ; ou une carte RISC‑V telle que le LicheeRV.
  3. Build‑et‑installation – ligne de commande unique pour Pi/Linux, compilation complète pour Windows.
  4. Télécharger le modèle – un fichier unique de 638 MB ; mapper en mémoire les poids, pas de copie en RAM.
  5. Effectuer un test rapide – voir le pipeline prompt‑réponse.
  6. Performance – graphiques de tokens par seconde, utilisation de la RAM, et comment ajuster les threads.
  7. Intégrer avec PicoClaw – l’assistant Go ultra‑léger qui transmet les invites et lit le JSON de sortie.
  8. Options avancées – contraintes de grammaire JSON, persistance du cache KV, précision mixte, utilisation offline sans GPU.
  9. FAQ & dépannage – pièges courants et conseils de débogage.
  10. Étapes suivantes – étendre à Llama‑2, d’autres modèles LLaMA, ajouter des outils personnalisés.

1. Pourquoi PicoLM ?

Fonctionnalité Avantage
Implémentation pure C Pas de bibliothèques externes, détection SIMD au moment de la compilation
Native GGUF Lit les poids Q4_K_M directement
Flash Attention Empreinte mémoire O(seq)
Cache KV FP16 Réduit la taille du cache de 88 MB à 44 MB
JSON contraint par grammaire Appel d’outil fiable dans les petits modèles
Cross‑compilation pour RISC‑V Exécuter sur le LicheeRV Nano
Binaire très léger (~80 KB) Déployer partout

Résultat – TinyLlama 1.1B fonctionne sur une carte à ~10 $ avec 256 MB de RAM et 45 MB de mémoire d’exécution.

2. Prérequis matériels

Carte RAM Coût Remarques
Raspberry Pi 5 4 cœurs 2 GB+ $60 Meilleure performance
Raspberry Pi 4 4 cœurs 1 GB $35 Bon compromis
Raspberry Pi 3 B+ 512 MB $25 Toujours fonctionnel
Raspberry Pi Zero 2W 512 MB $15 Ultra‑bon marché
LicheeRV Nano 512 MB $10 RISC‑V, SIMD similaire à NEON

Vous aurez besoin d’une carte SD d’au moins 1 GB d’espace de stockage pour le modèle et l’exécution.

3. Build & install

Installer en une ligne (Pi/Linux)

curl -sSL https://raw.githubusercontent.com/RightNow-AI/picolm/main/install.sh | bash

Ce script : 1. Détecte votre architecture (ARM64, ARMv7, x86‑64). 2. Installe gcc, make, et curl si absent. 3. Compile PicoLM avec les drapeaux SIMD optimaux. 4. Télécharge le modèle TinyLlama 1.1B Q4_K_M. 5. Ajoute picolm à votre $PATH.

Build complet (multiplateforme)

git clone https://github.com/rightnow-ai/picolm.git
cd picolm/picolm
# Détection automatique du CPU pour une build native
make native
# ou cross‑compilation pour Raspberry Pi depuis un hôte x86
make cross-pi
# Build pour RISC‑V
make riscv

Windows (MSVC)

cd picolm
build.bat
picolm.exe model.gguf -p "Hello" -n 20

4. Télécharger le modèle

La cible par défaut make model récupère TinyLlama 1.1B Chat (Q4_K_M) – 638 MB.

cd /opt/picolm
make model

Si vous préférez un autre GGUF, placez‑le sous ~/.picolm/models/ et mettez à jour la configuration plus tard.

5. Test rapide

./picolm /opt/picolm/models/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf -p "Explain gravity in one sentence" -n 30

Vous devriez voir une explication courte et cohérente. La taille du binaire est d’environ 80 KB et le programme consomme <45 MB de RAM.

6. Benchmarks de performance

Dispositif Coût Tokens/s RAM Remarques
Pi 5 4 cœurs $60 ~10 45 MB NEON 4 cœurs
Pi 4 4 cœurs $35 ~8 45 MB NEON
Pi 3 B+ $25 ~4 45 MB NEON
Pi Zero 2W $15 ~2 45 MB ARMv7
LicheeRV Nano $10 ~1 45 MB SIMD RISC‑V

Astuce : utilisez le drapeau -j pour augmenter le nombre de threads (max 8 sur Pi 5). Sur RISC‑V, vous êtes limité aux performances mono‑thread.

7. Intégrer avec PicoClaw

PicoClaw est un assistant Go léger qui lance PicoLM en sous‑processus. Configurez‑le pour utiliser le binaire compilé :

{
  "agents": {
    "defaults": {"provider": "picolm", "model": "picolm-local"}
  },
  "providers": {
    "picolm": {
      "binary": "~/.picolm/bin/picolm",
      "model": "~/.picolm/models/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf",
      "max_tokens": 256,
      "threads": 4,
      "template": "chatml"
    }
  }
}

Exécutez :

picoclaw agent -m "What is photosynthesis?"

PicoClaw gère le protocole, votre appareil reste hors ligne, et la réponse apparaît instantanément.

8. Options avancées

Option Utilité
--json Force la sortie JSON grammaticalement valide (essentiel pour l’appel d’outil).
--cache file.kvc Persiste le cache KV ; saute le pré‑remplissage sur invites répétées.
-t <float> Température ; mettre à 0 pour sortie gourmande.
-k <float> Noyau d’échantillonnage Top‑p.
-s <int> Graine RNG.
-c <int> Remplace la longueur de contexte (ex. 512 pour appareils contraints).

Exemple de test JSON

./picolm /opt/picolm/models/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf --json -p "Return JSON with name and age" -n 40 -t 0.3

Vous recevrez quelque chose comme {"name":"Alice","age":30}.

9. FAQ & dépannage

Q : Mon Pi s’arrête après quelques secondes. A : La carte SD peut être lente ; essayez une carte UHS‑I haute vitesse et activez le cache d’écriture (ddrescue).

Q : Je reçois une erreur « Out‑of‑memory ». A : Réduisez -j ou la longueur du contexte. Pour le Pi Zero, gardez le contexte à 512.

Q : Combien d’espace de stockage le modèle occupe‑t‑il ? A : 638 MB pour TinyLlama 1.1B Q4_K_M. D’autres modèles varient (Llama‑2 7B = 4,1 GB).

Q : Cela peut‑il exécuter Llama‑2 7B ? A : Oui, si votre appareil dispose d’environ 1,4 GB de RAM d’exécution pour le cache KV. Le Pi 4 avec 4 GB fonctionnera, mais plus lentement.

10. Étapes suivantes

  • Ajouter des outils personnalisés : PicoClaw peut appeler des binaires externes (ex. requêtes Web) et intégrer les réponses dans JSON.
  • Supporter plus de modèles : tout modèle GGUF LLaMA‑architecture fonctionne ; téléchargez depuis Hugging Face et mettez à jour la configuration.
  • Améliorer la vitesse : noyaux AVX2 ou AVX‑512 pour CPUs de bureau, décodage spéculatif, ou noyaux SIMD plus gros.
  • Emballage AI embarqué : embarquez PicoLM dans une image d’application pour Raspberry Pi OS ou Alpine Linux.

En résumé

PicoLM démontre qu’un LLM d’un milliard de paramètres peut tourner sur une carte à 10 $ avec 256 MB de RAM sans GPU, cloud ou accès Internet. Avec une installation de 2 minutes, un binaire de 80 KB et une empreinte de 45 MB de RAM, c’est le LLM local le moins cher que vous trouverez. Que vous soyez un bricoleur IoT, un défenseur de la vie privée ou un développeur repoussant les limites de l’inférence en bordure, PicoLM vous offre une solution LLM entièrement hors ligne, open‑source et hautement optimisée.

Original Article: Voir l’original

Partager cet article