A engenharia de software muda o tempo todo. Primeiro, a internet chegou e mudou tudo. Aí vieram os celulares e mudaram tudo. Agora a inteligência artificial está mudando tudo, e eu ainda acho que vou ver uma ou duas mudanças dessas até eu me aposentar.

Foi o que eu respondi pra VP da minha área outro dia. Ela postou uma mensagem pedindo feedback sobre um artigo que sugere que o futuro da programação para humanos será apenas integrar os programas que a IA vai escrever.

Acontece que essa foi a versão corporativa da minha resposta, o que eu queria mesmo dizer é algo como “ah ma vá pra puta que pariu com essas palhaçada de IA de novo”1. Portanto, vamos de textão à moda antiga pra explicar o que eu acho sobre essa história toda de “inteligência” artificial.

Não é inteligência - é matemática

Quando o ChatGPT estourou, eu ainda estava na ideia de que era apenas hype e fiquei esperando passar. Como bem sabemos, a onda não passou. Aí dei um longo suspiro e, como bom engenheiro, resolvi abrir o capô dessa bagaça pra entender como ela funciona. E as fichas, então, caíram igual em máquina de cassino.

No começo eu não sabia os detalhes da arquitetura dos modelos, então me orientava pelas opiniões dos especialistas da área que conheço e acompanho - e entre eles circulava uma piada curiosa de que IA era apenas um “autocompletar turbinado”. Alguns meses depois eu li (e ainda leio) uma caralhada de coisa. Até assisti a (excelente - e complicada) série de duas horas de vídeos sobre redes neurais do 3Blue1Brown. Atualmente, a minha opinião sobre IA, baseada em conhecimento real sobre a arquitetura dos modelos e como eles funcionam, é de que IA é… um autocompletar turbinado.

Pra não me deixar mentir sozinho: esses dias eu vi Terence Tao, um dos maiores matemáticos da atualidade - mas um dos maiores MESMO, maior tipo “começar faculdade com 9 anos de idade e tirar seu PHD aos 21 anos” - fazer o mesmo comentário do autocompletar turbinado. Segundo ele, os modelos de linguagem de grande escala (LLMs, em inglês) são “geradores de palpites”, dando respostas que parecem muito convincentes mas que, no fundo, podem estar profundamente erradas. Eles não “pensam” pra dar uma resposta, eles simplesmente calculam as palavras que tem a melhor chance de serem a resposta certa.

Tipo assim, imagine que eu viro pra você e falo:

As cores da bandeira do Brasil são verde e…

Na sua cabeça você imagina que a palavra seguinte é “amarelo”, certo? Os LLMs fazem a mesma coisa, mas usando matemática: eles olham pra todo o material no qual eles foram treinados e fazem a conta de quais palavras tem a maior probabilidade de serem as que dão sequência à frase. Mas como é que o LLM chega em “amarelo”, e não “azul” - que, tecnicamente, não está de todo errado? Como o LLM sabe que a próxima palavra tem que ser uma cor, e não um adjetivo ou um verbo? Basta usar mais matemática: o modelo analisa palavra por palavra, individualmente, e graças à todo o material no qual o LLM foi treinado, cada palavra tem milhares de propriedades, cada uma com um “peso” diferente. Simplificando, seria como você pegar a palavra “bandeira” e dar a ela as seguintes propriedades:

  • Substantivo
  • Gênero feminino
  • Pode representar países
  • Pode representar times de futebol
  • Retangular
  • Feita de pano
  • Pode conter palavras
  • Pode conter cores
  • É flexível
  • etc…

Conforme o modelo vai passando pela frase, ele vai analisando as outras palavras e calibrando os pesos de acordo com cada uma. Quando o modelo analisa a palavra “cores”, o peso de “pode conter cores” da palavra “bandeira” aumenta. Quando o modelo analisa a palavra “Brasil”, o peso de “pode representar países” aumenta, e assim vai. Essa foi - de novo, muuuito simplificadamente - a grande sacada dos engenheiros do Google que inventaram essa nova arquitetura.

