Mesa de la izquierda
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
6 Conclusión, reconocimientos, limitaciones y referencias
A Few-shot modelos de tamaño estimado
G Diseñar una clase de Python para una tarea estructurada
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
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.
Este artículo está disponible en archivo bajo la licencia CC BY 4.0 DEED.
yEste artículo está disponible en archivo bajo la licencia CC BY 4.0 DEED.
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]).
yAuthors:
(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]).