A Inteligência Artificial já escreve software para humanos
Inteligência artificial

A Inteligência Artificial já escreve software para humanos

Várias revoluções já aconteceram na história da tecnologia. Finalmente, a computação está próxima de ser autógena.

Já é possível que uma Inteligência Artificial escreva códigos-fonte – a base de qualquer sistema – a partir de descrições simples com uso da linguagem natural. Até poucos anos atrás, não se acreditava que isso seria possível com a complexidade apresentada recentemente. Uma revolução que causará grande impacto não só no mercado de tecnologia, mas na sociedade produtiva.

Programar exige treinamento e estudo. Não é apenas uma questão de léxica ou sintaxe, mas também uma questão de pensamento estruturado complexo e cognitivo, que pode ser muito facilitado com a IA.

Vislumbre a capacidade produtiva de times de desenvolvimento de grandes corporações ou mesmo de startups com essa tecnologia em mãos. Quantos projetos poderiam sair do papel com muito mais velocidade? Quanto do custo poderia ser reduzido e a produtividade aumentada?

Inteligência para todos

Empresas sem fins lucrativos com pesquisas valiosas sobre IA estão contribuindo bastante para aceleração deste cenário. A OpenAI é a principal delas. Trata-se de uma organização que quer popularizar a IA para os mais diversos propósitos, com kits de desenvolvimento livre, datasets (grandes bases de dados comuns na IA), artigos acadêmicos, etc. Seus patronos iniciais são gente de peso como o fundador da Tesla, Elon Musk, e Reid Hoffman, cofundador do LinkedIn. Atualmente acrescidos de Jaan Tallinn, criador do Skype e até de atletas como Ashton Eaton.

O grande feito da OpenAI, além da forma altruísta de tornar públicas suas pesquisas, é ter conseguido evoluir de uma forma exponencial o seu principal algoritmo, o GPT, para o seu terceiro nível: GPT-3.

Para quem não é familiarizado com o tema, vamos usar um dos fatores quantitativos mais relevantes quando o assunto é calcular o “poder” de uma inteligencia artificial ou, no caso, sua base de dados modelo para um determinado propósito. A quantidade de parâmetros.

Por exemplo, a sua segunda versão (GPT-2) foi usada para fazer com que um sistema seja capaz de redigir um texto de forma não supervisionada, isto é, sem auxílio humano. O texto é produzido dentro de um tema, bastando para isso poucos dados de entrada sobre a temática, algumas frases. O resultado tem capacidade de linguística e estilo próprio, capacidade de ponderar temas diversos e criar inferências complexas entre temas, fazer julgamentos e análise de sentimentos, além de ponderações diversas. O resultado é tão impressionante que a OpenAI não divulgou toda a pesquisa e acessos com medo do uso em Fakenews.

Para alcançar esse nível de proficiência, o modelo do ano passado (GPT-2) possuía 1.5 bilhões de parâmetros no seu modelo de rede neural. Já o GPT-3, que é de maio de 2020, cresceu exponecialmente para 175 bilhões de parâmetros. Um feito impressionante.

A programação do futuro

Na edição 2020 do evento Microsoft Build, realizada recentemente, o CTO da empresa, Kevim Scott, conversou com Sam Altman, CEO da OpenAI, em uma demonstração impressionante de Driven Development, ou Programação Guiada.

No exemplo apresentado, Altam, usando seu editor de código-fonte, em vez de codificar uma função na linguagem de programação Python, descreve sua intenção em linguagem natural (em inglês) e a Inteligência Artificial produz o código-fonte.

Ou seja a tecnologia de Altam escreve o código fonte para o programador.

Reprodução da transmissão da apresentação – Microsoft Build 2020. Os trechos na cor vinho são comentários com as descrições de linguagem natural das funções desejadas para a IA codificar.

Tomando a apresentação de Altam como ponto de partida, poderíamos, por exemplo escrever algo em linguagem natural como “função que retorne os primeiros 100 números primos que não terminem seu último algarismo em 3” e a IA devolver a função codificada, pronta e funcional.

No mundo real atual, um programador experiente teria que decupar essa regra de negócio em partes menores para criar o seu algoritmo com no mínimo:

  • Verificar se um número é primo;
  • Fazer um contador de números;
  • Contar a quantidade de algarismos;
  • Verificar se o último digito é o 3;
  • Acumular até 100 números que se enquadrem na regra.

Além disso e de encadear as partes de forma adequada, o programador teria que conhecer bem a linguagem de programação utilizada para tirar o melhor proveito dela nos quesitos legibilidade, performance, etc.

Ou seja, tudo isso foi traduzido em uma “frase que contém as regras de negócio”, legível até para gerentes não técnicos, sendo gerada em segundos.

Limites

Apesar de poupar muito trabalho e ainda necessitar de um programador para revisar os códigos gerados, problemas complexos ainda não poderão beber dessa fonte. Não é possível, ainda, resolver problemas complexos e abstratos com uma especificação simples.

Não é possível pedir para uma Inteligência Artificial que desenvolva um aplicativo para reconhecimento facial que seja capaz de distinguir o gênero de seu dono, cruzar os braços e deixar que ele faça tudo sozinho. Seria necessário que alguém com conhecimento de visão computacional e computação gráfica gerasse cada requisito de cada etapa dessa identificação, para que uma IA executasse as pequenas tarefas que, ao final, gerariam a completude do aplicativo.

Para escrever os códigos, a Inteligência Artificial se baseia em dados de diversos bancos, principalmente de códigos de outros programadores humanos. Estes podem conter erros ou até mesmo a IA pode cometer erros com ambiguidades semânticas ou na própria interpretação da linguagem natural.

Os avanços científicos são inegáveis, assim como o grande potencial desses algoritmos para a produção de softwares e, quem sabe, na forma de ensinar a programar. A indústria como um todo sai ganhando.

Em um futuro talvez não tão distante, um software escrevendo software para resolver seus próprios problemas não será mais ficção científica.

Referências:

Language Models are Few-Shot Learners

Microsoft Build 2020: CTO Kevin Scott on the future of technology

Nossos tópicos