[Paper Quick Facts] Chispas de inteligencia artificial general: primeros experimentos con GPT-4

Chispas de inteligencia artificial general: primeros experimentos con GPT-4

2023.3.22 Microsoft lanzó oficialmente el documento sobre la evaluación integral de la capacidad de GPT-4, el modelo de IA más fuerte en la historia humana. Como todos sabemos, 2023 es el primer año de la inteligencia artificial general (AGI). Simplemente leamos este documento.
Debido a que la dirección de la investigación personal está principalmente relacionada con el software, este blog se centra principal y brevemente en los resultados de la evaluación de la capacidad de código de GPT-4. Para conocer otros aspectos y detalles, consulte el enlace arxiv del artículo oficial: Sparks of Artificial General Intelligence:
Early experiments con GPT-4

Codificación

En esta sección, el documento muestra que GPT-4 es capaz de lograr un nivel muy alto de capacidad de codificación, tanto al escribir código a partir de instrucciones como al comprender el código existente. GPT-4 puede manejar una amplia gama de tareas de codificación, desde desafíos de codificación hasta aplicaciones del mundo real, desde ensamblaje de bajo nivel hasta marcos de trabajo de alto nivel, y desde estructuras de datos simples hasta programas complejos como juegos. GPT-4 también puede razonar sobre la ejecución del código, simular los efectos de las instrucciones e interpretar los resultados en lenguaje natural. GPT-4 puede incluso ejecutar pseudocódigo, lo que requiere interpretar expresiones informales y ambiguas que no son válidas en ningún lenguaje de programación.
En su estado actual, los autores creen que GPT-4 tiene un alto nivel de competencia en la escritura de programas enfocados que dependen solo de las bibliotecas públicas existentes, lo que se compara favorablemente con las habilidades de los ingenieros de software ordinarios. Más importante aún, es accesible tanto para ingenieros como para usuarios no calificados porque facilita la escritura, edición y comprensión de programas. Los autores también reconocen que GPT-4 no es perfecto en lo que respecta a la codificación, ya que a veces puede producir código sintácticamente inválido o semánticamente incorrecto, especialmente para programas más largos o complejos. GPT-4 a veces tampoco comprende o sigue las instrucciones, o genera un código que no coincide con la funcionalidad o el estilo esperados. Sobre la base de esto, el documento también muestra que GPT-4 puede mejorar su código respondiendo a los comentarios humanos .

solucionar problemas matemáticos

Una forma común de medir la capacidad de codificación es plantear desafíos de codificación que requieren implementar una función o algoritmo específico. GPT-4 se evalúa por primera vez en HumanEval [CTJ+21], un conjunto de datos de cadena de documentación a código que consta de 164 preguntas de codificación que prueban varios aspectos de la lógica y la competencia de la programación. Como se muestra en la Tabla 1, GPT-4 supera a otros LLM, incluido text-davincian-003 (el modelo base de ChatGPT) y otros modelos entrenados exclusivamente en código, code-davincian-002 y CODEGEN-16B

inserte la descripción de la imagen aquí

