Um Novo Quadro para Completação de Código
Apresentando uma abordagem inovadora pra melhorar as ferramentas de preenchimento automático de código.
― 1 min ler
A conclusão é que a nossa nova estrutura para completar código representa um grande avanço em lidar com as complexidades do desenvolvimento de software. Ao usar Engenharia de Prompts e um algoritmo de bandido com múltiplas armas, oferecemos uma solução flexível e eficiente que traz melhorias substanciais em relação às técnicas existentes.
O trabalho futuro vai incluir o refino ainda maior dos prompts e a experimentação com diferentes maneiras de combinar as perspectivas de recuperação. À medida que o campo da Conclusão de Código continua a evoluir, a pesquisa contínua vai se concentrar em alcançar uma integração ainda melhor com as ferramentas de desenvolvimento e aprimorar a adaptabilidade da nossa estrutura a diferentes linguagens de programação e ambientes.
No geral, acreditamos que nossa abordagem tem um grande potencial para melhorar a produtividade dos desenvolvedores e aumentar a qualidade dos sistemas de software. Ao enfrentar os desafios inerentes à compreensão e conclusão de código, nossa estrutura está pronta para causar um impacto duradouro no mundo da programação.
Título: Prompt-based Code Completion via Multi-Retrieval Augmented Generation
Resumo: Automated code completion, aiming at generating subsequent tokens from unfinished code, has been significantly benefited from recent progress in pre-trained Large Language Models (LLMs). However, these models often suffer from coherence issues and hallucinations when dealing with complex code logic or extrapolating beyond their training data. Existing Retrieval Augmented Generation (RAG) techniques partially address these issues by retrieving relevant code with a separate encoding model where the retrieved snippet serves as contextual reference for code completion. However, their retrieval scope is subject to a singular perspective defined by the encoding model, which largely overlooks the complexity and diversity inherent in code semantics. To address this limitation, we propose ProCC, a code completion framework leveraging prompt engineering and the contextual multi-armed bandits algorithm to flexibly incorporate and adapt to multiple perspectives of code. ProCC first employs a prompt-based multi-retriever system which crafts prompt templates to elicit LLM knowledge to understand code semantics with multiple retrieval perspectives. Then, it adopts the adaptive retrieval selection algorithm to incorporate code similarity into the decision-making process to determine the most suitable retrieval perspective for the LLM to complete the code. Experimental results demonstrate that ProCC outperforms state-of-the-art code completion technique by 8.6% on our collected open-source benchmark suite and 10.1% on the private-domain benchmark suite collected from a billion-user e-commerce company in terms of Exact Match. ProCC also allows augmenting fine-tuned techniques in a plug-and-play manner, yielding 5.6% improvement over our studied fine-tuned model.
Autores: Hanzhuo Tan, Qi Luo, Ling Jiang, Zizheng Zhan, Jing Li, Haotian Zhang, Yuqun Zhang
Última atualização: 2024-05-13 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2405.07530
Fonte PDF: https://arxiv.org/pdf/2405.07530
Licença: https://creativecommons.org/licenses/by/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.