Entrena tu propio LLM: del dragón a un modelo de lenguaje

Un laboratorio práctico para comprender, sin necesidad de un doctorado, qué es un Large Language Model y cómo entrenar una versión miniatura en casa

Lic. Carlos Enrique Loria Beeche

Entre los grandes “dragones” tecnológicos de nuestro tiempo están los LLM, siglas de Large Language Model, o gran modelo de lenguaje. Son los sistemas que permiten conversar con herramientas como ChatGPT, Claude o Gemini, y que hoy pueden redactar textos, resumir documentos, traducir, programar y responder preguntas sobre una enorme variedad de temas.

Como cualquier criatura desconocida, los LLM pueden provocar fascinación, pero también cierto temor. Escuchamos hablar de redes neuronales, tokens, Transformers, embeddings y miles de millones de parámetros, y fácilmente concluimos que se trata de una tecnología incomprensible, reservada para científicos, grandes empresas y centros de datos llenos de tarjetas gráficas.

En aquella conocida película infantil sobre un muchacho que aprende a entrenar un dragón, el miedo comienza a desaparecer cuando el protagonista deja de observar a la criatura desde lejos, se acerca a ella y comprende su naturaleza. Con los modelos de lenguaje sucede algo parecido: mientras los contemplamos como una caja negra, parecen misteriosos y casi mágicos; cuando conocemos sus fundamentos, descubrimos que están construidos a partir de conceptos que podemos estudiar paso a paso.

Este artículo está dirigido a quienes han escuchado hablar de los LLM, los utilizan e incluso creen comprender más o menos cómo funcionan, pero desean construir una imagen general más clara. No hace falta tener un doctorado en computación, matemáticas o inteligencia artificial. Tampoco es necesario dominar previamente las redes neuronales. Comenzaremos desde los conceptos esenciales y construiremos gradualmente una visión completa de la tecnología.

Primero veremos cómo un texto se divide en pequeñas unidades llamadas tokens; cómo esos tokens se convierten en números y después en vectores llamados embeddings; cómo una red neuronal Transformer analiza las relaciones entre ellos; y cómo millones de valores internos, llamados parámetros, se ajustan durante el entrenamiento para mejorar la predicción del siguiente token.

Después, en una segunda entrega, llevaremos estos conceptos a la práctica. Construiremos y entrenaremos en nuestra propia computadora un modelo de lenguaje miniatura. No crearemos un competidor de los grandes sistemas comerciales, pero sí una pequeña criatura digital basada en los mismos principios fundamentales.

La meta de esta primera parte no es ejecutar comandos. Queremos comprender qué ocurre dentro del modelo: qué recibe, qué calcula, qué significa entrenarlo y cómo logra generar un texto que nunca fue escrito exactamente de esa manera en sus datos originales.

Al acercarnos al dragón y comprender cómo aprende, debería dejar de parecernos tan temible.


Abrir la caja negra

Algunos lectores apenas habrán escuchado hablar de ChatGPT o de otros sistemas de inteligencia artificial. Otros ya los utilizan todos los días, escriben instrucciones más elaboradas, trabajan con documentos o han comenzado a experimentar con proyectos y herramientas especializadas.

Este artículo está pensado para ambos grupos.

No asumiremos conocimientos avanzados de matemáticas, programación o redes neuronales. Comenzaremos con las ideas fundamentales y avanzaremos paso a paso. Quienes ya utilizan estas herramientas encontrarán una explicación más profunda de conceptos que quizá han escuchado mencionar —tokens, parámetros, embeddings, atención, contexto y Transformers—, pero que normalmente permanecen ocultos detrás de una interfaz sencilla.

La intención es mirar detrás del telón. Antes de entrenar nuestro propio modelo, construiremos una imagen general de lo que sucede cuando escribimos una pregunta y recibimos una respuesta: cómo el lenguaje se convierte en números, cómo el modelo relaciona esos números con el contexto y cómo aprende a producir una continuación que parece coherente.

No se trata de eliminar toda la complejidad. Se trata de comprender las piezas principales y cómo se conectan entre sí. Cuando terminemos esta primera parte, la expresión “inteligencia artificial” debería representar algo mucho más concreto que una caja negra capaz de responder preguntas.

Mapa general de un LLM: del texto al aprendizaje.

