IA en el dispositivo · 8 min de lectura
Cómo cabe un modelo de lenguaje en un teléfono
Las apps de IA local piden una cantidad de almacenamiento sorprendente, y la
razón no es que estén mal optimizadas. Entender adónde van esos gigabytes
explica también por qué el modelo va rápido en un teléfono nuevo y lento
en uno viejo, y qué significa el nombre de archivo
Q3_K_S en realidad.
Un modelo es un montón enorme de números
Un modelo de lenguaje es un conjunto de parámetros aprendidos: los pesos. Cada uno es un número, y hay miles de millones. «2B» en el nombre de un modelo significa unos dos mil millones de parámetros.
Guardado con precisión completa, cada peso ocupa 4 bytes. Dos mil millones de pesos a 4 bytes cada uno son unos 8 GB, y eso para uno de los modelos más pequeños que existen. Ahí está el problema en una línea: el archivo es grande porque los números son muchísimos y cada uno se guarda con precisión.
Cuantización: menos bits por número
La cuantización guarda cada peso usando menos bits. En lugar de 32 bits por peso usas 8, o 4, o 3, con factores de escala por bloque de pesos para que la aproximación se mantenga cerca del original.
La reducción de tamaño es más o menos lineal:
- 32 bits — ~8 GB para un modelo de 2B. Precisión completa, inviable en un teléfono.
- 8 bits — ~2 GB. Muy cerca de la calidad original.
- 4 bits — ~1,1 GB. El punto óptimo habitual.
- 3 bits — ~800 MB. Se nota más la pérdida, pero sigue siendo útil.
- 2 bits — más pequeño todavía, y la calidad cae en picado.
Es compresión con pérdidas, como un JPEG. Fuérzala lo suficiente y verás los artefactos: en un modelo de lenguaje aparecen como respuestas más vagas, repeticiones o una deriva que se aleja de la pregunta.
La cuantización no vuelve tonto a un modelo de forma uniforme. Lo vuelve menos preciso, y la imprecisión asoma primero en las entradas más difíciles.
Cómo leer el nombre de archivo
Un nombre como Q4_K_M o Q3_K_S es una receta, no un
número de
versión:
- Q4 / Q3 — aproximadamente cuántos bits por peso.
- _K — un esquema «k-quant», que reparte su presupuesto de bits de forma desigual y conserva más precisión donde el modelo es más sensible.
- _S, _M, _L — pequeño, mediano o grande dentro de ese esquema. Cuanto más grande, más calidad y más bytes.
Así que Q3_K_S es un k-quant pequeño de 3 bits: muy comprimido, elegido cuando caber en el
dispositivo importa más que los últimos puntos porcentuales de calidad.
GGUF: el contenedor
GGUF es el formato de archivo que contiene los pesos cuantizados más los metadatos que necesita un runtime: tokenizador, arquitectura, plantilla de prompt. Un solo archivo, sin una carpeta de configuración al lado.
Importa en los teléfonos porque GGUF está pensado para el mapeo en memoria. En lugar de leer 1,7 GB en la RAM, el runtime mapea el archivo en su espacio de direcciones y el sistema operativo va cargando las partes que se usan de verdad. Por eso un modelo más grande que la RAM libre de un teléfono todavía puede funcionar, y por eso la primera respuesta después de abrir la app es más lenta que la siguiente: aún se están trayendo las páginas.
Por qué calienta el teléfono
Generar una palabra —un token— significa pasar la entrada por esos miles de millones de parámetros. Y después hacerlo otra vez para el token siguiente. Una respuesta de cien palabras son cien pasadas.
Eso es aritmética sostenida en la CPU o en el acelerador neuronal, que es exactamente la carga de trabajo para la que los teléfonos están peor preparados térmicamente. Los dispositivos bajan su rendimiento cuando se calientan, así que una generación larga e ininterrumpida se va ralentizando mientras corre. Las apps locales bien hechas dosifican su trabajo —espacian las tareas para que el chip se enfríe— en lugar de encadenarlo todo seguido.
Por qué los teléfonos antiguos sufren
Tres limitaciones, y las tres son duras:
- Ancho de banda de memoria. Cada token implica leer una fracción grande de los pesos. La velocidad de generación suele estar limitada por lo rápido que se puede leer la memoria, no por la potencia de cálculo.
- RAM. El mapeo en memoria ayuda, pero un dispositivo que ya va justo paginará sin parar, y el sistema operativo puede sencillamente cerrar la app.
- Aceleradores. Los chips nuevos tienen hardware adecuado para esta aritmética. Los antiguos recurren a los núcleos de propósito general y van varias veces más lentos.
Por eso las apps de IA local indican un dispositivo mínimo en lugar de intentar dar soporte a todo. Por debajo de cierto punto la experiencia no se degrada: es inservible.
El trato que estás haciendo
Un modelo cuantizado del tamaño de un teléfono no igualará a un modelo grande en la nube en razonamiento difícil. Para una tarea acotada —qué significa esta palabra en esta frase, traduce esta expresión— es más que suficiente, y viene con tres propiedades que un modelo en la nube no puede ofrecer: funciona sin conexión, no cuesta nada por uso y el texto nunca sale del dispositivo.
Ese es todo el trato de la IA en el dispositivo. Renuncias al modelo más grande posible y ganas privacidad, funcionamiento sin conexión y uso sin contadores.
Cómo lo hace ClickBook
ClickBook incluye un modelo GGUF cuantizado y lo ejecuta con llama.cpp en tu dispositivo. En iOS viene integrado en la app, así que no hay nada que descargar. Lee más sobre los lectores con IA local, o mira cómo funciona ClickBook.