https://d226lax1qjow5r.cloudfront.net/blog/blogposts/introduction-to-gpt-3/Blog_OpenAI_GPT-3_1200x600.png

Introducción a GPT-3

Publicado el May 10, 2021

Tiempo de lectura: 8 minutos

Por si no te has dado cuenta, la IA está en todas partes, y por fin hemos llegado a un punto en el que está en casi todo con lo que interactuamos. Desde las recomendaciones de productos de Amazon hasta las sugerencias de Netflix, pasando por la conducción autónoma y la redacción de excelentes entradas de blog... No te preocupes, este post lo ha escrito un humano, por ahora.

Mucha gente ve cómo se utiliza la IA, pero ¿se ha preguntado alguna vez cómo se llega a ella?

Este post analizará un modelo muy popular utilizado para muchas tareas, incluyendo la generación de artículos de noticias, generación de imágenes, e incluso la construcción de sitios HTML.

Introducción a la IA

En primer lugar, hagamos un resumen básico de la IA: es una serie de algoritmos que pueden aprender una tarea específica y hacer predicciones sobre tareas similares. Una de estas tareas podría predecir si una imagen contiene la foto de un gato o de un perro.

En este ejemplo, reunimos muchas de estas imágenes y las introducimos en un algoritmo. A continuación, etiquetamos cada imagen, como "Esta es una foto de un perro" o "Esta es una foto de un gato". El algoritmo "aprende" qué imágenes contienen un perro o un gato. El modelo hace suposiciones sobre lo que constituye un perro (orejas grandes, cola esponjosa) y un gato (bigotes, forma de los ojos) y puede aprender estas diferencias.

Le damos a nuestro modelo cientos de imágenes conocidas como "entrenamiento"; con ellas, el modelo se forma una buena idea de cómo son un perro y un gato. Por último, le daremos al modelo una nueva imagen, y debería ser capaz de decirnos si se trata de una imagen de un perro o de un gato.