Antes de entrenarlo, entendamos qué es un LLM

Un LLMLarge Language Model o gran modelo de lenguaje— es un sistema de inteligencia artificial entrenado para reconocer patrones en enormes cantidades de texto y utilizar esos patrones para predecir qué fragmento debería aparecer a continuación.

Esa idea puede parecer demasiado sencilla para explicar sistemas capaces de conversar, resumir documentos, traducir, programar o redactar ensayos. Sin embargo, en su nivel más básico, un modelo de lenguaje realiza una tarea fundamental una y otra vez:

Recibe una secuencia de texto y calcula cuál podría ser el siguiente elemento.

Por ejemplo, si recibe la frase:

El cielo durante un día despejado suele ser...

podría asignar una probabilidad alta a la palabra azul, una probabilidad menor a gris y probabilidades muy pequeñas a palabras que no tendrían sentido en ese contexto.

El modelo selecciona una posibilidad, la agrega al texto y vuelve a realizar el mismo cálculo. Así, paso a paso, construye una oración, un párrafo o una respuesta completa.

Sin embargo, el modelo no trabaja directamente con palabras como las percibimos nosotros. Antes de poder procesar el lenguaje, debe convertirlo en números. Para entender cómo ocurre esto, necesitamos comenzar con una de las piezas más importantes de toda esta tecnología: los tokens.

¿Qué es un token?

Un token es una unidad en la que se divide el texto para que el modelo pueda procesarlo.

Dependiendo del tokenizador utilizado, un token puede representar:

  • una palabra completa;
  • una parte de una palabra;
  • un carácter;
  • un signo de puntuación;
  • un espacio unido a una palabra;
  • una combinación frecuente de letras.

Por ejemplo, la frase:

El dragón aprende rápido.

podría dividirse de esta manera:

["El", " dragón", " aprende", " rápido", "."]

Pero otro tokenizador podría dividir algunas palabras en fragmentos:

["El", " drag", "ón", " aprende", " rápido", "."]

En ambos casos, cada token recibe un número identificador:

"El"       → 1212
" drag"    → 8471
"ón"       → 533
" aprende" → 10284
" rápido"  → 7312
"."        → 13

Para el modelo, la frase deja de ser texto y se convierte en una secuencia numérica:

[1212, 8471, 533, 10284, 7312, 13]

Esta transformación se conoce como tokenización.

¿Por qué no utilizar simplemente palabras completas?

Podríamos imaginar un sistema en el que cada palabra tuviera su propio número. El problema es que un idioma contiene una enorme cantidad de palabras, variantes, nombres propios, conjugaciones, errores ortográficos y términos nuevos.

entrenar
entrena
entrenando
entrenamiento
reentrenar

Si cada forma necesitara una entrada completamente independiente, el vocabulario crecería demasiado.

Los tokenizadores modernos suelen trabajar con subpalabras. De esta forma, pueden reutilizar fragmentos frecuentes y representar palabras desconocidas combinando piezas ya existentes.

extraordinariamente
→ ["extra", "ordin", "aria", "mente"]

Esto permite representar prácticamente cualquier texto sin necesitar un token exclusivo para cada palabra posible.

El vocabulario del modelo

El conjunto completo de tokens que reconoce un modelo se denomina vocabulario.

Un modelo sencillo que trabaja carácter por carácter puede necesitar solamente unas decenas de tokens: letras, números, espacios, saltos de línea y signos de puntuación. En cambio, un modelo moderno puede utilizar un vocabulario de decenas o cientos de miles de tokens.

El tamaño del vocabulario afecta directamente al modelo, porque este debe poder calcular una probabilidad para cada token posible cada vez que intenta predecir el siguiente.

Del número al significado: los embeddings

El número asignado a un token es solamente un identificador.

Que el token correspondiente a dragón tenga el número 8471 no significa que sea matemáticamente mayor que el token niño, ni que el número contenga por sí mismo alguna información sobre lo que representa.

Por esa razón, el modelo transforma cada identificador en un embedding.

Un embedding es un vector: una lista de números que representa matemáticamente al token.

dragón →
[0.18, -0.42, 0.73, 0.11, ..., -0.08]

Estos números no son definidos manualmente por un programador. El modelo los aprende durante el entrenamiento.

