A medida que el hardware para correr modelos de IA de forma local gana protagonismo, como el RTX Spark de Nvidia, aparece un conjunto nuevo de siglas, definiciones y terminología. Tom's Hardware armó una lista con esa nomenclatura para familiarizar a sus lectores con los conceptos que verán en sus artículos.

La guía sirve como punto de partida para entender el mundo de la IA, y puede ser útil la próxima vez que salga una noticia del tema o cuando alguien descargue modelos para probarlos y ajustarlos por su cuenta. Se limita a conceptos de los modelos de lenguaje de texto, es decir, los que se usan para chatear, programar y en la mayoría de los bots agénticos.

Modelo

Es el más simple. Un modelo es el LLM en sí (Large Language Model, modelo de lenguaje grande), calculado a partir de conjuntos de entrenamiento compuestos sobre todo por texto, a una escala de terabytes a petabytes. Esa información viene de internet, libros, transcripciones de video y audio, y otras fuentes.

El modelo equivale, a grandes rasgos, a un conjunto de capas muy avanzadas de análisis estadístico de las relaciones entre tokens, que son palabras o partes de palabras, código, signos de puntuación y otros símbolos. Los tokens no son parte del modelo, pero se distribuyen junto con él. Un modelo de IA genera tokens como salida.

¿Qué son los pesos de un modelo?

Esas capas de cálculo no servirían de nada sin sus pesos, que representan qué tan fuerte es la conexión entre secciones de tokens, de forma parecida a cómo una vía entre neuronas se recorre más que otras. Cuando el modelo corre, esos valores terminan definiendo cómo se relacionan los tokens entre sí.

Un ejemplo. Los pesos de las conexiones entre "na" y cada continuación posible, como "naval", "nachos" o "naruto", serán distintos, y mientras más alto el peso, más seguido aparece esa palabra en los datos de entrenamiento. Un punto importante es que los pesos no cambian sin volver a entrenar el modelo o partes de él.

Las fichas de los LLM suelen indicar cifras como "4B", "8B+" o "20B". Ese número dice cuántos parámetros, o pesos, usa el modelo. En los modelos de consumo se mide en miles de millones (la "B" de billion), y en los modelos de frontera como GPT, Claude y Kimi, en billones.

Que un modelo tenga más pesos que otro no lo hace automáticamente más inteligente. Igual que con la frecuencia de un procesador, no se trata solo de tener el número más alto. Más grande suele ser mejor, pero los pesos tienen que aportar algo a la respuesta.

También se habla de modelos de "pesos abiertos" frente a modelos "cerrados". Los primeros son modelos como Llama, DeepSeek y Kimi, que en la práctica se pueden usar gratis porque las organizaciones que los desarrollan publican los pesos en línea. Quien quiera puede ajustarlos a su gusto y crear su propia versión, siempre que tenga el hardware para correrla. Descargar un modelo gratuito no revela nada sobre cómo se entrenó ni cómo se calcularon sus pesos. Es como descargar una aplicación gratuita y personalizable, no software de código abierto.

Tipos de datos y cuantización

FP16, INT8 y FP4 suenan a siglas de un manual militar, pero son fáciles de interpretar. Todo programa usa números de distinto ancho y precisión según su propósito. Un contador de dinero en un videojuego puede funcionar bien con un entero de 32 bits, que representa valores de 0 a 2^32 (INT32), mientras que un valor guardado en memoria para una medición científica muy precisa puede necesitar aritmética de punto flotante de 64 bits (FP64).

La memoria es un recurso muy limitado, así que los buenos desarrolladores intentan usar las unidades más pequeñas que les permita el problema. Eso pesa todavía más en el mundo de las GPU, donde la VRAM es escasa. Como era de esperar, estos chips se volvieron especialmente buenos para manejar valores de menor precisión, a cambio de un equilibrio entre velocidad de cálculo y exactitud numérica. Ningún tipo de dato es mejor o peor en sí mismo. Depende de para qué se use.

