Categoría: Uncategorized

GPT-3, una introducción a la revolución del modelo del lenguaje

¿Qué es el GPT-3?

El GPT-3 (Generative Pre-trained Transformer 3) es el modelo del lenguaje, que emplea aprendizaje profundo para producir textos parecidos a la redacción humana. Fue creado por OpenAI, una investigadora californiana co-dirigida por Elon Musk y Sam Altman. Es ya la tercera generación de este tipo de transformadores y el avance tecnológico más importante en los últimos años. Hoy en día es el modelo del lenguaje más complejo y más voluminoso de todos los que existen.

Basado en la arquitectura «transformador» igual que sus predecesores el GPT-1 y el GPT-2 , el GPT-3 es capaz de responder a cualquier texto introducido por el usuario con un trozo de texto nuevo generado de acuerdo con el contenido proporcionado. Es un avance muy potente, ya que los modelos del lenguaje anteriores no tenían la capacidad de generar texto parecido al escrito por un humano.

Lo que destaca al máximo el GPT-3 es su habilidad de ser aplicado a cualquier tarea de PLN sin ajustarlo para una tarea en concreto. Lo único que hace falta, es introducirle un par de ejemplos para que realize lo que queremos (el concepto conocido como few-shot learning). Ningún modelo del lenguaje anterior puede hacer esto – la mayoría de los modelos necesitan un proceso de ajuste que incluye la recolección de ejemplos para el aprendizaje. Es un logro muy importante que hace al GPT-3 un modelo del lenguaje prometedor en el mundo del PLN.

Presentado al público en mayo 2020 este algoritmo es capaz de escribir textos largos, poesía, noticias, responder preguntas, hacer traducciones, escribir música, programar, resolver tareas matemáticas y todo esto sin depender del contexto. Lo que hace falta es describirle lo que queremos en lenguaje natural y esperar al resultado.

¿Cómo ha sido entrenado el GPT-3?

El GPT-3 es un modelo del lenguaje basado en una red neuronal. Este tipo de modelos predicen la posible existencia de las frases calculando la probabilidad condicional de las palabras – la frecuencia con la que aparece la palabra basandose en otras palabras del texto. Por ejemplo, un modelo del lenguaje va a etiquetar la frase «Estoy hablando con un amigo» como mucho más probable en comparación con la frase «Estoy hablando con una manzana», descartando así la última de las frases ya que no tiene tanto sentido.

El GPT-3 fue entrenado con un dataset de textos no etiquetado con un volumen nominal de 45TB, que luego fue preprocesado para eliminar los duplicados, resultando en un tamaño final alrededor de 600GB. Es el dataset más grande usado por el momento para el entrenamiento de los modelos del lenguaje. La mayor fuente de los datos textuales (60% de todo el dataset) ha sido el CommonCrawl, que contiene páginas web entre 2016 y 2019. En adición, se ha usado toda la Wikipedia escrita en inglés, libros, poemas, las noticias de diferentes periódicos publicados en Internet, códigos de GitHub, guías de viaje e incluso recetas de cocina. Aproximadamente el 7% del material está en idiomas extranjeros, lo que permite al modelo no solo generar textos de cualquier ámbito, sino también traducirlos. La flexibilidad con los diferentes idiomas es una de las claves del nuevo transformador creado por OpenAI, aunque el inglés sigue siendo su idioma principal.

El GPT-3 tiene 8 tamaños, empezando desde 125 millones hasta 175 mil millones de parámetros, lo que lo hace el modelo del lenguaje más potente del momento. Los parámetros en este caso son unas variables que la red neuronal optimiza durante su entrenamiento. Si lo comparamos con los modelos existentes, el predecesor del modelo actual el GPT-2 tiene solo 1,5 mil millones de parámetros, y el segundo modelo del lenguaje más potente Microsoft Turing-NLG tiene 17 mil millones. La comparación de la cantidad de parámetros entre los modelos anteriores y el actual la podemos ver en la siguiente imagen:

Fuente: Search Engine Watch

En el desarrolo de una red neuronal de este tipo el mayor objetivo que tiene el modelo es encontrar patrones en los datos usando las regularidades estadísticas. En la fase de entrenamiento el GPT-3 recibe milliones ejemplos de textos, convirtiendo las palabras en vectores (sus representaciones numéricas). Después intenta convertir estos vectores en palabras otra vez y crear frases que tengan sentido, usando la probabilidad condicional de las palabras. Repite este proceso una y otra vez hasta que consigue la mayor precisión posible.