A medida que procesa texto, algunos tokens que aparecen en contextos parecidos pueden desarrollar representaciones relacionadas. Por ejemplo, dragón, animal, criatura y bestia podrían terminar ocupando regiones relativamente próximas dentro del espacio matemático aprendido por el modelo.

Eso no significa que el sistema comprenda un dragón exactamente como lo haría una persona. Significa que ha aprendido que esos tokens suelen aparecer en contextos relacionados.

Semántica y contexto: una palabra no significa siempre lo mismo

La semántica se refiere al significado de las palabras y las expresiones. El contexto semántico se refiere a cómo ese significado se precisa o cambia según las palabras que rodean a un token.

La palabra banco puede referirse a una institución financiera:

El banco aprobó el préstamo.

Pero también puede referirse a un asiento:

Nos sentamos en un banco del parque.

El token puede ser idéntico, pero su función y su significado cambian según las palabras que lo rodean.

Un embedding inicial no contiene por sí solo todo el significado contextual. La representación del token se transforma a medida que atraviesa las capas del Transformer y se combina con la información de los demás tokens.

El embedding representa al token; el Transformer construye su representación dentro del contexto.

Esto no significa necesariamente que el modelo comprenda una palabra como la comprendería una persona. Significa que ha aprendido patrones estadísticos capaces de representar diferencias de uso, asociación y significado con notable precisión.

El contexto explica por qué importa un buen prompt

Cuando utilizamos ChatGPT u otro sistema semejante, solemos pensar que escribimos una pregunta y el modelo “busca” una respuesta. En realidad, nuestra pregunta se convierte en tokens y pasa a formar parte del contexto que el modelo utiliza para predecir la continuación más adecuada.

El texto que proporcionamos recibe normalmente el nombre de prompt.

Explique qué es un Transformer.

Pero también puede proporcionar información adicional:

Explique qué es un Transformer para una persona que utiliza ChatGPT, pero nunca ha estudiado redes neuronales. Utilice ejemplos cotidianos, evite fórmulas avanzadas y explique primero qué problema intenta resolver.

En ambos casos preguntamos por el mismo tema. Sin embargo, el segundo prompt ofrece pistas importantes sobre la audiencia, el nivel de profundidad, el estilo, el orden de la explicación y aquello que queremos evitar.

Por eso un buen prompt no consiste en utilizar palabras complicadas ni en aprender una fórmula mágica. Consiste principalmente en reducir la ambigüedad y proporcionar el contexto relevante.

Una instrucción ambigua obliga al modelo a completar los vacíos

Hábleme del banco.

La palabra banco puede referirse a una institución financiera, un asiento, un banco central, un banco de sangre, un banco de datos o un banco de peces. Sin más información, el modelo debe inferir cuál de esos sentidos es más probable.

En cambio:

Explique, para un estudiante de secundaria, cómo funciona un banco comercial y de qué manera obtiene sus ingresos.

ofrece un contexto mucho más preciso.

Un prompt no vuelve a entrenar al modelo

El entrenamiento modifica los parámetros del modelo. Un prompt proporciona contexto temporal para generar una respuesta.

Cuando escribimos una instrucción detallada, no estamos enseñándole permanentemente algo nuevo al modelo. Tampoco estamos modificando sus millones de parámetros. Estamos diciéndole, en términos prácticos: “Para producir esta respuesta, tome en cuenta esta información”.

Conversaciones, instrucciones, documentos y proyectos

En una aplicación de conversación, el modelo no recibe necesariamente solo la última pregunta. El contexto enviado puede incluir instrucciones generales, reglas de comportamiento, mensajes anteriores, documentos adjuntos, preferencias de estilo, información recuperada desde una base de datos, datos almacenados en un proyecto y nuestra pregunta más reciente.

Por eso, cuando preguntamos:

¿Puede explicarlo de otra manera?

el modelo puede saber a qué nos referimos, siempre que la explicación anterior todavía forme parte del contexto.

¿Por qué los proyectos ayudan?

Algunas herramientas permiten agrupar conversaciones, archivos e instrucciones dentro de un proyecto.

Un proyecto puede reunir el objetivo general, los documentos de referencia, el público, las decisiones tomadas, los términos preferidos, el tono, las restricciones editoriales y ejemplos de resultados aceptables.

