• El Uniandino

GPT-3, ¿El fin de los programadores? - Parte 1

Actualizado: oct 18



Cuando nació la idea de este blog en las filas de la sección de variedades vislumbré una posibilidad muy interesante, la tecnología (palabra con la cual como ingeniero tengo muchos problemas pues su uso suele restringirse a hablar de tecnología computacional) siempre había sido un área de mucho interés para mi, incluso últimamente me ha llevado a pensar sobre el enfoque de mi carrera y mi futuro profesional. Así, este espacio se presentaba como el aliciente perfecto para hacer investigación rigurosa sobre el estado del arte de temas que de otra forma se perderían en la larga lista de videos, cursos en línea y publicaciones aleatorias que componen mi historial de búsqueda y con los cuales paso mis horas de desocupe. La idea sonaba agradable y el tema a tratar apareció por una de esas coincidencias en la vida que sin duda son las que han dado pie a la aparición del concepto de destino en el arte. Poniéndome al día con uno de mis nuevos descubrimientos en youtube, el canal Dot CSV, encontré información sobre GPT-3, el nuevo modelo de NLP (Natural Language Processing) creado por OpenAI, así que decidí buscar más videos al respecto y los resultados de este modelo me dejaron realmente sorprendido. Los alcances parecían ilimitados a primer vistazo y el gran anuncio que enmarcaba a este nuevo modelo: “el fin de los programadores”, era el click bait perfecto para cualquier artículo o vídeo de youtube al respecto. Realicé la investigación pertinente y los resultados fueron mucho más aterrizados, como normalmente suelen serlo cuando se busca información seria; pero, al mismo tiempo, mucho más interesantes. El tema estaba decidido y la información estaba a mano, así que solo faltaba lo que pensé sería lo más sencillo para mi, escribir. Jamás había escrito un blog (aunque debo confesar que muchas veces había pasado la idea por mi cabeza), por lo cual realmente no sabía cómo empezar. ¿Debía hablar un poco sobre mí?, ¿debía ser algo muy técnico o algo de consumo masivo?, ¿era importante referirme a otros blogs -como citando artículos- o esto en general era mal visto?, ¿debía hablar en un tono más familiar o en uno más académico y serio? Me tomó un buen tiempo pensar en el tono del blog y aún me siento bastante inseguro al respecto, pero creo que con el tiempo me iré adaptando y encontrando la medida justa entre complejidad técnica y cercanía con los lectores. Quizá lo último sea lo que más me cueste, pero trataré de hacer el esfuerzo sin caer en el mayor fallo que encuentro en los blogs de tecnología y es el de subestimar a los lectores. Sin perder más tiempo, hablemos de GPT-3.





¿QUÉ ES GPT-3?


Este modelo de NLP es el último resultado de este año de la compañía OpenAI. Esta compañía fue anunciada públicamente en el año 2015 como una iniciativa sin ánimo de lucro liderada por Elon Musk, Sam Altman y un grupo de inversionistas creyentes en el poder revolucionario de la inteligencia artificial (IA). Creada con el fin de investigar y desarrollar nuevas tecnologías basadas en el aprendizaje de máquinas, OpenAI se vislumbraba como un gran proyecto filantrópico que promovería e incentivaría el desarrollo de nuevas tecnologías en el área de IA buscando siempre un desarrollo ético que fuera en pro del beneficio de la humanidad como conjunto. Después de inversiones gigantescas y grandes desarrollos, el año anterior este proyecto transformó su modelo de obtención de recursos dejando la filosofía sin ánimo de lucro atrás (1) y, según opiniones de los más conspiracionistas, cediendo al lado oscuro… pero esta discusión será para otra entrada. Volviendo al tema, Los modelos GPT (Generative Pre-trained Transformer) son modelos de lenguaje autorregresivos que usan Deep learning para producir texto que simule al escrito por un humano. Esto puede sonar confuso, así que desglosemos la idea.


¿QUÉ ES UN MODELO AUTORREGRESIVO?