Lo más importante es que este proceso no está bajo control humano – el programa busca los patrones solo. Cuando el modelo ya está entrenado, pasamos a la fase de inferencia de aprendizaje automático donde el modelo practica sus conocimientos. Tenemos que introducir una o varias palabras al programa para que prediga lo que tiene que ir a continuación. Por ejemplo, si introducimos la palabra «café» al GPT-3 el modelo sabe, basándose en los pesos de su red, que las palabras «taza» y «beber» son mucho más probables que las palabras «champú» o «entrevista».

¿Qué puede hacer el GPT-3?

La lista de tareas que se puede hacer usando el GPT-3 es muy larga. Ahora mismo funciona a través de la API de OpenAI que ya se ha utilizado en la creación de muchas aplicaciones. Una de las funciones más destacadas es la posibilidad de crear textos parecidos a la redacción humana. Se aplica en la creación de servicios para escribir el correo electrónico, anuncios y artículos de blogs. También se puede aplicar en los juegos como AI Dungeon, donde todas las respuestas están determinadas por el modelo del lenguaje. Si antes el desarollador del juego tenía que crear un arbol de decisiones y las opciones textuales a elegir, ahora es posible tener cualquier continuación de la historia que no sea predeterminada. El feedback de los usuarios sobre AI Dungeon es muy positivo, destacan la rapidez, la calidad de las conversaciones, y las suscripciones al juego han aumentado un 25%. La capacidad de generar texto adecuado por el modelo se ha introducido también en el blog de ciencia AI Weirdness donde su autora Janelle Shane generó las ideas creativas para sus artículos del blog y tweets usando la API de OpenAI.

Otra área muy potente son los chatbots. Basandose en la API de Open AI se ha creado Replika, una IA personal que ofrece un espacio donde puedes hablar sobre tus pensamientos, sentimientos, creencias, experiencias y memorias. Resulta ser una especie de compañero-IA. La red social AI Channels donde puedes conversar con los «agentes de IA» está usando la misma API. Por ejemplo, puedes pedir a un agente recomendarte alguna película o participar en una discusión con intelectuales famosos como Albert Einstein. A diferencia de los chatbots que conocemos, que tienen una base de respuestas definidas, AI Channels genera respuestas nuevas y puede responder a preguntas imprevistas.

La API de OpenAI se usa también para la búsqueda semántica. Permite hacer una búsqueda en documentos basada en el lenguaje natural y no por palabras clave. Esta función es la base de Casetext, la plataforma que ayuda a los abogados a encontrar precedentes y escribir informes. Resulta ser una herramienta de gran ayuda porque la búsqueda de artículos legales puede llevar mucho tiempo y de esta manera se hace mucho más rápido y efectivo. Otra plataforma que ha usado el modelo del lenguaje de OpenAI para mejorar sus resultados es Algolia. Ofrece al usuario una búsqueda relevante y rápida usando la web, aplicación móvil o aplicación de voz. Integrando la API de OpenAI, Algolia puede responder a las preguntas hechas en lenguaje natural 4 veces más rápido que usando BERT.

Otra función del GPT-3 que ha llamado mucho la atención es la capacidad del modelo de solucionar las tareas de programación. Podemos pedir al programa que nos genere un código de Python explicando la tarea en lenguaje natural y lo hace bastante bién. De esta manera, usando el GPT-3 se puede simplificar la recopilación de estadísticas sobre los usuarios de un sitio web o usar las partes de código que ofrece el programa para crear modelos de aprendizaje automático.

Estas son solo algunas de las miles de maneras de utilizar el GPT-3. Hemos visto que lo podemos usar para las aplicaciones web basadas en lenguaje natural y para tareas de traducción ya que ha aprendido de las páginas web en otros idiomas, aunque el inglés lo domina mucho mejor. Al ser tan flexible y universal, podemos usar este modelo del lenguaje en escenarios aún más complejos como los servicios de atención al cliente, plataformas educativas y mucho más.

¿Es el GPT-3 tan perfecto como parece?