Esto ayuda a que el modelo se “ubique” antes de responder. No significa que comprenda el proyecto como un colaborador humano que recuerda cada detalle de manera perfecta. Significa que dispone de información adicional para orientar sus probabilidades y producir una respuesta más coherente.

Más contexto no siempre significa mejor contexto

El contexto también puede perjudicar la respuesta cuando contiene instrucciones contradictorias, datos desactualizados, demasiados objetivos, detalles irrelevantes o documentos sin relación con la pregunta.

La meta no es llenar la ventana de contexto, sino utilizarla con inteligencia.

  1. Objetivo: qué necesitamos obtener.
  2. Audiencia: para quién está dirigido.
  3. Antecedentes: qué información debe conocer el modelo.
  4. Restricciones: qué debe respetar o evitar.
  5. Formato: cómo esperamos recibir el resultado.

La ventana de contexto no es infinita

Todo modelo tiene una cantidad máxima de tokens que puede procesar en una interacción. Esa capacidad recibe el nombre de ventana de contexto.

Dentro de ella pueden encontrarse nuestra pregunta, mensajes anteriores, instrucciones, documentos, ejemplos y parte de la respuesta que ya está generando.

La ventana de contexto funciona como una mesa de trabajo: podemos colocar muchos documentos sobre ella, pero el espacio sigue siendo limitado.

¿Qué es una red neuronal?

Una red neuronal artificial es un sistema compuesto por muchas operaciones matemáticas conectadas entre sí.

El nombre está inspirado en las redes biológicas, pero una neurona artificial es, en esencia, una función que recibe números, los combina y produce otros números.

salida =
activación(
    entrada × peso + sesgo
)

Una sola operación tiene una capacidad muy limitada. Pero cuando organizamos miles o millones de ellas en capas, la red puede aprender relaciones complejas.

En un modelo de lenguaje, la red recibe embeddings, los transforma repetidamente y produce una distribución de probabilidades sobre los posibles tokens siguientes.

¿Qué son los parámetros?

Los parámetros son los valores numéricos ajustables de la red neuronal: pesos, sesgos, matrices de embeddings, matrices de atención y valores internos de las capas.

Cuando decimos que un modelo posee 10 millones de parámetros, significa que contiene aproximadamente 10 millones de números que pueden modificarse durante el entrenamiento.

Al principio, muchos de esos valores se inicializan de forma aleatoria. Entrenar el modelo consiste en modificarlos gradualmente para mejorar sus predicciones.

Los parámetros son, en cierto sentido, el lugar donde queda almacenado el aprendizaje estadístico del modelo.

Los parámetros no son frases guardadas

Es fácil imaginar que un modelo funciona como una base de datos gigantesca que conserva textos completos y después los busca cuando recibe una pregunta. Esa no es una descripción correcta de su funcionamiento general.

El conocimiento queda distribuido entre enormes conjuntos de valores que colaboran para producir una predicción. Por eso un modelo puede generar una frase que nunca apareció exactamente en sus datos, combinar patrones aprendidos, equivocarse, inventar información o producir respuestas diferentes ante la misma pregunta.

El Transformer: la arquitectura que relaciona las piezas

Durante muchos años, las redes neuronales para lenguaje procesaban el texto principalmente de manera secuencial. La arquitectura Transformer permitió analizar de forma mucho más directa qué partes de una secuencia resultan importantes para comprender cada token.

Consideremos esta oración:

María tomó el libro de la mesa y luego lo guardó en su mochila.

Cuando el modelo procesa el token lo, necesita relacionarlo con libro, aunque entre ambos haya varias palabras.

El Transformer aprende a calcular este tipo de relaciones mediante un mecanismo llamado atención.

¿Qué es la atención?

La atención permite que cada token examine otros tokens de la secuencia y determine cuáles resultan más relevantes para producir una representación contextual.

En términos simplificados, cada token genera una consulta (query), una clave (key) y un valor (value).

La consulta representa lo que el token está buscando. La clave representa qué información puede ofrecer otro token. El valor contiene la información que podría incorporarse.

Token actual: "lo"

Atención hacia:
"María"      5 %
"tomó"       8 %
"libro"     71 %
"mesa"       9 %
"guardó"     7 %

Estos porcentajes son ilustrativos. En el modelo real se utilizan matrices, productos escalares y distribuciones numéricas.

