Imagen: El procesamiento del lenguaje natural es una rama de la inteligencia artificial (IA). Utilizando algoritmos de procesamiento del lenguaje natural (NLP), las máquinas comprenden, generan o traducen el lenguaje humano tal como se escribe o se habla.
Un algoritmo informático clásico permite realizar una tarea específica utilizando un conjunto de instrucciones y operaciones finitas (se detienen después de un número finito de pasos) y no ambiguas (son claras y precisas). En otras palabras, los algoritmos clásicos están programados para producir resultados exactos, son inequívocos y no dejan lugar a la adaptación.
Un algoritmo de IA se basa en redes neuronales artificiales diseñadas para aprender de los datos de entrenamiento sin estar programados explícitamente.
Los algoritmos de IA no están terminados porque pueden seguir aprendiendo y mejorando con la experiencia. A menudo son ambiguos porque producen resultados diferentes para entradas de datos similares. Estos son modelos no lineales, pequeñas variaciones en las entradas pueden conducir a grandes variaciones en la salida. Por eso las redes neuronales tienen tantos parámetros. Estas configuraciones controlan cómo se ajustan los pesos de las conexiones durante el proceso de entrenamiento.
El concepto de ajuste de peso es un concepto fundamental en el aprendizaje automático y las redes neuronales artificiales. Este concepto está inspirado en el funcionamiento del cerebro humano.
En el cerebro humano, las neuronas biológicas están conectadas entre sí mediante sinapsis. La fuerza de la conexión entre dos neuronas se llama "peso sináptico". Los pesos sinápticos cambian durante el proceso de aprendizaje humano. Este proceso, aún poco comprendido, se denomina "plasticidad sináptica". La plasticidad sináptica es la capacidad de las sinapsis para cambiar la fuerza de la conexión según la experiencia.
Además, los algoritmos de IA están diseñados sobre modelos matemáticos estadísticos. Esto significa que no producen resultados exactos, sino resultados probables. Es posible que la misma red neuronal produzca resultados diferentes para entradas de datos similares.
Para minimizar estos efectos, se deben parametrizar los pesos sinápticos.
En el caso de ChatGPT, 175 mil millones de parámetros determinan el comportamiento del modelo.
Los parámetros se ajustan según los datos de entrenamiento de un modelo.
Por ejemplo, los parámetros de un modelo de lenguaje pueden ser, la probabilidad de que una palabra aparezca en una oración, la probabilidad de que a una palabra le siga otra, la probabilidad de que una palabra se use en un contexto particular, etc.
En el caso de ChatGPT, los datos del modelo de lenguaje utilizados para entrenarlo fueron un conjunto de texto y código de 500 mil millones de palabras. Los parámetros del modelo ChatGPT se utilizan para generar texto similar al texto de los datos de entrenamiento. Es decir, qué palabras tienen más probabilidades de aparecer en una oración determinada.
Por ejemplo, si los datos de entrenamiento contienen una oración como "La casa es blanca", el modelo aprenderá que es probable que las palabras "la", "casa", "es" y "blanca" aparezcan juntas.
Cuanto más presente esté la oración en el modelo de aprendizaje, más se actualizarán los pesos sinápticos asociados con esta oración para que sean más altos. Esto significa que es más probable que el modelo genere esta frase, "La casa es blanca", como salida.
El modelo también tiene en cuenta el contexto de la frase y el entorno en el que aparece. Por ejemplo, la frase "La casa es blanca" es más probable que aparezca en un contexto que habla de urbanizaciones que en un contexto que habla de agencias de viajes.
Las reglas del lenguaje también pueden influir en la probabilidad de que aparezca una frase. Por ejemplo, la frase "La casa es blanca" es gramaticalmente correcta en francés, mientras que la frase "La casa blanca es" es gramaticalmente incorrecta.
Hay muchos otros factores que determinan la probabilidad de que una oración aparezca como resultado de un modelo de lenguaje. Estos factores pueden ser específicos del modelo o del dominio de aplicación.
N.B.: El modelo de idioma no es una fotocopiadora. Es capaz de aprender datos y generar texto similar a los datos de entrenamiento, pero no copia el texto de los datos de entrenamiento palabra por palabra.
Una IA se puede programar con algoritmos de cálculo clásicos, como en los sistemas expertos o sistemas de recomendación que utilizan técnicas de aprendizaje denominadas "machine learning". Sin embargo, estas técnicas tienen limitaciones a la hora de resolver problemas complejos o no estructurados. Además, en la informática tradicional es difícil tener en cuenta problemas que aún no se han encontrado.
Gracias al desarrollo de técnicas de aprendizaje profundo (varias capas ocultas), la IA puede resolver problemas complejos y no estructurados, sin necesidad de ser programada explícitamente. El aprendizaje profundo permite que los programas informáticos aprendan de los datos.
Sin embargo, los modelos de aprendizaje automático son complejos. Pueden contener miles de millones de parámetros, todos los cuales deben aprenderse, ponderarse y optimizarse. Esto requiere una gran cantidad de datos y potencia informática. El proceso de aprendizaje suele ser largo y puede llevar mucho tiempo. A pesar de estas limitaciones, el desarrollo de la IA es infinitamente más productivo que el desarrollo de sistemas expertos. Sin el concepto de redes neuronales artificiales, habría sido imposible para los humanos lograr ChatGPT en tan poco tiempo.