Como hemos podido ver, el GPT-3 demuestra que un modelo del lenguaje puede resolver tareas de PLN que nunca ha visto antes. Ahora mismo el programa está en la versión beta y se puede acceder a través de la API proporcionada por OpenAI. Para poder utilizar esta API hace falta apuntarse a la lista de espera y tener paciencia, ya que muchos usuarios tienen ganas de probarlo. La razón de no dar acceso libre al GPT-3 es para poder controlar el uso del programa, y sobre todo para prevenir el uso maléfico. Aparte, la versión beta está limitada a cierto número de pruebas y si queremos disfrutar más de un invento tan poderoso, tendremos que suscribirnos.

Aunque este modelo del lenguaje es muy prometedor, tiene sus inconvenientes. Primero, requiere mucha memoria, por lo que se queda fuera de uso en muchas empresas. Segundo, los textos que genera parecen muy impresionantes a primera vista, pero si hablamos de textos largos, muchas veces el modelo no es capaz de mantener todas las partes de texto interconectadas entre sí y a veces se pierde el sentido general.

Entrenado con la información recolectada de Internet, el modelo puede generar textos con notas de racismo o sexismo porque no sabe distinguir lo que es apropiado. Aparte, no distingue las noticias verdaderas de las falsas, lo que puede complicar su uso en ciertos tipos de tareas. También hay razones para dudar que el GPT-3 entiende los significados de las palabras que usa, dado que ha aprendido solo desde las descripciones textuales de procesos y eventos y no ha podido aplicar su conocimiento a los conceptos reales de una manera como lo hacemos los humanos. En cuanto al idioma, solo el 7% de los textos que ha usado para su entrenamiento son en idiomas extranjeros, lo que por ahora limita su uso a los que saben inglés. El GPT-3 es sin duda un gran avance tecnológico, pero todavía queda mucho para que este tipo de modelos funcione parecido a la mente humana.

«El bombo que se le está dando al GPT-3 es demasiado. Es impresionante (¡gracias por los cumplidos!) pero todavía tiene graves debilidades y a veces hace unos errores muy tontos. La IA va a cambiar el mundo, pero el GPT-3 son solo los primeros pasos. Nos queda mucho por averiguar.»

Sam Altman, CEO de OpenAI (traducción de su tweet original)

SpAtten, el sistema de aprendizaje del lenguaje que presta atención – más eficiente que nunca

El lenguaje humano puede ser ineficaz. Algunas palabras son vitales. Otras, prescindibles.

Releemos la primera frase. Solo dos palabras, “lenguaje” e “ineficaz”, transmiten casi todo el significado de la oración. La importancia de las palabras claves está en una nueva herramienta para el procesamiento del lenguaje natural (PLN) por ordenadores: el mecanismo de atención. Cuando este mecanismo está incluido en un algoritmo de PLN más amplio, no trata todas las palabras con la misma importancia – se concentra en las palabras claves. Esto permite obtener mejores resultados en las tareas de PLN como la detección de los sentimientos positivos o negativos o la predicción de que palabra tiene que ser la siguiente en la frase.

Normalmente al usar este mecanismo pagamos por su eficiencia con la velocidad y la potencia informática. Los investigadores de MIT (Instituto Tecnológico de Massachusetts) han diseñado SpAtten – un sistema software-hardware combinado. Este sistema está especializado en la ejecución del mecanismo de atención y permite un PLN más optimizado con menos potencia informática.

«Nuestro sistema es similar al procesamiento del lenguaje por el cerebro humano», dice Hanrui Wang. «Nosotros leemos muy rápido y solo nos centramos en las palabras claves. Esa es la idea de SpAtten».

La investigación ha sido presentada en el Simposio Internacional IEEE sobre la Arquitectura de Computadoras de Alto Rendimiento (the IEEE International Symposium on High-Performance Computer Architecture). Wang es el autor principal del artículo y estudiante de Doctorado en el Departamento de la Ingeniería Eléctrica e Informática. Los coautores son Zhekai Zhang, su asesor y el profesor asistente Song Han.

Desde que se ha introducido en 2015, el mecanismo de atención ha sido una bendición para el PLN. Está integrado en los modelos de PLN de última generación como BERT de Google y GPT-3 de OpenAI. La innovación clave de este mecanismo es la selectividad – puede inferir qué palabras o frases de una oración son más importantes, basado en comparaciones con patrones de palabras encontrados por el algoritmo durante la fase de entrenamiento.