Atención no significa conciencia

En un Transformer, la atención es una operación matemática. El modelo no “mira” una palabra ni “decide” conscientemente que otra es importante. Calcula puntuaciones numéricas que determinan cuánto debe influir cada posición sobre otra.

Atención de múltiples cabezas

Un bloque Transformer suele contener varias cabezas de atención. Cada una puede aprender diferentes relaciones: concordancia entre sujeto y verbo, pronombres y sustantivos, puntuación, diálogos, dependencias lejanas o patrones de estilo.

Estas funciones no se asignan manualmente. Emergen durante el entrenamiento.

Atención causal

Los modelos que generan texto no pueden observar los tokens futuros al predecir el siguiente.

Si el modelo recibe:

To be or not to

puede utilizar todo lo anterior, pero no puede mirar de antemano que la respuesta correcta será be. Por eso se utiliza una máscara causal.

La importancia de la posición

El dragón asustó al niño.

El niño asustó al dragón.

Estas frases contienen casi las mismas palabras, pero significan cosas diferentes. El Transformer incorpora información posicional para distinguir qué apareció primero, qué apareció después y qué distancia existe entre los tokens.

Los bloques Transformer

Un Transformer está compuesto por varios bloques apilados. Cada bloque suele incluir normalización, atención de múltiples cabezas, conexiones residuales y una red feed-forward.

La atención combina información entre tokens. La red feed-forward transforma internamente la representación resultante de cada posición. Las conexiones residuales permiten que la información fluya, mientras que la normalización ayuda a mantener estable el entrenamiento.

De las representaciones a las probabilidades

Después de atravesar los bloques Transformer, el modelo produce una puntuación para cada token posible. Estas puntuaciones se denominan logits. Una función llamada softmax las convierte en probabilidades.

"dragón"     41 %
"niño"       17 %
"castillo"    9 %
"voló"        7 %
otros        26 %

El modelo no trabaja con reglas escritas manualmente. Descubre regularidades al observar datos.

Cómo aprende un modelo

Al comenzar el entrenamiento, los parámetros son esencialmente aleatorios.

Si le mostramos:

To be or not to

podría producir:

"house"      14 %
","          11 %
"king"        8 %
"be"          2 %
otros        65 %

La respuesta correcta es be, pero el modelo le asignó solo un 2 % de probabilidad. Ese error contiene información útil.

  1. realiza una predicción;
  2. la compara con la respuesta correcta;
  3. mide el error;
  4. calcula qué parámetros contribuyeron;
  5. los modifica ligeramente;
  6. repite el proceso.

La función de pérdida

La función de pérdida, o loss function, convierte la calidad de las predicciones en un número.

Paso 0       pérdida: 4.28
Paso 100     pérdida: 3.41
Paso 500     pérdida: 2.67
Paso 1000    pérdida: 2.19

La pérdida no mide directamente si el texto es verdadero, elegante o inteligente. Mide qué tan bien está realizando la tarea de predecir el siguiente token.

Retropropagación y gradientes

La retropropagación recorre matemáticamente las operaciones del modelo en sentido inverso y calcula cuánto contribuyó cada parámetro al error.

El resultado son los gradientes, que indican en qué dirección debería cambiar un parámetro y qué tan sensible es la pérdida a ese cambio.

El optimizador

La retropropagación calcula los gradientes, pero el optimizador realiza los cambios. Cada actualización es pequeña. El aprendizaje surge de acumular miles o millones de pequeñas correcciones.

La tasa de aprendizaje

La tasa de aprendizaje controla cuánto cambian los parámetros en cada paso. Una tasa demasiado grande puede provocar inestabilidad; una demasiado pequeña puede hacer que el entrenamiento sea excesivamente lento.

Batch, step y epoch

Un batch o lote es un grupo de ejemplos procesados simultáneamente. Un step corresponde normalmente a una actualización de parámetros. Una epoch representa una pasada completa por todo el conjunto de datos.

Entrenamiento y validación

El dataset suele dividirse en un conjunto de entrenamiento y otro de validación. El entrenamiento modifica los parámetros; la validación mide qué tan bien funciona el modelo sobre texto que no participó directamente en esas actualizaciones.

Si la pérdida de entrenamiento continúa bajando, pero la de validación empieza a subir, puede estar ocurriendo sobreajuste.