Curiosamente, o sumário do famoso artigo em que eles publicam essa descoberta menciona os ótimos resultados… em tarefas de tradução de texto, e termina dizendo que o modelo “generaliza bem para outras tarefas”. E, meu amigo, a generalização foi geral.

Surfando num tsunami de hype

Já faz um tempo que os investidores do Vale do Silício tentam emplacar o próximo hit tecnológico do momento. Lembra da “internet das coisas”, onde todos os seus dispositivos iam conversar entre si e sua casa seria toda automatizada? E da realidade virtual, o tal metaverso do Zuckerberg? E o bitcoin? Bem, esse e as outras criptomoedas ainda estão por aí, mas longe de serem a base da “nova economia mundial” como foi prometido.

Nessa época eram apenas os grandes da tecnologia - Google, Facebook, etc. - brigando entre si. Mas ali no cantinho tinha uma startup de inteligência artificial chamada OpenAI que, subitamente, se viu com um “gerador de palpites” bastante convincente na mão, e achou que estava em condições de brigar. Mas não ia ter muito impacto se ele chegasse no mercado dizendo “escuta, a gente tem uma ferramenta que consegue completar texto de forma bastante convincente, dá até a impressão de inteligência, mas estamos experimentando com a arquitetura ainda, mas é promissora”. Então eles foram um pouquinho mais bombásticos.

Botaram o ChatGPT no ar e falaram: “a inteligência artificial chegou - e a chegada da inteligência artificial geral (ou seja, com aprendizado e cognição igual a dos seres humanos) é iminente”.

O mundo imediatamente foi à loucura. Sam Altman, o CEO da OpenAI, em toda entrevista que dava falava de uma nova era na história da humanidade, que ia construir um bunker devido ao risco de extinção da humanidade, e outros comentários bombásticos. E o ChatGPT estava aberto ao público, então qualquer um podia ir lá, digitar qualquer coisa, e receber de volta uma resposta que aparentava inteligência.

Estava formado o cenário perfeito para todos os interessados caírem na febre louca da IA:

  • Investidores: imagine a redução de custos se você tiver computadores trabalhando pra você 24 horas por dia!
  • Gigantes de tecnologia: imagine a quantidade de software e servidor na nuvem pra rodar isso tudo!
  • Gigantes de mídia social: imagina a quantidade de conteúdo gerado automaticamente!
  • Fabricantes de chips: imagine o tanto de processador que vai ser necessário pra tudo isso!
  • Imprensa: imagine quanto textão e quanta coluna de opinião sobre o fim da humanidade daria pra escrever!
  • Gente que trabalha com emails e relatórios inúteis: eu posso botar IA pra fazer meus emails e relatórios inúteis!
  • Estudantes: eu posso botar IA pra fazer meus trabalhos de escola!
  • Professores: eu posso botar IA pra corrigir os trabalhos de escola!
  • Etc…

E foi assim que o furacão de hype nasceu. Se você se informar pelo que está na mídia, o mundo está à beira do colapso, com a iminente chegada da singularidade, onde computadores desenvolverão superinteligência. No mundo corporativo, começou a corrida maluca: os CEOs de empresa correm pra incorporar IA nos seus produtos e serviços porque todos os seus concorrentes estão… pensando que os outros concorrentes estão incorporando IA nos seus produtos e serviços. É por isso que tudo que é aplicativo agora tem um assistente de IA. Outro dia eu fui fazer exame de sangue e a porra do site do laboratório tinha um assistente de IA.

Com um olho eu via o furacão de hype passando e, com o outro, eu testava as ferramentas e ficava cada vez mais perplexo: o que eu via estava muuuuito longe de superinteligência. Uma vez eu pedi o Gemini (a IA do Google) pra listar os nomes dos personagens do desenho do Bluey. Ele começou bem, mas quando chegou nos figurantes tipo “cão policial”, “carpinteiro”, ele esqueceu que estava falando de desenho animado e alucinou uma lista gigantesca de profissões. No trabalho, então, os assistentes de programação são de nível estagiário pra baixo.

