Bolt42

Participe dos nossos boletins diários e semanais para obter as últimas atualizações e conteúdos exclusivos sobre cobertura de IA líder na indústria. Saiba mais


A programação com a ajuda de modelos de IA continua a ganhar popularidade, mas muitos destacaram problemas que surgem quando os desenvolvedores dependem de assistentes de programação.

No entanto, pesquisadores do MIT, da Universidade McGill, da ETH Zurich, da Universidade Johns Hopkins, de Yale e do Instituto de Inteligência Artificial Mila-Quebec desenvolveram um novo método para garantir que os códigos gerados por IA sejam mais precisos e úteis. Este método abrange várias linguagens de programação e instrui o modelo de linguagem grande (LLM) a aderir às regras de cada linguagem.

O grupo descobriu que, ao adaptar novos métodos de amostragem, os modelos de IA podem ser guiados a seguir as regras das linguagens de programação e até mesmo melhorar o desempenho de pequenos modelos de linguagem (SLMs), que são normalmente usados para geração de código, superando o de grandes modelos de linguagem.

No artigo, os pesquisadores usaram Monte Carlo Sequencial (SMC) para “lidar com uma série de problemas desafiadores de análise semântica, orientando a geração com análise estática e dinâmica incremental.” Monte Carlo Sequencial refere-se a uma família de algoritmos que ajudam a encontrar soluções para problemas de filtragem.

João Loula, co-autor do artigo, disse em uma entrevista para o jornal do campus do MIT que o método “pode melhorar assistentes de programação, ferramentas de análise de dados alimentadas por IA e descoberta científica.” Ele também pode reduzir custos computacionais e ser mais eficiente do que métodos de reclassificação.

Os pesquisadores observaram que o código gerado por IA pode ser poderoso, mas muitas vezes leva a códigos que desconsideram as regras semânticas das linguagens de programação. Outros métodos para prevenir isso podem distorcer modelos ou são muito demorados.

O método deles faz com que o LLM adira às regras das linguagens de programação descartando saídas de código que podem não funcionar no início do processo e “alocando esforços em saídas que são mais prováveis de serem válidas e precisas.”

Adaptando o SMC à geração de código

Os pesquisadores desenvolveram uma arquitetura que traz SMC para a geração de código “sob diversas restrições sintáticas e semânticas.”

“Ao contrário de muitas estruturas anteriores para decodificação restrita, nosso algoritmo pode integrar restrições que não podem ser avaliadas incrementalmente sobre todo o vocabulário de tokens, assim como restrições que só podem ser avaliadas em intervalos irregulares durante a geração,” afirmaram os pesquisadores no artigo.

As características chave de adaptação da amostragem SMC para geração de modelos incluem a distribuição de propostas onde a amostragem token a token é guiada por restrições econômicas, pesos importantes que corrigem viéses e a reamostragem que realoca esforço computacional em direção a gerações parciais.

Os pesquisadores observaram que, embora o SMC possa guiar modelos em direção a códigos mais corretos e úteis, eles reconheceram que o método pode ter alguns problemas.

“Embora a amostragem de importância aborde várias falhas da decodificação local, ela também sofre de uma grande fraqueza: correções de peso e potenciais caros não são integrados até que uma sequência completa tenha sido gerada a partir da proposta. Isso é verdade, mesmo que informações críticas sobre se uma sequência pode satisfazer uma restrição estejam disponíveis muito antes e possam ser usadas para evitar grandes quantidades de computação desnecessária,” afirmaram.

Teste de modelo

Para provar sua teoria, Loula e sua equipe realizaram experimentos para ver se usar o SMC para gerar códigos mais precisos realmente funciona.

Esses experimentos foram:

  • Geração de código Python em tarefas de Ciência de Dados, que usou Llama 3 70B para codificar linha por linha e testar versões iniciais
  • Geração de Texto para SQL com Llama 3 8B – Instruct
  • Inferência de Objetivo em Tarefas de Planejamento para prever a condição do objetivo de um agente, também usando Llama 3 8B
  • Síntese Molecular para descoberta de medicamentos

Descobriram que o uso do SMC melhorou pequenos modelos de linguagem, aumentou a precisão e robustez e superou modelos maiores.

Por que isso é importante

Modelos de IA fizeram com que engenheiros e outros programadores trabalhassem de maneira mais rápida e eficiente. Também deu origem a um novo tipo de engenheiro de software: o programador vibes. Mas surgiram preocupações sobre a qualidade do código, a falta de suporte para codificações mais complexas e os custos computacionais para a geração de códigos simples.

Novos métodos, como a adaptação do SMC, podem tornar a programação alimentada por IA mais útil e permitir que os engenheiros confiem mais no código gerado pelos modelos.

Outras empresas exploraram maneiras de melhorar o código gerado por IA. Together AI e Agentica lançaram o DeepCoder-14B, que utiliza menos parâmetros. O Google também melhorou sua funcionalidade de Assistência de Código para ajudar a melhorar a qualidade do código.





    18 − 2 =




    Bolt42