Facebook lança TransCoder: IA que converte uma linguagem de programação em outra com alta precisão

Pesquisadores do Facebook acabam de anunciar que desenvolveram com sucesso um conversor de linguagem de programação para aplicações de inteligência artificial . Esta ferramenta chamada TransCoder pode converter o código-fonte de uma linguagem de programação de alto nível para outra. Por exemplo, mudar de C++ para Java, Python e vice-versa.

Baseado no aprendizado não supervisionado, o TransCoder procura padrões anteriormente não descobertos em conjuntos de dados, que não são rotulados e com supervisão humana mínima. Segundo cálculos, o TransCoder é muito superior às ferramentas comerciais existentes.

Facebook lança TransCoder: IA que converte uma linguagem de programação em outra com alta precisão

O Facebook TransCoder pode converter o código-fonte de uma linguagem de programação para outra com alta precisão

Converter código-fonte usando linguagens antigas em linguagens de programação mais modernas e eficazes, como Java e C++, costuma custar tempo e dinheiro. Além disso, aqueles que realizam este trabalho precisam ter um conhecimento profundo de línguas antigas e novas. Por exemplo, o Commonwealth Bank da Austrália levou 5 anos e um custo de 750 milhões de dólares para converter o código-fonte de todo o seu sistema de COBOL para Java.

Em teoria, os conversores de linguagem de programação podem oferecer grande suporte ao processo acima, ajudando os programadores a não precisar reescrever o código-fonte do zero. Porém, na prática, é muito difícil construir e aperfeiçoar um conversor porque as linguagens de programação podem usar diferentes conjuntos de sintaxe e contar com plataformas API, bibliotecas de funções padrão e tipos de variáveis ​​diferentes.

No entanto, usando aprendizagem não supervisionada, o TransCoder do Facebook pode converter entre C++, Java e Python com um alto nível de precisão. O TransCoder é treinado gravando e mapeando segmentos de código semelhantes que compartilham as mesmas funções de linguagens de programação. O código-fonte usado para treinar o TransCoder é até mascarado com trechos de código aleatórios para que o TransCoder possa predizê-los com base no contexto.

Outro processo chamado remoção de ruído de codificação automática treinará o TransCoder para gerar automaticamente linhas de código válidas quando fornecido com dados de entrada incoerentes e pouco claros. Finalmente, o processo de descompilação do código-fonte permite ao TransCoder criar um sistema de dados paralelo que pode ser usado para treinamento futuro.

A natureza multilíngue do TransCoder é ainda “nutrida” por um conjunto de “âncoras” comuns entre linguagens de programação , como as palavras-chave comuns “for”, “while”, “if” e “try”., números, operadores matemáticos e Cordas inglesas. O processo de descompilação também ajudará o TransCoder a melhorar sua qualidade ao longo do tempo.

Os pesquisadores do Facebook treinaram o TransCoder no conjunto de dados públicos do GitHub, que contém 2,8 milhões de repositórios de código aberto. O objetivo deste processo de treinamento é ajudar o TransCoder a converter uma linguagem de programação em outra no nível funcional. Depois que o TransCoder foi praticado em todo o código-fonte disponível, apenas os componentes de remoção de ruído usando codificação automática e descompilação foram treinados nas funções, intercalados com componentes que trabalham em 6.000 tokens de linguagens de programação.

Para avaliar o TransCoder, os pesquisadores extraíram 852 funções paralelas de C++, Java e Python da GeeksforGeeks, plataforma online que compila problemas de programação e fornece soluções em diversas linguagens de programação. Dessa forma, eles desenvolveram um novo sistema de medição, a precisão computacional, para testar se, dada a mesma entrada, a função hipotética produz a mesma saída como referência.

O Facebook admite que mesmo a melhor versão do TransCoder ainda não produz muitas estruturas de funções precisas em relação à entrada. Porém, em geral, os resultados da conversão desta ferramenta apresentam alta precisão de cálculo. Abaixo estão as estatísticas de precisão do TransCoder que o Facebook calculou:

  • Ao traduzir de C++ para Java, TransCoder alcançou 74,8% dos resultados esperados
  • Ao traduzir de C++ para Python, TransCoder alcançou 67,2% dos resultados esperados
  • Ao traduzir de Java para C++, TransCoder alcançou 91,6% dos resultados esperados
  • Ao traduzir de Python para Java, TransCoder alcançou 56,1% dos resultados esperados
  • Ao traduzir de Python para C++, TransCoder alcançou 57,8% dos resultados esperados
  • Ao traduzir de Java para Python, TransCoder alcançou 68,7% dos resultados esperados

Segundo os pesquisadores, o TransCoder demonstrou uma compreensão clara da sintaxe específica de cada linguagem, bem como das estruturas e métodos de dados da linguagem. O TransCoder também pode adaptar com precisão as bibliotecas de cada linguagem enquanto se adapta a pequenas modificações, por exemplo, uma variável de entrada renomeada. Mesmo assim, o TransCoder ainda não identificou determinadas variáveis ​​no processo de conversão. No entanto, os pesquisadores ainda classificam o TransCoder como superior às estruturas criadas pela reescrita manual de regras com base em conhecimento especializado.

