Ir al contenido principal

Cómo funciona un modelo de lenguaje (LLM): una guía didáctica

Cómo funciona un modelo de lenguaje (LLM): una guía didáctica

Guía técnica y didáctica sobre los fundamentos de los modelos de lenguaje: tokenización, arquitecturas y pesos entrenados.

Introducción

Los modelos de lenguaje como GPT, LLaMA o Gemma se basan en principios matemáticos y estructurales relativamente sencillos. En esta guía se explica de forma clara cómo se construye un modelo de lenguaje desde sus fundamentos: tokenización, red neuronal y pesos entrenados.

1. Qué es un modelo de lenguaje

Un modelo de lenguaje (LLM, Large Language Model) es un sistema que predice la siguiente palabra o token en una secuencia de texto. Durante su entrenamiento, el modelo aprende las relaciones estadísticas entre millones de fragmentos de texto. Cuando se utiliza, no "recuerda frases" ni "entiende conceptos" como un humano; calcula qué token es más probable según el contexto.

2. Los tres componentes principales de un LLM

ComponenteFunciónEjemplo de archivo
TokenizadorConvierte texto en números y viceversatokenizer.json, vocab.txt
Red neuronalProcesa los números y aprende patronesDefinida en config.json
Pesos del modeloContienen la "memoria" aprendida durante el entrenamientomodel.safetensors, pytorch_model.bin

3. Tokenización: traducir texto a números

Las redes neuronales no pueden trabajar directamente con palabras, por lo que el texto debe convertirse en números. Ese proceso se llama tokenización.

Un token puede representar:

  • Una palabra completa
  • Una parte de palabra (subpalabra)
  • Un solo carácter o byte

Ejemplo:

Texto: "El perro corre"
Tokenización: [123, 45, 987]

4. La red neuronal: el cerebro del modelo

La red neuronal es la arquitectura matemática que procesa los tokens y aprende sus relaciones. Para texto, las arquitecturas más habituales son:

  • RNN (Recurrent Neural Network).
  • LSTM / GRU (variantes de RNN con mejor memoria).
  • Transformer (arquitectura basada en atención).
  • Mamba (modelo de espacio de estados, eficiente para contextos largos).

El Transformer introdujo el mecanismo de autoatención, que permite relacionar cada token con todos los demás de la secuencia para comprender el contexto completo.

5. Los pesos: la memoria aprendida

Durante el entrenamiento, el modelo ajusta sus pesos o parámetros. Estos son valores numéricos que representan las relaciones estadísticas entre tokens. Por ejemplo, después de ver muchas oraciones que contienen "El perro corre rápido", el modelo ajusta pesos para que la combinación "perro" + "corre" tienda a predecir "rápido" como siguiente token.

Esos pesos se almacenan en archivos binarios grandes (.safetensors, .pt, .bin) y contienen la mayor parte del "conocimiento" del modelo.

6. Cómo trabajan juntas las tres partes

El flujo completo es:

Texto → Tokenización → Tokens → Red Neuronal + Pesos → Tokens → Destokenización → Texto

Ejemplo simplificado:

  1. El usuario escribe "El perro corre".
  2. El tokenizador convierte eso en [154, 912, 77].
  3. La red neuronal, usando sus pesos, predice el siguiente token más probable (por ejemplo, 55).
  4. El token 55 se convierte en texto: "rápido".

7. PyTorch, TensorFlow y Mamba: dónde encajan

PyTorch y TensorFlow son frameworks que permiten definir y entrenar redes neuronales. No son arquitecturas en sí, sino herramientas para implementarlas. Mamba es una arquitectura basada en modelos de espacio de estados pensada para eficiencia en contextos largos; suele implementarse sobre PyTorch o JAX.

8. Crear un modelo básico propio

Es posible construir un pequeño LLM educativo con unas pocas líneas de código y datos propios. Los pasos esenciales son:

  1. Crear o cargar un tokenizador.
  2. Definir una arquitectura pequeña (por ejemplo, Transformer con pocas capas).
  3. Entrenar con tus propios textos.
  4. Guardar los pesos y el tokenizador.
  5. Utilizar el modelo para generar texto nuevo.

Ejemplo conceptual en Python:

from transformers import GPT2Config, GPT2LMHeadModel, PreTrainedTokenizerFast

tokenizer = PreTrainedTokenizerFast(tokenizer_file="mi_tokenizer.json")

config = GPT2Config(
    vocab_size=tokenizer.vocab_size,
    n_layer=2,
    n_head=2,
    n_embd=128
)
model = GPT2LMHeadModel(config)

9. Qué descargamos al obtener un modelo

Cuando descargamos un modelo desde repositorios como Hugging Face, normalmente obtenemos:

/modelo/
 ├── config.json           (estructura de la red)
 ├── tokenizer.json        (reglas de tokenización)
 ├── model.safetensors     (pesos entrenados)
 └── special_tokens_map.json

10. Conclusión

Un modelo de lenguaje moderno combina tres elementos clave: tokenización, arquitectura neuronal y pesos entrenados. Con herramientas como PyTorch y Hugging Face es posible crear versiones reducidas de estos modelos para fines educativos y experimentar con sus principios fundamentales.

Este documento es una guía didáctica. Para entrenamientos a escala real se requieren datasets masivos, recursos de cómputo y consideraciones éticas y legales sobre el uso de datos.

Si desea una versión ajustada (por ejemplo, con más ejemplos de código, diagramas o secciones para deploy), indique qué partes quiere ampliar.

Comentarios

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar Evolution API en Docker con Redis y PostgreSQL Local

Instalar Evolution API en Docker con Redis y PostgreSQL Local En este tutorial vamos a levantar Evolution API usando Docker , con soporte de Redis para sesiones y PostgreSQL local para almacenar datos de manera persistente y compartida entre varios usuarios. 1. Estructura del proyecto Crea una carpeta para tu proyecto y colócate en ella: mkdir -p ~/docker/evolution-api cd ~/docker/evolution-api 2. Archivo docker-compose.yml Este compose levanta Redis y Evolution API : version: "3.9" services: # ✅ SERVICIO REDIS redis: container_name: evolution_redis image: redis:7-alpine restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --save 60 1 --loglevel warning # ✅ SERVICIO EVOLUTION API evolution-api: container_name: evolution_api image: atendai/evolution-api restart: unless-stopped ports: - "8085:8080" env_file: - .env ...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...