Já é possível que uma Inteligência Artificial escreva códigos-fonte – a base de qualquer sistema – a partir de descrições simples com o uso da linguagem natural. Até há poucos anos, 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 treino 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 equipas de desenvolvimento de grandes empresas ou mesmo de startups com essa tecnologia em mãos. Quantos projetos poderiam sair do papel com muito maior velocidade? Quanto do custo poderia ser reduzido e a produtividade aumentada?
Inteligência para todos
Empresas sem fins lucrativos com estudos valiosos sobre IA estão a contribuir bastante para a 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. Os 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 os seus estudos públicos, é 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 inteligência artificial ou, no caso, a 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 capacidades 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 todo o estudo e acessos com medo do uso em Fake News.
Para alcançar esse nível de proficiência, o modelo do ano passado (GPT-2) possuía 1.5 mil milhões de parâmetros no seu modelo de rede neural. Já o GPT-3, que é de maio de 2020, cresceu exponencialmente para 175 mil milhõ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, Kevin Scott, conversou com Sam Altman, CEO da OpenAI, numa demonstração impressionante de Driven Development, ou Programação Guiada.
No exemplo apresentado, Altam, usando o seu editor de código-fonte, em vez de codificar uma função na linguagem de programação Python, descreve a 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 textos 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 o 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 colocar a regra de negócio em partes menores para criar o seu algoritmo e teria de, no mínimo:
- Verificar se um número é primo;
- Fazer um contador de números;
- Contar a quantidade de algarismos;
- Verificar se o último dígito é 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 de conhecer bem a linguagem de programação utilizada para tirar o melhor proveito dela nos requisitos de legibilidade, performance, etc.
Ou seja, tudo isso foi traduzido numa “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 rever os códigos gerados, não é possível, ainda, resolver problemas complexos e abstratos com uma especificação simples.
Não é possível pedir a uma Inteligência Artificial que desenvolva uma app 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, no final, gerariam a completude do aplicativo.
Para escrever os códigos, a Inteligência Artificial baseia-se 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 a ganhar.
Num futuro talvez não tão distante, um software a escrever software para resolver os seus próprios problemas não será mais ficção científica.
Artigo original de João Rego, autor da MIT Technology Review Brasil (adaptado).