A ficha só caiu mesmo quando eu entendi como os modelos funcionavam… e também depois que entendi o tamanho da gambiarra que as empresas andam usando pra imitar inteligência.

Autocompleta mais que tá pouco

A coisa que vocês precisam entender é que, desde a primeira versão do ChatGPT até a mais recente, por trás de todas as ferramentas de IA de todas as empresas, e por trás de todas as funcionalidades mais fantásticas e revolucionárias, a mecânica por trás é a mesma do “complete a frase” que eu expliquei ali em cima. E o autocompletar é 100% matemático: não há inteligência nenhuma ali.

“Ahhh mas o modelo tal consegue escrever código e buscar coisa na internet automaticamente!”. “Eiii mas tem um modelo que agora tem raciocínio!”. Sabe como eles implementaram essas coisas? É assim: o que você digita no ChatGPT é enviado para o LLM juntamente com um tanto de texto com outros pedidos, pedindo pelamordedeus pro modelo não dar a primeira resposta que vier, ou dando exemplos de como resolver questões simples, etc. É o chamado system prompt: você não vê, mas ele vai como prefácio da sua pergunta pra dentro da IA2. Um exemplo de um system prompt vazado do Claude, um concorrente do ChatGPT, que eu vi outro dia, inclui coisas como:

“Se a pergunta para o Claude for sobre uma pessoa, objeto, ou tópico muito obscuro - o tipo de informação que tipicamente não existe em mais do que um ou dois lugares na internet, ou se se tratar de um evento, lançamento, ou resultado muito recente, Claude deve considerar usar a ferramenta de busca online. Se o Claude não souber usar a ferramenta de busca, ou não for capaz de achar resultados relevantes e estiver tentando responder uma pergunta obscura, Claude deve encerrar a resposta lembrando o usuário que, apesar de tentar ser correto, ele pode alucinar coisas em respostas à perguntas desse tipo.”

O “raciocínio” é um processo similar: ele pega a resposta da pergunta do usuário, reinsere a resposta internamente no modelo e, literalmente, completa com algo tipo “mas peraí, vamos pensar melhor se esta resposta está correta”, ou outra variação disso que faça o modelo gerar alternativas, aí depois reinsere as alternativas perguntando qual faz mais sentido, e por aí vai.

Lembra do meu exemplo da bandeira do Brasil? Você poderia argumentar que o modelo “sabe” do que está falando quando analisa cada propriedade das palavras do prompt. Mas faltou explicar uma coisa importante sobre como isso acontece na prática. No meu exemplo eu usei propriedades do tipo “substantivo”, “representa países” e tal. Nos modelos de IA atuais:

  • existem milhões de propriedades para cada palavra.
  • essas propriedades não são predeterminadas.
  • ninguém sabe quais são essas propriedades, pois elas vieram do processo de treinamento do modelo, e
  • o modelo se treinou sozinho.

Isso se chama “aprendizagem não supervisionada”. Essencialmente, você taca bilhões de linhas de texto no computador e deixa ele calcular sozinho as relações entre as palavras. Não tem ninguém dizendo que “azul” é cor ou “bandeira” é retangular. Mas conforme o modelo lê os textos ele começa a ver coisas como, por exemplo, “pai e mãe”, “rei e rainha”, “homem e mulher” se repetindo em vários contextos, e aí ele infere que essas palavras são relacionadas de alguma forma. Nós, humanos, sabemos que se trata de “gênero” - já o modelo codifica essa informação num dos milhões de números de cada palavra, e segue o barco.

