s
INTELIGÊNCIA ARTIFICIAL

Há na praça uma nova geração de IA capaz de programar

Novas ferramentas podem automatizar as partes tediosas do desenvolvimento de código e até sugerir melhorias, enquanto os desenvolvedores se concentram em tarefas complexas e criativas

Por Cristina De Luca 07/07/2021

A busca por computadores que codifiquem é quase tão antiga quanto a própria ciência da computação moderna. Há anos pesquisadores sonham com sistemas que possam automatizar as etapas necessárias para transformar a intenção de uma pessoa – isto é, o que ela deseja que um software faça, ainda que não tenha nenhum conhecimento de  programação – em um código funcional. Pois esse dia está mais próximo, para felicidade de alguns e preocupação de muitos.  No fim de junho, a Microsoft e a OpenAI alcançaram um novo marco em direção de ter à  IA geradora de código, com o lançamento do GitHub Copilot.

Baseado no OpenAI Codex, o Copilot  funciona como uma espécie de programador auxiliar, que preenche automaticamente trechos de código, faz recomendações aos programadores, sugere novas linhas de código e pode até mesmo escrever funções inteiras com base na descrição fornecida. Sugere aos programadores seguir as melhores práticas de engenharia de software e, em troca, aprende com o código criado para melhorar suas sugestões.

Mas espera aí… o Tabnine e o Kite já faziam isso. Então, o que torna o Copilot diferente? Justamente o uso do Codex, um descendente do GPT-3 que fornece uma compreensão mais profunda do contexto de codificação. O Codex é semelhante ao GPT-3, com uma diferença importante: foi treinado em grandes quantidades de dados de codificação disponíveis publicamente, em repositórios do GitHub e outros sites. Enquanto o GPT-3 gera o inglês, o OpenAI Codex gera o código.

CADASTRE-SE GRÁTIS PARA ACESSAR 5 CONTEÚDOS MENSAIS

Já recebe a newsletter? Ative seu acesso

Ao cadastrar-se você declara que está de acordo
com nossos Termos de Uso e Privacidade.

Cadastrar

É preciso ressalvar que nem a Codex nem o Copilot são perfeitos. E, por enquanto, estão acessíveis apenas para alguns desenvolvedores, que aconselham um acompanhamento maior até que se torne mainstream, mesmo que metade deles tenha acolhido as sugestões feitas pelo Copilot.

O maior problema que o sistema vem enfrentando é a existência de uma quantidade grande de código público com padrões de codificação inseguros, bugs ou referências a APIs ou linguagens desatualizadas. Ainda é necessário um grande esforço de depuração para evitar que as sugestões dadas pelo Copilot corram o risco de estar baseadas neles. A qualidade das sugestões também depende do código no qual se está trabalhando.

Os desenvolvedores do GitHub criaram mecanismos de segurança para fornecer a melhor experiência ao usuário, mas o sistema “às vezes pode produzir saídas indesejadas, incluindo saídas tendenciosas, discriminatórias, abusivas ou ofensivas”. Portanto, como acontece com todo código escrito por um humano, o código do Copilot deve ser “testado“.

“Se você souber um pouco sobre o que está pedindo ao Copilot para codificar para você e tiver experiência suficiente para limpar o código e corrigir os erros que ele apresenta, ele pode ser muito útil”,  disse Matt Shumer, co-fundador e CEO da OthersideAI.

Questões importantes sobre propriedade intelectual, licenças e violação de direitos autorais também foram levantadas em um tópico do Hacker News aberto por Nat Friedman, CEO do GitHub. Mas a própria Microsoft alerta que o programador é responsável pelo que cria com a ajuda do GitHub Copilot.

Não há dúvida de que estamos diante de uma versão inicial – e ainda em revisão – de uma nova categoria de ferramenta de IA para codificação. Segundo alguns analistas, mesmo que nunca atinja a perfeição, o Copilot ou seus sucessores podem eliminar a necessidade de ter muitos programadores, ampliando a importância daqueles encarregados de “revisar” o código gerado pela IA.

No GitHub há exemplos do incrível desempenho do Copilot, que suporta quase todas as linguagens de programação, mas foi projetado para funcionar melhor com JavaScript, Python e TypeScript. E a Microsoft já o implementou como uma extensão no Visual Studio Code.

O GitHub Copilot é, portanto, um marco importante e está predestinado a mudar o dia-a-dia de muitos programadores em todo o mundo, tornando a codificação mais rápida. Hoje, programadores gastam metade de seu tempo de trabalho não programando, mas depurando, a um custo de cerca de US $ 312 bilhões por ano. Ferramentas de programação automatizadas podem ajudar a reduzir esse desperdício de tempo. Com qual grau de confiabilidade ainda é cedo para dizer.

Há quem acredite que ainda levará algum tempo até que a IA seja capaz de criar código real digno de produção abrangendo mais do que algumas linhas. Mas já não dá para negar que ela está apta a facilitar o desenvolvimento e a implantação de código. E que pode ajudar a tirar parte do trabalho pesado de programação das mãos de especialistas humanos, deixando-os mais livres para se concentrar nas partes mais criativas de seus trabalhos.

No futuro a IA fará ainda mais

Entender o contexto típico das linguagens de programação ainda é um grande desafio para a IA, que começa a ser superaado com o uso de deep learning. O GPT-3, por exemplo, adquiriu algumas habilidades de codificação como um subproduto de seu treinamento de linguagem natural.

Modelos de linguagem como GPT-3 não entendem a finalidade e a estrutura do código-fonte. Eles não entendem o propósito dos programas. Eles não podem ter novas ideias, dividir um problema em componentes menores e projetar e construir um aplicativo da maneira que os engenheiros de software humanos fazem. Mas podem entender  o que os programadores desejam fazer egerar uma lista de fórmulas mais relevantes para o programador escolher.

No fim de maio, a própria Microsoft e a OpenAI já haviam anunciado planos de usar o GPT-3 para possibilitar a programação baseada em linguagem natural.  Como? Traduzindo a linguaagem corrente em PowerFx, uma linguagem de programação bastante simples, semelhante aos comandos do Excel que a Microsoft apresentou em março.

Startups como a SourceAI também estão usando GPT-3 para gerar código.

Já a IBM aposta no Projeto CodeNet. Pesquisadores do IBM Researche do MIT-IBM Watson AI Lab publicaram um artigo e um conjunto de dados com o objetivo de ajudar os pesquisadores a criar sistemas de deep learning capazes de criar código. Semelhante a como as redes neurais tornaram-se capazes de produzir texto gerado por computador, os pesquisadores acreditam que o software pode criar código funcional. Mas isso só será possível se os pesquisadores puderem treinar os sistemas de IA com os dados apropriados.

É aí que entra o novo conjunto de dados da IBM. O conjunto de dados contém 14 milhões de amostras de código e cerca de 500 milhões de linhas de código em 55 linguagens de programação diferentes.

Outras ferramentas de AI para codificação

Hoje, quando falamos sobre o impacto das ferramentas habilitadas para IA, não estamos falando sobre automatizar tudo cegamente e substituir os desenvolvedores por meio de IA – estamos falando mais sobre o uso sistêmico e centrado no ser humano de assistentes de IA para controlar a confiabilidade do código. O trabalho criativo e de design permanece em mãos humanas, enquanto as tarefas periféricas podem ser processadas com muito mais eficiência pela IA, pesando menos sobre os ombros dos desenvolvedores.

Entre as ferramentas mais conhecidas estão:

 

GPT-3 vai dominar o mundo da Inteligência Artificial?

Inteligência Artificial

GPT-3 vai dominar o mundo da Inteligência Artificial?

O modelo de processamento de linguagem da OpenAI foi eleito "Pessoa do Ano" pela Forbes

Por Redação The Shift
Movimento no-code está democratizando a Inteligência Artificial

Inteligência Artificial

Movimento no-code está democratizando a Inteligência Artificial

Permitir que profissionais das áreas de negócio sem conhecimentos técnicos criem seus próprios modelos, de forma rápida e eficiente, é uma tendência sem volta

Por Cristina De Luca
No-Code e o Low-Code conquistam a IA

Inteligência Artificial

No-Code e o Low-Code conquistam a IA

Implementar soluções baseadas em Inteligência Artificial em todos os departamentos ajuda qualquer equipe a obter mais com maior eficiência.

Por Redação The Shift