Avaliando Código vs. Prompts de Texto em Modelos de Linguagem
Estudo compara prompts de código e prompts de texto em várias tarefas de linguagem.
― 6 min ler
Índice
Estudos recentes deram uma olhada em como usar prompts parecidos com código pode melhorar o funcionamento dos modelos de linguagem. Esses modelos são usados para várias tarefas envolvendo linguagem natural, como responder a perguntas ou resumir textos. Porém, os estudos se concentraram mais em Tarefas de Raciocínio específicas. A questão é: usar prompts de código é a melhor maneira de interagir com esses modelos para todas as tarefas?
Comparando Prompts de Código e Texto
Nesse pesquisa, a equipe comparou prompts de código e prompts de texto em diferentes modelos de linguagem populares pra ver qual tipo se sai melhor em várias tarefas. Os modelos testados incluem um modelo geral de linguagem e dois modelos mais especializados treinados com texto e código. As tarefas incluíram coisas como responder perguntas, análise de sentimentos e resumir textos.
As descobertas mostram que, exceto por algumas tarefas de raciocínio, prompts de código não têm um Desempenho consistentemente melhor que os de texto. Curiosamente, o tipo de prompt de código usado impacta bastante o desempenho em algumas tarefas. Além disso, treinar os modelos usando instruções em texto melhorou como eles se saíram com prompts de código.
Configuração do Experimento
Escolha dos Modelos
Três modelos de linguagem diferentes foram usados nos experimentos. O primeiro modelo era um modelo geral bem conhecido. O segundo modelo foi especificamente treinado com texto e código. O terceiro modelo era uma variante que recebeu um treinamento mais focado usando exemplos gerados por humanos. Todos os modelos foram acessados através de uma API, o que gerou alguns custos pros experimentos.
Seleção de Tarefas
Pra ter uma boa variedade de tarefas pra examinar, a equipe primeiro escolheu categorias como resposta a perguntas e análise de sentimentos antes de selecionar conjuntos de dados específicos. A atenção especial foi dada a tarefas que normalmente envolvem raciocínio de bom senso, já que essas mostraram resultados positivos com prompts de código em estudos anteriores.
Doze tarefas foram escolhidas pra avaliação, incluindo raciocínio de bom senso, análise de sentimentos e sumarização. Cada tarefa tinha o objetivo de fornecer uma visão geral de como diferentes prompts afetavam o desempenho do modelo.
Criando os Prompts
Os prompts usados nesse estudo foram cuidadosamente elaborados. Pros prompts de texto, foi usada uma coleção de templates, enquanto prompts de código personalizados foram criados pras tarefas. Quatro estilos diferentes de prompts de código foram desenvolvidos, variando de nomes de variáveis simples a estruturas mais complexas com comentários e classes organizadas.
Durante a fase de testes, exemplos em contexto dos dados de treinamento foram adicionados aleatoriamente a cada prompt pra reduzir o viés. Essa complexidade adicional ajudou a garantir que os resultados fossem confiáveis.
Analisando Tipos de Prompts
A equipe analisou como cada tipo de prompt de código se saiu nas doze tarefas. Não havia um melhor prompt de código; na verdade, a eficácia variava de tarefa pra tarefa. Por exemplo, algumas tarefas mostraram pouca diferença no desempenho entre os estilos de prompt, enquanto outras revelaram uma diferença significativa.
A análise indicou que um estilo específico de prompt de código, que combinava nomes de variáveis significativas com comentários explicando seu propósito, geralmente produziu os melhores resultados.
Exemplos em Contexto
Outra área de exploração foi o impacto do número de exemplos em contexto usados nos prompts. A equipe experimentou preencher prompts com diferentes números de exemplos pra ver se isso melhorava o desempenho. Surpreendentemente, descobriram que adicionar mais exemplos muitas vezes teve pouco ou nenhum efeito positivo. Em alguns casos, até parecia piorar o desempenho, ao contrário do que pesquisas anteriores sugeriam sobre prompts de texto.
Comparação Geral de Desempenho
O objetivo principal era ver se prompts de código são melhores que prompts de texto no geral. Comparando o desempenho de diferentes modelos com cada tipo de prompt nos doze conjuntos de dados, os pesquisadores descobriram vários pontos importantes.
Primeiro, o uso de prompts de código melhorou os resultados em algumas tarefas de raciocínio, embora isso não tenha sido consistente em todas as tarefas. Por exemplo, um modelo teve um aumento notável de desempenho ao usar prompts de código pra ordenação temporal, mas teve uma queda em outra tarefa de raciocínio de bom senso.
Segundo, modelos treinados com instruções adicionais usando linguagem natural não tiveram dificuldades com prompts de código. Na verdade, um modelo treinado principalmente em texto teve um desempenho melhor com prompts de código em comparação a outro modelo projetado especificamente pra trabalhar com texto e código.
Por último, descobriram que modelos que não foram especificamente treinados em código ainda se beneficiaram do uso de prompts de código em tarefas de raciocínio específicas. Isso sugeriu que algumas vantagens subjacentes poderiam estar presentes na entrada estruturada.
Limitações do Estudo
Uma das limitações significativas notadas foi que o acesso a um dos principais modelos testados foi revogado durante a pesquisa. Isso dificultou a replicação das descobertas por outros pesquisadores. Essas mudanças na disponibilidade levantam preocupações sobre a dependência de modelos baseados em API na pesquisa.
Além disso, embora as doze tarefas selecionadas fornecessem insights, talvez não representassem todas as possíveis tarefas de linguagem natural. Uma seleção mais ampla poderia revelar mais tendências.
Por último, a natureza fechada dos dados de treinamento dos modelos significou que os pesquisadores não puderam verificar se os conjuntos de dados de tarefas escolhidos estavam incluídos na mistura de treinamento. Essa falta de transparência pode criar incertezas em relação aos resultados.
Conclusões
A investigação destacou as diferenças de desempenho ao usar prompts de código versus texto. Embora existam tarefas em que prompts de código levam a melhores resultados, a utilização de prompts de texto provou ser mais eficaz na maioria das tarefas.
Pesquisas futuras poderiam se beneficiar de identificar quais tarefas específicas poderiam ganhar com o uso de prompts de código. No entanto, fazer tais previsões com base em fatores simples como o tipo de tarefa pode ser desafiador. Entender por que os prompts de código funcionam melhor para certas tarefas é crucial pra avançar na área.
No cenário mais amplo, novas pesquisas estão surgindo onde modelos não só geram código, mas também o executam pra criar saídas. Isso levanta mais perguntas sobre como essas tarefas podem se sobrepor àquelas que se beneficiam de prompts de código não executáveis.
Esse trabalho enfatiza a necessidade de pesquisas contínuas sobre como diferentes tipos de prompts podem influenciar o desempenho dos modelos de linguagem. As descobertas e limitações destacam áreas onde estudos futuros podem expandir o conhecimento nesse campo em evolução.
Título: Exploring the Curious Case of Code Prompts
Resumo: Recent work has shown that prompting language models with code-like representations of natural language leads to performance improvements on structured reasoning tasks. However, such tasks comprise only a small subset of all natural language tasks. In our work, we seek to answer whether or not code-prompting is the preferred way of interacting with language models in general. We compare code and text prompts across three popular GPT models (davinci, code-davinci-002, and text-davinci-002) on a broader selection of tasks (e.g., QA, sentiment, summarization) and find that with few exceptions, code prompts do not consistently outperform text prompts. Furthermore, we show that the style of code prompt has a large effect on performance for some but not all tasks and that fine-tuning on text instructions leads to better relative performance of code prompts.
Autores: Li Zhang, Liam Dugan, Hainiu Xu, Chris Callison-Burch
Última atualização: 2023-04-25 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2304.13250
Fonte PDF: https://arxiv.org/pdf/2304.13250
Licença: https://creativecommons.org/licenses/by-nc-sa/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.