Minhas informações de contato
Correspondênciaadmin@informação.bz
2024-08-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Envio da equipe CodexGraph
Qubits | Conta pública QbitAI
Não consegue concluir as tarefas de geração e conclusão do código? !
É melhor tentar deixar a ajuda dos Large Language Models (LLMs).
Contudo, se forOs LLMs podem ter dificuldades ao lidar com bases de código grandes e com vários arquivos.Neste momento, o sistema Retrieval-Augmented Code Generation (RACG) é frequentemente necessário para recuperar informações de código relevantes.
As soluções existentes, como a recuperação baseada em similaridade semântica e ferramentas e APIs projetadas manualmente, embora eficazes em tarefas específicas, têm limitações nas capacidades de generalização e na aplicabilidade universal.
A fim de aliviar as deficiências de universalidade dos métodos RACG existentes, pesquisadores da Universidade Nacional de Cingapura, Alibaba e da Universidade Xi'an Jiaotong propuseramCodexGraph,Um sistema que usa o banco de dados gráfico de código como meio para conectar o modelo de linguagem e a base de código.
A equipe de pesquisa avaliou o CodexGraph em três benchmarks acadêmicos representativos e também implementou o CodexGraph em cinco cenários reais de aplicação de código baseados no ModelScope-Agent.
Experimentos e práticas do mundo real demonstram a eficácia e versatilidade do CodexGraph.
métodos de pesquisa
CodexGraph conecta de forma inovadora o modelo de linguagem à base de código por meio da interface do banco de dados gráfico de código., para superar as deficiências dos métodos existentes.
O fluxo de trabalho deste sistema inclui principalmente as seguintes etapas:
Primeiro, construa o banco de dados do gráfico de código。
Use tecnologia de análise estática para mapear símbolos de código (como módulos, classes, funções, etc.) na base de código e os relacionamentos entre eles em nós e arestas no banco de dados gráfico de acordo com o esquema predefinido.
Em segundo lugar, consultas com reconhecimento de estrutura de código.
Utilize a flexibilidade da linguagem de consulta gráfica e combine-a com as características estruturais do banco de dados gráfico para obter consultas complexas e recuperação detalhada de gráficos de código.
Terceiro, a estratégia “Escreva e traduza”.
O agente LM primário primeiro analisa problemas de código e gera consultas em linguagem natural.
Um agente LM de tradução especializado traduz essas consultas em uma linguagem de consulta gráfica formatada.
Quarto, pipeline iterativo.
Através de uma abordagem iterativa, o agente LM otimiza gradualmente os resultados da consulta e recuperação com base nas perguntas do usuário e nas informações adquiridas.
experimentar
Na parte experimental, o CodexGraph foi avaliado em três benchmarks representativos de nível base de código: CrossCodeEval, EvoCodeBench e SWE-bench.
Esses testesAbrange a conclusão de código entre arquivos, geração de código e resolução automatizada de problemas no GitHubetc. de muitos aspectos.
Resultados experimentais mostram que o CodexGraph apresenta desempenho excelente e estável em todos os testes de benchmark, verificando a eficácia do banco de dados gráfico de código como interface entre modelos de linguagem e bibliotecas de código.
A análise do artigo original apontou ainda que,Quando o CodexGraph lida com tarefas de raciocínio de diferentes dificuldades, há diferenças nos efeitos da consulta única e das estratégias de consulta múltipla.
No CrossCodeEval, múltiplas estratégias de consulta são mais eficazes, enquanto no SWE-bench, uma única estratégia de consulta tem melhor desempenho;
Além disso, a remoção do agente Cypher LM aumentará significativamente a carga de inferência do agente LM primário, resultando na degradação do desempenho.
Isso mostra que o agente Cypher LM desempenha um papel fundamental no alívio da pressão de raciocínio do agente LM primário.
Exemplos reais de cenários de aplicação
Com base na estrutura ModelScope-Agent, o valor prático da aplicação do CodexGraph foi refletido em vários cenários, como:
Esses aplicativos demonstram como o CodexGraph pode ajudar os desenvolvedores a resolver problemas práticos em um ambiente de produção e melhorar a eficiência e a qualidade do desenvolvimento de código.
Resumir
Usando banco de dados gráfico como meio, CodexGraph fornece um novo método de interação entre o modelo de linguagem e a base de código.
Isso não apenas melhora a capacidade do modelo de linguagem de compreender bases de código complexas, mas também aumenta a precisão da recuperação e navegação geral do código.
Surgiu no campo da engenharia de software automatizada,Especialmente quando enfrentamos o desafio do RACG, trazendo novas soluções que demonstram amplo potencial e valor real em diversas tarefas de codificação e aplicações do mundo real.
Com o desenvolvimento contínuo da tecnologia, espera-se que o CodexGraph suporte mais linguagens de programação no futuro e otimize ainda mais seu fluxo de trabalho e eficiência na construção de índices.
Link do código:
https://github.com/modelscope/modelscope-agent/tree/master/apps/codexgraph_agent
link arXiv:
https://arxiv.org/pdf/2408.03910