Skip to content

Capítulo 1: Introducción

¿Qué es ESP32-LLM?

ESP32-LLM es un proyecto que demuestra que es posible ejecutar un Large Language Model (LLM) en un microcontrolador ESP32. Aunque probablemente no sea muy práctico, ¡es un logro técnico sorprendente!

El proyecto logra ejecutar el modelo y generar texto a una velocidad de 19.13 tokens/segundo en un dispositivo que cuesta apenas unos dólares.

El Modelo TinyLlama

El modelo utilizado no es un LLM "grande" en el sentido tradicional. Específicamente:

CaracterísticaValor
Parámetros260K (260,000)
DatasetTiny Stories
Checkpointstories260K

¿Qué son las "Tiny Stories"?

Tiny Stories es un dataset de entrenamiento diseñado específicamente para modelos pequeños. Contiene historias cortas y simples que permiten entrenar modelos con capacidad de generación de texto coherente, pero con requisitos de memoria mucho menores.

¿Por qué funciona en el ESP32?

  1. Tamaño reducido: 260K parámetros ≈ ~1MB de peso del modelo
  2. Cuantización: El modelo puede estar cuantizado a int8 o menor
  3. PSRAM: El ESP32-S3 tiene 2MB de PSRAM externa

La Implementación: Llama2.c

El proyecto utiliza llama2.c de Andrej Karpathy como base, con optimizaciones específicas para el ESP32:

  • Uso de ambos cores del ESP32-S3
  • Funciones DSP especializadas de Espressif
  • Optimización de velocidad de CPU y PSRAM

Siguiente Paso

En el próximo capítulo, veamos el hardware necesario para este proyecto.


Volver al inicioSiguiente capítulo: Hardware