Vamos voltar aos anos 90 e imaginar que você é um programador apaixonado por xadrez.
Nas horas vagas, você compete em torneios locais, estuda teoria do jogo, e até tem um rating respeitável na federação internacional.
Mas seu sonho é criar um programa de computador que jogue xadrez melhor que qualquer ser humano.
Como programador e enxadrista, você tem uma vantagem única: entende tanto de código quanto de estratégia. Então você começa transformando todo seu conhecimento em algoritmos. Cada tática que você domina, cada padrão que você reconhece, cada princípio estratégico que aprendeu - tudo isso vira código.
Meses se transformam em anos enquanto você refina esse programa. E ele até funciona bem - consegue derrotar a maioria dos jogadores amadores e até alguns mestres.
Mas aí vem a parte interessante da história: anos depois, surge um programa completamente diferente.
Ele não tem nenhuma daquelas regras sofisticadas que você programou. Ele só conhece as regras básicas do xadrez. A diferença é que ele tem poder computacional suficiente para explorar bilhões de possibilidades e aprender sozinho.
E ele não só joga melhor que seu programa, mas ele joga de formas que nem você, com toda sua experiência de programação e xadrez, tinha imaginado possível.
E sabe o que é mais interessante? Essa história não é tão fictícia assim.
Em 1997, quando o Deep Blue derrotou Kasparov, ele era parecido com o programa da nossa história: uma combinação de força bruta computacional com centenas de regras programadas manualmente por mestres do xadrez.
Mas, em 2017, a DeepMind lançou o AlphaZero, e ele mudou completamente o jogo.
Ele domina não apenas o xadrez, mas também Go e Shogi, três dos jogos mais complexos que existem.
E o mais relevante para este episódio, é que ele aprendeu tudo sozinho, sem nenhuma daquelas regras que programadores e mestres do xadrez passaram décadas desenvolvendo.
Mas por que estou contando essa história? O que ela tem a ver com o machine learning que fazemos hoje?
Este é um exemplo da “Lição Amarga”, ou “The Bitter Lesson” em inglês.
Foi Rich Sutton, uma das maiores referências em aprendizado por reforço, quem deu esse nome a um padrão fascinante que ele observou no desenvolvimento da inteligência artificial.
Mas o que é esta Lição Amarga?
A lição amarga pode ser resumida assim: no longo prazo, força computacional bruta com algoritmos simples vence qualquer sistema baseado em expertise humana
E existem dois métodos principais que se beneficiam muito bem desse poder computacional: busca e aprendizado.
Busca é exatamente o que parece: testar sistematicamente várias possibilidades até encontrar a melhor. É como quando você está procurando suas chaves em casa - quanto mais tempo e energia você tiver para procurar, mais lugares você consegue checar.
Já o aprendizado é a capacidade de melhorar com a experiência. Quanto mais dados e poder computacional você tiver, mais o sistema pode treinar e refinar seus modelos.
O que torna esses dois métodos tão especiais é que eles continuam melhorando por um bom tempo conforme você aumenta o poder computacional.
E aqui vem a parte “amarga” da lição: por décadas, pesquisadores de IA resistiram a essa ideia. Eles queriam criar sistemas que pensassem “como humanos”, com regras sofisticadas e conhecimento especializado programado manualmente.
Isso até funciona no curto prazo. É satisfatório para o pesquisador, porque ele está colocando sua expertise no sistema. Mas no longo prazo, essa abordagem sempre atinge um platô.
Aliás, vejo isso na prática nas competições do Kaggle. Tanto eu quanto outros competidores frequentemente alugamos ou compramos máquinas mais potentes só para poder testar mais ideias rapidamente.
É interessante como algumas das minhas melhores colocações vieram não necessariamente de ideias mais sofisticadas, mas simplesmente por explorar mais possibilidades que outros competidores.
É um exemplo muito concreto da lição amarga: às vezes, a diferença entre uma solução boa e uma excelente não está na complexidade da abordagem, mas na nossa capacidade de fazer uma busca mais extensiva no espaço de possibilidades.
Otimização Bayesiana
Para ver como essa lição amarga se aplica no dia a dia de quem trabalha com machine learning, vamos pensar numa situação simples: o ajuste de hiperparâmetros.
Quando você treina uma rede neural, por exemplo, precisa tomar dezenas de decisões:
- Quantas camadas?
- Quantos neurônios em cada uma?
- Qual taxa de aprendizado usar?
- Como regularizar o modelo?
No começo da minha carreira, eu fazia como todo mundo: tentativa e erro manual. Testava algumas combinações, via o que funcionava, usava minha intuição… Basicamente, tentava aplicar meu conhecimento técnico para fazer escolhas inteligentes.
Até que conheci a otimização bayesiana.
É incrível como ela exemplifica perfeitamente a lição amarga. Em vez de depender do conhecimento humano, ela combina busca e aprendizado de uma forma muito elegante.
Funciona assim: primeiro, ela testa algumas combinações aleatórias de hiperparâmetros. Com esses resultados iniciais, treina um modelo que aprende a prever o desempenho de qualquer combinação - como se criasse um “mapa” do espaço de possibilidades.
Usando esse mapa, ela consegue fazer uma busca inteligente, focando nas regiões mais promissoras. A cada nova tentativa, o mapa fica mais preciso, e a busca mais eficiente.
Quanto mais poder computacional você tem, melhor ela fica. Você pode testar mais combinações, criar mapas mais precisos, fazer buscas mais extensas.
O resultado é uma abordagem automatizada que consistentemente supera as escolhas manuais feitas por especialistas.
Prompt Optimization
E não é só em hiperparâmetros que vemos esse padrão. Vamos pegar o exemplo mais quente do momento: a criação de prompts para grandes modelos de linguagem.
Todo mundo que já trabalhou com GPT ou outros LLMs sabe como é frustrante tentar criar o prompt perfeito. Você tenta uma versão, não funciona. Ajusta uma palavra aqui, outra ali. Adiciona mais contexto. Remove parte das instruções. É um processo que parece mais arte do que ciência.
Mas adivinha? A lição amarga está se repetindo aqui também.
Já existem ferramentas que automatizam a otimização de prompts. Você fornece alguns exemplos do que quer - algumas entradas e suas respectivas saídas ideais, ou uma descrição da tarefa que você quer resolver - e deixa o computador fazer o trabalho pesado.
Podemos pensar nas palavras do prompt como se fossem hiperparâmetros. O sistema testa diferentes versões, aprende quais padrões funcionam melhor, e vai refinando automaticamente.
E o mais interessante é que ele frequentemente descobre prompts que funcionam melhor que aqueles cuidadosamente elaborados por especialistas.
Às vezes são prompts que parecem contra-intuitivos para nós, mas que por algum motivo fazem mais sentido para o modelo.
Feature Engineering
Como exemplo final, vamos olhar para algo que pode se beneficiar mais dessa lição amarga: a engenharia de features.
Hoje, quando trabalhamos com dados tabulares, passamos horas criando features manualmente. Calculamos médias, desvios, agregações… tudo baseado na nossa intuição e conhecimento do negócio.
Mas e se dermos um passo atrás e observarmos o padrão?
A maioria das features que criamos segue uma estrutura similar: por exemplo, pegamos uma variável categórica, agrupamos os dados por ela, e aplicamos alguma função estatística em uma variável numérica.
Uma vez que reconhecemos esse padrão, podemos aplicar a mesma lição amarga aqui: em vez de confiar na nossa intuição para criar algumas dezenas de features, nós podemos automatizar esse processo e explorar sistematicamente diversas combinações.
É mais um exemplo de como podemos transformar conhecimento especializado em um processo sistemático de busca e aprendizado.
E assim como nos exemplos anteriores, provavelmente descobriremos padrões nos dados que nunca teríamos imaginado olhando manualmente.
Limitações e Contrapontos
Mas antes de sairmos por aí aplicando a lição amarga em tudo, precisamos reconhecer algumas limitações importantes.
Primeiro, todos os exemplos que discutimos até agora - xadrez, hiperparâmetros, prompts, features - são problemas bem estruturados. Têm objetivos claros, feedback imediato, e métricas bem definidas.
Na vida real - e qualquer pessoa que já trabalhou com dados reais sabe disso - os problemas raramente vêm tão bem organizados.
Segundo, mesmo em problemas bem estruturados, pode haver limites para quanto podemos melhorar apenas aumentando o poder computacional.
Na área de LLMs, por exemplo, algumas empresas já estão encontrando sinais de que simplesmente aumentar o tamanho dos modelos (com mais parâmetros) ou a quantidade de dados de treinamento não está gerando os mesmos ganhos de performance que antes.
O foco está mudando: em vez de modelos gigantes, as empresas querem fazer os modelos atuais pensarem melhor na hora de responder, investindo mais recursos no momento da resposta
Isso sugere que talvez precisemos aplicar a lição amarga de uma forma diferente: não apenas para escalar o que já funciona, mas para descobrir novas arquiteturas e abordagens fundamentalmente diferentes.
E isso nos leva ao terceiro e talvez mais profundo contraponto: será que essa busca obsessiva por otimização não está nos limitando?
No livro ‘Why Greatness Cannot Be Planned’, que eu li recentemente e recomendo, os autores, oferecem um argumento interessante: às vezes, para alcançar objetivos realmente ambiciosos, precisamos nos permitir explorar caminhos que parecem nos afastar do objetivo.
Eles usam o exemplo de labirintos em que, para encontrar a saída, o algoritmo precisa primeiro se afastar do objetivo - algo que ele nunca faria se estivesse otimizando puramente pela distância.
Eu mesmo suspeito que a obsessão em otimizar modelos para raciocínio matemático, através da resolução de problemas de olimpíadas de matemática, pode estar nos afastando de modelos que exibam um raciocínio mais humano, aplicável a outros problemas complexos como na área do Direito ou da Medicina.
Com todos esses pontos em mente, chegamos a uma conclusão importante:
A lição amarga é uma ferramenta poderosa no nosso arsenal - mas é exatamente isso: uma ferramenta. Como toda ferramenta, precisamos saber quando usá-la e, mais importante ainda, quando procurar outras abordagens.
O futuro da IA provavelmente não será decidido apenas por quem tem mais poder computacional, mas por quem souber combinar esse poder com novas ideias e perspectivas diferentes.
E talvez essa seja a verdadeira lição: às vezes, para avançar, precisamos saber quando otimizar… e quando explorar.
Seja o primeiro a saber das novidades em Machine Learning. Me siga no LinkedIn.