Durante los últimos años la generación de texto usando inteligencia artificial basada en redes neuronales, sobre todo modelos del tipo GPT-3, pero el funcionamiento de estas redes neuronales se puede substraer y simplificar, son predictores de texto sobrevitaminados.
El motivo por el que ChatGPT y GPT-3 usan prácticamente la misma arquitectura, es porque para generar texto se usa el contexto de las palabras o silabas (los llamaremos token a partir de ahora) anteriores para predecir cual es el token mas probable, en ChatGPT existiría un token especial para separar lo que dice el bot y parar de generar y en GPT-3 depende del set de entrenamiento, pero se necesita un carácter especial para el final del documento, aunque en el uso de la red neuronal, si recibe el token de FIN como parte de contexto no provocará un error, pero alterará las probabilidades de la generación.
Algo que se puede ver durante la explicación anterior es que se predice el token siguiente de una lista, ya predefinida, y que con esos tokens debe de poder construir cualquier respuesta esperada, del mismo modo, todo el texto que recibe de entrada debe poder construirse con al menos una combinación de Tokens, la forma de lograr esto es añadir el alfabeto base como tokens y luego las combinaciones de letras, silabas, mas comunes en el idioma para el que este diseñado el modelo.
Para trasladar el token a algo que un modelo de IA pueda utilizar, primero se le asigna un identificador, normalmente la posición que ocupa en la lista de tokens. El siguiente paso es vectorizar el identificador, esta vectorización inicialmente es aleatoria usando un pequeño modelo de IA encargado de la memoria, pero conforme avanza el entrenamiento, los vectores asignados a cada identificador son modificados con el fin de favorecer y facilitar la tarea aprendida, en caso de GPT-3, predecir el siguiente token teniendo en cuenta los anteriores. Dependiendo la librería que se use para reconstruir el modelo, hay algunas que separan el paso de vectorizar el identificador, a una parte mas estática, con un modelo del lenguaje ya entrenado.
Ya teniendo el vector de entrada vectorizado, es cuando empiezan las diferencias en arquitectura y las causas del mayor o menor rendimiento de cada modelo. Los modelos generativos a partir de este punto, pueden ser considerados cajas negras, las cadenas de Markov normales funcionan solamente tomando como entrada combinaciones de tokens ya conocidas, pero los modelos basados en redes neuronales toman los vectores anteriores y predicen con conocimiento aprendido e interiorizado en el modelo, predicen el siguiente token.
Los modelos GPT-2 en adelante empezaron a usar bloques transformers, que tienen modelos de atención, que devuelven una matriz de atención, que corresponde a la relación entre cada token con el resto de los presentes, pero estas relaciones se aprenden durante el entrenamiento general del modelo, tras este modulo hay un numero de capas, dependiente de la complejidad del modelo para predecir el próximo token, por un vector de probabilidades.
Por su parte los modelos de Markov simples únicamente requieren un diccionario para calcular las combinaciones de tokens conocidas durante el entrenamiento, formando un modelo estadístico, mas o menos simple en la toma de decisiones del siguiente token.
Existe otra posibilidad que aunque podría entrar en la misma categoría de los modelos estadísticos de Markov, se puede separar ya que su funcionamiento puede ser mas similar al redes neuronales, esta posibilidad consiste en utilizar heurísticas y modelos estadísticos basados en el contenido del texto y las reglas del lenguaje, por ejemplo saber que es mas común que detrás de un numero haya otro numero o un espacio en lugar que una letra o que en español no puede haber, salvo excepciones 4 consonantes consecutivas.
Aunque los modelos GPT-3 y similares basados en redes neuronales son difíciles de entrenar debido a su tamaño, que limita directamente el uso en dispositivos normales de uso personal y a la lentitud de entrenamiento completo, por su parte se puede generar modelos de Markov simples en cualquier dispositivo, incluido paginas web, como en la que estas.