Hierarchical Embedding Fusion for Retrieval-Augmented Code Generation

O artigo apresenta a Hierarchical Embedding Fusion (HEF), uma abordagem de duas etapas que comprime repositórios de código em uma hierarquia de vetores densos e os integra ao gerador via pseudo-tokens, permitindo uma geração de código assistida por recuperação com latência ultrabaixa e precisão comparável a métodos baseados em snippets.

Nikita Sorokin, Ivan Sedykh, Valentin Malykh

Publicado Tue, 10 Ma
📖 4 min de leitura☕ Leitura rápida

Each language version is independently generated for its own context, not a direct translation.

Imagine que você é um programador tentando escrever uma nova função para um projeto gigante, como o sistema de um banco ou um jogo complexo. O problema é que esse projeto tem milhares de arquivos. Para escrever o código certo, você precisa lembrar de como outras partes do sistema funcionam, quais nomes de variáveis foram usados lá fora e como as peças se encaixam.

Se você tentar ler todos os arquivos do projeto de uma vez para se lembrar, seu computador vai travar (é muito pesado e lento). Se você não ler nada, seu assistente de IA vai inventar coisas que não existem (alucinar).

Os métodos antigos tentavam resolver isso de duas formas ruins:

  1. Jogar tudo na mesa: Colocar milhares de linhas de código na frente da IA. Funciona, mas é lento e confuso (muito ruído).
  2. Ficar procurando em mapas: Criar gráficos complexos de como o código se conecta. Funciona bem, mas demora muito para processar cada vez que você pede ajuda.

Aqui entra a solução proposta neste paper: HEF (Fusão de Embeddings Hierárquicos).

A Analogia do "Resumo de Biblioteca"

Imagine que o repositório de código é uma biblioteca gigante com milhões de livros.

  • O Método Antigo (Injeção de Snippets): É como pedir para o bibliotecário trazer todos os livros da estante para sua mesa, na esperança de que você encontre a informação que precisa. Sua mesa fica cheia, você se perde entre as páginas e demora horas para achar o que quer.
  • O Método HEF: É como ter um bibliotecário superinteligente que, antes mesmo de você chegar, leu todos os livros e criou um índice hierárquico (um resumo).
    • Ele não guarda o texto inteiro. Ele guarda "ideias" compactas.
    • Ele organiza esses resumos: primeiro por página, depois por capítulo, depois por livro, e finalmente por toda a biblioteca.

Como o HEF funciona (Passo a Passo Simples)

O sistema funciona em duas etapas principais:

1. A Etapa Offline (O "Preparo do Índice")

Antes de você começar a programar, o sistema varre todo o projeto e cria esse "índice mágico".

  • Ele pega pedaços de código (como capítulos) e os transforma em vetores densos (imagina que são como "impressões digitais" matemáticas do significado do código, não o texto em si).
  • Um pequeno modelo chamado "Fuser" (Fundidor) pega essas impressões digitais e as mistura. Ele pega 8 pedaços de código e os funde em 1 resumo maior. Depois, pega esses resumos e funde em resumos de pastas inteiras, e assim por diante, até ter um resumo de todo o projeto.
  • Resultado: Em vez de ter milhões de linhas de texto, você tem uma árvore de resumos compactos que cabe na memória do computador.

2. A Etapa Online (Quando você pede ajuda)

Quando você digita uma linha de código e pede para a IA continuar:

  • A IA olha o que você escreveu e pergunta ao "índice": "Qual resumo do projeto se parece mais com isso?"
  • O sistema busca os 32 resumos mais relevantes (em vez de buscar 3.000 linhas de texto).
  • Esses 32 resumos são transformados em "pseudo-tokens" (palavras mágicas que só a IA entende, mas que carregam o peso de milhares de linhas de código).
  • A IA recebe essas "palavras mágicas" e escreve o código.

Por que isso é incrível?

  1. Velocidade Relâmpago: Como a IA não precisa ler milhares de linhas de texto, ela responde em menos de 1 segundo (0,68s no teste). É como pedir um resumo rápido em vez de ler um livro inteiro.
  2. Precisão: Mesmo sendo rápido, ela sabe exatamente o que está acontecendo no projeto, porque os "resumos" (vetores) guardam o significado das conexões entre os arquivos.
  3. Resistência ao Ruído: Se o sistema buscar um resumo errado, ele não "polui" a memória da IA com texto inútil. Como são apenas resumos matemáticos, a IA consegue ignorar o que não serve melhor do que se estivesse lendo texto bruto.

O Resultado Final

Os autores testaram isso em benchmarks reais (como o RepoBench) e descobriram que:

  • O sistema HEF é 26 vezes mais rápido que os métodos baseados em gráficos complexos.
  • Ele é tão preciso quanto os métodos lentos que jogam todo o código na tela.
  • Com um modelo pequeno (1,8 Bilhão de parâmetros), ele bate de frente com modelos gigantes (16 Bilhões) que são muito mais lentos.

Em resumo: O HEF é como ter um assistente que leu todo o projeto, fez anotações inteligentes e organizou tudo em um "mapa do tesouro" compacto. Quando você precisa de ajuda, ele não te entrega a montanha de papelada; ele te entrega o mapa exato, permitindo que você programe rápido e sem erros.