¿Qué es un checkpoint?

Un checkpoint es un archivo que guarda los parámetros, la arquitectura, el estado del optimizador, el paso alcanzado, el vocabulario y otros datos necesarios para continuar. Es un punto de guardado dentro del proceso de aprendizaje.

Entrenamiento e inferencia

Durante el entrenamiento, el modelo procesa ejemplos, calcula la pérdida, obtiene gradientes y modifica sus parámetros.

Durante la inferencia recibe un prompt, calcula probabilidades, selecciona un token, lo agrega a la secuencia y repite el proceso.

Entrenamiento es modificar los parámetros. Inferencia es utilizar los parámetros aprendidos.

Temperatura y top-k

La temperatura modifica qué tan concentrada o distribuida queda la probabilidad entre los candidatos. Una temperatura baja produce elecciones más predecibles; una alta aumenta la variedad y el riesgo.

top_k limita la selección a una cantidad determinada de candidatos con mayor probabilidad.

La temperatura no hace al modelo más inteligente. Solo cambia la forma en que selecciona los tokens.

Generación autorregresiva

Después de seleccionar un token, se agrega a la secuencia y pasa a formar parte del contexto utilizado para producir el siguiente. Este proceso se denomina generación autorregresiva.

También significa que los errores pueden acumularse: una elección poco adecuada modifica el contexto y puede conducir a nuevas elecciones incorrectas.

Modelo base, asistente y chatbot no son lo mismo

Un modelo base ha sido entrenado principalmente para predecir el siguiente token. No necesariamente sabe seguir instrucciones ni mantener una conversación útil.

Un modelo ajustado para instrucciones recibe entrenamiento adicional para interpretar solicitudes y producir respuestas útiles.

Un asistente puede combinar el modelo con historial, búsqueda, herramientas, archivos, código, bases de datos, memoria y políticas de seguridad.

El chatbot es la interfaz mediante la cual conversamos.

El chatbot es la interfaz; el asistente es el sistema; el LLM es uno de sus componentes centrales.

Entrenamiento, ajuste fino, prompting y RAG

No toda forma de proporcionar información a un modelo equivale a entrenarlo.

Método¿Modifica parámetros?Función
Entrenamiento desde ceroAprender el lenguaje y sus patrones desde parámetros iniciales
Ajuste fino o fine-tuningEspecializar o modificar un modelo ya entrenado
PromptNoProporcionar contexto para la interacción actual
RAGNoRecuperar información externa y colocarla en el contexto

¿Qué es RAG?

RAG proviene de Retrieval-Augmented Generation, o generación aumentada mediante recuperación.

El sistema busca información relevante en documentos, manuales, bases de datos o colecciones de conocimiento y coloca los fragmentos encontrados dentro del contexto del modelo.

Adjuntar o recuperar un documento no significa necesariamente que los parámetros del modelo hayan cambiado.

¿Por qué un modelo puede equivocarse con tanta seguridad?

Un modelo produce tokens plausibles según sus parámetros, el contexto y la estrategia de generación. Su objetivo matemático fundamental no es garantizar que cada afirmación sea verdadera, sino producir una continuación probable.

Por eso puede generar información que suena convincente, está bien redactada y mantiene una estructura lógica, pero contiene datos incorrectos. A este fenómeno se le suele llamar alucinación.

Fluidez no significa verdad

Una respuesta puede estar perfectamente escrita y ser incorrecta. Por eso debemos verificar con especial cuidado fechas, nombres, cifras, comandos, leyes, diagnósticos, decisiones financieras, referencias bibliográficas e información reciente.

El modelo no siempre sabe que no sabe.

Cómo reducir el riesgo

Podemos mejorar los resultados mediante prompts claros, contexto suficiente, documentos confiables, fuentes actuales, referencias explícitas, herramientas externas, RAG, validación humana y reconocimiento de la incertidumbre.

Los datos determinan gran parte de lo que aprende

La arquitectura define cómo puede aprender un modelo. El dataset influye decisivamente en qué termina aprendiendo.

Un dataset de lenguaje puede contener libros, páginas web, artículos, conversaciones, código, documentos, ejemplos preparados y texto sintético.

