Nueva Historia

Por qué la conversión de gráficos a código Python mejora el razonamiento de la IA

Demasiado Largo; Para Leer

COCOGEN convierte las tareas de gráficos de sentido común en código Python, permitiendo a CodeLLMs como CODEX generar estructuras de razonamiento precisas a través de la sintaxis familiar.
featured image - Por qué la conversión de gráficos a código Python mejora el razonamiento de la IA
The FewShot Prompting Publication  HackerNoon profile picture
0-item

Mesa de la izquierda

Abstracto y 1 Introducción

2 COCOGEN: Representar estructuras de Commonsense con código y 2.1 Convertir (T,G) en código Python

2.2 Prueba de disparo para generar G

3 Evaluación y 3.1 Configuración experimental

3.2 Generación de guión: Prospect

3.3 Seguimiento del estado de la entidad: PROPARA

3.4 Generación de gráficos de argumentos: EXPLAGRAPHS

4 Análisis

5 Trabajo relacionado

6 Conclusión, reconocimientos, limitaciones y referencias

A Few-shot modelos de tamaño estimado

B. Creación dinámica rápida

C. Evaluación humana

D Datos estadísticos

Ejemplos de resultados

F Pronto

G Diseñar una clase de Python para una tarea estructurada

Impacto del tamaño del modelo

Variaciones en la rapidez

2 COCOGEN: Representar estructuras de Commonsense con código

Nos centramos en tareas de generación de sentido común estructurado. Cada ejemplo de entrenamiento para tales tareas está en la forma (T, G), donde T es una entrada de texto, y G es la estructura a generar (típicamente un gráfico). La idea clave de COCOGEN es transformar un gráfico de salida G en un programa semánticamente equivalente Gc escrito en un lenguaje de programación de propósito general. En este trabajo, elegimos Python debido a su popularidad en los datos de entrenamiento de los modernos CodeLLMs (Xu et al., 2022), pero nuestro enfoque es agnóstico al lenguaje de programación. Los gráficos transformados de código son similares en su formato a los datos de pre-entrenamiento de Code-MLLs, y por lo tanto sirven como más fáciles de generalizar el entrenamiento o ejemplos de


Utilizamos la tarea de generación de scripts (PROSCRIPT, Figura 1) como ejemplo de ejecución para motivar nuestro método: la generación de scripts tiene como objetivo crear un script (G) para alcanzar un objetivo de alto nivel dado (T).

2.1 Convertir (T, G) en código Python

El procedimiento general implica agregar el texto de entrada T al principio del código como un atributo de clase o comentario descriptivo y codificar la estructura G usando construcciones estándar para representar la estructura en el código (por ejemplo, hashmaps, atributos de objeto) o llamadas de funciones.


Por ejemplo, para la tarea de generación de scripts, convertimos el par (T, G) en una clase de árbol (Figura 1b). El objetivo T se agrega como atributo de clase (objetivo), y el script G se agrega al listar los nodos y bordes por separado. Primero instantizamos la lista de nodos como objetos de clase Node. Luego, los bordes se agregan como un hijo de atributo para cada nodo (Figura 1b). Por ejemplo, instantizamos el nodo “Take out several plates” como take_out_several_plates = Node(), y lo añadimos como un hijo del nodo take_pies_out_to_cool.


Aunque hay múltiples maneras de representar un ejemplo de entrenamiento como una clase de Python, encontramos empíricamente que este formato relativamente simple es el más eficaz, especialmente con modelos más grandes.

2.2 Prueba de disparo para generar G





Figure 2: COCOGEN uses a prompt consisting of k (5-10) Python classes. During inference, the test input is converted to a partial class, as shown above, appended to the prompt, and completed by a code generation model such as CODEX.



En nuestros experimentos, usamos CODEX (Chen et al., 2021a) y encontramos que casi siempre genera Python sintácticamente válido. Así, el código generado puede ser fácilmente convertido de nuevo en un gráfico y evaluado utilizando la métrica estándar, original del conjunto de datos.


y

Este artículo está disponible en archivo bajo la licencia CC BY 4.0 DEED.

y

Este artículo está disponible en archivo bajo la licencia CC BY 4.0 DEED.


y

Los autores:

y

(1) Aman Madaan, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]);

y

(2) Shuyan Zhou, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]);

y

(3) Uri Alon, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]);

y

(4) Yiming Yang, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]);

y

(5) Graham Neubig, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]).

y

Authors:

(1) Aman Madaan, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]);

(2) Shuyan Zhou, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]);

(3) Uri Alon, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]);

(4) Yiming Yang, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]);

(5) Graham Neubig, Instituto de Tecnologías Lingüísticas, Universidad de Carnegie Mellon, Estados Unidos ([email protected]).


Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks