Francis Villatoro explica que las librerías estándar en Python utilizadas para implementar redes neuronales como PyTorch, TensorFlow y JAX no corrigen un problema numérico común.
…más caras, menos caras, pero es verdad. O sea, solo lo aplicas en principio cuando se ve que es necesario. Esto es conocido desde que hay bits, vamos. Desde que hay ordenadores, desde que las primeras mujeres empezaron a programar en la década de los 1940. Y entonces esto es un problemita que aparece en muchas circunstancias y aparece, por ejemplo, en redes neuronales. Y es una cosa que uno, yo, que he dado clase de método numérico durante 30 años, pues siempre he pensado que en redes neuronales la gente sabía esto y lo arreglaba. Y resulta que no, que las librerías estándares en Python que se usan más para la implementación de redes neuronales como PyTorch, como TensorFlow, como JAX, no lo tienen implementado; no hacen esta corrección. Y claro, uno puede decir: bueno, pero esa corrección es poco relevante, bueno, poco relevante entre comillas, porque ahora se ha puesto de moda en todas las redes neuronales modernas. Todo lo que llaman apariencia de profundo, se utiliza una manera de estimar probabilidades para los resultados de la salida, que a partir de esas probabilidades yo calculo lo que llaman la pérdida, el error de la red neuronal y con ese error, hago un cálculo de una cosa que se llama el gradiente, la sensibilidad, de la salida a los parámetros de la red; modifico la red. Y cuando yo hago la operación más usada, se llama SoftMax. La idea es utilizar exponenciales. La idea es: la red, a partir de una entrada, me devuelve una salida, y las salidas son una serie de etiquetas que yo he convenido, una serie de números, pues yo qué…
Francis Villatoro explica cómo se ajustan los parámetros de una red neuronal multicapa comparando las salidas de la red con los datos de entrenamiento.
Habla: Francis VillatoroPalabras #14parámetros de matrices vectoresentrenamiento de la red neuronalajuste de parámetros durante entrenamientored neuronal multicapa villatorodatos de entrenamiento francis villatorosalida correcta comparada con iVooxerror para corregir parámetros red…a nadie se le ocurriera que esto podía ser relevante porque ya se sabía en el entrenamiento de redes neuronales. Muchas veces cuando vemos en libros, etc., la curva de las pérdidas, de la calidad del entrenamiento, del error que comete la red: La red es un Sistema en el que yo meto una entrada, obtengo una salida y en el proceso de entrenamiento la red tiene una serie de parámetros, muchos parámetros, una serie de matrices y vectores que caracterizan la dinámica, el comportamiento de la red neuronal multicapa. Cada capa tiene sus matrices y sus vectores. Yo meto una entrada y claro, yo tengo que ajustar, entrenar la red, los parámetros. Yo no sé cuáles son los parámetros correctos, entonces voy. metiendo entradas y las salidas las comparo con los datos de entrenamiento. Yo sé cuál es la salida correcta, pues comparo la salida de la red neuronal con la salida correcta y eso me permite determinar el error que yo uso para corregir el estado actual de los parámetros de la red. Yo opero en un conjunto de pasos de entrenamiento. Básicamente suelo dividir el conjunto de entrenamiento, que suele ser un conjunto grande, en una serie de bloques; y para cada bloque veo cuáles son las salidas de la red neuronal, calculo los errores y uso…
Francis Villatoro explica cómo funciona el proceso de entrenamiento de una red neuronal, detallando que requiere múltiples épocas para pasar por todos los datos de entrenamiento.
Habla: Francis VillatoroSignificado #3 · Palabras #17épocas de entrenamiento de red neuronaldatos de entrenamiento múltiples épocasredes neuronales pequeñas y grandes…de la red neuronal, calculo los errores y uso lo que se llama el gradiente, el algoritmo del descenso del gradiente. Ahora explicaré un poquito de qué va; y uso esos errores para modificar los pesos. Entonces, cada paso yo modifico los pesos y voy repitiendo. Estos pasos hasta que acabo con todo el conjunto de entrenamiento; en ese momento hablo de una época de entrenamiento y normalmente una red neuronal requiere múltiples épocas en las que voy pasando por todos los datos de entrenamiento. Una de las cosas que se había observado en ciertas redes, sobre todo en redes relativamente pequeñas, pero ahora hay evidencia también en una red grande: es que el error de la red durante el entrenamiento. No era monótono. Muchas veces en los libros vemos que el error es alto; el error baja rápidamente. Después se relaja y baja pero mucho más despacio. Es la curva ideal para el entrenamiento. Pero se habían observado muchos casos en los que el error baja y…
Francis Villatoro explica que las librerías estándar en Python utilizadas para implementar redes neuronales como PyTorch, TensorFlow y JAX no corrigen un problema numérico común.
Habla: Francis VillatoroSignificado #1 · Palabras #1redes neuronales problemita comúnmétodo numérico clases francis villatoroproblema redes neuronales profesionalespytorch tensorflow jax redes neuronalespérdida error red neuronalgradiente sensibilidad salida parámetrosaparición de profundo estimar probabilidades…más caras, menos caras, pero es verdad. O sea, solo lo aplicas en principio cuando se ve que es necesario. Esto es conocido desde que hay bits, vamos. Desde que hay ordenadores, desde que las primeras mujeres empezaron a programar en la década de los 1940. Y entonces esto es un problemita que aparece en muchas circunstancias y aparece, por ejemplo, en redes neuronales. Y es una cosa que uno, yo, que he dado clase de método numérico durante 30 años, pues siempre he pensado que en redes neuronales la gente sabía esto y lo arreglaba. Y resulta que no, que las librerías estándares en Python que se usan más para la implementación de redes neuronales como PyTorch, como TensorFlow, como JAX, no lo tienen implementado; no hacen esta corrección. Y claro, uno puede decir: bueno, pero esa corrección es poco relevante, bueno, poco relevante entre comillas, porque ahora se ha puesto de moda en todas las redes neuronales modernas. Todo lo que llaman apariencia de profundo, se utiliza una manera de estimar probabilidades para los resultados de la salida, que a partir de esas probabilidades yo calculo lo que llaman la pérdida, el error de la red neuronal y con ese error, hago un cálculo de una cosa que se llama el gradiente, la sensibilidad, de la salida a los parámetros de la red; modifico la red. Y cuando yo hago la operación más usada, se llama SoftMax. La idea es utilizar exponenciales. La idea es: la red, a partir de una entrada, me devuelve una salida, y las salidas son una serie de etiquetas que yo he convenido, una serie de números, pues yo qué…
Francis Villatoro explica cómo se utiliza la técnica de destilado en el entrenamiento de redes neuronales, aprovechando las respuestas de modelos grandes como ChatGPT o LLaMA.
Habla: Francis VillatoroSignificado #8destilado con chatgpt y llamaredes neuronales entrenadas clotentrenamiento acelerado con modelos grandestecnología barata para redes neuronales…¿no? O sea, pero tienen que usar una tecnología un poquito por detrás, una tontería de los Estados Unidos; de hecho ya hay empresas fabricando sus propias GPUs para entrenamiento en China con tecnología que no es de envidia. Pero bueno, en cualquier caso, En ese proceso se utiliza una técnica que se llama destilado; y en el destilado lo que yo hago es que una red neuronal ya entrenada, un gran modelo de lenguaje ya entrenado ChatGPT, CLOT, las grandes empresas, Lama, ya entrenado, me dé la respuesta buena a las preguntas. Entonces yo en la fase de entrenamiento no tengo que, puedo acelerar, digámoslo así, el entrenamiento buscando que las respuestas de mi red, que me cuesta más trabajo entrenar porque tengo una tecnología un poquito más barata para hacerlo, coincida con la que da el modelo grande. Entonces, lo que hacen los chinos, que se supone que lo han hecho y es una cosa que no pueden confesar de verdad, pero bueno, que lo dicen así en plan rumulología, es que supuestamente miles de usuarios chinos están usando la tecnología de Estados Unidos,…
Francis Villatoro menciona un artículo publicado hace unas semanas por investigadores chinos que utilizan una red neuronal con 450 millones de parámetros para el entrenamiento.
Habla: Francis VillatoroSignificado #9red neuronal investigadores chinosparámetros entrenamiento red neuronalopenai billones de parámetrosred neuronal con 50000 millones tokensentrenamiento inestable de red neuronal…casos hasta 3, o sea, porque son redes tan grandes con tal número de parámetros que esto les afecta poco. Entonces, bueno, pues, en principio, estas pequeñas diferencias cancelativas son, entre comillas, irrelevantes para este tipo de problemas. Pero se Ha publicado un artículo, y se publicó en septiembre el 28 de septiembre, o sea, hace un par de semanas. De unos investigadores chinos que utilizan una red que no es pequeña, ¿vale? Una red que no es pequeña para la escala normal: es una red que tiene 450 millones de parámetros de entrenamiento, ¿vale? O sea que es pequeña comparada con las de OpenAI y que tienen billones con B, millones de millones de parámetros, ¿no? Aquí estamos hablando de solo 450 millones, pero 450 millones de parámetros son ya unos cuantos, ¿eh? Requieren... Y lo que han observado en una red en la que estaban entrenando con una cantidad de memoria por relativamente pequeña, 50.000 millones de tokens, ¿eh? Han observado que aparece este tipo de fenómeno en el proceso de entrenamiento: cuando el entrenamiento tiene muchas épocas, llega un momento en que de repente se va de olla y se va. Y se desvía una barbaridad con errores enormes, errores en los gradientes que pueden llegar a ser del 200%, del 200%, 219% en algunos parámetros. Es una barbaridad, con lo que incluso en el entrenamiento de este tipo de redes relativamente grandes también se…