ChatPaper.aiChatPaper

InverseCoder: Liberando o Poder dos LLMs de Código Ajustados por Instrução com Inverse-Instruct

InverseCoder: Unleashing the Power of Instruction-Tuned Code LLMs with Inverse-Instruct

July 8, 2024
Autores: Yutong Wu, Di Huang, Wenxuan Shi, Wei Wang, Lingzhe Gao, Shihao Liu, Ziyuan Nan, Kaizhao Yuan, Rui Zhang, Xishan Zhang, Zidong Du, Qi Guo, Yewen Pu, Dawei Yin, Xing Hu, Yunji Chen
cs.AI

Resumo

Os avanços recentes em modelos de linguagem de código aberto de grande escala (LLMs) têm demonstrado habilidades de codificação notáveis ao ajustar fino nos dados gerados a partir de poderosos LLMs de código fechado, como GPT-3.5 e GPT-4 para ajuste de instruções. Este artigo explora como melhorar ainda mais um LLM de código ajustado por instrução gerando dados a partir dele mesmo, em vez de consultar LLMs de código fechado. Nossa observação chave é o desalinhamento entre a tradução de linguagens formais e informais: traduzir linguagem formal (ou seja, código) para linguagem informal (ou seja, linguagem natural) é mais direto do que o contrário. Com base nessa observação, propomos o INVERSE-INSTRUCT, que resume instruções a partir de trechos de código em vez do contrário. Especificamente, dado um corpus de ajuste de instruções para código e o LLM de código ajustado resultante, solicitamos ao LLM de código que gere instruções adicionais de alta qualidade para o corpus original por meio de sumarização de código e autoavaliação. Em seguida, ajustamos fino o LLM base na combinação do corpus original e do auto-gerado, o que resulta em um LLM de código ajustado por instrução mais robusto. Apresentamos uma série de LLMs de código chamados InverseCoder, que superam o desempenho dos LLMs de código originais em uma ampla gama de benchmarks, incluindo geração de código de texto para Python, codificação multilíngue e geração de código de ciência de dados.
English
Recent advancements in open-source code large language models (LLMs) have demonstrated remarkable coding abilities by fine-tuning on the data generated from powerful closed-source LLMs such as GPT-3.5 and GPT-4 for instruction tuning. This paper explores how to further improve an instruction-tuned code LLM by generating data from itself rather than querying closed-source LLMs. Our key observation is the misalignment between the translation of formal and informal languages: translating formal language (i.e., code) to informal language (i.e., natural language) is more straightforward than the reverse. Based on this observation, we propose INVERSE-INSTRUCT, which summarizes instructions from code snippets instead of the reverse. Specifically, given an instruction tuning corpus for code and the resulting instruction-tuned code LLM, we ask the code LLM to generate additional high-quality instructions for the original corpus through code summarization and self-evaluation. Then, we fine-tune the base LLM on the combination of the original corpus and the self-generated one, which yields a stronger instruction-tuned LLM. We present a series of code LLMs named InverseCoder, which surpasses the performance of the original code LLMs on a wide range of benchmarks, including Python text-to-code generation, multilingual coding, and data-science code generation.
PDF142November 28, 2024