Força bruta acéfala – a propaganda exagerada ao GPT-3 no desenvolvimento de software
João Simões de Abreu, 24 de setembro, 2021
O Generative Pre-Trained Transformer 3, também conhecido como GPT-3, é a mais recente tecnologia de ponta de processamento de linguagem natural desenvolvida pela OpenAI. Fez manchetes em todo o mundo depois de “escrever” um artigo de opinião no diário The Guardian – que foi o resultado de um breve, mas detalhado briefing e da compilação de oito diferentes resultados (redações). A base para o GPT-3 consiste em dar-lhe um conjunto de palavras ou uma frase estruturada para gerar um texto consistente com o input, algo permitido pelos 175 mil milhões de parâmetros embutidos no programa.
Esta característica avançada avisou-nos, mais uma vez, que a inteligência artificial pode estar a perseguir trabalhos. Neste caso, trabalhadores de colarinho branco tais como jornalistas, advogados, contabilistas e mesmo programadores de software.
A propaganda exagerada à Inteligência Artificial – e que pode acontecer de errado?
Antes de prosseguir, é essencial notar que a loucura em torno do GPT-3 é outro excesso de propaganda à inteligência artificial. Gera grandes manchetes mediáticas, alimenta o discurso dos luditas contemporâneos e dispara contra as expectativas de todos. As grandes esperanças (muitas vezes impulsionadas por empresas que desenvolvem soluções na área) e os baixos resultados foram os principais fatores que desencadearam os chamados Invernos da Inteligência Artificial – períodos de financiamento reduzido e interesse na investigação da inteligência artificial.
Desde o início da última década, temos vivido na Primavera. Os investimentos empresariais globais foram de 67,85 mil milhões de USD (quase 5,5 vezes mais do que em 2015), a investigação e desenvolvimento está mais forte do que nunca e os investidores de capital de risco estão à procura de startups disruptivas centrados na inteligência artificial.
É aqui que nós – empresas que desenvolvem e/ou pesquisam sobre inteligência artificial – temos de ter cuidado: a excessiva propaganda sobre o que a inteligência artificial pode fazer acabará por conduzir a outro inverno, o que só beneficia os luditas que querem desacreditar a tecnologia.
Sejamos honestos sobre o que a tecnologia pode fazer, especialmente em campanhas de marketing. As pessoas conhecedoras acabarão por descobrir por si próprias quando “olharem por baixo do capuz”. Se não houver correspondência entre o que está a promover e o que a sua tecnologia pode realmente fazer, as campanhas de marketing irão alimentar uma descrença generalizada na inteligência artificial.
GPT-3 no desenvolvimento de software
Desde o seu lançamento, os casos de utilização do GPT-3 têm ido além da escrita de artigos. Vários artigos enumeram ferramentas criadas utilizando o software da OpenAI. Vai desde a criação de descrições de produtos e e-mails de vendas a testes A/B e extração de documentos.
Entre a parafernália, há uma habilidade que o GPT-3 parece ter adquirido durante a formação: o desenvolvimento de software. Pelo que sugerem, pode-se simplesmente escrever um briefing sobre a aparência de uma aplicação e o GPT-3 gera o código fonte.
É assim que produtos como o GitHub Copilot estão a ser apresentados. E enquadra-se na narrativa de democratização do desenvolvimento de software: pessoas fora das tecnologias de informação podem finalmente desenvolver as suas próprias aplicações sem contratar um profissional caro (escreva o que quiser e – como por magia – a solução ser-lhe-á apresentada sob a forma de código).
Contudo, o GPT-3 não é a resposta para a democratização do desenvolvimento tecnológico. Pelo contrário, está longe das expectativas e afasta-se do caminho que devemos seguir.
Prever não é suficiente
A tecnologia da OpenAI é boa a PREVER texto. Utiliza uma abordagem probabilística para prever o que faz mais sentido vir a seguir, dado um contexto particular. A produção resulta do que está disponível publicamente na Internet – no caso do GitHub Copilot, utiliza qualquer código disponível no GitHub.
Uma abordagem probabilística não é a forma de avançar para o futuro do desenvolvimento de software. O que quer que seja probabilístico tem hipótese de falhar. Embora o GPT-3 possa utilizar uma enorme base de conhecimento, como o GitHub, isso não significa que o código esteja correto. Não há nenhum processo de seleção no GPT-3 relativamente ao que está inteiramente certo ou errado. E se cada pedaço do código fonte recuperado da Internet for propenso a erros, significa que quanto maior e mais complexa for a ferramenta gerada, maior é a probabilidade de falhar.
Em software, o que não é 100% correto está 100% errado.
Ciberinsegurança
Existem também preocupações de cibersegurança. Os académicos da Tandon School of Engineering da Universidade de Nova Iorque puseram à prova a segurança da ferramenta de desenvolvimento de software. No seu trabalho publicado em agosto de 2021, descobriram que cerca de 40% das vezes, “o código gerado pelo assistente de programação é, na melhor das hipóteses, um projeto com diversos bugs e, na pior das hipóteses, potencialmente vulnerável a ataques”. Além disso, o potencial assistente de codificação tende a gerar código incorreto, pode expor segredos e tem problemas na avaliação de licenças de software.
Lookup-table mascarada de Inteligência Artificial
Além disso, devido ao número massivo de parâmetros com que está equipado, o GPT-3 nem sequer executa backpropagation – isto é, não pega na diferença entre o que a rede calculou e o que era esperado com o treino para encaminhar numa direção mais correta todos os neurónios que contribuíram para esse sinal errado.
Resumindo, o GPT-3 é semelhante ao programador que está familiarizado com a sintaxe de uma linguagem de programação, mas que não conhece qualquer tipo de abstração por detrás dela e que se refere constantemente a um dicionário maciço de fragmentos de código.
Força Bruta Centralizada
O GPT-3 é uma força bruta centralizada em vez de uma unidade inteligente descentralizada. Segundo a MIT Technology Review, “o seu enorme consumo de energia é uma má notícia para o clima: investigadores da Universidade de Copenhaga, Dinamarca, estimam que, caso o GPT-3 tivesse sido treinado num centro de dados totalmente alimentado por combustíveis fósseis, a sua formação teria aproximadamente a mesma pegada de carbono que a viagem de um carro de ida e volta até à lua”.
No desenvolvimento de software, devemos ser capazes de resolver imprecisões e contradições. Se uma máquina de desenvolvimento de aplicações o fizesse, precisaria de um extenso conjunto de dados imparcial, o que não é o caso da Internet.
Programar à velocidade Humana
A metodologia do Copilot não procura qualquer nova forma de trabalho. A inteligência artificial tem um enorme potencial para aumentar a produtividade do desenvolvimento de software, mas este novo produto funciona da mesma forma: colocaram a inteligência artificial a trabalhar à velocidade de um programador em vez de um programador a trabalhar à velocidade da inteligência artificial.
Temos de repensar o processo de desenvolvimento de tecnologia através da inteligência artificial. Não devemos utilizá-la para codificar como um programador manual. Temos de repensar o processo para atingirmos novos patamares de produtividade.
Construir um castelo de areia
Criar uma solução através do GPT-3, especialmente para aqueles que nunca desenvolveram software antes, pode assemelhar-se a construir um castelo – infelizmente, neste caso, é um castelo de areia. Mesmo a próxima geração de Generative Pre-Trained Transformer, com 500 vezes mais parâmetros do que o GPT-3, será propensa aos mesmos erros. O problema não é a força, mas a falta de inteligência. Precisamos de mais modelos e menos experimentação e probabilidades e mais regras em vez de aleatoriedade.
Com tudo o que foi apontado acima, ainda pode surgir a pergunta: “e se construirmos uma aplicação com GPT-3 e colocar uma equipa de quality assurance para trabalhar o código?”.
Este não é o caminho que queremos. Os programadores e os profissionais de TI não devem perder o seu tempo a retificar o código gerado por máquinas para encontrar bugs e vulnerabilidades. Se queremos perseguir um mundo onde utilizamos inteligência artificial para nos ajudar a construir aplicações, a “máquina” deve ser capaz de produzir software livre de erros. O futuro do desenvolvimento de software é uma abordagem com pouco ou nenhum código manual que é altamente improvável de produzir erros e fácil de alterar.