Ejecutar TinyLlama en una placa de $10 con PicoLM – Una guía completa

Ejecutar TinyLlama en una placa de $10 con PicoLM – Una guía completa

La IA embarcada ya no es un lujo reservado para GPU o servidores en la nube. PicoLM, un motor de inferencia ligero y solo en C, te permite ejecutar un modelo completo de 1 billón de parámetros en un dispositivo de 256 MB como el Raspberry Pi Zero 2W o el LicheeRV Nano. Este tutorial recorre cada paso:

  1. ¿Por qué PicoLM? | TinyLlama 1.1B en formato GGUF, cero dependencias, binario <80 KB, RAM de ejecución ~45 MB.
  2. Requisitos de hardware – Raspberry Pi 5 (4‑núcleos), Pi 4, Pi 3 B+ o Pi Zero 2W; o una placa RISC‑V como LicheeRV.
  3. Construir e instalar – instalación de una línea para Pi/Linux y compilación completa de código fuente para Windows.
  4. Descargar el modelo – un solo archivo de 638 MB; mapea la memoria de pesos, sin copia RAM.
  5. Ejecutar una prueba rápida – ver el flujo de la solicitud‑respuesta.
  6. Rendimiento – gráficos de tokens‑por‑segundo, uso de RAM, y cómo ajustar los hilos.
  7. Integrar con PicoClaw – el asistente ultra ligero en Go que canaliza las solicitudes y lee la salida JSON.
  8. Opciones avanzadas – restricciones de gramática JSON, persistencia de caché KV, precisión mixta, uso offline sin GPU.
  9. FAQ y solución de problemas – errores comunes y consejos de depuración.
  10. Próximos pasos – extensión a Llama‑2, otros modelos LLaMA, añadir herramientas personalizadas.

1. ¿Por qué PicoLM?

Característica Beneficio
Implementación pura en C  No dependencias externas, detección automática de SIMD en tiempo de compilación
GGUF nativo  Lee pesos Q4_K_M directamente
Flash Attention  Memoria O(seq)
Cache KV en FP16  Reduce el tamaño de la caché de 88 MB a 44 MB
JSON con restricciones de gramática  Llamadas a herramientas fiables en modelos pequeños
Cross‑compilación para RISC‑V  Ejecuta en el LicheeRV Nano
Binario pequeño (~80 KB)  Despliega en cualquier lugar

Resultado – TinyLlama 1.1B corre en una placa ~ $10 con 256 MB de RAM y 45 MB de memoria de ejecución.

2. Requisitos de hardware

Placa RAM Costo Notas
Raspberry Pi 5 4‑núcleos 2 GB+ $60 Mayor rendimiento
Raspberry Pi 4 4‑núcleos 1 GB $35 Buen equilibrio
Raspberry Pi 3 B+ 512 MB $25 Todavía funciona
Raspberry Pi Zero 2W 512 MB $15 Ultra‑barato
LicheeRV Nano 512 MB $10 RISC‑V, SIMD similar a NEON

Deberás contar con una tarjeta SD de al menos 1 GB para el modelo y el tiempo de ejecución.

3. Construir e instalar

Instalador de una línea (Pi/Linux)

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

Este script: 1. Detecta tu arquitectura (ARM64, ARMv7, x86‑64). 2. Instala gcc, make y curl si faltan. 3. Compila PicoLM con las banderas SIMD óptimas. 4. Descarga el modelo TinyLlama 1.1B Q4_K_M. 5. Añade picolm a tu $PATH.

Compilación completa (multiplataforma)

git clone https://github.com/rightnow-ai/picolm.git
cd picolm/picolm
# Detecta automáticamente la CPU para construcción local
make native
# O cross‑compilación para Raspberry Pi desde un host x86
make cross-pi
# Compilación para RISC‑V
make riscv

Windows (MSVC)

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

4. Descargar el modelo

El objetivo por defecto make model trae TinyLlama 1.1B Chat (Q4_K_M) – 638 MB.

cd /opt/picolm
make model

Si prefieres otro GGUF, colócalo bajo ~/.picolm/models/ y actualiza la configuración más tarde.

5. Prueba rápida

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

Deberías ver una explicación corta y coherente. El tamaño del binario es de ~80 KB y el programa consume <45 MB de RAM.

6. Benchmarks de rendimiento

Dispositivo Costo Tokens/s RAM Notas
Pi 5 4‑núcleos $60 ~10 45 MB NEON de 4‑núcleos
Pi 4 4‑núcleos $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

Tip: Usa la bandera -j para aumentar el número de hilos (máx. 8 en Pi 5). En RISC‑V estás limitado al rendimiento de un solo hilo.

7. Integrar con PicoClaw

PicoClaw es un asistente ligero en Go que lanza PicoLM como subproceso. Configúralo para usar el binario compilado:

{
  \"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\"
    }
  }
}

Ejecutar:

picoclaw agent -m \"What is photosynthesis?\"

PicoClaw gestiona el protocolo, manteniendo el dispositivo sin conexión y mostrando la respuesta al instante.

8. Opciones avanzadas

Bandera Propósito
--json Fuerza salida JSON gramáticamente válida (esencial para llamadas a herramientas).
--cache file.kvc Persiste caché KV; omite relleno previo en prompts repetidos.
-t <float> Temperatura; poner 0 para salida greedy.
-k <float> Muestreo top‑p.
-s <int> Semilla RNG.
-c <int> Sobrescribe longitud de contexto (p.ej., 512 para dispositivos restringidos).

Ejemplo de prueba 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

Recibirás algo como {"name":"Alice","age":30}.

9. FAQ & solución de problemas

Q: Mi Pi se bloquea después de unos segundos. A: La tarjeta SD podría ser lenta; prueba una tarjeta UHS‑I de alta velocidad y activa caché de escritura (ddrescue).

Q: Obtengo un error “Out‑of‑memory”. A: Reduce -j o la longitud de contexto. En el Pi Zero, mantén el contexto en 512.

Q: Cuánto ocupa el modelo? A: 638 MB para TinyLlama 1.1B Q4_K_M. Otros modelos varían (Llama‑2 7B = 4.1 GB).

Q: ¿Se puede correr Llama‑2 7B? A: Sí, si tu dispositivo dispone de ~1.4 GB de RAM de ejecución para la caché KV. El Pi 4 con 4 GB funcionará, solo más lento.

10. Próximos pasos

  • Agregar herramientas personalizadas: PicoClaw puede llamar a binarios externos (por ej., solicitantes web) e insertar respuestas en JSON.
  • Soporte para más modelos: Cualquier arquitectura LLaMA‑GGUF funciona; descárgala de Hugging Face y actualiza la configuración.
  • Mejorar velocidad: Núcleos AVX2 o AVX‑512 para CPUs de escritorio, decodificación especulativa, o kernels SIMD más grandes.
  • Empaquetado Edge AI: Empaqueta PicoLM en una imagen de aplicación para Raspberry Pi OS o Alpine Linux.

Conclusión

PicoLM demuestra que un LLM de 1 billón de parámetros puede correr en una placa de $10 con 256 MB de RAM sin GPU, nube ni acceso a Internet. Con una instalación de 2 minutos, un binario de 80 KB y una huella de RAM de 45 MB, es la opción local más barata que encontrarás. Ya seas un aficionado a IoT, un defensor de la privacidad o un desarrollador que empuja los límites de la inferencia en el borde, PicoLM te ofrece una solución LLM totalmente offline, de código abierto y altamente optimizada.

Artículo original: Ver original

Compartir este artículo