Fine-tuned LLM-based Code Migration Framework
Este artigo apresenta uma estrutura de Modelo de Linguagem de Grande Escala ajustada que automatiza efetivamente a migração de sistemas baseados em SQL de Oracle PL/SQL para PostgreSQL ao integrar técnicas tradicionais de engenharia, análise iterativa de erros e feedback de especialistas para reduzir significativamente erros de sintaxe e otimizar a lógica do banco de dados.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você tem uma biblioteca enorme de manuais de instrução escritos em uma linguagem antiga e complexa (Oracle SQL). Sua empresa quer mudar para uma linguagem nova e moderna (PostgreSQL) para economizar dinheiro e rodar mais rápido. O problema? Os manuais antigos são gigantes, cheios de milhares de arquivos, e as duas linguagens não têm apenas palavras diferentes; elas têm gramáticas, lógicas e regras completamente distintas.
Este artigo descreve um sistema inteligente e automatizado construído por pesquisadores da EPAM Systems para traduzir esses manuais antigos para a nova linguagem sem quebrar nada. Veja como eles fizeram isso, explicado de forma simples:
1. O Problema: Não é apenas um "Localizar e Substituir"
Você não pode simplesmente usar um dicionário simples para traduzir isso porque as "frases" no sistema antigo (Oracle) muitas vezes significam algo totalmente diferente no novo sistema (PostgreSQL). As ferramentas tradicionais (como um aplicativo de tradução padrão) tentam seguir regras estritas, mas frequentemente ficam travadas em histórias complexas, perdendo grandes partes do manual ou escrevendo bobagens.
2. A Solução: Um Robô "Super-Tradutor"
A equipe construiu um robô de IA customizado (um Large Language Model) e o treinou especificamente para este trabalho. Eles não apenas pediram para ele "traduzir"; eles o treinaram usando um método especial de dois passos:
- Passo 1: Aprendendo as Regras (A Sala de Aula): Primeiro, eles ensinaram a IA a entender a gramática e a estrutura de ambas as linguagens separadamente. Eles deram exemplos de como um comando específico do Oracle se parece e como ele deveria ser descrito em inglês claro. Isso ajudou a IA a entender a "vibe" e a estrutura do código antes de tentar traduzi-lo.
- Passo 2: Aprendendo a Traduzir (A Prática): Assim que a IA entendeu as regras, eles deram pares diretos: "Aqui está uma frase em Oracle, aqui está a frase correta em PostgreSQL". Foi aqui que ela aprendeu a conversão real.
3. A Rede de Segurança "Humano no Ciclo" (Human-in-the-Loop)
Até robôs inteligentes cometem erros. Por isso, o sistema possui uma equipe de controle de qualidade integrada:
- O Verificador Automático: O sistema escaneia automaticamente o novo código em busca de erros de gramática (sintaxe) e erros de lógica.
- Os Revisores Especialistas: Quando o sistema encontra algo sobre o qual não tem certeza (como uma instrução muito rara ou complexa), ele sinaliza para um especialista humano. O especialista corrige e o sistema aprende com essa correção para fazer melhor na próxima vez. É como um aluno recebendo uma nota e um comentário, e então estudando aquele tópico específico antes do próximo teste.
4. A "Folha de Cola" (RAG)
Às vezes, a IA precisa consultar regras específicas enquanto trabalha. Os pesquisadores construíram dois tipos de "folhas de cola" (Bases de Conhecimento):
- Estratégia A (A Enciclopédia): A IA pode consultar o código original, as regras oficiais da nova linguagem e guias de tradução escritos por especialistas, tudo ao mesmo tempo.
- Estratégia B (O Livro de Exemplos): A IA apenas olha para um livro de exemplos de "Antes e Depois" para adivinhar a melhor tradução.
Eles descobriram que ter a "Enciclopédia" (Estratégia A) ajudou a IA a entender melhor o contexto, especialmente para as partes difíceis.
5. O "Medidor de Lacuna" (Saber o que Estudar)
Uma das partes mais legais do sistema deles é como ele sabe o que estudar a seguir. Após cada rodada de tradução, o sistema calcula uma "Pontuação de Lacuna" (Gap Score) para diferentes tipos de código:
- "Somos ótimos em traduzir comandos matemáticos básicos."
- "Mas somos péssimos em traduzir scripts de backup."
O sistema usa essa pontuação para dizer à equipe humana: "Não percam tempo estudando matemática; vão nos encontrar mais 50 exemplos de scripts de backup". Isso garante que a IA melhore exatamente onde é mais fraca, em vez de apenas adivinhar.
6. Os Resultados: Uma Economia Massiva de Tempo
Quando testaram seu novo sistema de IA contra as ferramentas antigas baseadas em regras:
- Precisão: A IA cometeu muito menos erros e traduziu muito mais do código corretamente.
- Completude: As ferramentas antigas frequentemente desistiam de frases complexas, deixando-as em branco. A IA tentava traduzi-las e geralmente tinha sucesso.
- Dinheiro e Tempo: Os pesquisadores calcularam que, para um projeto com 100.000 arquivos, sua IA poderia traduzir com sucesso cerca de 27.000 arquivos a mais do que a ferramenta antiga.
- A Analogia: Se um especialista humano consegue traduzir 150 arquivos por dia, a ferramenta antiga deixaria um monte de trabalho que levaria um humano 9 meses para terminar manualmente. A IA fez esse trabalho automaticamente em uma fração do tempo.
Resumo
O artigo prova que, ao combinar uma IA inteligente, um método de treinamento de dois passos, especialistas humanos para casos difíceis e um sistema que descobre constantemente o que precisa aprender a seguir, você pode migrar grandes e complexos sistemas de computador de uma linguagem para outra de forma muito mais rápida, barata e precisa do que nunca antes. Isso transforma um pesadelo de reescrita manual em um processo automatizado e gerenciável.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.