Facebook lança TransCoder: IA que converte uma linguagem de programação em outra com alta precisão

Além do Facebook, muitas grandes empresas também estão interessadas em desenvolver IA capaz de “escrever código” em nome de humanos.

“O TransCoder generaliza facilmente para qualquer linguagem de programação, sem exigir qualquer conhecimento aprofundado. Em termos de eficiência, o TransCoder é muito superior às soluções comerciais existentes” , afirmam os pesquisadores do Facebook. "Nossos resultados experimentais mostram que muitos dos bugs do TransCoder podem ser facilmente corrigidos adicionando restrições simples ao decodificador para garantir que as funções geradas estejam sintaticamente corretas. Ou podemos criar arquiteturas especializadas para este problema."

Além do Facebook, vários outros gigantes também estão interessados ​​em desenvolver sistemas de IA capazes de “escrever código” em vez de humanos. Durante a conferência Microsoft Build no início deste ano, a OpenAI demonstrou uma inteligência artificial treinada no GitHub com a capacidade de escrever software totalmente funcional com base em comentários em inglês. Há dois anos, a Rice University criou um sistema chamado Bayou que é capaz de escrever seu próprio software sintetizando “testamentos” em linhas de código compartilhadas publicamente.

“Esses sistemas de IA ajudarão a eliminar minúcias no processo de desenvolvimento de software ”, disse Justin Gottschlich, diretor do Intel Labs. "Eles podem ajudar os programadores a acelerar o desenvolvimento de software, resolvendo bugs. Além disso, ajudam a aumentar o número de empregos na indústria de tecnologia, onde pessoas sem experiência em programação também podem ingressar. Essas pessoas assumirão tarefas criativas e deixarão a parte de codificação para IA."

O que você acha dessa nova IA do Facebook? Por favor, deixe seus comentários na seção de comentários abaixo do artigo!

Leave a Comment

Como mover a pasta AppData no Windows 10

Como mover a pasta AppData no Windows 10

Aprenda como mover a pasta AppData no Windows 10 para liberar espaço. Siga nosso guia passo a passo para mover a pasta com segurança.

9 prós e contras de usar um LLM local

9 prós e contras de usar um LLM local

O maior apelo de um LLM local é a capacidade de replicar os recursos de um chatbot como o ChatGPT em seu computador sem a necessidade de uma versão hospedada na nuvem.

A força-tarefa ChatGPT será criada pela Europa

A força-tarefa ChatGPT será criada pela Europa

O órgão que une os vigilantes nacionais da privacidade da Europa disse na quinta-feira que estabeleceu uma força-tarefa dedicada ao ChatGPT

IA prevê a hora da morte humana com 78% de precisão

IA prevê a hora da morte humana com 78% de precisão

Cientistas dinamarqueses e americanos colaboraram para desenvolver um sistema de IA chamado life2vec, capaz de prever o momento da morte humana com alta precisão.

IA prevê doenças urinárias apenas pelo som da urina

IA prevê doenças urinárias apenas pelo som da urina

Um algoritmo de IA chamado Audioflow pode ouvir o som da micção para identificar com eficácia e sucesso fluxos anormais e problemas de saúde correspondentes do paciente.

Bartenders, cuidado: este robô pode preparar um coquetel em apenas 1 minuto

Bartenders, cuidado: este robô pode preparar um coquetel em apenas 1 minuto

O envelhecimento e o declínio da população do Japão deixaram o país sem um número significativo de jovens trabalhadores, especialmente no sector dos serviços.

Centenas de pessoas ficaram desiludidas quando souberam que a garota que amavam era um produto da IA

Centenas de pessoas ficaram desiludidas quando souberam que a garota que amavam era um produto da IA

Um usuário do Reddit chamado u/LegalBeagle1966 é um dos muitos usuários apaixonados por Claudia, uma garota parecida com uma estrela de cinema que costuma compartilhar selfies sedutoras, até mesmo nuas, nesta plataforma.

Mais 12 empresas potenciais juntam-se à “aliança de IA” da Microsoft.

Mais 12 empresas potenciais juntam-se à “aliança de IA” da Microsoft.

A Microsoft acaba de anunciar que mais 12 empresas de tecnologia participarão de seu programa AI for Good.

IA recria personagens de Dragon Ball em carne e osso

IA recria personagens de Dragon Ball em carne e osso

O usuário @mortecouille92 colocou o poder da ferramenta de design gráfico Midjourney para funcionar e criou versões realistas e únicas de personagens famosos de Dragon Ball como Goku, Vegeta, Bulma e o velho Kame.

7 técnicas para melhorar as respostas do ChatGPT

7 técnicas para melhorar as respostas do ChatGPT

Apenas adicionando algumas condições ou configurando alguns cenários, o ChatGPT pode dar respostas mais relevantes às suas dúvidas. Vejamos algumas maneiras de melhorar a qualidade de suas respostas do ChatGPT.