Em defesa de não usar IA — usa ML
Toda a app entregue em 2026 colou um chat a qualquer coisa. Aqui fica a defesa da alternativa aborrecida: sugestões ranqueadas por um modelo pequeno, baratas para correr a cada load, explicáveis o suficiente para defender numa clínica.
Toda a reunião de produto em 2026 acaba na mesma frase: "e depois o GPT podia sugerir…". Já estivemos do outro lado dessa frase vezes suficientes para escrever o que fazemos em vez disso — e porque, para o tipo de produtos que construímos, ganha quase sempre.
O imposto LLM que ninguém soma
Uma chamada a um LLM não é uma feature. É um custo recorrente, um orçamento de latência, uma exposição regulatória e um problema de avaliação — tudo agrupado numa única API key. Num ecrã de bem-estar com 30 000 utilizadores activos por dia, até um modelo pequeno se torna a linha do P&L que o teu CFO aprende a soletrar. E isto antes da infraestrutura de streaming, do prompt caching, da monitorização de jailbreaks e dos embaraços "como modelo de linguagem AI" que a tua caixa de suporte te reenvia.
Nada disto é um argumento contra LLMs em geral. É um argumento contra usá-los para listas de sugestões ranqueadas — que é o que a maioria das "features de IA" realmente são, assim que tiras o embrulho.
O que uma "sugestão" normalmente precisa
Recua um passo. Uma sugestão num produto está quase sempre a responder às mesmas três perguntas:
- Que candidatos existem? O conjunto de candidatos é finito e teu — receitas, exercícios, artigos, suplementos, sons, produtos. Escreveste-os tu.
- Qual a relevância de cada um para este utilizador, agora?
- Qual o custo de errar?
Repara no que não está na lista: gerar texto novo. Na maior parte das vezes não precisas de prosa inédita — precisas de ordenar bem coisas já conhecidas.
O modelo aborrecido que ganha ao chatbot
No Jofit — a nossa app de fitness e bem-estar — entregamos um pequeno ranker que pontua cada intervenção candidata (um suplemento, uma troca de refeição, um cue de sono, um ajuste de treino) em três eixos:
- Peso da evidência. Cada intervenção é anotada com o seu estudo de origem e uma pontuação de qualidade (RCT > coorte > case report). A anotação é trabalho único feito por um clínico, não por um modelo.
- Delta pessoal. Quão longe o utilizador está do alvo clínico para a métrica que a intervenção endereça. Uma vitamina D a 10 ng/mL pontua delta superior a uma a 28 ng/mL.
- Custo de adesão. Um pequeno modelo de histórico de hábitos estima quanta fricção a sugestão adiciona: tempo, dinheiro, custo social, se o utilizador já rejeitou sugestões parecidas antes.
Multiplica, ordena, fica com o topo. Tudo o que esteja no tier URGENT clínico salta o ranker por completo. A coisa toda corre em menos de um milissegundo e cabe num único ficheiro.
Porque um chatbot faria isto pior
Um LLM conseguiria gerar a mesma recomendação. Mas:
- Não consegues garantir que cita as fontes. Os links são alucinados 4–10% das vezes mesmo nos melhores modelos.
- Não consegues fazer unit tests. O output muda entre versões do modelo.
- Não consegues explicar uma pontuação. "Porque me sugeriste isto?" devolve um parágrafo, não um número.
- Não consegues correr um A/B test limpo. A variância da deriva de prompt sobrepõe-se à variância da tua mudança.
O ranker não tem nenhum destes problemas. Cada pontuação é uma função de inputs que controlamos. Podemos repetir os dados da semana passada contra o modelo desta semana e quantificar o lift. Podemos perguntar "o que acontecia se duplicássemos o peso do custo de adesão?" e responder numa tarde.
A caixa de ferramentas, por ordem de uso
- Scoring ponderado com coeficientes afinados à mão. Aborrecido. Eficaz. Dois fins-de-semana para entregar.
- Gradient-boosted trees (XGBoost / LightGBM) sobre labels de engagement. O melhor ROI em ML aplicado da última década. Treina num portátil.
- Matrix factorisation para recomendações colaborativas quando já tens histórico user-item. Mesma família do Netflix por volta de 2009. Continua excelente.
- Contextual bandits quando queres explorar tanto como explorar. O Vowpal Wabbit corre-os no edge.
- Um pequeno transformer ou modelo de embeddings para semelhança semântica. Sentence-transformers entrega um modelo de 90 MB que bate o GPT-4 na maioria dos benchmarks de retrieval.
- LLM — só quando o output é genuinamente texto novo que o utilizador precisa de ler, e tens uma linha de orçamento para isso.
Quando ir mesmo buscar um LLM
Três casos legítimos:
- Geração aberta. "Escreve-me um plano de treino para a próxima semana com estas restrições." Não há conjunto de candidatos que pudesses pré-escrever.
- Interface em linguagem natural para um sistema estruturado. O utilizador pergunta em prosa; tu traduzes para uma query; a resposta vem de um sistema determinista. O LLM é o tradutor, não o oráculo.
- Explicação longa. O ranker escolheu a sugestão. O LLM escreve o parágrafo que explica porquê, ancorado nos inputs do ranker. Agora alucinações custam-te uma frase, não uma recomendação clínica.
A ordem de entrega
Se estás a olhar para uma spec que diz "sugestões com IA", faz isto:
- Lista os candidatos. Se não consegues, não tens um problema de recomendação — tens um problema de conteúdo. Resolve isso primeiro.
- Escolhe três eixos de scoring. Afina os pesos à mão durante uma semana.
- Entrega. Regista cada sugestão mostrada e cada uma sobre a qual o utilizador agiu.
- Ao fim de 4–6 semanas de dados, treina um modelo gradient-boosted sobre os logs. Substitui os pesos manuais.
- Só então, se ainda precisares de prosa inédita, adiciona um LLM — para explicar, não para decidir.
Entregas mais depressa, gastas menos, dormes melhor, e — mais importante — consegues responder à única pergunta que importa quando um utilizador pergunta porque recebeu aquela sugestão: aqui estão os três números, e aqui está o que significam.