Al entrenar un modelo, los laboratorios quieren usar la mayor precisión posible para los pesos, pero mantenerla en la versión final produciría un LLM demasiado grande y lento. Ahí entra la cuantización, una palabra elegante para decir "redondeo inteligente". Como uno de los pasos posteriores al entrenamiento, se hacen varias pasadas para transformar los pesos de alta precisión. Cada laboratorio tiene su propia receta secreta para hacerlo, porque es un paso decisivo.

Los modelos de frontera usan sobre todo una precisión relativamente alta para sus pesos (BF16), para conservar la calidad de las respuestas, los matices y la capacidad de razonamiento. Una analogía es decidir qué tan exacta se quiere una ubicación GPS, si en kilómetros o en centímetros. Los modelos de pesos abiertos suelen venir en varias versiones con distintos niveles de cuantización según lo que aguante el hardware. Por ejemplo, Llama 3.3 70B se puede correr en BF16 completo o en versiones cuantizadas a INT4.

Mientras menor la precisión, más probable es que el modelo corra en hardware de consumo. Los modelos publicados en Hugging Face pueden tener varios niveles de cuantización para calzar con distintos equipos, a cambio de perder exactitud en las respuestas para ganar en tamaño. Los modelos para consumidores usan tipos de datos más pequeños para caber en un Mac Studio, un RTX Spark o una tarjeta gráfica.

¿Qué es la ventana de contexto?

"Ventana de contexto" es otro término muy repetido, que probablemente muchos ya vieron en la interfaz de Claude Code como un indicador general de cuánto puede durar una sesión antes de que el bot empiece a comportarse un poco torpe. Se mide en tokens, con un millón como cifra común en los modelos de frontera, y es casi directamente análoga a la RAM de un computador.

La ventana de contexto es el espacio de trabajo del LLM, y tiene que contener todo lo asociado a la sesión, no solo la pregunta actual. Además de todas las preguntas y respuestas, incluye las instrucciones de sistema, todos los archivos subidos, el contenido de los enlaces que consultó y cualquier dato asociado.

Lo clave es que, aunque para el usuario todas esas cosas son conceptos distintos, para el LLM se reducen a tokens en una sola gran pila, la ventana de contexto. Por eso separar los "datos" del "código" es técnicamente imposible. Lo mejor que logran los modelos actuales es una aproximación a esa distinción.

Los LLM no piensan. Al responder una pregunta nueva, vuelven a correr un programa estadístico sobre todos los tokens y predicen los siguientes. Por eso conviene una ventana de contexto más grande (a costa de VRAM), y de ahí la cifra de un millón que hoy es popular. Pero incluso los algoritmos estadísticos tienen límites.

Aunque se amplíe la ventana a, por ejemplo, tres millones de tokens, la predicción del LLM puede empezar a fallar antes de que se llene. Es el efecto que en inglés se llama, con algo de humor, lost in the middle (perdido en el medio). El bot presta atención al inicio y al final de la conversación, pero olvida lo que quedó entremedio. Por eso cada modelo se ajusta con cuidado al tamaño de su ventana de contexto.

¿Para qué sirve el KV cache?

Quien haya investigado cómo usar LLM de forma local, o en una GPU remota, seguramente escuchó hablar una y otra vez del KV cache, y de que hay que reservarle VRAM o, si no queda otra, guardarlo en un SSD rápido. Es un conjunto de datos que se crea cuando el modelo corre y que se puede reutilizar entre consultas de la misma sesión.

Los datos que se guardan y reutilizan se pueden describir como "las relaciones entre tokens de esta sesión". Por ejemplo, la popular frase en inglés "you're right to push back" se puede tokenizar como "you-'re-ri-ght-to-pu-sh-back". Los guiones entre cada token representan un vector (o arreglo), llamado KV por key-value (clave-valor), que se usa para decidir qué token se elige a continuación.