Si le interesa aprender a construir un modelo para identificar perros, mire esto (https://developer.vonage.com/en/blog/dog-breed-detector-using-machine-learning-dr).

La idea de entrenar un modelo con ejemplos (imágenes de gatos y perros) y poder hacer predicciones sobre nuevas imágenes es Aprendizaje profundoque es un subconjunto de la IA.

No vamos a repasar cómo entrenar un modelo para este post, pero sí un modelo muy popular que puede hacer cosas más interesantes.

En junio de 2020, una empresa llamada OpenAI (fundada por Elon Musk), lanzó un nuevo modelo llamado GPT-3que es capaz de generar nuevos contenidos, dado un pequeño número de ejemplos de datos de entrada.

Ejemplos de cómo utilizarlo

  • Preguntas y respuestas

  • Resumir frases

  • Traducción

  • Generación de texto

  • Generación de imágenes

  • Realizar operaciones aritméticas de tres cifras

  • Descifrar palabras

Acerca de GPT-3

GPT-3 es un modelo lingüístico de aprendizaje profundo, lo que significa que este modelo se entrena con miles de artículos de Wikipedia, sitios web y libros.

Cuando se entrena un modelo, su resultado es una serie de parámetros, normalmente una matriz multidimensional de números. Estos Numbers representan lo que el modelo ha aprendido.

GPT-3 contiene 175.000 millones de parámetros. Microsoft también ha sacado un modelo de lenguaje que solo utiliza 10.000 millones de parámetros.

Para que un modelo aprenda de los datos dados, necesita ser entrenado. Este entrenamiento se realiza alimentando el modelo con cada palabra de un texto dado y, a continuación, prediciendo la palabra siguiente.

Este entrenamiento es costoso desde el punto de vista computacional y requiere muchas GPU para entrenar. Según una estimación el entrenamiento del modelo GPT-3 cuesta 4,6 millones de dólares..

Cómo funciona GPT-3

GPT-3 se conoce como (T)ransformador (P)reentrenado (G)enerativo. Por generativo se entiende que puede generar texto nuevo a partir de un texto de entrada.

Por ejemplo, si damos al modelo el siguiente texto:

"El cielo es"

El modelo debería ser capaz de predecir que la siguiente palabra es "azul".

Si le doy otra frase:

"El rápido zorro marrón"

El modelo haría primero una predicción "saltó", luego, utilizando la frase anterior ("El rápido zorro marrón saltó"), debería predecir la palabra "sobre", y así sucesivamente.

Otra parte del GPT-3 es el transformador. El transformador transformador es una arquitectura, desarrollada por Google, que permite a un modelo recordar o dar mayor peso a una frase o conjunto de frases en una oración dada que tenga la mayor importancia.

Los modelos lingüísticos se construyen utilizando una red neuronal recurrente. Esta arquitectura de red neuronal toma una frase, palabra por palabra, y la introduce en la red. Lo que la hace recurrente es que la salida de la palabra anterior es una entrada para la siguiente palabra de la frase.

Recurrent neural network

Estos modelos sólo pueden tratar con números. Por lo tanto, es necesario convertir el texto en un número. Una forma de convertir el texto en un número es mediante incrustación de palabras.

Una incrustación de palabras las convierte en un espacio vectorial tridimensional que puede captar el significado de una palabra utilizando su relación con otras palabras. Un excelente ejemplo de incrustación de palabras es la forma de entender las similitudes entre las palabras "hermano" y "hermana" en comparación con "hombre" y "mujer".

En la imagen anterior, podemos ver que la palabra "hermano" reside en el mismo espacio físico que la palabra "hombre". Esta incrustación también fue aprendida por un modelo para leer mucho texto y llegar a estas similitudes.

Esta incrustación de palabras se introduce en la siguiente incrustación de palabras, lo que permite al modelo "recordar" las palabras anteriores utilizando su incrustación.

Uno de los grandes problemas es que las RNN no suelen ser buenas recordando frases largas.

Tomemos esta frase:

"Tony Hung es ingeniero de software en Vonage. Le gusta escribir sobre Inteligencia Artificial en el blog de Vonage. Vive al norte del estado de Nueva York, con su mujer, su hija de 4 años y su perro".

Una RNN tomaría cada palabra ("Tony", "Hung", "es") y la introduciría en la red como una palabra incrustada. Con el tiempo, el modelo puede olvidar la palabra "Tony", ya que era la primera palabra de la frase. Si le hago al modelo la siguiente pregunta: "¿Quién trabaja para Vonage?", tendrá que retroceder en la frase, encontrar la palabra "Vonage" e intentar encontrar el sustantivo asociado a la pregunta. Como la palabra "Tony" está tan lejos en el pasado, es posible que la RNN no pueda encontrarla.

La arquitectura Transformer ayuda a resolver este problema, que se propuso en el documento La atención es todo lo que necesitas y utiliza un concepto denominado Atención.

La atención forma parte de una capa de la red neuronal que puede centrarse en partes específicas de la frase. Como hemos dicho antes, un modelo RNN puede captar todas las palabras de la frase, pero si la incrustación es demasiado grande, es posible que el modelo no lo recuerde todo.

Con Atención, cada incrustación también contiene una puntuación sobre la importancia de cada palabra. De este modo, la RNN no tiene que recordar todas las incrustaciones de palabras, sino sólo las que tienen una puntuación más alta que las demás.

Para una descripción más detallada del transformador y la Atención, echa un vistazo a de Jay Alammar sobre el transformador visual.

Muestras GPT-3

¿Sigues conmigo? Estupendo. Veamos algunos ejemplos de cómo se utiliza la GPT-3.

Con acceso a la API de OpenAI, puedes suministrar datos de entrenamiento, que contienen una entrada de muestra y cuál debería ser la salida. Es posible que estés diciendo: "Esto es genial, ¿cómo puedo empezar y utilizarlo?", OpenAI no ha puesto el modelo a disposición del público, sino sólo como una API que está en acceso beta cerrado, lo que significa que tendrías que solicitar acceso para utilizar la API. En el momento de escribir esto, todavía no he sido aceptado en la beta.

La buena noticia es que mucha gente tiene y puede dar una explicación detallada de cómo funciona la API.

Veamos algunos ejemplos de otros desarrolladores que utilizan GTP-3.

Texto a HTML con GTP-3

Uno de los muchos usos de GPT-3 es generar HTML a partir de una cadena dada. La entrada en la API OpenAI consistiría en una cadena, así como su equivalente HTML.

Entrada: negrita el texto siguiente. "GPT-3"

Suministraríamos la salida de: <b>GPT-3</b>

La API de OpenAI permite a un desarrollador suministrar estos textos de entrada y salida a GPT-3. Entonces, en los servidores de OpenAI, la API enviará esta entrada y salida a GPT-3 para "aprender" la entrada suministrada y cuál debería ser la salida.

Entonces, si suministramos una nueva serie de texto a la API OpenAI:

"Centrar y poner en negrita la palabra GPT-3".

Su salida será <center><b>GPT-3</b></center>

No le dijimos nada a GPT-3 sobre la etiqueta <center> ya que lo más probable es que GPT-3 contenga cadenas HTML durante su proceso de formación.

He aquí un ejemplo:

Esto es alucinante.

Con GPT-3, construí un generador de diseño donde sólo tienes que describir cualquier diseño que desees, y genera el código JSX para ti.

W H A T pic.twitter.com/w8JkrZO4lk

- Sharif Shameem (@sharifshameem) 13 de julio de 2020

Aventura textual

Otros ejemplos de desarrolladores que utilizan GPT-3 son una aventura de texto de aidungeon.io

AI DungeoAI Dungeo

La mazmorra AI genera una historia en la que puedes navegar utilizando texto - también conocida como mazmorra multiusuario. En este ejemplo, al introducir las palabras "Look Around" se generará un nuevo texto sobre el escenario. Esta característica sólo utiliza GPT-3 para generar texto después de cada entrada.

Texto a Regex

Este ejemplo es el que me atrapó. Suministrando un conjunto de texto de entrada y su equivalente regex, puede generar expresiones regulares válidas utilizando un inglés legible.

Una vez tuve un problema y utilicé regex. Entonces tuve dos problemas

Nunca más. Con la ayuda de nuestros señores GPT-3, hice algo para convertir Inglés en regex. Ha funcionado decentemente para la mayoría de las descripciones que le he lanzado. Regístrate en https://t.co/HtTpJ16V4F para jugar con un prototipo pic.twitter.com/trJA7VRrsf

- Parthi Loganathan (@parthi_logan) 25 de julio de 2020

Encontrará más ejemplos de desarrolladores que utilizan GPT-3 para crear cosas interesantes en buildgpt3.com.

Conclusión

A través de este post, hemos sido capaces de ir a través de una comprensión básica de lo que es GPT-3 y cómo se construye. Sin embargo, no hemos profundizado demasiado en los aspectos técnicos de este y otros modelos de IA. Para profundizar en GPT-3, vea Video de Jay Alammar sobre el funcionamiento de GPT-3. Es un buen punto de partida sobre cómo se pueden entrenar los modelos de IA.

Si es nuevo en los aspectos técnicos de la IA, que incluye el aprendizaje profundo, consulte Fast.aiun curso gratuito que explica qué es el aprendizaje profundo y cómo empezar.

Espero que este post te haya ayudado a entender qué es GPT-3, tanto desde un punto de vista técnico como no técnico. Si estás interesado en saber más sobre GPT-3 y otros proyectos de OpenAI, puedes visitar su página web en OpenAI.com.

Compartir:

https://a.storyblok.com/f/270183/150x150/a3d03a85fd/placeholder.svg
Tony HungAntiguos alumnos de Vonage

Desarrollador IOS convertido en entusiasta de la Ciencia de Datos / Aprendizaje Automático. Quiero que la gente entienda qué es el aprendizaje automático y cómo podemos utilizarlo en nuestras aplicaciones.