NOTA DE PESQUISA

Modificação localizada de código com modelos generativos

Como evitar a reescrita desnecessária de toda a função e, ao mesmo tempo, preservar liberdade suficiente para que um modelo generativo realize a alteração de código solicitada.

Compartilhar esta nota de pesquisaCompartilhar

RESPOSTA DIRETA

Como um modelo generativo pode modificar código sem reescrever toda a função?

Defina as regiões protegidas e editáveis antes da geração, reutilize ou restrinja a representação protegida, gere apenas alterações candidatas e rejeite resultados que modifiquem o código protegido ou não passem nas verificações específicas da tarefa. A localidade e o êxito na tarefa devem ser medidos em conjunto.

Por que a distinção é importante

O método e a garantia alegada precisam compartilhar o mesmo limite observável.

A modificação localizada de código é um problema de edição, e não apenas um prompt mais curto para geração de código. A entrada já contém um artefato que merece ser preservado; por isso, o método requer uma fronteira de preservação explícita entre a região que pode ser alterada e as propriedades que devem permanecer estáveis.

O limite pode ser um trecho do código-fonte, um nó sintático, uma assinatura de API, o comportamento de um teste, um contrato de dependência ou uma posição latente aprendida. Essas escolhas não são intercambiáveis: cada uma protege uma propriedade observável distinta e requer uma etapa de verificação correspondente.

Um procedimento prático

  1. Definir o contrato de preservação

    Identifique a região editável e o texto, a estrutura, a interface ou o comportamento exatos que devem permanecer inalterados.

  2. Escolha a interface de controle útil mais restrita

    Reutilize trechos inalterados do código-fonte, empregue preenchimento ou decodificação orientada à edição, aplique restrições formais ou bloqueie posições latentes selecionadas de acordo com a propriedade exigida.

  3. Gere apenas onde a alteração é permitida

    Mantenha liberdade suficiente na região editável para resolver a tarefa; copiar toda a entrada é uma operação local, mas não produz avanço algum.

  4. Verifique conjuntamente a localidade e o êxito

    Rejeitar candidatos que alterem regiões protegidas, falhem na análise sintática ou na compilação, violem invariantes estruturais ou não atendam à alteração solicitada.

Evidências necessárias

Uma afirmação é tão sólida quanto a propriedade medida após a geração ou a decodificação.

  • Diferenças fora da região ou outra medida direta da estabilidade da região protegida.
  • Êxito da tarefa na região editável.
  • Análise sintática, compilação, testes, verificações estáticas ou invariantes específicas da tarefa, conforme aplicável.
  • Taxa de alteração da região editável, para que a cópia não seja confundida com controle.
  • Unicidade dos candidatos e variabilidade entre execuções repetidas, para que a localidade não seja confundida com colapso de modos.

O que o estudo vinculado relata

  • O experimento associado comprime funções Python de 64 tokens em posições discretas hierárquicas e regenera posições latentes selecionadas sob restrições parciais.
  • O bloqueio de quatro códigos de nível superior elevou a taxa de análise sintática de 0.453 para 0.591, enquanto as posições desbloqueadas foram alteradas à taxa de 0.936 e 0.998 das amostras condicionais permaneceram únicas.
  • Essas medições revelam um compromisso entre estabilidade e liberdade acima do nível dos tokens; não comprovam a preservação exata de trechos do código-fonte, da AST, da semântica ou do comportamento.

Ler a visão geral da publicação Pesquisar no texto integral do artigo

Limite do escopo

  • Um código latente bloqueado não é automaticamente um nó da AST, um trecho protegido do código-fonte ou um invariante formal.
  • A taxa de análise sintática estabelece a boa formação sintática, não a correção funcional nem o êxito do reparo.
  • As evidências apresentadas provêm de funções Python curtas e pré-processadas e não estabelecem o comportamento na escala de repositórios.
Compare interfaces de controle para edição localizada

Fontes primárias e trabalhos relacionados

Consulte os artigos vinculados para conhecer os métodos originais, as medições e as limitações declaradas.

  1. Inspectable Control for Structure-Preserving Software Regeneration

    Artigo principal e experimento delimitado com variáveis latentes hierárquicas.

  2. EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding

    Decodificação orientada à edição que reutiliza regiões inalteradas do código-fonte.

  3. PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair

    Torna explícitas a preservação e a alteração mínima no treinamento para reparo de programas.

Mantido por . Esta página sintetiza as evidências existentes e não acrescenta resultados experimentais além dos apresentados nas fontes citadas.

Consultar todas as notas de pesquisa