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.

GPT-4 es impresionante. Lo sabes tú, lo sé yo, lo sabemos todos. Y a falta de ver versiones
más potentes que llegarán en el futuro con ventanas de contexto mayores, con multimodalidad,
con un montón de mejoras, en los últimos meses hemos visto una tendencia a emerger
que ha llevado a estas tecnologías de aprendizaje automático a donde reside su naturaleza,
a su propia automatización.
¿Qué tal sonaría esto de un chat GPT donde tú le das una misión, un propósito, y la
propia inteligencia artificial en una interacción continua consigo misma, aprovechando su conocimiento
interno, fuera la que llevará a cabo de forma autónoma todos los pasos necesarios?
Esta idea de automatizar modelos como chat GPT existe, con propuestas tan populares como
auto GPT, que ya hace varias semanas generó bastante interés y hype en redes sociales,
alcanzando un sobredimensionado número de estrellas en tiempo récord en su repositorio
Un proyecto que si bien todavía no ha demostrado grandísimos resultados que se puedan usar
en un escenario real, se ha servido de inspiración de muchos otros proyectos que lo que buscan
es esto mismo.
Crear un sistema con chat GPT en su núcleo, latiendo, que pueda hacer tareas más avanzadas
de lo que esta inteligencia artificial por separado podría ser.
Tareas como las que vamos a ver hoy, donde GPT-4 únicamente usando su conocimiento aprendido
ha sido capaz de dominar un juego tan infinito como Minecraft.
Espera, GPT-4 jugando al Minecraft, ¿cómo es esto posible?
El concepto que tenemos que entender hoy no es el de chatbot o modelo de lenguaje, lo
que tenemos que entender es qué es un agente.
En inteligencia artificial, un agente inteligente es una entidad capaz de actuar de forma inteligente,
capaz de percibir su entorno y tomar acciones autónomas para conseguir sus objetivos,
y que puede mejorar su rendimiento mediante el aprendizaje o adquiriendo conocimiento.
Y esta es una definición un tanto general, pero que aplica muy bien a lo que vamos a
estar hablando hoy.
Pensad en chat GPT.
Si tú le pides que ejecute una tarea, no podrá hacerla, porque desde la comodidad
de su chat no tiene a priori forma de interactuar con el mundo, por tanto no cumple eso de
poder tomar acciones autónomas para conseguir sus objetivos.
Pero bueno, sí te podrá dar una descripción detallada de cómo podrías hacerlo paso a
paso para que tú, haciendo de su herramienta, lo ejecutes y cumplas el objetivo.
Vale, bien, pero en realidad si lo que estamos buscando es autonomía, pues lo suyo sería
que las ejecutara él solo.
Necesitamos que chat GPT tenga capacidad de acción.
Por suerte los tentáculos de inteligencias artificiales como chat GPT cada vez son más
largos, y sus capacidades de operar con herramientas va aumentando.
Calculadoras, buscadores en internet, APIs que conectan con otras herramientas, sistemas
operativos.
Está clara que la tendencia a futuro de estos modelos de lenguajes que cada vez tengan
mayor capacidad de hacer.
Entonces, si ya tenemos al chatbot interactuando con herramientas reales, ¿significa que esto
ya es un agente?
Bueno, pues todavía no.
También hemos dicho que es importante que sea capaz de mejorar mediante el aprendizaje
o adquiriendo conocimiento.
¿Qué pasa si chat GPT ha planificado que tiene que usar una aplicación concreta y la
aplicación falla o la usa mal?
¿Qué pasa si comete un error?
Aquí podríamos darlo todo por perdido y pensar que ya chat GPT no puede ayudarnos
más.
O podríamos enseñarle a chat GPT qué ha pasado y pedirle que reflexione sobre sus
pasos anteriores, que los critique y que los solucione.
En definitiva, que aprenda del conocimiento adquirido en sus pasos anteriores.
Y con esto ya habríamos creado una primera dinámica donde, hey, bueno, nuestro chat
o el modelo que estemos utilizando ya está actuando de forma autónoma, una dinámica
donde podríamos marcarle un objetivo a este sistema y de forma iterativa dejar que poco
a poco lo vaya resolviendo.
Y este no es el esquema definitivo, es solo una de las muchas propuestas que podríamos
implementar.
Y es que con el paso de los días cada vez son más las propuestas de sistemas autónomos
basados en modelos de lenguaje que van apareciendo, resolviendo cada vez tareas más y más impresionantes.
Siendo uno de los más llamativos que ha salido en las últimas semanas, Guayaya.
El viajero, que entonando el soy minero ha aprendido a superar muchos de los grandes
desafíos del mundo de Minecraft.
Minecraft es un juego muy exigente.
Y es que a diferencia de otros juegos que la inteligencia artificial ha conseguido aprender
a dominar, aquí no hay un objetivo concreto o una puntuación que maximizar.
Tampoco tenemos un tablero de juego bien definido.
Sino que aquí la magia de los mundos procedurales plantean un mundo prácticamente infinito.
Que el jugador puede alterar, destruir, reinterpretar o explotar a su gusto.
En Minecraft cada jugador puede hacer de su gameplay una partida única.
Y eso es lo que lo vuelve un desafío tan complicado para la inteligencia artificial.
Y es por eso que desde hace años el mundillo del deep learning se ha interesado por este
desafío.
Por ejemplo, en conferencias científicas de gran relevancia existen competiciones donde
anualmente se le pide a los investigadores que desarrollen algoritmos capaces de encontrar
un diamante en Minecraft o de minar un bloque de basalto.
Y bueno, laboratorios tan conocidos como OpenAI o DeepMind también han participado de este
problema.
¿Y por qué esto es tan complicado?
Bueno, aclaro esto para la poca gente que haya por aquí que todavía nunca haya jugado
al Minecraft.
En este juego tú puedes hacer un montón de cosas, pero principalmente las tareas más
importantes son conseguir recursos, talar madera, cultivar, conseguir ganado, minar
y por el otro lado usar esos recursos para producir objetos.
Tecnología que te permita progresar y recoger luego recursos de forma más eficiente, alcanzando
nueva tecnología, etc.
Estas tareas de conseguir recursos y construir objetos sería lo que representaría el mine
y el craft de Minecraft.
Entonces claro, para alcanzar cierta tecnología como un pico de diamantes, pues necesitas
Y para picar estos diamantes en las cuevas necesitarás tener un pico de metal.
Pico de metal que está hecho con lingotes, que tendrás que picar con un pico de piedra
para el que necesitarás un horno y bla bla.
Una cadena de tareas que en cada partida de Minecraft, con un mundo cambiante, pues podría
desempeñarse de formas muy diferentes.
Y visto así, el trabajo del que estamos hablando hoy, lo que nos presenta es un logro impresionante.
Ya que con una IA que solo utiliza el potencial de un enorme modelo de lenguaje como GPT-4,
han conseguido ejecutar todos los pasos necesarios para llegar a fabricar todos estos objetos
de aquí.
Empezando por conseguir madera, a hacerse herramientas de metal, de oro, pescar e incluso
equipamiento de diamantes.
¿Cómo lo hacen?
Bueno, pues la base detrás de todo esto es que GPT-4 sabe cosas.
Sabe muchas cosas.
Y en su entrenamiento ha visto mucha información en internet, incluido también tutoriales
de Minecraft.
Si tú vas a ChatGPT y le preguntas, hey, dime paso a paso cuál es la mejor forma para
conseguir en una partida de Minecraft un pico de diamante.
Simula una partida desde el comienzo y dime qué es lo que estás viendo en cada caso.
Pues ChatGPT será capaz de simularte una partida y darte pautas que son correctas.
¿Veis?
GPT-4 ya tiene el conocimiento necesario para poder alcanzar un pico de diamante.
¿Qué faltaría?
Pues que lo haga.
Pues como hemos dicho antes, insertar todo este conocimiento en un agente autónomo que
sí sea capaz de actuar.
Y aquí es donde entra en juego…
Voyager.
Voyager es un trabajo reciente de Nvidia junto a otras universidades que, a diferencia de
trabajos anteriores, lo que proponen es un agente inteligente capaz de jugar al Minecraft
sin necesidad de hacer un entrenamiento específico para dicha tarea.
Fijaos que en este trabajo no hay optimización, no hay un descenso del gradiente, no hay
una función de coste que estemos optimizando.
No.
El único conocimiento que se está aprovechando es el que posee el propio modelo del lenguaje
y que ha aprendido en su tarea general de aprender a predecir cuál es el siguiente
token.
Para darle a GPT-4 capacidad de interactuar con el mundo de Minecraft, en este trabajo
han utilizado MindFlyer, una API que permite crear bots interactivos que pueden ser controlados
llamando a los métodos correspondientes con código de JavaScript.
Botos que ejecutan acciones sencillas con los que tú puedes mandar al personaje a unas
coordenadas concretas del mapa, a inspeccionar qué bloques hay, a interactuar con un objeto
o minar algún bloque.
Claro, siendo instrucciones de código que se ejecutan, pues ahora GPT-4 en su capacidad
de poder programar puede generarse código de programación y echarse unas partidillas
entre prompt y prompt.
Pues GPT-4 se viene arriba, enciende el Minecraft, le da una partida nueva y… y ahora qué?
Es un modelito del lenguaje en un mundo nuevo que te puedes mover, puedes ejecutar acciones
simples, pero… ¿y qué haces?
¿Cuál es tu objetivo?
Bueno, pues no te rías tanto que esto seguro que también te pasó a ti y es que todos
hemos vivido una primera partida en Minecraft y no es el proceso más intuitivo.
No hay un diseño de niveles que te guíe a un tutorial inicial, así que lo que todos
hemos hecho ha sido llamar a un amigo que controle o buscar un tutorial en internet.
Pues bueno, la buena noticia es que GPT-4 ya ha hecho lo deberé si ya se ha estudiado
internet al completo.
GPT-4 sí sabe jugar.
Y si le damos de forma escrita información del contexto de la partida en cada caso, pues
por ejemplo en qué bioma te encuentras, cuál es tu nivel de salud, de hambre, qué objetos
cercanos hay, qué hora del día es.
Pues con toda esa información, que sería la misma que tú observarías directamente
viendo la pantalla, pues GPT-4 es capaz de recomendarte qué tarea hacer para continuar.
Por ejemplo, GPT-4 podría razonar que tu nivel de hambre está a cero y mira, puesto
que hay cerdo cerca, ¿por qué no los matas para conseguir filetes?
Y te asignaría la tarea de matar a un cerdito.
O por ejemplo, hey, es de noche, hay zombie cerca y tú, my friend, tienes una espada
y un escudo.
Haz tu magia.
Bueno, no lo dice exactamente así, pero ya me entendéis.
Y aquí GPT-4 pues te dice, mata a un zombie.
Esto está genial porque ya ahora tenemos un asistente personal que va a poder guiar
a nuestro personaje en su propio gameplay, que nos va a ir indicando en cada contexto
qué tenemos que hacer a continuación.
Además, en este punto de planificación, para hacer mucho más robustas estas recomendaciones,
lo que se ha hecho ha sido incluir también información de intentos fallidos anteriores
para que pueda aprender de sus propios errores cuando ha planificado algo que no ha salido
bien o también la posibilidad de que el personaje se haga preguntas para obtener más información
de ese contexto.
Genial.
GPT-4 ya sabe que tiene que matar a un zombie.
¿Cómo lo hace?
El planificador dice que usando la espada y el escudo, pero ¿cuándo he aprendido yo
a usar la espada y el escudo?
De hecho, ¿cuándo me he construido yo una espada y un escudo?
Recordemos que estábamos al comienzo del juego, con capacidad de ejecutar unas pocas
acciones, movernos, interactuar con el mundo y poco más.
Pues aquí es donde viene uno de los elementos más interesantes de este proyecto y es donde
GPT-4, cuando ya tiene una tarea planificada, ahora aprovechando sus capacidades de programación,
se irá codificando su propia librería de habilidades que le puedan ayudar a realizar
sus objetivos.
Esto es así.
Imagínate que tu primera tarea planificada sea conseguir madera para construirte un
pico.
Para eso, GPT-4 necesitará programar un script que busque en su entorno algún árbol, que
camine hacia él, se coloque enfrente y lo golpee varias veces para conseguir un bloque
de madera.
Y aquí podrían suceder dos cosas, que el código esté bien o que esté mal.
Si diera un error de ejecución o no funcionara correctamente, pues lo que vamos a hacer será
devolver el mensaje de error a ChatGPT, para que así de forma iterativa le pueda dar solución.
Y como hemos visto antes, esta autorreparación de errores previos es una de las dinámicas
principales de muchos de estos sistemas tipo AutoGPT, donde de forma iterativa iremos solucionando
poco a poco los errores hasta que GPT-4 encuentre la solución correcta.
Y con esto nuestro personaje pues ya tendría madera, pero también tiene una cosa mucho
más importante, la capacidad de talar.
Si el código que ha generado es bueno, pues debería de poder reutilizarlo en futuras
ocasiones.
Y es por eso que aquí los investigadores deciden hacer una cosa muy inteligente, y es
guardarlo.
Para guardarlo lo que hacen es pedirle a GPT-3 en este caso que haga una descripción en
lenguaje natural de lo que este método hace.
El método talar madera busca el árbol más cercano y ejecuta un golpe para bla bla bla.
Y luego de esta descripción crean un vector de embedding que servirá de identificador
para cuando queramos recuperar esta nueva habilidad aprendida.
Ahora imagina si en un futuro cercano nuestro personaje se encuentra en una situación de
ay necesito un pico de madera y no tengo madera.
Esta descripción codificada también convertida en un vector de embeddings pues hará match
con la descripción que hemos guardado antes, la descripción del método talar madera.
Y así de esta forma sabrá encontrar de nuestra librería de habilidades el código
que hemos implementado con anterioridad.
Esta es una propuesta super interesante porque lo que estamos dejando es que GPT-4 en su
experiencia dentro del juego se vaya construyendo poco a poco una librería de habilidades que
puede reutilizar en futuras ocasiones.
Habilidades que podrá reutilizar, que podrá mejorar y que incluso podrá componer para
desarrollar habilidades incluso más complejas.
Pues por ejemplo GPT-4 podría decidir llamar al método talar madera cuando desarrolle
el método construir tablas de madera y podría llamar al método construir tablas de madera
cuando desarrolla el método construir casa.
Es decir, el agente ahora será capaz de poder componer con habilidades más sencillas un
repertorio de habilidades cada vez más complejas.
Y así de esta forma hemos creado un agente inteligente capaz de aprender a adaptarse
y cumplir con un amplio número de tareas en un mundo abierto como el de Minecraft.
Y Carlos, ¿funciona bien?
Pues cuando se deja jugar a Voyager partidas de Minecraft lo que se ha observado es que
frente a otros sistemas de agentes autónomos como AutoGPT, Reflection o React, Voyager
tiene más capacidades de descubrir nuevas dinámicas del juego, de poder conseguir recursos,
de construir tecnología tal y como podemos ver en esta gráfica de aquí.
Además, en exploración también se ha comprobado que Voyager es más dado a la aventura, posiblemente
de ahí su nombre, recorriendo mayores regiones del mapa y explorando su diversidad.
Si estas son las áreas cubiertas por los otros agentes autónomos, Voyager lograba cubrir
todo este espacio.
Así que sí, Voyager se ha convertido en un agente autónomo que es capaz de aprender
a jugar y desarrollar sus capacidades dentro del mundo de Minecraft.
Esto es impresionante porque, como hemos dicho, no es un proyecto que dependa de un
entrenamiento o de una optimización, sino que todo depende del conocimiento general
que ha adquirido un modelo de lenguaje como un GPT-4.
Este trabajo me ha parecido particularmente interesante porque creo que refleja muy bien
lo que significa a día de hoy trabajar con estos enormes modelos de lenguaje.
Mucha gente sigue pensando que para sacarle el mejor rendimiento hay que saber escribir
bien una frase, escribir un prompt y ya está.
Y la cosa no radica en eso, se pueden construir sistemas mucho más avanzados.
Lo chulo es que como este proyecto es open source, pues podéis consultar toda la estructura
de proyectos, de prompts y todas las técnicas que han utilizado.
Pero además, este trabajo me interesa por lo que podría significar a futuro y es que
este tipo de proyectos son solo la antesala de posibles encarnaciones de estos agentes
autónomos en cuerpos robóticos reales.
Si Minecraft nos parece un desafío enorme por tratarse de un juego de mundo abierto,
lo que sucedería con estos robots en el mundo real.
Con este tipo de proyectos se está comprobando que haciendo uso de estos enormes modelos
del lenguaje se puede inyectar un cierto sentido común, una forma de control de estos agentes
que permitan facilitar su incursión y su desempeño en el mundo real.
Y chicos, chicas, hasta aquí el video de hoy.
Si os ha gustado apoyar de este contenido, pues compartiéndolo por redes sociales, dejando
un like, comentarios y si queréis apoyar de forma más directa, ya sabéis que tenéis
habilitado un patrón donde podéis hacer una aportación mensual, donde podéis dejar
una huella de que este contenido que os traigo de divulgación sobre inteligencia artificial
aquí gratuito en YouTube, pues os interesa y lo queréis apoyar con vuestra aportación.
Chicos, chicas, tenéis un par de vídeos aquí super interesantes, increíbles, están
muy bien.
Este en concreto está muy bien.
Os recomiendo verlo.
Bueno, pues si queréis más inteligencia artificial, ya sabéis que la tenéis aquí
en dot c c v cada semana más o menos.