Google revoluciona migrações de código interno com Modelos de Linguagem Avançados

A Google está a transformar o paradigma das migrações de código interno com a utilização de Modelos de Linguagem de Grande Escala (LLMs), alcançando uma redução de 50% no tempo necessário para tarefas altamente complexas. Esta abordagem combina inteligência artificial, heurísticas e técnicas tradicionais para resolver desafios antes considerados inviáveis, marcando um avanço significativo na manutenção de software em larga escala.
20 de Janeiro, 2025

A migração de código, um processo essencial na manutenção de software, é frequentemente encarada como uma tarefa complexa e demorada. A Google, contudo, parece ter encontrado uma solução para simplificar este desafio através da utilização de modelos de linguagem avançados (LLMs). Segundo um relatório recente publicado por engenheiros da empresa, a nova abordagem aumentou a eficiência em 50% em cenários de migração complexa.

Os desafios das migrações de código

Migrar código envolve atualizar aplicações para melhorar o desempenho, modernizar sistemas ou eliminar elementos obsoletos. Contudo, esta tarefa torna-se particularmente difícil devido à dispersão do código por múltiplos ambientes e à natureza das alterações necessárias, que muitas vezes não são triviais.

Até agora, as ferramentas de inteligência artificial (IA) têm sido eficazes em tarefas simples de programação, mas as migrações complexas, com estruturas difíceis de representar por Árvores de Sintaxe Abstrata (ASTs), continuavam fora do alcance. É aqui que a abordagem inovadora da Google, combinando LLMs, heurísticas e técnicas baseadas em ASTs, faz a diferença.

O papel dos LLMs no processo de migração

Os modelos de linguagem da Google ajudam a identificar ficheiros e localizações no código que necessitam de alterações, criando um fluxo de trabalho que integra engenheiros humanos e a IA. O processo, descrito como um ciclo iterativo, funciona da seguinte forma:

  1. Um engenheiro identifica áreas de código a serem migradas.
  2. O LLM gera alterações iniciais com base nos dados fornecidos.
  3. Após testes e ajustes, o código é revisto por programadores humanos.
  4. As alterações finais são fragmentadas e submetidas à revisão dos responsáveis por cada componente.

Este sistema alcançou um marco significativo: em 80% dos casos, as alterações foram totalmente geradas pela IA. Mesmo quando o código necessitou de ajustes, os engenheiros relataram que a existência de uma base gerada pela IA acelerou significativamente o processo.

Casos Práticos na Google

Migração de IDs no Google Ads

O Google Ads, com mais de 500 milhões de linhas de código, enfrentou um desafio crítico: converter IDs de 32 bits para 64 bits. Este processo, essencial para evitar erros associados a valores superiores à capacidade dos IDs de 32 bits, era dificultado pela natureza genérica e dispersa dos IDs.

Com a ajuda dos LLMs, foi possível identificar rapidamente os locais no código que precisavam de atualização e implementar as mudanças de forma eficiente. A técnica minimizou o tempo necessário e permitiu a revisão mais eficaz pelos programadores.

Atualização para JUnit4

Outro caso envolveu a migração de milhares de ficheiros de teste que usavam a biblioteca JUnit3 para a mais recente JUnit4. Esta tarefa, que poderia ter consumido meses de trabalho humano, foi concluída em três meses, com mais de 149.000 linhas de código atualizadas em 5.359 ficheiros.

Limpeza de código obsoleto

O LLM também foi utilizado para identificar e eliminar código experimental que já não era relevante. Este processo envolveu:

  • Encontrar referências obsoletas.
  • Simplificar expressões dependentes.
  • Atualizar ou eliminar testes desnecessários.

Uma abordagem versátil e universal

Embora esta estrutura tenha sido aplicada a projetos internos da Google, os engenheiros acreditam que as técnicas podem ser adotadas por qualquer grande empresa. A combinação de LLMs, ASTs e heurísticas permite enfrentar desafios de migração com diferentes níveis de complexidade.

Impacto futuro no desenvolvimento de software

A abordagem da Google demonstra como a IA pode transformar a manutenção de software em larga escala. Com a promessa de reduzir o esforço humano, acelerar processos e viabilizar projetos antes considerados impraticáveis, esta tecnologia representa um passo significativo na evolução do desenvolvimento de software.

À medida que mais empresas adotarem estas práticas, as migrações de código complexas poderão deixar de ser vistas como obstáculos intransponíveis, transformando-se em oportunidades para inovação e eficiência.

Opinião