Un modelo autorregresivo es un término utilizado en estadística y en procesamiento de señales en donde se realiza la representación de un proceso aleatorio en el que la variable de interés depende de sus observaciones pasadas. En resumen, es un modelo que utiliza sus valores pasados para predecir sus valores futuros. En el modelo autorregresivo hay dos factores que afectan el valor de la variable en el momento actual: sus valores pasados y un valor estocástico que refleja la perturbación que representa las condiciones actuales del modelo.


Juguemos con esta explicación un poco. Imaginemos que nuestra variable a medir es la producción de trigo en una región. Adicionalmente, supongamos que la producción del trigo depende de tres factores: el primero, la condición del suelo; el segundo, la tecnología de cultivo; y el tercero, las condiciones climáticas. Ahora, imaginemos que las condiciones del suelo y la tecnología de cultivo no cambian de un año a otro (en realidad sí cambian, pero los cambios son tan leves que es más sencillo asumir que no lo hacen), por lo cual la única variable que tendría un efecto diferente en la predicción de la producción del trigo sería las condiciones climáticas. En ese orden de ideas, para estimar la producción de trigo este año, es posible suponer que va a ser parecida a la del año anterior, más o menos la perturbación que genere las condiciones climáticas actuales.


De esta forma, el modelo puede predecir lo que viene en función de los datos que se le han provisionado. Por ejemplo, si al modelo se le proporciona un par de líneas sobre una conversación, este podrá continuarla de una manera tan natural que difícilmente puede distinguirse de una conversación humana. En el divertido vídeo “¡GPT-3! - ¿Una IA que puede PROGRAMAR?” de Dot CSV, vemos cómo el modelo es capaz de mantener una conversación entre un humano y una IA personificada por el modelo (4:21). El modelo recibe como input del usuario el inicio de la conversación, en donde este le indica el formato de conversación que espera que el modelo siga. Posteriormente, el modelo toma estos datos, los procesa y devuelve una respuesta en donde mantiene una conversación relativamente coherente. Más allá de lo impresionante de esta hazaña, lo interesante aquí es observar el principio de acción del modelo. Con unos cuantos datos de entrada, el modelo es capaz de reconocer el formato de conversación y es capaz de adaptarse a este de forma inmediata (2).


La versatilidad del modelo y su capacidad de adaptabilidad se hacen visibles cuando el usuario presiona los límites y añade a la conversación personajes como Alan Turing, Albert Einstein, Platón e incluso el mismo Dios. De nuevo, lo importante no es lo vistoso de los alcances del modelo, sino el mecanismo de funcionamiento de este. El modelo predice las respuestas basadas en la línea lógica de la conversación que se viene dando, pero ejecuta sutiles cambios en función de las perturbaciones producto del cambio de tema o de la introducción de nuevos personajes.


¿POR QUÉ EL USO DE DEEP LEARNING?


Los modelos de aprendizaje profundo o Deep learning revolucionaron el mundo de la IA hace apenas no más de una década atrás. El gran detonante que catapultó estos modelos a las primeras planas de los posts de tecnología y a la primera posición en el arsenal de algoritmos de los programadores de “FAANG” (después de existir casi en la clandestinidad por décadas), fue la combinación sincrónica de una cantidad desmesurada de datos rondando en la nube y en los servidores internos de las grandes compañías, en conjunto con la aparición, de manera tangencial, de las unidades de procesamiento gráfico o GPUs. Esta mezcla produjo como resultado que estos modelos matemáticos aprovecharan todo su potencial y desarrollaran tareas más complejas y precisas. Pero ¿por qué esto es importante para GPT-3?


Bueno, resulta que a pesar de que GPT-3 es la sensación del momento en redes, no es en absoluto debido a su originalidad y a lo único de su propuesta. Como el mismo nombre lo indica, este modelo no es más que la tercera entrega del modelo base de OpenAI. Y este modelo, a su vez, no es más que uno de los diferentes acercamientos que se han hecho al problema del procesamiento de lenguaje natural. Lo que hace realmente original a GPT-3 es la cantidad de parámetros que se usaron para entrenarlo.


