Por Eduardo Cesar Garrido Merchán
Profesor de Métodos Cuantitativos, Universidad Pontificia Comillas.
Pincha aquí para ver el vídeo sobre este post
Comenzamos un curso donde se explorarán los fundamentos metodológicos de los modelos largos de lenguaje. En otras palabras, aprenderemos cómo funcionan ChatGPT y otros modelos similares. Al igual que nosotros, ¡ellos también tienen redes neuronales! ¿Te interesa? ¡Continúa leyendo! No te preocupes, las redes neuronales de los modelos de lenguaje son bastante diferentes a las nuestras. Empecemos con las similitudes. Tanto las redes neuronales artificiales como las biológicas están compuestas por neuronas. En las artificiales, representamos las neuronas con círculos. Dentro de estos círculos, las redes neuronales artificiales realizan una combinación lineal, mientras que en nuestras neuronas del cerebro ocurren procesos mucho más complejos. Otra analogía son las conexiones. Cada círculo (neurona) tiene una serie de conexiones de entrada y salida. La información de entrada puede provenir de otras neuronas o directamente de los datos de entrada. En las redes neuronales artificiales, la información fluye desde la capa de entrada a través de las capas ocultas hasta la capa de salida. La clave de estos modelos es que cada conexión tiene un peso asociado, denotado como w. Este peso pondera la información que pasa por la conexión. Cada variable de entrada x se representa por un círculo. Por ejemplo, si tenemos dos variables de entrada, como la altura y el peso de una persona, esta información se transmite a todas las neuronas de la capa oculta. Sin embargo, cada neurona pondera esta información de manera diferente, según los pesos de sus conexiones. Esta operación de combinación lineal, ponderada por los pesos, ocurre en cada neurona, y la salida se transmite a la siguiente capa para repetir el proceso. Finalmente, la información llega a la capa de salida, donde el número resultante puede interpretarse como una variable numérica en un problema de regresión o como una probabilidad en un problema de clasificación.
Estamos usando la estructura de la red neuronal para representar una función de probabilidad compleja: p(y|X,W), donde y es la variable objetivo, X son las variables de entrada y W son los pesos de la red. El objetivo del algoritmo de aprendizaje es ajustar los pesos W para que la red neuronal modele correctamente la relación entre X e y. La arquitectura de una red neuronal puede ser muy compleja. Cada capa de la red es una matriz de números W que codifica los patrones necesarios para transformar X en y. Al multiplicar el vector X de entrada por la matriz W, transformamos X de acuerdo con un mapa necesario. Pero al multiplicar una serie de matrices W se produce otra matriz W. Entonces, ¿por qué multiplicar matrices secuencialmente en lugar de usar una sola matriz? La respuesta está en la función de activación, α, que introduce una no linealidad. Esto permite que cada capa transforme la información de manera no lineal y, al tener múltiples capas, podemos aproximar cualquier función matemática posible, dado un número suficiente de neuronas y capas. El número de hiperparámetros en una red neuronal es enorme. ¿Cuál es el número óptimo de neuronas y capas? ¿Qué tipo de capas y funciones de activación debo usar? Además, hay otros conceptos cruciales como la tasa de aprendizaje, regularizadores y tamaño de batch. Ajustarlos incorrectamente puede resultar en un modelo mediocre, pero ajustarlos bien puede hacer tu modelo imbatible.