3 min de lectura

Un LLM de 28,9 millones de parámetros funciona en un chip de 8 dólares

Un modelo de lenguaje de 28,9 millones de parámetros se ejecuta localmente en un ESP32-S3 de 8 dólares a aproximadamente 9 tokens por segundo usando incrustaciones basadas en flash.

Imagen: Hacker News

Un modelo de lenguaje de 28,9 millones de parámetros ahora se ejecuta íntegramente en un ESP32-S3, un microcontrolador que cuesta alrededor de 8 dólares. El proyecto genera texto a aproximadamente 9 tokens por segundo, escribiendo cada token en una pequeña pantalla conectada al chip —sin enviar datos a un servidor.

El ESP32-S3 ofrece solo 512 KB de SRAM, además de 8 MB de PSRAM y 16 MB de flash. Aun así, el modelo ocupa 14,9 MB con precisión de 4 bits, con alrededor de 25 millones de parámetros almacenados en una tabla de consulta basada en flash.

Cómo cabe el modelo en el ESP32-S3

La técnica central proviene de las Incrustaciones por Capa (Per-Layer Embeddings) de Google, usadas en los modelos Gemma. En lugar de mantener todo el modelo en memoria rápida, el proyecto almacena la mayoría de los parámetros en la flash más lenta y lee solo las pocas filas necesarias para cada token —aproximadamente 450 bytes, o más o menos seis filas.

Eso deja la porción más pequeña, pero intensiva en cómputo, en la SRAM rápida. La distribución de memoria se divide de la siguiente manera:

Recomendado

GenStorAIGE afirma que los SSD hacen que ocho RTX 5090 funcionen como 46

  • SRAM: el núcleo «pensante» usado para cada token
  • PSRAM: la cabeza de salida y la memoria de trabajo
  • Flash: la tabla de 25 millones de parámetros

El resultado es una velocidad medida de 9,5 tokens por segundo de extremo a extremo, o 9,7 tokens por segundo para el cómputo puro. El autor del proyecto dice que este es el primer intento conocido de aplicar el enfoque a un chip tan pequeño.

Un modelo de lenguaje anterior ejecutado en hardware comparable tenía solo 260.000 parámetros, lo que hace que este modelo sea aproximadamente cien veces mayor por número de parámetros. La tabla en flash hace posible ese aumento porque la mayor parte del modelo nunca se carga en la memoria rápida a la vez.

Lo que el modelo puede —y no puede— hacer

El modelo fue entrenado con TinyStories, un conjunto de datos de relatos sintéticos cortos creado por Ronen Eldan y Yuanzhi Li en Microsoft Research. Puede producir narrativas breves y, en general, coherentes, pero no puede responder preguntas, seguir instrucciones, escribir código ni proporcionar conocimientos factuales.

Esas limitaciones provienen del componente de razonamiento pequeño del modelo. La arquitectura que ahorra memoria permite un mayor número de parámetros, pero no convierte al modelo en un asistente de propósito general. La importancia del proyecto es, principalmente, arquitectónica: demuestra que un modelo de lenguaje relativamente grande puede ejecutarse localmente en un microcontrolador diminuto.

El repositorio incluye el firmware, las instrucciones de cableado y los pasos de flasheo en firmware/esp32_llm/README.md. El código de entrenamiento, ablación y cuantización está disponible en src/ y experiments/, mientras que RESULTS.md documenta el método y las mediciones en el chip.

El proyecto también preserva su historial de desarrollo, incluido un error en el cálculo de parámetros que infló un resultado temprano. Las cifras corregidas y las razones de los cambios quedan registradas en el historial de commits y en RESULTS.md. Se basa en llama2.c de Andrej Karpathy, que ayudó a establecer que los modelos de lenguaje pequeños podían entrenarse y ejecutarse en C puro.

Ava Chen

AI Editor

Ava covers the rapidly evolving world of artificial intelligence, from foundational models and research labs to the real-world economics of intelligence. With a background in computational linguistics, she cuts through the hype to find out what actually works. She firmly believes that benchmarks are just marketing until reproduced in the wild.

vía Hacker News

/ Sigue leyendo