logo

Dot CSV

Inteligencia Artificial, Tecnología, Ciencia y Futuro! Bienvenidos a la 4ª Revolución Industrial 🚀 Inteligencia Artificial, Tecnología, Ciencia y Futuro! Bienvenidos a la 4ª Revolución Industrial 🚀

Transcribed podcasts: 213
Time transcribed: 5d 22h 50m 3s

This graph shows how many times the word ______ has been mentioned throughout the history of the program.

Hola chicos y chicas, bienvenidos a DOTCSV, tu canal sobre inteligencia artificial, en
el que hoy vamos a tratar un tema muy, pero que muy interesante. Y es interesante por
tres motivos diferentes. El primero es porque se trata de una publicación que salió hace
solamente dos o tres días por parte de OpenAI y que seguramente empezaremos a escuchar bastante
de ella en futuras ocasiones y también en medios más convencionales. La segunda es
que se trata de un avance bastante interesante dentro del campo del Natural Language Processing,
que es un campo que dentro del canal de YouTube no lo hemos tocado tanto y que yo creo que
nos va a permitir hoy ver bastantes conceptos interesantes. El tercer motivo es que, como
suele ser habitual en el Machine Learning, pues es un tema que también trae una cierta
controversia y un cierto debate que puede definir bastante la evolución del campo del
Machine Learning en el futuro. Creo que si con estos tres motivos no tengo tu atención
todavía, no hay nada más que pueda hacer para conseguirla. Así que en cualquier caso,
vamos a comenzar.
El científico nombró la población por su distintivo cuerno, unicornios de Ovidio. Estos
unicornios blanco-plateados de cuatro cuernos eran previamente desconocidos para la ciencia.
Ahora, después de casi dos siglos, el misterio de lo que provocó ese extraño fenómeno
se resuelve finalmente. El doctor Jorge Pérez, un biólogo evolutivo de la Universidad de
la Paz y varios compañeros, estaban explorando las montañas de los Andes cuando encontraron
un pequeño valle, sin otros animales o humanos. Pérez notó que el valle tenía lo que parecía
ser una fuente natural, rodeada por dos picos de rocas y nieve plateada. Pérez y los demás
se aventuraron más lejos en el valle. Cuando llegamos a la cima de un pico, el agua se
veía azul, con algunos cristales encima, dijo Pérez. Pérez y sus amigos se asombraron
al ver la manada de unicornios. Estas criaturas se podían ver desde el aire, sin tener que
moverse demasiado para verlas. Estaban tan cerca que podían tocar sus cuernos.
No, tranquilo, no se vayan todavía. Ya sé que esto es un canal de inteligencia artificial.
Pero tienes que entenderlo. Este texto que te acabo de enseñar es un texto que está
escrito por una inteligencia artificial. Yo lo único que he hecho ha sido escribir el
primer párrafo y la inteligencia artificial se ha encargado de generar todo el texto que
ha venido a continuación. Como ves, el sistema es impresionante, siendo capaz de construir
un texto que mantiene una coherencia gramatical, una estructura semántica correcta, memoriza
a los personajes que ha mencionado en párrafos anteriores e incluso demuestra una cierta
creatividad a la hora de nombrar nuevos personajes, lugares o incluso nombrar a los unicornios
como unicornios de Ovidio. La verdad que es un resultado impresionante y que incluso podría
decir que nunca antes visto dentro del campo del Machine Learning. Y de eso vamos a hablar
hoy.
El campo del Natural Language Processing o campo del procesamiento del lenguaje natural,
como su propio nombre indica, es el campo de estudio que se encarga de entender cómo
funciona el lenguaje, cómo se construye, cómo poder generar nuevo lenguaje y todas
las tareas que están relacionadas con esto. Cuando esto lo integras con Machine Learning,
lo que buscas entonces es que sea la propia máquina, el propio modelo, el que aprenda
a hacer todo este análisis de manera automática y el que aprenda a realizar tareas que estén
relacionadas con el tratamiento y el procesamiento del lenguaje. Dentro de este campo hay muchas
subtareas que son muy interesantes de resolver, como por ejemplo el simple hecho de generar
nuevo texto, que es el que estamos viendo ahora, o por ejemplo hacer una traducción
de un idioma a otro, es decir, coger el texto y cambiarlo de un dominio que sería el lenguaje
español a un nuevo dominio que sería el lenguaje inglés, sería algo así como una transferencia
de estilo a lo mejor, o por ejemplo que a partir del procesamiento de un texto tú puedas
hacerle preguntas sobre lo que ha entendido del texto, o que te puedas revisar un resumen
de a lo mejor dos o tres líneas en función de todo el contenido de un texto, como ves
son muchas funcionalidades que plantea pues muchas otras aplicaciones más, por ejemplo
todo esto se podría integrar en sistemas de chatbots que bueno, pues tú pudieras tener
conversaciones de manera natural, que te entendiera, que te respondiera a las preguntas, como
ven es un campo bastante prometedor y bastante llamativo si conseguimos desarrollarlo. La
buena noticia es que es el campo en el que actualmente se están produciendo los mayores
avances dentro del Machine Learning, si bien hace unos años pues era el campo del Computer
Vision, la visión por ordenador la que conseguía desarrollar los mayores avances, los pasos
más agigantados dentro del Machine Learning, el Natural Language Processing siempre se
ha mantenido como ese segundo campo que se iba beneficiando incluso de los propios avances
que se producían en el Computer Vision, hay técnicas como por ejemplo el uso de mecanismos
de atención o por ejemplo el utilizar modelos ya pre-entrenados, todos estos son conceptos
que primero se han descubierto o se han aplicado a modelos de Computer Visions y que luego
poco a poco se ha ido viendo que también tiene su utilidad dentro de otros campos como
el del Natural Language Processing, y en ese sentido es un poco de lo que vamos a hablar
hoy, porque realmente cuando te pones a analizar un poco cómo ha sido el progreso del mundo
del Deep Learning durante los últimos 10 años, esta nueva ola que estamos viviendo,
nos damos cuenta que el punto de origen se da siempre en 2012, ¿qué ocurrió en 2012?
Bueno, ya lo hemos comentado otras veces en el canal, fue ese momento en el que estaba
esta competición, la de ImageNet, que es una competición donde tú tienes que resolver
un problema de clasificación que es bastante complejo, tienes un dataset gigantesco con
un montón de imágenes y tienes que aplicar alguna técnica que te permita resolver este
problema de clasificación de la mejor manera. ¿Qué pasó en 2012? Bueno, fue en ese año
cuando se presentó a esta competición la primera solución basada en algoritmo de Deep
Learning. Claro, hasta ese momento pues no se le daba la importancia que se le tenía
que dar a estos algoritmos. Lo que ocurrió en ese momento inmediatamente fue que el rendimiento
conseguido por estos modelos fue bastante, bastante superior al de técnicas que no se
basaban en Deep Learning y fue, yo creo que es el punto en el que todos nos ponemos de
acuerdo que se dio cuenta a todo el mundo que estos modelos podían tener un potencial
que todavía no habíamos explorado. En ese sentido, ImageNet representó el punto de
salida, pero a lo largo de los años también hemos comprobado que ha tenido más utilidad,
porque lo que ocurre es que cuando tú consigues entrenar a un modelo de Deep Learning para
poder resolver la tarea que te plantea el dataset de ImageNet, este problema de clasificación,
ocurre que este dataset es tan grande y tan rico en la cantidad de imágenes que plantea
que el modelo que tú has entrenado también puede ser útil para poder resolver otras
tareas diferentes. Esto es una cosa que por ejemplo cuando operas con redes neuronales
convolucionales se puede ver cuando analizas que las primeras capas que son las que aprenden
aquellos conceptos que son más generalizables, por ejemplo el concepto de que es una esquina,
que es un borde, que es una textura y todas las formas geométricas, todas las formas
básicas que pueden ser tanto aplicables para el dataset ImageNet como para otros datasets,
pues esas capas tú te las puedes llevar a una arquitectura diferente y en esa arquitectura
diferente pues simplemente hacer un entrenamiento que va a ser mucho menos costoso, mucho más
barato para que pueda aprender cuáles son las especificidades de las imágenes de ese
dataset y vas a conseguir un rendimiento incluso superior que si simplemente te centraras en
entrenar desde cero a ese modelo. Esto de lo que estamos mencionando aquí se llama transferencia
del conocimiento y es un concepto bastante interesante porque lo que estamos hablando
es que el conocimiento aprendido por la red lo podemos generalizar. Esto es un concepto
que es muy interesante pero que no se tiene que limitar solo al campo del computer vision,
también podríamos intentar buscar pues el mismo caso pero dentro del campo del Natural
Language Processing, por ejemplo, algún tipo de problema, algún tipo de dataset que cuando
tú entras a tu modelo pueda aprender unas características que sean generalizables para
otro tipo de problemas. Este paso de buscar un ImageNet pero también para el campo del
Natural Language Processing viene bastante bien explicado en este artículo que pongo
aquí que voy a dejar abajo en la descripción pero que también es en el que me voy a basar
para explicar todo lo que viene ahora. Y esto nos lleva al primer punto y al primer concepto
del campo del Natural Language Processing que quiero tratar porque, bueno, si estamos
hablando de pre-entrenar a un modelo, es decir, de coger un modelo entrenado para una tarea,
intentar sacar ese conocimiento y utilizarlo en otra tarea diferente, pues tenemos que
empezar hablando de lo que son los Word Embeddings.
¿Qué es esto? Muy sencillo, mira, tu a la red neuronal la quieres alimentar de alguna
manera con texto, un texto que tienes que subdividir en secuencias de frases o de palabras
o incluso de a nivel de caracteres. Claro, tú una palabra no se la puedes dar directamente
a una red neuronal, de alguna manera tienes que conseguir una representación numérica,
una representación matemática de lo que es esa palabra, porque una red neuronal opera
con números. En ese sentido, si quisiéramos hacer una solución rudimentaria para esto,
podríamos coger un vector de ceros donde cada posición representa una palabra de
nuestro vocabulario. Simplemente buscamos qué palabra queremos representar y la marcamos
con un 1. Vale, esto lo podríamos ir haciendo para cada una de las palabras que tenemos
en nuestro texto y así acabaríamos obteniendo un conjunto de vectores donde solamente tendríamos
un 1 en la posición que representa la palabra que queremos representar. Sencillo, ¿no?
Este método se conoce como One Hot Encoding y es cierto que puede funcionar bien, pero
creo que podemos hacerlo mejor. Porque claro, en este caso simplemente estarías representando
tu palabra en un espacio multidimensional del tamaño de tu vocabulario, donde cada palabra
sería un vector que apuntara en una única dimensión. Por ejemplo, si tuvieras tres
palabras que fueran perro, gato y microondas, pues las tendrías representada con estos
tres vectores de aquí. Claro, conceptualmente no todas las palabras se tienen que encontrar
a la misma distancia si son palabras que tienen un significado parecido. Por ejemplo, conceptualmente
entendemos que perro y gato pueden tener una mayor relación que la que puedan tener perro
y microondas y gato y microondas. En ese sentido, tendría sentido que nuestro espacio de vectores
tuviera una forma más parecida a esta que a esta de aquí. Es decir, que en cierta manera
lo que nos gustaría hacer es que estos vectores, su dirección nos sirviera también para codificar
una cierta relación que existe entre estas palabras. Esto es una cosa que podría ser
aprendida también por un algoritmo de machine learning de manera no supervisada y que realmente
lo que tendría que hacer es coger una palabra y convertirla un vector y que ese vector codifique
la relación existente entre esas palabras. Esa idea de coger una palabra y convertirla
en un vector que realmente contenga información de la semántica de la palabra es realmente
lo que hace un word embedding, que es el concepto que hemos presentado previamente. Lo que ocurre
es que cuando estos embeddings son aprendidos de manera correcta, estas relaciones que son
codificadas en los vectores son bastante interesantes, porque te puedes encontrar cosas como por ejemplo
que un vector que represente a la palabra reina, si le restas otro vector que represente
el concepto de mujer, te va a quedar otro vector. Ese vector que podría representar
reina menos mujer, se lo suma a otro vector que sea el de hombre, que nos sale, nos sale
el vector rey. Vale decir que existe una relación matemática algebraica entre los vectores
que también recoge la semántica de las palabras. Sobre esto quiero recomendar un podcast, el
de Oliver Navani, que justamente el viernes pasado trató este tema, el de los propios
vectores. Este concepto es muy muy interesante, porque realmente una vez tienes un algoritmo
que ha aprendido a hacer esto, estos word embeddings, lo puedes compartir y puedes hacer
que la gente lo utilice en sus propios sistemas. Porque claro, la representación y la semántica
de las palabras es una de esas cosas que tienen que ser generalizables. Es decir, la semántica
de una palabra te debería servir tanto para un problema de traducción como para un problema
de generación de texto. Realmente esta técnica que te estoy contando no es nada nuevo dentro
del campo del NLP y de hecho se viene utilizando sin mucha variación durante los últimos
5 o 10 años. Pero qué ocurre? Que esto en los dos últimos años ha empezado a cambiar
y hemos empezado a encontrar otras alternativas a estos modelos pre-entrenados que podemos
utilizar para mejorar el rendimiento de nuestro entrenamiento. Esta alternativa es la de utilizar
modelos del lenguaje. Porque al final la limitación que tiene utilizar un word embedding es que
vale, sí, perfecto, has conseguido representar en estos vectores la semántica de las palabras
y esto está muy bien porque esto se lo puedes insertar a la red neuronal en vez de las palabras
basadas en One Hot Encoding y pues con esto ya la red neuronal tiene pistas de cómo relacionar
cada palabra porque conoce cuál es su semántica. Eso está perfecto, pero esto no lo es todo.
O sea, una frase pues las palabras también tienen una relación entre ellas dentro de
una propia sentencia. Lo interesante aquí sería que de alguna manera pudiéramos construir
un modelo que no sólo entendiera la semántica de las palabras sino también cómo se relacionan
entre ellas dentro de un texto. Esto es lo que se conoce como un modelo del lenguaje.
Un modelo del lenguaje es un modelo de machine learning cuya tarea va a ser la de intentar
predecir cuál es la siguiente palabra en función de todas las palabras anteriores. Por ejemplo,
si yo te dijera la frase, la próxima semana no voy a poder subir vídeos porque estoy
loide, la tarea que tú estás resolviendo sería la misma que tendría que resolver
un algoritmo de machine learning que tuviera que aprender un modelo del lenguaje. Claro,
si un algoritmo de machine learning ha aprendido a resolver esta tarea es que no sólo entiende
el significado de las palabras sino que también entiende cuál es la estructura completa
de el lenguaje. Y esto es muy interesante porque esto es otro tipo de conocimiento que
puede ser generalizable y utilizable para resolver otros tantos tipos de tareas. Esta
es la tendencia hacia la que se está moviendo el campo del natural language processing en
los últimos dos años. Es decir, utilizar aprendizaje no supervisado, es decir, tú
no tienes que generar ningún dataset de input-output, simplemente es darle texto para que los algoritmos
de machine learning puedan aprender en función de ese texto, analizándolo frase por frase,
palabra por palabra, a predecir cuál va a ser la siguiente palabra. Cuando tú haces
eso construyes un modelo del lenguaje que va a permitir resolver diferentes tareas.
Cuando tú por ejemplo quieras enfrentarte a una tarea de traducción, tú vas a coger
este modelo de lenguaje como punto de partida y vas a hacer un entrenamiento de ese modelo
para empezar a resolver esa tarea. Ese entrenamiento sí va a ser supervisado, pero te va a requerir
un menor volumen de datos de entrenamiento, con lo cual va a ser mucho más eficiente,
mucho más barato y en algunos casos incluso vas a obtener un mejor rendimiento. A este
proceso de entrenar a un modelo ya pre-entrenado para resolver una tarea específica es lo
que se conoce como fine-tuning. ¿Pero en serio esto es posible? O sea, ¿me está diciendo
que yo puedo coger de internet y descargarme un modelo pre-entrenado en un data center
de Google, que sea un modelo del lenguaje, llevármelo para acá, hacerle el proceso
de fine-tuning con mi datos y que me dé un rendimiento espectacular con tan poco consumo
de entrenamiento y tan poco consumo de datos? ¿En serio existe esta transferencia del conocimiento
tan eficiente y de la que yo me puedo beneficiar? Pues sí, y de hecho esta es la llave que
está posibilitando que haya tantos avances últimamente dentro del campo del Machine
Learning, y es que esta vía se está investigando. Si tú eres ácido en el canal, sabrás que
muchas de las últimas noticias que hemos mencionado del campo del Natural Language
Processing están representadas por modelos como Elmo, ULMfit o BERT. Son casos de utilizar
modelos del lenguaje y el proceso de fine-tuning para conseguir estos rendimientos del estado
del arte en muchas tareas diferentes, lo cual es algo muy prometedor.
Y con esto yo creo que ya tenemos todo el contexto para poder entender de lo que vamos
a hablar hoy, porque hoy estamos hablando del modelo presentado por OpenAI, GPT-2, que
es básicamente una evolución de su modelo GPT-1, que no se llamaba GPT-1, sino que se
llamaba GPT-1 porque no existía GPT-2. ¿Me estás siguiendo?
En este caso el modelo GPT la sigla viene a significar Generative Pre-Training, que
yo creo que en este caso ya podemos entender a qué viene a referirse. Como dato curioso
del modelo GPT original, el de 2018, fue el que evolucionó luego el modelo presentado
por Google BERT, aunque bueno, también siendo justos, el modelo GPT hace uso de una tecnología
que son los Transformers, que Google también presentó en 2017.
¿Y cuál es la evolución obtenida por el modelo GPT-2 comparado con el modelo GPT-1?
Pues tampoco hay mucha diferencia, simplemente lo han hecho más grande.
Es decir, en ambos casos el modelo GPT-2 y el modelo GPT están resolviendo la misma
tarea que es básicamente la de predecir cuál es la siguiente palabra en función de las
palabras anteriores, es decir, estamos construyendo un modelo del lenguaje. La única diferencia
que existe en estas arquitecturas es que la segunda es 10 veces mayor. Es 10 veces mayor
en el número de parámetros, en este caso son 1500 millones de parámetros, cuando en
la primera ocasión imaginó que sería en torno a 150 millones y se ha entrenado también
sobre un volumen 10 veces mayor de datos. En este caso se trata de un dataset de 40 gigas
de páginas webs que han cogido de manera muy inteligente de la página de Reddit. Lo
que han hecho para curarse en salud y saber que los datos que están utilizando para entrenar
al modelo provienen de páginas webs que tienen una cierta importancia, una cierta relevancia,
ha sido usar esta plataforma, el foro de Reddit, para seleccionar aquellas páginas que tuvieran
al menos tres puntos de karma votados. Con esto, gracias a la colaboración no autorizada
de los usuarios de Reddit, pues se han asegurado de que el contenido de sus datos tengan más
o menos una cierta relevancia. Y claro, es curioso porque aquí realmente la única mejora
que introduce este paper a nivel técnico de arquitectura es que la arquitectura es
más grande. Con lo que la pregunta aquí es, entonces, ¿este modelo más grande funciona
mejor o no funciona mejor? Pues creo que sí y lo hemos visto al principio de este vídeo
como el texto que era capaz de generar, y ya entendemos que esto lo que viene a representar
es un modelo del lenguaje, pues es bastante bueno y bastante coherente, respetando semánticas,
respetando estructuras e incluso respetando hasta el estilo del lenguaje. Si tú el texto
que le suministraras fuera un texto más infantil, el texto que te estaría generando también
tendría ese tono, ese tono de voz en la escritura más infantil, o si fuera un texto más académico,
más académico. Se mantiene tanto la forma como el fondo del mensaje y yo creo que eso
es bastante interesante porque lo que nos indica es que realmente si hemos conseguido
un modelo del lenguaje bastante bueno y que pueda tener sutilidad a la hora de resolver
otras tareas. Sin embargo, la cosa no queda solo ahí y yo creo que ahora viene lo más
interesante y en serio es muy, muy interesante. Porque como hemos dicho, una vez tienes tu
modelo preentrenado, aceptamos que este modelo funciona bien, lo hemos comprobado, genera
texto, perfecto. Ahora, si yo quisiera por ejemplo aplicarlo para hacer una traducción,
pues ¿qué tendríamos que hacer? Si has prestado atención, pues habrás que coger el modelo
preentrenado. Ahora buscamos un dataset de traducción de pares, de por ejemplo esta
frase en español, esta en inglés y se lo introduzco y hacemos un entrenamiento supervisado.
Hacemos el proceso de fine tuning, perfecto. Pero ¿y aquí es donde realmente viene lo
bueno? ¿Podríamos saber si el modelo tal cual lo tenemos preentrenado ahora, es decir,
sin ningún proceso de fine tuning, podría ser capaz de tener algún rendimiento en alguna
de estas tareas sin haberle entrenado en ningún momento para que sepa cómo hacerlas? Es decir,
si por ejemplo queremos resumir un texto, que sea capaz de resumir el texto sin en ningún
momento haberlo entrenado con pares de texto completo y resumen. ¿Seríamos capaces? Pues
sí, y esto es muy guay. Se ha comprobado que este modelo preentrenado es capaz de hacer
resúmenes, es capaz de hacer traducciones, le puedes hacer inferencia de preguntas, todo
esto sin ningún momento haberle especificado que tenga que aprender a hacer esa tarea.
Podemos, solamente le hemos enseñado a predecir cuál es la siguiente palabra en una frase.
Esta habilidad de un modelo de aprender una tarea para la cual no le hemos entrenado se
conoce como zero-shot learning y creo que no hace falta contarte por qué esto es tan
importante. Pero Carlos, a ver, si tú el modelo solamente lo has entrenado para que
dado un texto te genere más texto, ¿cómo puedes conseguir con eso que te haga traducciones,
resúmenes? ¿Cómo lo utilizas? Muy buena pregunta, y de hecho la respuesta lo es más,
porque es cierto, nosotros tenemos entrenado al modelo para darle un párrafo y que te
siga generando texto a partir de ahí. ¿Cómo podemos conseguir a partir de eso que, por
ejemplo, el modelo nos pueda generar un resumen? Pues la manera encontrada por los investigadores
es bastante interesante y bastante curioso de que funcione. Yo no sé si conoces que
en internet después de escribir un texto muy largo, un párrafo muy largo, suele ser
habitual acompañarlo de un acrónimo que es TL.com.dr. Este acrónimo lo que viene a significar
es too long, didn't read o en español muy largo, no me lo he leído. Y básicamente lo
sueles poner TL.com.dr y después de eso lo acompañas con un pequeño resumen de una
línea o dos líneas de todo lo que has querido expresar en el párrafo grande que has puesto.
Claro, esto es una cosa que sucede en internet y que si nosotros estamos basando el algoritmo
en aprender en parte de las páginas webs de internet, pues esto lo ha tenido que ver
de alguna manera. Con lo cual debería entender que después de ese acrónimo lo que tendría
que venir es un resumen. Con lo cual lo que han hecho los investigadores ha sido probar
y ver. A ver, le vamos a pasar un párrafo muy grande y lo último que vamos a insertar
es este acrónimo TL.com.dr. A partir de ahí vamos a dejar que nuestro modelo del lenguaje
siga generando palabras, palabras, palabras y a ver qué sale y qué ha salido un resumen.
¡Guau! ¡Guau! Muy ingenioso, increíble, apasionante. Hay que decir que en este caso
el modelo no es capaz de generar resúmenes muy convincentes y de hecho se ha comprobado
que la calidad de los resúmenes es similar a coger del texto original pues frases aleatorias,
de frases aleatorias y eso pues sería más o menos el mismo significado que tendría
tu resumen. Pero aún así se ha comprobado que si tú no incluyes el TL.com.dr no suele
ser habitual que el algoritmo intente generar un resumen y ya solamente que exista ese intento,
esa forma de invocar a esa habilidad de resumir en función del comando TL.com.dr es muy muy
interesante porque significa que el modelo ha aprendido que esa interacción sucede en
internet. O por ejemplo, para inducir que el modelo de respuestas a preguntas sobre
un texto determinado, lo único que han tenido que hacer los investigadores ha sido colocar
el texto del cual quieres hacer preguntas y un listado de preguntas con respuestas.
Al final lo que vas a colocar es una última pregunta para la cual no vas a poner la respuesta,
simplemente vas a colocar la A y dos puntos. Este es el texto que le vas a dar como input
al modelo y le vas a pedir que te siga generando cosas. Es sorprendente ver que el modelo lo
siguiente que te genera es una respuesta a esa pregunta. Es decir, de alguna manera está
entendiendo que tú lo que le estás pidiendo es que te haga ese problema y también es capaz
de resolverlo. Con lo cual es increíble porque recordemos que en ningún momento le hemos
dicho que tiene que resolver esa tarea.
Y finalmente otro caso llamativo es el de la traducción. En este caso para evocar al
modelo a que resuelva ese problema lo que han hecho ha sido coger pares de frases en
inglés y en francés y las han puesto separadas por un signo igual. Al final de un listado
de frases han puesto una frase en un idioma, han puesto el símbolo igual y han permitido
que sea el modelo el que siga generando lo que crea que tenga que venir. ¿Qué ha pasado?
Efectivamente ha generado una frase traducida al francés. Esa traducción cuando la traducción
es del inglés al francés no es tan buena como se esperaría, de hecho el resultado
bastante pobre. Sin embargo luego han probado a hacer lo contrario, de la frase en francés
traducirla al inglés. Claro en nuestro caso el modelo del lenguaje que hemos construido
está construido sobre páginas webs en inglés, con lo cual ahí el rendimiento debería ser
mejor y efectivamente es lo que se ha comprobado. Lo interesante aquí es que realmente el dataset
que han utilizado no contenía en ningún momento páginas webs en francés y esto ha llamado
bastante la atención a los investigadores. Por eso lo que han hecho ha sido coger todo
el dataset, los 40 gigas y analizarlo para encontrar a ver si había algún contenido
en francés. Y lo que han encontrado finalmente es simplemente unos 10 megas dentro de esos
40 gigas de dataset que estaban en francés. Es decir que en este caso el modelo había
aprendido a traducir frases de un idioma a otro haciendo uso de 500 veces menos datos
de lo que suele ser habitual para entrenar a este tipo de modelos, lo cual es de nuevo
impresionante. Y no, en ningún caso ninguna de estas tareas que estamos resolviendo aquí
va a superar el rendimiento de un modelo que haya sido entrenado para resolver esa tarea
en específico. Pero no es lo que estamos viendo aquí, aquí lo interesante no es eso.
Aquí lo interesante es que hemos encontrado un modelo que simplemente por entrenarlo para
resolver una única tarea ha aprendido, ha emergido conocimiento para resolver otras
tareas diferentes. Lo que nos viene a contar que este mecanismo puede ser un paso bastante
importante para empezar a producir mejores modelos en el futuro. Además recordemos que
esta técnica se basa en aprendizaje no supervisado, con lo cual no requerimos de generar dataset
gigantescos de pares de input-output. Simplemente utilizando toda la información de texto que
encontremos por internet podemos entrenar cada vez modelos más complejos y avanzados.
Y eso es muy interesante. A esto además hay que sumarle que el propio modelo es bastante
bueno resolviendo la tarea para la cual se le ha entrenado, que es generar texto. Esto
lo hemos visto al principio en el caso del texto del unicornio. Esto abre la posibilidad
a un montón de aplicaciones y demuestra que el campo del Natural Language Processing está
más vivo que nunca. Esta semana mismo, el lunes, comenzó con el project divater de
IBM participando en una demo pública donde debatía con otro humano. Luego este jueves
hemos tenido la publicación de este artículo que se basa en transformers, pero que no son
los transformers nuevos, que son los que salieron como recuerdan en el vídeo noticias hace un
mes que son los transformers XL, a saber que vendrá a partir de esos modelos. Además,
recientemente el día de ayer, Microsoft sacó una nueva versión de un modelo que se llama
MTDNN, que mejora el rendimiento del modelo que el año pasado era el estado del arte
que era el Google Bird. Bueno, no sé, esto va muy rápido. Y esto va tan rápido que abre
la posibilidad a aplicaciones que son muy guays, por ejemplo, simplemente pues que tú
puedas apretar un botón y generarte una página entera de contenido, que puedas tener sistemas
de autocompletado bastante más potentes, que puedas aplicar búsqueda semántica, que puedas
hacer inferencia, preguntas sobre un texto a tu ordenador. Y también esto mezclado con
sistemas de chatbots puede ser una combinación espectacular. Entonces, bueno, pues corre,
vete a buscar este modelo en GitHub y vete a probarlo y hacer tus cosas, entrenalo tú
con los datos y te darás cuenta que no se puede. Y esto nos lleva al último punto,
que es la controversia que se ha generado en este tema. Porque lo que pasa es que OpenAI
también ha estado fantaseando con las posibilidades que puede tener este modelo y por primera
vez en su caso han hecho un cambio de política que va muy a la contra de lo que suele ser
lo habitual en el campo del Machine Learning. Normalmente la cultura del mundo de la inteligencia
artificial es bastante aperturista, permitiendo desde el momento en el que se hace un descubrimiento
o se saca una publicación, pues compartir el código y compartir todos los detalles
de la arquitectura. En este caso, la postura tomada por OpenAI es la de no publicar ni
el código ni el modelo más avanzado. Han publicado una versión que, bueno, es una
versión, decía Andrés Torrubi en Twitter, lobotomizada y me parece una buena definición
porque simplemente tiene una décima parte de los parámetros que utiliza el modelo real
y cuando lo pruebas y compruebas su rendimiento te das cuenta que no es tan avanzado como
lo que nos ha mostrado estos ejemplos. Esto es problemático por una parte porque lo que
hace es lastrar la investigación en este campo. Ellos sacan unos resultados que de
momento no se pueden replicar, no se pueden comprobar si son ciertos y no se puede verificar
que a lo mejor no hayan tenido un fallo metodológico y que a lo mejor el modelo estuviera habiendo
datos de entrenamiento, de prueba, etcétera. Todo esto ha generado bastante controversia
y bastante crítica a OpenAI. Mucha gente está diciendo que deberían de cambiarse
el nombre a CloseAI porque el propio nombre va a la contra de lo que es su política.
Por otra parte OpenAI se defiende diciendo que esta política la han adoptado porque
realmente ven un peligro en hacer público esta tecnología. Y yo eso lo podría entender
porque realmente esta tecnología tiene la capacidad de generar texto bastante realista,
convincente, coherente que puede parecer escrito por un humano y que realmente no lo es. Esto
si se sacara a día de hoy a lo mejor podría permitir automatizar un montón de procesos
que actualmente para los cuales no contamos con tecnologías que puedan frenar una oleada
por ejemplo de bots, de troles o de spam. Estoy pensando que ahora mismo no sé si los
detectores de spam de Google, del correo o de páginas webs estarían entrenados para
poder predecir si ese texto está escrito por una máquina o no. Y eso podría ser bastante
perjudicial. A mi lo que me preocupa de esto es que esta sea la tónica en la que se vaya
a seguir desarrollando el futuro de la inteligencia artificial. Porque como ya he dicho este es
un campo que se ha beneficiado bastante de ese aperturismo de esta tecnología y que
si se tomara esa postura, pues obviamente toda la tecnología que sigamos sacando en
el futuro, pues también va a ser tecnología que va a tener unos filos bastante controvertidos
y de los cuales tendremos que prepararnos. Hay gente que prefiere que esto se haga de
manera pública y que seamos entre todos en comunidad quienes participemos de la construcción
de esas herramientas que puedan prevenir el mal uso de esta tecnología, pero ellos han
tomado esta postura. En este caso yo no me quiero posicionar del todo, tengo una idea
formada interna, pero si quiero que ustedes lo hagan. En el momento en que estoy publicando
este vídeo, en Twitter, al mismo tiempo, voy a hacer pública una encuesta que quiero
que participa la mayor parte de gente. Quiero que abramos ese debate entre, yo entiendo
que muchos de ustedes formarán parte de la comunidad o querrán formar parte de la comunidad
y me gustaría saber cuál es vuestra postura. ¿Estarían a favor de abrir esta tecnología
al público y así permitir el desarrollo aperturista de la inteligencia artificial
o por el contrario creen que deberíamos delimitarlo y estudiar mejor los posibles aspectos negativos
que pueda tener su mal uso? Como ven en el vídeo de hoy simplemente nos
hemos centrado en la parte más contextual de toda esta historia para que puedan entender
un poco la importancia que tiene esta publicación y dónde situarla dentro del progreso del
campo del Machine Learning. Si quieren conocer más detalles técnicos
de cómo funciona el modelo GPT, el original, porque al fin y al cabo este es la evolución
como ya hemos mencionado, pues recuerden que esta noticia seguramente saldrá en el próximo
vídeo de noticias y que los que son patreons del canal podrán tener la oportunidad de
votar este tema. Ya han perdido la oportunidad de esta semana
porque han elegido el tema de aprendizaje reforzado para StarCraft 2 que es bastante
interesante, el AlphaStar, y el que ha quedado en segunda posición eran los Transformers
XL que está bastante relacionado con todo esto, pero tendrán una segunda oportunidad
en el próximo mes. Por mi parte nada más, ya saben que si quieren
apoyar este contenido, el hecho de que les haya traído una explicación tan técnica,
tan densa, solo tres días de la publicación original, pues si creen que se tiene que valorar
este tipo de contenido en YouTube, saben que lo pueden hacer a través de Patreon, tenéis
el link abajo en la descripción. Igualmente seguiré trayendo contenido sobre inteligencia
artificial porque es lo que me gusta, es lo que les gusta y es lo que nos gusta a todos.
Nada más, más inteligencia artificial en dot c c u e.