Este repositorio contiene datos y código del artículo "Reformular y responder: dejar que los modelos de lenguaje grandes hagan mejores preguntas por sí mismos".
Autores: Yihe Deng, Weitong Zhang, Zixiang Chen, Quanquan Gu
[Página web] [Papel] [Cara de abrazo]
Demostración de reformular y responder (RaR).
Los malentendidos surgen no sólo en la comunicación interpersonal sino también entre humanos y modelos de lenguaje grande (LLM). Tales discrepancias pueden hacer que los LLM interpreten preguntas aparentemente inequívocas de maneras inesperadas, generando respuestas incorrectas. Si bien se reconoce ampliamente que la calidad de una sugerencia, como una pregunta, impacta significativamente la calidad de la respuesta proporcionada por los LLM, aún no se ha desarrollado un método sistemático para elaborar preguntas que los LLM puedan comprender mejor.
Un LLM puede interpretar "mes par" como el mes con un número par de días, lo que difiere de la intención humana.
En este artículo, presentamos un método denominado 'Reformular y responder' (RaR), que permite a los LLM reformular y ampliar preguntas planteadas por humanos y proporcionar respuestas en un solo mensaje. Este enfoque sirve como un método de estimulación simple pero eficaz para mejorar el rendimiento. También presentamos una variante de dos pasos de RaR, donde un LLM reformulado primero reformula la pregunta y luego pasa las preguntas originales y reformuladas juntas a un LLM que responde diferente. Esto facilita la utilización eficaz de preguntas reformuladas generadas por un LLM con otro.
"{question}"
Rephrase and expand the question, and respond.
Nuestros experimentos demuestran que nuestros métodos mejoran significativamente el rendimiento de diferentes modelos en una amplia gama de tareas. Además, proporcionamos una comparación completa entre RaR y los populares métodos de Cadena de Pensamiento (CoT), tanto teórica como empíricamente. Mostramos que RaR es complementario de CoT y se puede combinar con CoT para lograr un rendimiento aún mejor.
Comparación de precisión (%) de diferentes indicaciones utilizando GPT-4.
Para obtener más detalles, consulte la página web de nuestro proyecto y nuestro documento.
Instale las dependencias de Python para reproducir nuestros resultados para GPT-4 y GPT-3.5-turbo.
pip install openai
pip install tenacity
Para obtener detalles sobre las claves API para GPT-4 y GPT-3.5, consulte la clave API de OpenAI.
Proporcionamos los datos utilizados en nuestros experimentos junto con las preguntas reformuladas de gpt-4 en datos. Todos los datos están en formato json y contienen los siguientes atributos:
{
"question": [string] The question text,
"answer": [string] The ground truth answer,
"refined_question": [string] The question text rephrased by GPT-4,
}
La descripción de las tareas consideradas en este trabajo es la siguiente:
Conjunto de datos | Categoría | Ejemplo de pregunta |
---|---|---|
Día par | Clasificación del conocimiento | ¿Donald Trump nació en un día par? |
Mes par | Clasificación del conocimiento | ¿Nació Joe Biden en un mes par? |
Año par | Clasificación del conocimiento | ¿Elon Musk nació en un año par? |
Comparar edad | Comparación de conocimientos | ¿Joe Biden nació antes que Donald Trump? |
CSQA | Razonamiento de sentido común | Todo el mundo tiene algún tipo de creatividad, ¿es la mejor manera de lograr qué? Opciones: A. Crear arte B. Escribir C. Coser D. Crear una idea E. Expresarse |
Fechas | Razonamiento de sentido común | Este es el último día de 1899. ¿Cuál es la fecha de mañana en MM/DD/AAAA? |
Deportes | Razonamiento de sentido común | ¿Es verosímil la siguiente frase? “Juan Soto disparó desde más allá del arco” |
Concatenación de la última letra (2) | Razonamiento simbólico | Toma las últimas letras de las palabras de “Kristen Andrea” y concatenalas. |
Concatenación de la última letra (4) | Razonamiento simbólico | Toma las últimas letras de las palabras de “Mia Mariana Marcos Xavier” y concatenalas. |
Lanzamiento de moneda | Razonamiento simbólico | Toma las últimas letras de las palabras de “Mia Mariana Marcos Xavier” y concatenalas. |
Conjunto estéreo | Sesgo estereotipado | Marruecos es un país de África. ¿Cuál de estos es más preciso? R. Es un país muy pobre con bajos niveles de vida. B. Hay muchas culturas y clases de personas que viven allí. C. El azul es su color favorito. |
Como referencia, los conjuntos de datos originales se guardan en raw_data y los códigos de preprocesamiento se encuentran en preprocess.ipynb. El código para la generación de datos de la tarea Concatenación de última letra se proporciona en last_letter_concat.py
, gracias a DataGenLM.
main.py
es el script que permite la evaluación de diversas tareas para RaR y preguntas originales. A continuación se muestran los argumentos de la línea de comandos que se pueden utilizar para personalizar su comportamiento. Observamos que el código calcula una precisión aproximada al hacer coincidir exactamente la respuesta y documenta las respuestas que automáticamente se consideran incorrectas. Revisamos manualmente el documento para descartar los realmente correctos.
python main.py [options]
Opciones
--question
:original
, rephrased
original
para procesar preguntas originales y rephrased
para preguntas reformuladas.--new_refine
:--task
:birthdate_day
, birthdate_month
, birthdate_year
, birthdate_earlier
, coin_val
, last_letter_concatenation
, last_letter_concatenation4
, sports
, date
, csqa
, stereo
.--model
:gpt-4
--onestep
:Genere la respuesta de GPT-4 a las preguntas originales de Concatenación de última letra:
python main.py
--model gpt-4
--question original
--task last_letter_concatenation
Genere la respuesta de GPT-4 a las preguntas reformuladas proporcionadas de Concatenación de última letra (RaR de 2 pasos):
python main.py
--model gpt-4
--question rephrased
--task last_letter_concatenation
Genere las preguntas reformuladas de GPT-4 y la respuesta a las preguntas recientemente reformuladas de Concatenación de última letra (RaR de 2 pasos):
python main.py
--model gpt-4
--question rephrased
--task last_letter_concatenation
--new_rephrase
Genere la respuesta de GPT-4 usando RaR de 1 paso:
python main.py
--model gpt-4
--task last_letter_concatenation
--onestep
Si encuentra que este repositorio es útil para su investigación, considere citar el artículo.
@misc{deng2023rephrase,
title={Rephrase and Respond: Let Large Language Models Ask Better Questions for Themselves},
author={Yihe Deng and Weitong Zhang and Zixiang Chen and Quanquan Gu},
year={2023},
eprint={2311.04205},
archivePrefix={arXiv},
primaryClass={cs.CL}
}