Si entrenamos exclusivamente con obras de Shakespeare, el modelo aprenderá patrones relacionados con el vocabulario, la puntuación, los personajes, los diálogos y la estructura teatral. No aprenderá automáticamente programación moderna, medicina, noticias actuales o conversación contemporánea.

Calidad antes que cantidad

Un dataset grande no es necesariamente bueno. Puede contener duplicados, errores, contenido irrelevante, información falsa, datos privados, material contradictorio, sesgos o contenido sintético de mala calidad.

Preparar un dataset puede exigir limpiar, filtrar, normalizar, deduplicar, clasificar y revisar licencias.

El modelo también puede aprender los defectos del corpus. Por eso el entrenamiento plantea preguntas sobre calidad, representatividad, privacidad, propiedad intelectual, ética y seguridad.

Geppetto: una nota personal

Utilizo ChatGPT con tanta frecuencia que, en confianza, suelo llamarlo Geppetto.

El nombre no pretende afirmar que el sistema sea una persona, que tenga conciencia o que experimente el mundo como nosotros. La referencia nace de otra idea: Geppetto construyó una criatura que comenzó a hablar, a actuar y a sorprender a quienes la rodeaban.

Los modelos de lenguaje también son construcciones humanas que producen respuestas capaces de sorprendernos. Sin embargo, detrás de esa aparente espontaneidad no hay madera encantada ni magia. Hay datos, código, operaciones matemáticas, redes neuronales y millones o miles de millones de parámetros ajustados durante el entrenamiento.

La comparación también permite invertir un poco los papeles. En el cuento, Geppetto construye la criatura. En nuestra experiencia cotidiana, somos nosotros quienes debemos aprender a relacionarnos con una criatura tecnológica que ya ha sido construida por otros.

Debemos aprender qué puede hacer, qué no puede hacer, cómo darle contexto, cómo formular una instrucción, cuándo confiar, cuándo verificar, cuándo utilizar otras herramientas y cuándo reconocer que el modelo no dispone de información suficiente.

Llamarlo Geppetto es una licencia afectuosa. Comprender cómo funciona evita que esa cercanía nos haga olvidar su verdadera naturaleza.

Algunas ideas que conviene dejar claras

“El modelo busca la respuesta en una gigantesca base de datos”

No exactamente. El LLM, por sí mismo, genera texto calculando probabilidades a partir de sus parámetros y del contexto disponible. Produce la respuesta token por token.

“El modelo comprende igual que una persona”

No podemos asumirlo. Los resultados emergen de operaciones matemáticas sobre patrones aprendidos.

“Una respuesta bien escrita debe ser correcta”

No. La claridad y el tono seguro no sustituyen la evidencia, las fuentes, la verificación, el conocimiento especializado ni la revisión humana.

“Un prompt perfecto garantiza una respuesta perfecta”

Tampoco. Un buen prompt reduce ambigüedades, pero no corrige por sí solo conocimiento inexistente, información desactualizada o limitaciones fundamentales.

“Agregar un documento entrena al modelo”

No necesariamente. Adjuntar un documento suele proporcionar contexto; sus parámetros no se modifican automáticamente.

“Más parámetros siempre significa mejor”

No de manera absoluta. También importan los datos, la arquitectura, la tokenización, el entrenamiento, la tarea, el contexto y las herramientas externas.

Lo que ocurre detrás del telón

Cuando escribimos una pregunta o instrucción, el sistema la divide en tokens. Cada token se identifica mediante un número y se transforma en un embedding.

La información posicional indica dónde se encuentra cada token. Los bloques Transformer utilizan atención para calcular cómo se relacionan y qué partes del contexto resultan relevantes.

Millones o miles de millones de parámetros transforman esas representaciones y producen puntuaciones para los posibles tokens siguientes.

Durante el entrenamiento, una función de pérdida mide el error, la retropropagación calcula los gradientes y el optimizador ajusta los parámetros.

Durante la inferencia, esos parámetros se utilizan para seleccionar un token, agregarlo al texto y repetir el proceso.

contexto → probabilidades → selección de un token → nuevo contexto → nuevas probabilidades

Todo ocurre rápidamente, pero el principio fundamental sigue siendo la predicción del siguiente token.