Essencialmente, é esse emaranhado de relações numéricas entre as palavras que a IA usa pra escrever textos que parecem perfeitamente coerentes - mas perceba que não houve raciocínio ou cognição pra geração desses textos. É daí que vem as alucinações. Lembra do meu exemplo da pergunta sobre o Bluey que terminou alucinando profissões? Agora ele faz sentido: quando o modelo chegou em nomes que pareciam profissões, essa dimensão numérica da relação entre as palavras passou a ser a dimensão dominante, e o autocompletar foi embora, despercebido de que não estava mais falando de desenho de criança.

De novo: a arquitetura dos modelos de IA é toda baseada nessas cadeias de texto formadas via probabilidade matemática. Se você acha que inteligência é saber quais palavras você vai botar numa frase, aí o ChatGPT pode ser considerado inteligente. Mas, de acordo com a Wikipedia, inteligência é “aprender, formar conceitos, entender, aplicar lógica e razão, reconhecer padrões, planejar, inovar, resolver problemas, tomar decisões, reter informação… e usar linguagem pra se comunicar”.

O futuro (é negro)

Eu não sou de fazer futurologia porque 99% das vezes os futurólogos estão errados. O que eu acho que vai acontecer no futuro não é nada bom, então vou falar disso aqui porque aí vira futurologia e, se dermos sorte, estarei errado…

No mundo do desenvolvimento de software, infelizmente, o IA veio pra ficar. Ficar e estragar tudo. Um segredo não muito bem guardado da indústria do software é que, por trás dos programas bonitinhos que você usa todo dia, é tudo feito de palito de picolé colado com fita isolante. É tão sério que “gambiarra” aparentemente virou um termo técnico entre os programadores da Holanda, em função da quantidade de brasileiros que trabalham por lá. Um dos motivos é que a maior parte dos programadores não sabe programar. Eu custei a entender isso até começar a administrar times de desenvolvimento e, especialmente, a entrevistar gente. Tem nêgo com 20 anos de carreira copiando e colando código da internet sem a menor noção do que está fazendo - porque às vezes funciona, e porque os chefes dessas pessoas entendem ainda menos de desenvolvimento de software, então eles não vêem problema no cabra levando uma semana pra fazer trabalho de um dia. Aí chega o IA e, subitamente, os programadores de código porco ficam 100% mais produtivos porque tem um amiguinho digital - a IA - pra gerar o código porco pra eles. A qualidade ruim do software produzido atualmente vai, naturalmente, ficar incrivelmente pior. Espere muitos bugs e muita lentidão.

Do lado dos executivos, eles vão continuar alardeando que IA aumentou a produtividade - afinal, os programadores horríveis deles agora são horríveis 10x mais rápido. Até que, em alguns anos, as grandes empresas que fornecem os grandes modelos de IA (OpenAI, Anthropic, etc) vão começar a falir, consolidar, reorganizar o mercado e, inevitavelmente… aumentar os preços. Aí os executivos vão começar a se preocupar com o custo das licenças pros modelos de IA e vir com medidas de redução de código gerado por IA. E é aí que profissionais como eu vão subitamente ficar disputados e eu poderei falar o proverbial “num falei??”.

Para o “internauta” comum, também vai ser ruim. A teoria da internet morta, infelizmente, vai se realizar. A enxurrada de imagens e vídeos feitos com IA que você vê hoje no Facebook e Instagram vai virar regra. Nada mais que você vir na internet vai poder ser considerado verdade. Os golpes de WhatsApp agora serão potencializados por IA - o troço mal começou e cada dia eu vejo um novo pipocando por aí. As grandes redes tipo Instagram e Facebook vão ficar ainda mais predatórias, e seus usuários ainda mais alienados. E todos esses usuários, como bem sabemos, tem título de eleitor…


  1. Esta reação, uh, “visceral” é inspirada num excelente texto sobre IA que eu li há algum tempo intitulado “eu vou quebrar a porra do seu pescoço se você mencionar IA de novo” (em inglês) 

  2. Outro exemplo: o system prompt do Grok, o modelo da rede sozial nazist… digo, ex-Twitter. Esse é real, já que eles publicaram o código-fonte por questões de “transparência”.