El mecanismo de atención en los modelos de PLN a pesar de la rápida integración, tiene su coste. Los modelos de PLN necesitan una gran carga de poder informático, debido a los altos requerimientos de memoria para el mecanismo de atención. Los investigadores señalan, que hace falta hardware especializado para ejecutar los modelos de PLN con el mecanismo de atención. Y en cuanto los modelos de PLN se vuelvan más complejos el problema empeorará.

SpAtten ayuda a ejecutar el mecanismo de atención de una manera más eficaz. Su diseño abarca tanto software como hardware especializados. Un avance clave del software es el uso que hace SpAtten de “poda en cascada” (“cascade pruning”), que consiste en la eliminación de los datos de los cálculos innecesarios.

la esquema de

La poda en cascada de los tokens y cabezas sin importancia sobre la marcha. Fuente: Hanrui Wang, Zhekai Zhang, Song Han «SpAtten: Efficient Sparse Attention Architecture with Cascade Token and Head Pruning»

Cuando el mecanismo de atención ayuda a elegir las palabras claves de la frase (“los tokens”), SpAtten poda (elimina) los tokens que no son importantes y elimina por tanto las computaciones y movimientos de datos correspondientes. El mecanismo de atención también incluye múltiples ramas computacionales (“las cabezas”). Parecidas a los tokens, las cabezas que no son importantes se identifican y se podan. Una vez enviados, estos tokens y cabezas no se tienen en cuenta en los cálculos posteriores del algoritmo, lo que reduce tanto la carga computacional como el acceso a la memoria.

Para recortar aún más el uso de la memoria, los investigadores desarrollaron una técnica llamada cuantificación progresiva” (progressive quantization”). El método permite al algoritmo manejar los datos en trozos de ancho de bits más pequeños y extraer la menor cantidad posible de la memoria. Se usa una precisión de datos más baja correspondiente a un ancho de bits más pequeño para oraciones simples y una precisión más alta para las oraciones complicadas. Es parecido a la búsqueda de la frase “progm cmptr” como la versión de baja precisión de “programa de computadora”.

Junto con estos avances de software los investigadores desarrollaron una arquitectura de hardware especializada para ejecutar SpAtten y el mecanismo de atención mientras se minimiza el acceso a la memoria. Su diseño de arquitectura emplea un alto grado de “paralelismo” – varias operaciones se procesan simultáneamente en múltiples elementos de procesamiento lo cual es útil porque el mecanismo de atención analiza cada palabra de una oración a la vez. El diseño permite a SpAtten clasificar la importancia de los tokens y las cabezas (para una posible poda) en una pequeña cantidad de ciclos de reloj del ordenador. En general, los componentes de software y hardware de SpAtten se combinan para eliminar la manipulación de datos innecesaria o ineficiente, enfocándose solo en las tareas necesarias para llegar al objetivo del usuario.

La filosofía detrás del sistema está dentro de su nombre. SpAtten es una abreviación de “sparse attention” (atención escasa) y los investigadores señalan en el artículo que SpAtten es “homofónico con ‘espartano’, que significa simple y frugal”.

Los investigadores codificaron una simulación del diseño de hardware de SpAtten (todavía no han fabricado un chip físico) y lo probaron con procesadores de uso general de la competencia. SpAtten fue 100 veces más rápido que el siguiente mejor competidor (una GPU TITAN Xp). Además, ha sido más de 1.000 veces más eficiente energéticamente en comparación con sus competidores, lo que indica que SpAtten podría ayudar a recortar las importantes demandas de electricidad del PLN.

Los investigadores creen que SpAtten puede ser útil para las empresas que usan los modelos de PLN en la mayoría de sus proyectos de inteligencia artificial. Además, SpAtten podría llevar el PLN a dispositivos personales, mejorando la duración de la batería para los teléfonos móviles o dispositivos de IdC (Internet de las Cosas, “Internet of Things (IoT)”) como televisiones, altavoces inteligentes y otros. «Eso es especialmente importante porque en el futuro numerosos dispositivos de IdC interactuarán con los humanos mediante la voz y el lenguaje natural, por lo que el PLN será la primera aplicación que queremos emplear.»

Fuente de la noticia: Materiales proporcionados por el Instituto de Tecnología de Massachusetts. Original escrito por Daniel Ackerman. Nota: El contenido de este artículo ha sido traducido y editado con nuevo estilo y longitud.