Como la generación de texto es lineal, el cálculo de cada token nuevo necesita todos los KV anteriores. Si se hacen preguntas repetidas en la misma sesión, conviene reutilizar esos KV para no pagar el costo de recalcularlos una y otra vez, no solo en cada ronda de conversación, sino con cada token adicional.

Un LLM no responde solo la pregunta recién escrita. Siempre analiza la conversación entera desde el comienzo para generar los tokens de la respuesta. En una conversación larga de 300.000 tokens, no tener el cache significaría recalcular los KV de todos ellos, una operación lenta que se vuelve desproporcionadamente más lenta a medida que crecen las interacciones.

La cuantización también se aplica acá. Los modelos modernos reducen la precisión del contenido del KV cache frente a sus valores iniciales, y aceptan una pérdida menor de exactitud en todos los tokens nuevos de la sesión a cambio de mantener bajo el uso de VRAM. De hecho, con ventanas de contexto y conversaciones grandes, el KV cache puede ocupar más espacio que el propio modelo con sus pesos.

Mezcla de expertos (MoE)

Antes, las empresas de IA presumían cuántos parámetros más tenía su modelo más nuevo. Ahora la carrera parece haberse movido hacia quién incluye más expertos en un modelo. La descripción puede evocar la imagen de muchos científicos diminutos viviendo dentro de un laboratorio, cada uno a cargo de un tema, pero no funciona así.

La mezcla de expertos, o MoE (Mixture-of-Experts), es en esencia un conjunto de submodelos dentro del modelo principal. Cuando empieza el entrenamiento, todos los submodelos reciben el mismo conjunto de datos, pero la elección de pesos se aleatoriza levemente para cada uno. Cada submodelo valora los tokens de forma un poco distinta al resto, y por la manera en que el entrenamiento refuerza los patrones (el llamado efecto "el rico se hace más rico"), los tokens relacionados tienden a converger. Así se terminan formando "expertos" en grupos de tokens.

Un error común es pensar que esos expertos corresponden a temas, como la programación. Solo establecen relaciones entre tokens, así que serán más precisos con ciertas palabras y patrones de texto, pero sin ninguna noción de qué tratan. Que un experto pueda dar respuestas bastante buenas sobre pintura de paisajes es un accidente afortunado, no una función.

Se podría pensar que esto agranda los modelos, y que quizás un solo experto generalista sería una opción más sensata. Es cierto que los agranda, pero el truco es que el modelo activa solo ciertos expertos. Corre únicamente una parte del modelo, y por eso responde a mayor velocidad que un LLM genérico.

Esa selección ocurre además token por token, porque un enrutador vuelve a elegir expertos para cada token que entra. Para visualizarlo, sirve pensar en los escáneres cerebrales donde distintas zonas se encienden según las palabras que se escuchan. En la práctica, el modelo puede responder con más exactitud en ciertos ámbitos y más rápido, aunque a costa de un mayor uso de VRAM.

¿Qué es RAG?

RAG (Retrieval-Augmented Generation, generación aumentada por recuperación) es un concepto fácil de describir y, al mismo tiempo, una de las herramientas más poderosas que se pueden usar con cualquier modelo. En pocas palabras, la aplicación de chat hace algunas búsquedas en Google, se las entrega al modelo y, de pronto, hay mucha más información y más fresca para responder la pregunta. Esa información adicional puede venir en casi cualquier forma, como documentos de la empresa, informes, correos o planillas, es decir, todo lo que el propio usuario le podría entregar al modelo, tokenizado directamente en su ventana de contexto.

En términos generales, la mayoría de las aplicaciones de chat con LLM actuales hacen búsquedas. Activar RAG, normalmente con un interruptor de "búsqueda web" o a veces con el modo "pensamiento" o "alto esfuerzo", le ordena explícitamente a la aplicación encontrar todos los datos que considere necesarios para responder una consulta. Como el contexto puro suele ser la clave para responder muchas preguntas de forma informativa, RAG está entre las herramientas más poderosas disponibles.

Un dato curioso es que las consultas que la aplicación busca suelen generarse con un modelo más pequeño y separado del principal.