Zero-shot aquí se refiere al modelo que no ha sido ajustado para la tarea, y pass@1 se refiere a la probabilidad de que el código escrito pase la prueba una vez.Se puede ver que GPT-4 puede lograr una precisión de CA de 82 % en la prueba HumanEval.%, significativamente más alto que otros modelos, incluido chatGPT. Aunque GPT-4 dio un gran salto en precisión en comparación con los modelos anteriores, esto puede deberse a que GPT-4 vio y memorizó algunos (o todos) los resultados humanos durante el entrenamiento previo. Para considerar esta posibilidad, los autores también realizan una evaluación en LeetCode (https://leetcode.com).
Los autores presentan los resultados en la Tabla 2, comparando GPT-4 con otros modelos, así como con el rendimiento humano basado en los resultados de la competencia LeetCode (los usuarios que fallaron en todos los problemas no están incluidos, por lo que esta es una muestra humana sólida). Los resultados informan las precisiones pasa@1 y pasa@5, que miden si el modelo produjo la solución correcta en el primer o los cinco primeros intentos, respectivamente. GPT-4 funciona significativamente mejor que otros modelos y está a la par con el rendimiento humano .

inserte la descripción de la imagen aquí

Se puede ver que la tasa de aprobación promedio de todas las preguntas difíciles para que los humanos usen leetcode es de aproximadamente 38%, mientras que el aprobado @ 1 de GPT-4 ha alcanzado el nivel humano, y el aprobado @ 5 ha superado en gran medida el nivel de humano. programadores, alcanzando el 53%. Independientemente del trabajo de desarrollo del proyecto real, al menos GPT4 ha superado el promedio humano en la resolución de problemas algorítmicos.

Este es un ejemplo rápido dado en el artículo de GPT4 para resolver problemas algorítmicos.
inserte la descripción de la imagen aquí
Este es el código dado por GPT4.
inserte la descripción de la imagen aquí
Aquí, GPT4 usa algoritmos de programación dinámica para resolver problemas de LeetCode. La solución GPT-4 es incluso bastante legible gracias a las anotaciones detalladas.

Visualización de datos

Los desafíos de codificación evalúan las habilidades en algoritmos y estructuras de datos. Sin embargo, a menudo no logran capturar toda la complejidad y variedad de las tareas de codificación del mundo real, que requieren conocimientos de dominio especializados, creatividad, integración de múltiples componentes y bibliotecas, y la capacidad de cambiar el código existente. Para evaluar la capacidad de GPT-4 para codificar en un entorno más realista, los autores idean desafíos de codificación del mundo real de extremo a extremo relacionados con la visualización de datos, la codificación LATEX, el desarrollo front-end y el aprendizaje profundo, cada uno de los cuales requiere diferentes habilidades especializadas.

En la Figura 3-2, el autor permite que GPT-4 y ChatGPT extraigan datos del código LATEX y dibuje gráficos en Python basados ​​en conversaciones con los usuarios. Luego se les pide a ambos modelos que realicen varias operaciones en el gráfico resultante. Si bien ambos modelos extrajeron los datos correctamente (lo que no es una tarea trivial, ya que la inferencia se debe realizar a partir de varias columnas), ChatGPT nunca produjo el gráfico deseado. Por el contrario, GPT-4 responde adecuadamente a todas las solicitudes de los usuarios, convirtiendo los datos al formato correcto y ajustando las visualizaciones.
inserte la descripción de la imagen aquí

desarrollo de juegos

En la Figura 3.3, los autores permitieron que GPT-4 escribiera un juego 3D en HTML y JavaScript, utilizando una especificación de muy alto nivel. GPT-4 genera juegos de trabajo que cumplen con todos los requisitos de forma sencilla. En los juegos 3D, GPT-4 incluso pudo interpretar el significado de "avatar defensor que intenta bloquear al enemigo". Por el contrario, la respuesta de ChatGPT fue: "Soy un modelo de lenguaje de IA y puedo darle instrucciones sobre cómo crear un juego 3D en HTML usando JavaScript, pero no puedo escribir código ni crear juegos yo mismo. Uso de JavaScript en HTML Creación un juego en 3D requiere mucho conocimiento y experiencia en programación. No es una tarea que se pueda hacer rápida o fácilmente. Desarrollar todas las funciones necesarias, como gráficos en 3D, física, entrada del usuario e inteligencia artificial, requerirá mucho tiempo y esfuerzo.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Se puede ver que hacer juegos "simples" ya se puede lograr para GPT-4. Solo necesita solicitar las reglas de configuración del juego y los requisitos de diseño para GPT4 uno por uno, y puede ayudarlo a completar el trabajo de escritura de código, y en realidad se puede ejecutar (algunos No hablemos de errores, al menos puedes jugar).

aprendizaje profundo

Escribir código de aprendizaje profundo requiere conocimientos de matemáticas y estadísticas, y familiaridad con marcos y bibliotecas, como PyTorch, TensorFlow, Keras, etc. En las Figuras 3 y 4, los autores solicitan a GPT-4 y ChatGPT que escriban un módulo optimizador personalizado, una tarea desafiante y propensa a errores incluso para humanos expertos en aprendizaje profundo. Se proporciona una descripción en lenguaje natural de estos modelos, incluida una serie de operaciones no triviales, como aplicar SVD, truncar espectralmente la matriz en los valores propios top-k y top-2k, truncar la norma f de la matriz con los valores propios top-k y top-2k. 2k a La matriz de truncamiento top-k se normaliza, se aplican decaimiento de momento y peso. Las instrucciones no entran en detalles completos, por ejemplo, "aplicar impulso en Gk" requiere "conocimiento común de aprendizaje profundo". La advertencia es que este optimizador en particular no existe en la literatura o en Internet, por lo que el modelo no puede recordarlo y los conceptos deben combinarse correctamente para generar código.

inserte la descripción de la imagen aquí
Tanto GPT4 como chatGPT pueden generar código de aprendizaje profundo sintácticamente efectivo, pero chatGPT tiene errores, y GPT4 básicamente puede completar la generación de código de destino, pero pierde la operación de regularización y recorrido de dimensión.

generación de látex

Escribir en LATEX es un ejercicio importante para informáticos y matemáticos, pero tiene una curva de aprendizaje irregular. Incluso los expertos cometen errores molestos que tardan horas en corregirse todos los días debido a la estricta sintaxis y la falta de un buen depurador. GPT-4 puede aprovechar sus habilidades de codificación LATEX de nivel maestro para simplificar enormemente el proceso y tiene el potencial de servir como una nueva generación de compiladores LATEX que pueden manejar descripciones imprecisas en lenguaje natural.
En la Figura 3-5, el autor le pidió a GPT-4 que convirtiera una pieza de código LATEX semiestricto (error) de lenguaje natural mixto en comandos LATEX precisos, que se pueden compilar y ejecutar una vez después de la conversión. Sin embargo, chatGPT no tiene tales capacidades y el código de látex generado tiene errores y no se puede compilar.

inserte la descripción de la imagen aquí
En el futuro, escribir látex se puede escribir en lenguaje natural (probablemente).Después de escribir los requisitos y el código de látex abreviado, entréguelo a GPT4 para hacer el resto, y la eficiencia mejorará mucho.

comprensión del código

Los ejemplos anteriores muestran que GPT-4 puede escribir código basado en instrucciones, incluso si las instrucciones son vagas, incompletas o requieren conocimiento del dominio. También demostraron que GPT-4 puede responder a solicitudes posteriores para modificar su propio código de acuerdo con las instrucciones. Otro aspecto importante de la codificación es la capacidad de comprender y razonar sobre el código existente escrito por otros, que puede ser complejo, oscuro o mal documentado. Para probar esto, planteamos varios problemas que requieren leer, interpretar o ejecutar código escrito en diferentes lenguajes y paradigmas.
En el ejemplo de las Figuras 3-6, los autores hacen que GPT-4 y ChatGPT predigan e interpreten la salida de un programa en C que imprime los tamaños de dos estructuras. GPT-4 explica correctamente que la salida puede variar según la alineación utilizada por el compilador y da un ejemplo de una posible salida con alineación de 4 bytes. ChatGPT ignora los problemas de alineación y da un resultado incorrecto, y también indica incorrectamente que el orden de los miembros no afecta el tamaño de la estructura.

inserte la descripción de la imagen aquí

ejecución de simulación de código

La prueba definitiva para comprender el código existente es pedirle al modelo que lo ejecute directamente. En la Figura 3-7, podemos ver que GPT-4 puede ejecutar código de Python no trivial. Tiene que realizar un seguimiento de múltiples variables (incluido un bucle anidado y un diccionario) y manejar la recursividad. Explica la ejecución en detalle escribiendo pasos intermedios y comentarios. Cabe señalar que GPT-4 no ejecuta código en un intérprete de Python, sino que simula código en lenguaje natural. Esto requiere un alto nivel de comprensión y razonamiento sobre el código, y la capacidad de comunicar claramente los resultados.
inserte la descripción de la imagen aquí
Incluso es posible hacer una ejecución simulada en pseudocódigo
inserte la descripción de la imagen aquí

Interacción con el mundo

Un aspecto clave de la inteligencia es la interactividad, que los autores definen como la capacidad de comunicarse y responder a la retroalimentación de otros agentes, herramientas y el entorno. La interactividad es importante para la inteligencia porque permite que los agentes adquieran y apliquen conocimientos, resuelvan problemas, se adapten a situaciones cambiantes y alcancen metas más allá de sus capacidades individuales. Por ejemplo, los humanos interactúan con otras personas y el entorno para colaborar, aprender, enseñar, negociar, crear y más. La interactividad requiere que los agentes comprendan ideas complejas, aprendan rápidamente y aprendan de la experiencia, por lo que está estrechamente relacionada con nuestra definición de inteligencia.
En esta sección, los autores exploran dos dimensiones de la interacción: el uso de herramientas y la interacción encarnada. El uso de herramientas implica el uso de recursos externos como motores de búsqueda, calculadoras u otras API para realizar tareas que son difíciles o imposibles para el modelo. La interacción incorporada implica el uso del lenguaje natural como una interfaz de texto para interactuar y recibir comentarios de un entorno simulado o del mundo real.

uso de herramientas

A pesar de su impresionante desempeño en varias tareas de las secciones anteriores, GPT-4 todavía sufre de varias debilidades del modelo de lenguaje. Estas debilidades incluyen (pero no se limitan a) la falta de conocimiento del mundo actual, dificultades con la manipulación simbólica (como las matemáticas) y la incapacidad para ejecutar código. Sin embargo, GPT-4 puede superar estas (y otras) limitaciones utilizando herramientas externas como motores de búsqueda o API. Por ejemplo, en la Figura 5-2, se muestra un mensaje simple que le da a GPT-4 acceso a un motor de búsqueda y otras funciones. Durante la ejecución, cuando se llama a una de estas funciones, pausamos la compilación, llamamos a la función adecuada, pegamos el resultado nuevamente en el mensaje y continuamos con la compilación.
inserte la descripción de la imagen aquí
GPT-4 puede usar muy pocas instrucciones y ninguna herramienta demostrada y luego usar la salida de manera adecuada. En la prueba final, podemos ver que GPT4 se puede usar con un motor de búsqueda para responder preguntas en tiempo real, con una calculadora se puede usar para operaciones aritméticas y con una API de cadenas para procesar solicitudes de cadenas.

Ingeniería inversa

La ingeniería inversa es una prueba fundamental de la seguridad del software que tiene como objetivo buscar información útil dentro de un programa ejecutable escrito en una representación legible por máquina (es decir, binaria) de las instrucciones de la CPU. Esta es una tarea desafiante que requiere una comprensión de la sintaxis, la semántica y las convenciones del lenguaje ensamblador, así como la arquitectura y el comportamiento de los procesadores y sistemas operativos.
Los autores muestran que GPT-4 es capaz de ejecutar un shell de forma independiente. GPT-4 examina los formatos de archivo y los metadatos, desensambla el código usando herramientas como "objdump" y "radare2", depura el código usando "gdb" y "ltrace" y lo descompila usando técnicas como parches, ganchos y descompilación. . Durante este proceso, GPT-4 calcula las contraseñas a partir del código ensamblador y las compara con hashes derivados de fórmulas matemáticas simples. Luego, GPT-4 escribe un programa de Python que prueba diferentes combinaciones de números hasta que encuentra una que coincida con el hash, descifrando así la contraseña.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Lo anterior es GPT4 usando linux gdb para depurar un software de contraseña, paso a paso de acuerdo con la información de depuración para establecer puntos de interrupción para ver la información de la memoria de la pila, para completar el script de explosión y finalmente encontrar la contraseña para completar el proceso de descifrado.
Como una persona con experiencia en ingeniería inversa, mi opinión personal es que GPT-4 tiene al menos capacidades preliminares de ingeniería inversa. Para algunos desafíos simples de descifrado, puede usar la depuración de gdb para descifrar gradualmente la clave secreta, y los humanos quieren hacerlo. toma un poco de tiempo para aprender y entrenar. Para aquellos que no saben mucho sobre ingeniería inversa, GPT-4 puede usarse como una ayuda inversa. Para aquellos que hacen reversa, el modelo grande en el futuro puede ayudar a los ingenieros reversos. Acorte el tiempo inverso y reduzca la carga de trabajo inversa .

pruebas de penetración

Resolver tareas más complejas requiere que GPT-4 use una combinación de herramientas. Ahora compartimos ejemplos en los que GPT-4 puede hacerlo confiando en su capacidad para comprender la tarea en cuestión, identificar las herramientas necesarias, usarlas en el orden correcto y responder adecuadamente a su resultado.
Para las tareas de prueba de penetración, los autores le dicen a GPT-4 que puede ejecutar comandos en distribuciones de Linux diseñadas para análisis forense digital y pruebas de penetración, y realizar la tarea de piratear computadoras en la red local. Sin ninguna información, puede formular y ejecutar un plan que escanea la red en busca de dispositivos, identifica el host de destino, ejecuta un ejecutable, prueba contraseñas comunes y obtiene acceso de root a la máquina. Si bien la máquina se comprometió fácilmente, se descubrió que GPT-4 era competente en los comandos de Linux, capaz de ejecutar los comandos apropiados, interpretar su salida y hacer ajustes para abordar sus objetivos.

inserte la descripción de la imagen aquí

Se puede ver que GPT4 usó con éxito herramientas de penetración comunes para piratear el servidor de destino con contraseñas débiles en el experimento. Por supuesto, este tipo de trabajo es demasiado simple para las tareas de prueba de penetración reales, pero al menos puede probar que el modelo grande tiene una pequeña capacidad de penetración.
Desde la perspectiva de los trabajadores de seguridad, la capacidad de utilizar herramientas de penetración, como modelos grandes, puede ser beneficiosa para los evaluadores, ya que ayuda a los humanos a realizar algunas tareas de penetración sencillas. Si realmente tienen que enfrentarse a escenarios complejos de confrontación ofensiva y defensiva, los modelos grandes actuales son Todavía no calificado, pero en el futuro probablemente habrá escenas de confrontación hombre-máquina y confrontación máquina-máquina. La seguridad ya no es solo un juego entre personas. La confrontación entre todos/hombre-máquina/máquina-máquina hará el juego de la seguridad. ataque y defensa situación de diversidad sin precedentes.

Resumir

Se puede ver que GPT-4 es de hecho una IA de propósito general y puede crear y usar herramientas (los humanos son solo animales que pueden crear y usar herramientas. Desde esta perspectiva, ¿quizás AGI ya puede considerarse inteligencia avanzada?), Por supuesto, todavía existen grandes limitaciones en el uso real, pero la aparición de GPT-4 ha demostrado la viabilidad de AGI. En el futuro de la potencia informática altamente desarrollada, es solo cuestión de tiempo antes de que AGI tenga un rendimiento más sólido y una aplicabilidad más amplia. será implementado La era del trabajo en pareja es inevitable.
En términos generales, la capacidad de los modelos grandes es muy poderosa y, en teoría, no hay límite. De acuerdo con la correlación entre el poder de cómputo y la inteligencia, siempre que el poder de cómputo sea suficiente, la inteligencia puede ser lo suficientemente fuerte. En el futuro previsible, la investigación de modelos a gran escala solo será monopolizada por el capital más fuerte, y los investigadores individuales solo podrán recoger las sobras No es una exageración decir que este año es un punto de inflexión en la historia humana.

Es solo que aún no se sabe si la historia de la humanidad conducirá finalmente al Cyberpunk o al comunismo. La clave está en en manos de quién está AGI.

Supongo que te gusta

Origin blog.csdn.net/qq_33976344/article/details/130009721
Recomendado
Clasificación