Le pido al lector menos experimentado un par de minutos de su tiempo y al lector más avanzado, un salto de párrafo. En este momento creo pertinente hacer un paréntesis y tomarme un pequeño espacio para explicar a los lectores menos expertos en el tema, así sea de una manera superficial consecuencia del limitado espacio que tengo, qué quieren decir los parámetros de entrenamiento. De las diferentes aplicaciones que tiene el Deep learning, he encontrado que la que resulta más ilustrativa al momento de entender conceptualmente su uso, es el procesamiento de imágenes. Imaginemos por un segundo que vamos a desarrollar un modelo de aprendizaje profundo que nos permita detectar gatos en una imagen. ¿Por qué gatos?, pues porque todo internet ama los gatos. Si el lector siente aversión por este peludo felino, lo invito a que inserte el animal u objeto de su preferencia en la palabra en negrilla; yo, por mi parte, seguiré siendo fiel miembro del culto de adoradores gatunos en la red. Lo primero que necesitamos es una imagen de nuestro objeto a identificar. Está bien, quizá un poco más de una, quizá digamos 100.000. El propósito de estas imágenes es que nuestro modelo pueda entender lo que queremos decir por tal objeto. A un computador, al igual que a un bebé, no podemos sencillamente darle una explicación descriptiva del objeto, debemos darle suficientes ejemplos para que este pueda identificar los rasgos característicos que separan a ese objeto de todo lo demás. Ahora, la única forma de mostrarle este objeto al computador es píxel por píxel, de forma que el computador no “lee” toda la imagen como una unidad, sino que “lee” una lista de pixeles, cada uno con un valor característico. De esta forma, el modelo puede ser entrenado mirando estos pixeles -estos parámetros- y encontrando en ellos detalles característicos que le permitan identificar los elementos únicos que diferencian a tal objeto de todo lo demás.



El año pasado OpenAI logró los titulares cuando reveló su modelo GPT-2, el cual había sido entrenado con la impresionante cantidad de 1.5 billones de parámetros. Este número puede sonar alarmante, en especial si lo comparamos con una imagen de la impresionante cámara del Huawei P30 pro, en donde tenemos solamente 108 millones de píxeles, multiplicado por 3 debido a los tres colores presentes en cada píxel (RGB), llegamos solamente a 324 millones de parámetros. Pero, realmente es ínfimo cuando se pone al lado de los 175 billones de parámetros con los que fue entrenado GPT-3. Esta impresionante cantidad de parámetros fue obtenida, según el paper oficial del modelo (3), de las siguientes fuentes de información:



Nota: El paper presenta un leve error, pues la suma de estos porcentajes da 101%, posiblemente consecuencia de la aproximación decimal.



Las dimensiones del modelo son, sin duda alguna, un claro indicativo de su potencial. Los alcances de GPT-3 son aún tema de debate entre los internautas y la exploración de sus límites es una carrera furiosa entre los más optimistas de su potencial y los escépticos que lo suponen aún lejos del gran sueño de todos los apasionados por la IA, la consciencia artificial. Creo que es importante zanjar diferencias entre ambos y dar un resumen objetivo de los alcances del modelo entendiendo que, si bien aún no es el reflejo de nuestros más anhelados sueños, es un gran paso que nos permite vislumbrar las inimaginables sorpresas que nos depara el futuro. En mi próxima entrada abordaré con mayor precisión sobre los alcances y las limitaciones de este asombroso modelo que, si bien aún no satisface, ilusiona.


  1. https://openai.com/blog/openai-lp/

  2. https://www.youtube.com/watch?v=iFLTkgA5q6A&t=1217s

  3. https://arxiv.org/pdf/2005.14165.pdf



Por: Carlos Bueno


17 vistas
  • YouTube - círculo blanco
  • Facebook - White Circle
  • Twitter - White Circle
  • Instagram - White Circle

© 2020 EL UNIANDINO