Una pequeña prueba mental

  1. ¿Qué recibe realmente un modelo cuando escribimos una frase?
  2. ¿Qué diferencia existe entre una palabra y un token?
  3. ¿Para qué sirve un embedding?
  4. ¿Qué son los parámetros?
  5. ¿Cómo influye el contexto en el significado?
  6. ¿Qué hace el mecanismo de atención?
  7. ¿Qué significa predecir el siguiente token?
  8. ¿Cómo aprende el modelo de sus errores?
  9. ¿Qué diferencia existe entre entrenamiento e inferencia?
  10. ¿Por qué puede producir una respuesta convincente pero incorrecta?

Si ya podemos responderlas, aunque sea de manera sencilla, la caja negra ha comenzado a abrirse.

No conocemos todavía cada ecuación, cada matriz ni cada detalle de implementación. Pero ya podemos reconocer las piezas fundamentales y comprender cómo se relacionan.

Del gran dragón al modelo miniatura

Los grandes modelos comerciales requieren cantidades extraordinarias de datos, energía, hardware y tiempo de entrenamiento.

No podemos reproducir esa escala en una computadora doméstica, pero sí podemos reproducir el principio.

Podemos construir un modelo con vocabulario, embeddings, información posicional, bloques Transformer, atención causal, redes neuronales, una función de pérdida, retropropagación, un optimizador y generación autorregresiva.

Nuestro modelo será diminuto, pero nos permitirá observar cómo una red con parámetros inicialmente aleatorios comienza a reconocer patrones, cómo disminuye la pérdida, cómo aparecen palabras y estructuras, y cómo genera texto nuevo.

Será una criatura pequeña, limitada y probablemente torpe al comienzo. Precisamente por eso resultará tan útil para aprender.

Ahora sí: manos a la obra

La intención original era explicar estos conceptos y completar, dentro del mismo artículo, un laboratorio para construir y entrenar un modelo de lenguaje.

Pero al comenzar a abrir la caja negra descubrimos que cada pieza merecía una explicación cuidadosa. El recorrido creció mucho más de lo previsto.

Por eso hemos decidido dividirlo en dos entregas.

Esta primera parte estuvo dedicada a comprender qué significa LLM, cómo se divide el lenguaje en tokens, qué son los embeddings, cómo influye el contexto semántico, por qué importa un buen prompt, qué son las redes neuronales y sus parámetros, cómo funcionan los Transformers y la atención, qué ocurre durante el entrenamiento, cómo se genera una respuesta, por qué un modelo puede equivocarse y qué diferencia existe entre un LLM, un asistente y un chatbot.

En la segunda parte dejaremos atrás la explicación puramente conceptual y comenzaremos el verdadero laboratorio.

Abriremos la consola, prepararemos el entorno y trabajaremos con Docker, Python, PyTorch, CPU, GPU, RAM, VRAM, CUDA, tokenización, datasets, checkpoints y tiempos de entrenamiento.

Construiremos primero un pequeño GPT entrenado con obras de Shakespeare. Después avanzaremos hacia TinyStories, un conjunto de cuentos sencillos que permite observar cómo modelos pequeños comienzan a generar oraciones y estructuras narrativas.

También compararemos cuatro computadoras reales:

  • MICHELLE, una portátil Windows convencional;
  • LEON, con un procesador de alto rendimiento;
  • PANTERA, una estación Linux con GPU NVIDIA;
  • TURING, un Jetson Orin Nano Super.

La segunda entrega se titulará:

Entrena tu propio LLM: manos a la obra

Allí sí abriremos la consola, ejecutaremos el código y veremos cómo una red inicialmente aleatoria comienza, paso a paso, a producir lenguaje.

Ya conocemos mejor al dragón.

En la siguiente entrega nos arremangaremos y comenzaremos a entrenarlo.


El dragón ya no es completamente desconocido

Los modelos de lenguaje pueden seguir siendo extraordinariamente complejos. Comprender sus fundamentos no elimina esa complejidad, pero cambia nuestra relación con ella.

Ya no vemos únicamente una pantalla que responde.

Podemos imaginar los tokens, los embeddings, la atención, los parámetros y el ciclo de aprendizaje que existe detrás de cada frase generada.

Podemos utilizar estas herramientas con mayor criterio, formular mejores preguntas, proporcionar mejor contexto y reconocer sus limitaciones.

El dragón no ha dejado de ser poderoso.

Pero ya no es completamente desconocido.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *