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.
É 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.
? I just got access to @github Copilot and it's super amazing!!! This is going to save me so much time!! Check out the short video below! #GitHubCopilot I think I'll spend more time writing function descriptions now than the code itself 😀 pic.twitter.com/HKXJVtGffm
— abhishek (@abhi1thakur) June 30, 2021
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.
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.
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:
O modelo de processamento de linguagem da OpenAI foi eleito "Pessoa do Ano" pela Forbes
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
Implementar soluções baseadas em Inteligência Artificial em todos os departamentos ajuda qualquer equipe a obter mais com maior eficiência.
Aproveite nossas promoções de renovação
Clique aquiPara continuar navegando como visitante, vá por aqui.
Cadastre-se grátis, leia até 5 conteúdos por mês,
e receba nossa newsletter diária.
Já recebe a newsletter? Ative seu acesso