Trozos, no palabras
Lo primero que hace un modelo de lenguaje con tu texto es cortarlo. No en palabras ni en morfemas, sino en tokens: trozos que aparecían con frecuencia en los textos con los que se construyó su vocabulario. Cada trozo tiene un número, y a partir de aquí la máquina solo trabaja con números. Así queda troceada una frase:
Interactivo
Así lee la máquina tu frase
Los16593·habl57929antes5193·también10409·des731fragment74424an270·palabras43619
5 palabras → 8 tokens. El punto (·) marca un espacio pegado al token; el número es su identificador en el vocabulario.
La idea: La máquina no lee palabras: lee trozos frecuentes. Las palabras comunes van enteras; las raras o largas se parten en piezas que no siempre coinciden con los morfemas.
Las palabras frecuentes van enteras («palabras», «también»); las raras se parten. El corte no sigue la gramática, sino la estadística, y por eso a veces coincide con lo que haría una lingüista y a veces no:
Míralo
Morfemas frente a tokens
deshumanización
personadeshumanización
máquinades4117human51527ización18856
reutilizable
personareutilizable
máquinare264util2056izable12243
wasapear
personawasapear
máquinawas9844ap403ear830
hablantes
personahablantes
máquinahab14747l75antes5193
La idea: El tokenizador no sabe qué es un morfema. Que «des» o «human» coincidan es un efecto de la frecuencia: aparecen en muchas palabras. Por eso un modelo puede manejar palabras que nunca ha visto, como «wasapear», con trozos conocidos.
Hay otra opción: separar por espacios y puntuación. Es intuitiva, pero obliga a un vocabulario cerrado, y cualquier palabra no vista («desdolarización», «wasapear», una errata) se convierte en un token desconocido sobre el que el modelo no sabe nada. Por eso se usan subpalabras (BPE, WordPiece): se parte de caracteres y se fusionan los pares más frecuentes hasta tener de 30 000 a 200 000 unidades. Ya no hay palabras desconocidas, pero los cortes son estadísticos, no morfológicos.
Cortar en trozos tiene un coste que se cobra por token: cuanto más se parte una lengua, más cara y más lenta es para la máquina. En este ejemplo, el tokenizador de GPT-4 divide la frase en español en más tokens que en inglés. El recuento depende del tokenizador y de la frase: por sí solo no permite concluir cuánto cuesta o qué calidad tendrá un modelo en cada lengua:
Míralo
La misma frase en tres lenguas
Español
Las máquinas no entienden lo que dicen, pero lo dicen muy bien.
antes20 tokensahora15 tokensInglés
Machines do not understand what they say, but they say it very well.
antes16 tokensahora15 tokensEuskera
Makinek ez dute ulertzen zer esaten duten, baina oso ondo esaten dute.
antes27 tokensahora20 tokens
La idea: En estas frases, el tokenizador divide el euskera en más trozos. La cobertura de una lengua puede influir en el coste y el rendimiento, pero este ejemplo por sí solo no mide la calidad de las respuestas.
De trozos a números con sentido
Un número de vocabulario no dice nada del significado: el 1 y el 2 no tienen por qué parecerse. Así que cada token se traduce a una lista larga de números, un embedding, calculada a partir de los contextos en los que aparece. Es la vieja idea de Firth hecha cálculo: conocerás una palabra por la compañía que mantiene.
Míralo
Un mapa de significados
Con un solo vector por palabra, «banco» queda a medio camino entre el dinero y el parque. Pulsa una palabra para ver sus vecinas.
Los modelos actuales calculan un vector distinto para cada aparición: «banco» en «abrí una cuenta en el banco» cae junto al dinero; en «me senté en un banco», junto al parque.
La idea: Un embedding no guarda definiciones: guarda en qué contextos aparece una palabra. Lo que se usa parecido queda cerca.
En los modelos reales esas listas tienen cientos o miles de números, no dos. El mapa es una simplificación, pero la idea se mantiene: lo que se usa parecido queda cerca. Ojo con la famosa cuenta «rey − hombre + mujer = reina»: funciona en algunos ejemplos escogidos y falla en muchos otros. Es una curiosidad, no una ley.
Calcular qué viene después
Con todos esos vectores, el modelo hace una sola cosa, muchas veces seguidas: estimar qué token encaja después de lo que ya hay. Es lo que hace el teclado de tu móvil cuando te sugiere la siguiente palabra, a una escala enorme.
Míralo
¿Qué palabra viene ahora?
Nos vemos hasta ___
- mañana52 %
- luego24 %
- pronto12 %
- el lunes8 %
- nunca4 %
Con temperatura baja casi siempre sale la favorita; con temperatura alta, las raras tienen más opciones. Pulsa varias veces: no elige siempre la más probable, sortea.
La idea: Un modelo de lenguaje no guarda la frase correcta: calcula cuánto encaja cada continuación y sortea entre ellas. La temperatura decide cuánto se arriesga.
Es como… el teclado del móvil
En la máquina: un modelo de lenguaje
- Te sugiere tres palabras encima del teclado
- Puntúa las cerca de 200 000 piezas de su vocabulario
- Ha aprendido de lo que tú escribes
- Ha aprendido de una parte enorme del texto escrito por personas
- Tú eliges una sugerencia
- Un sorteo elige, regulado por la temperatura
Dos detalles importan. Con el mismo modelo, contexto y configuración, las puntuaciones de los candidatos son las mismas; la selección puede variar si se usa muestreo. La temperatura modifica cómo se distribuye esa selección, pero no convierte una respuesta más arriesgada en una más verdadera. Por eso la misma pregunta puede darte respuestas distintas, y por eso «lo más probable» no equivale a «lo verdadero».
De dónde sale lo que sabe
Todo lo anterior se aprende de un corpus: una colección enorme de textos. Para los modelos generales, buena parte de internet, libros y código. Para tareas concretas, textos etiquetados a mano por personas: esta reseña es positiva, este correo es spam, esta palabra es un nombre propio. Etiquetar parece sencillo hasta que aparecen los casos dudosos:
Interactivo
Etiquetar opiniones
«La comida, buenísima; el servicio, para olvidar.»
«Genial, cuarenta minutos para traer un café.»
«Correcto, sin más.»
«No está mal.»
«Volveré, aunque no sé si por la comida o por la camarera.»
Cuando etiquetes todas, verás qué eligió otra persona.
Cómo se sabe si acierta
Para evaluar un sistema se le pasan ejemplos cuya respuesta ya conocemos y se cuentan sus aciertos. Pero «acertar» tiene dos caras: la precisión (de lo que marca, cuánto es correcto) y la exhaustividad (de lo que debía encontrar, cuánto encuentra). Mueve el umbral de este filtro de spam:
Míralo
¿Desde qué seguridad decimos «spam»?
- 0.97«Has ganado un iPhone, pulsa aquí»spam ✓
- 0.88«Última oportunidad: 70 % de descuento»spam ✓
- 0.74«Tu paquete está retenido, paga 1,99 €»spam ✓
- 0.62«Oferta para socios del gimnasio»spam ✗
- 0.45«Hola, soy tu banco, confirma tu clave»no spam ✗
- 0.41«Factura de octubre disponible»no spam ✓
- 0.12«¿Te paso las fotos de la boda?»no spam ✓
- 0.08«Reunión movida a las 10»no spam ✓
- Precisión
- 75 %
- De lo que marca como «spam», cuánto lo es.
- Exhaustividad
- 75 %
- De todo lo que es «spam», cuánto encuentra.
La idea: Ningún umbral acierta en todo. Subirlo deja pasar el engaño más educado; bajarlo manda a la papelera correos legítimos. Decidir qué error es peor no es una cuestión técnica: depende de a quién sirve el sistema.
El caso más revelador es el correo que se hace pasar por un banco: no usa ninguna de las palabras típicas del spam, y por eso el sistema le da poca puntuación. Los errores más peligrosos suelen ser así, silenciosos. Encontrarlos exige leer los fallos uno a uno, y leer bien es un oficio que las humanidades conocen.
Hay tres cautelas antes de fiarse de una cifra. Primera: se evalúa con datos que el modelo no ha visto al entrenar; si el test se parece demasiado al entrenamiento (mismos autores, mismas fechas), la cifra será optimista. Segunda: en generación no hay una única respuesta correcta, y métricas como BLEU, chrF, COMET (traducción), ROUGE (resumen) o la perplejidad comparan con una referencia o miden lo «sorprendido» que está el modelo: una buena traducción puede no parecerse a la referencia y puntuar mal, y ninguna detecta por sí sola un contrasentido. Tercera: la evaluación humana necesita una guía clara y medir el acuerdo entre evaluadores; sin eso es solo una opinión. Ante cualquier cifra conviene preguntarse qué no mide. Diseñar el conjunto de prueba (qué variedades, registros y casos difíciles incluye) es una tarea en la que la formación lingüística marca la diferencia.
¿Quieres hacer esto con código? En Herramientas tienes por dónde empezar con Python y sus librerías de lenguaje.