Aprendizado vs inferência em IA: o que muda
Aprendizado (normalmente chamado de treinamento) é quando o modelo muda. Inferência é quando ele executa. Durante o treinamento, os pesos internos do modelo são atualizados repetidamente contra um conjunto de dados até que os erros diminuam. Durante a inferência, esses pesos ficam congelados: uma entrada chega, atravessa a rede uma única vez e uma saída sai. Quase todas as outras diferenças entre os dois, custo, hardware, latência, memória, vêm desse único fato: se os pesos estão sendo escritos ou apenas lidos.
A diferença em uma tabela
| Treinamento (aprendizado) | Inferência | |
|---|---|---|
| O que muda | Os pesos do modelo | Nada dentro do modelo |
| Entrada | Um grande conjunto de dados fixo | Uma requisição por vez |
| Contas por passo | Passagem direta, passagem reversa, atualização dos pesos | Só a passagem direta |
| Hardware típico | Clusters de GPUs ou TPUs | Um acelerador, às vezes um notebook ou celular |
| Escala de tempo | Horas a meses | Milissegundos a segundos |
| Frequência | Uma vez, mais atualizações ocasionais | Toda vez que alguém usa o produto |
| Como é a falha | A perda para de melhorar, o treino diverge | Resposta errada, resposta lenta ou estouro de memória |
O que acontece durante o treinamento
O treinamento passa um lote de exemplos pela rede, mede o quanto a saída errou em relação a um alvo e então propaga esse erro de volta por todas as camadas para descobrir o quanto cada peso contribuiu para o engano. Cada peso é empurrado levemente na direção que teria reduzido o erro. Isso é a retropropagação, descrita por Rumelhart, Hinton e Williams no artigo de 1986 na Nature, "Learning representations by back-propagating errors", e continua sendo o mecanismo por trás de praticamente todo modelo grande em uso hoje.
Duas consequências importam para a comparação. Primeira: o treinamento precisa manter na memória muito mais do que apenas os pesos, ele também guarda as ativações da passagem direta, os gradientes e o estado do otimizador para cada parâmetro. Segunda: um único passo ensina quase nada ao modelo. O comportamento útil vem de repetir esse passo um número enorme de vezes, e é por isso que treinamento se mede em semanas de cluster e inferência se mede em milissegundos.
O que acontece durante a inferência
Inferência é a passagem direta sozinha. Num modelo de linguagem, seu texto é dividido em tokens, empurrado pelas camadas, e o modelo produz uma distribuição de probabilidade sobre o próximo token. Um token é escolhido, anexado, e o processo se repete até parar. Para não recalcular tudo a cada token novo, o modelo guarda em cache os tensores intermediários de chave e valor dos tokens anteriores, e é por isso que o primeiro token de uma resposta costuma demorar mais que o resto.
O ponto importante: nada do que acontece aqui é gravado de volta. O modelo é somente leitura. Se você corrige, discute ou ensina seu nome a ele, os pesos continuam exatamente os mesmos depois da conversa.
Por que as pessoas confundem os dois
Os modelos se comportam, na hora da inferência, como se estivessem aprendendo. Mostre a um modelo três exemplos de um estilo de formatação no seu prompt e a quarta resposta já segue aquele estilo. Brown e colegas documentaram isso de forma sistemática no artigo do GPT-3 de 2020, "Language Models are Few-Shot Learners", mostrando que um modelo de 175 bilhões de parâmetros conseguia assimilar tarefas novas a partir de exemplos colocados no prompt, sem nenhuma atualização de gradiente. Eles chamaram isso de aprendizado em contexto, e o nome faz um trabalho pesado: parece aprendizado, mas é completamento de padrão dentro de uma única passagem direta.
O teste prático é a permanência. O aprendizado em contexto vive inteiramente dentro da janela de contexto. Feche a sessão e ele some. Quando um produto de chat lembra de você entre sessões, isso quase sempre é um banco de anotações sendo silenciosamente reinserido no seu prompt, não um modelo que mudou.
Custo, hardware e onde a inferência roda de verdade
Treinamento é despesa de capital: você aluga um cluster grande, roda por um período fixo e recebe um checkpoint. Inferência é despesa operacional: acontece toda vez que alguém toca num botão, para sempre. Num produto com tráfego real, o total gasto respondendo requisições pode acabar sendo maior que a conta única do treinamento, simplesmente porque o multiplicador é o número de usuários e não o número de treinos.
É essa pressão que faz a inferência ser otimizada com tanta agressividade: quantizar os pesos para precisão menor, destilar um modelo grande em um menor, agrupar requisições em lote. Levada longe o suficiente, a inferência deixa de precisar de datacenter. Celulares atuais rodam reconhecimento de texto e transcrição de fala localmente. No Qora, por exemplo, ler uma página fotografada e transcrever uma aula gravada acontecem no próprio aparelho, porque são cargas só de inferência pequenas o bastante para caber no celular. Treinar um modelo dessa qualidade num celular seria impossível; rodar é rotina.
Onde a divisão limpa começa a vazar
A linha entre treinamento e inferência é um bom modelo mental, não uma lei, e ela vaza em quatro pontos que vale conhecer.
Fine-tuning é treinamento. Fine-tuning, incluindo variantes baratas como LoRA que atualizam só um conjunto pequeno de parâmetros adicionados, é um treino que parte de um checkpoint existente em vez de começar do zero. Não é um modo especial de inferência.
Seus dados ainda podem chegar a um modelo futuro. "O modelo não aprende com você" é verdade sobre o modelo já implantado com quem você está falando. Não é automaticamente verdade sobre a próxima versão, já que os provedores podem coletar conversas e usá-las em um treino posterior. Se fazem isso ou não é uma questão de política, não de arquitetura, então leia os termos em vez de deduzir pelo mecanismo.
Inferência já não é confiavelmente barata por requisição. Modelos de raciocínio gastam muito mais computação na inferência gerando longas cadeias internas de pensamento antes de responder. Uma única requisição difícil hoje pode custar bem mais que uma simples, o que corrói a regra antiga de que treinar é caro e inferir é trivial.
A analogia humana é frouxa. É tentador dizer que as pessoas têm um modo de treinamento e um modo de inferência. O cérebro parece não funcionar assim, e nenhuma afirmação séria aqui deveria se apoiar na metáfora.
Se você está estudando isso para uma disciplina ou entrevista
A versão que cai na prova é estreita: o que muda (os pesos), em que direção os dados fluem (passagem reversa só existe no treinamento) e para onde vai a computação. É um conjunto pequeno de fatos, o que faz disso um bom candidato para autotestagem em vez de releitura. Nos experimentos de Roediger e Karpicke de 2006, estudantes que foram testados sobre o material se saíram melhor num teste posterior do que estudantes que apenas releram, mesmo que o grupo da releitura se sentisse mais confiante. Escrever três perguntas sobre esta página e respondê-las amanhã rende mais que grifar, e vale o mesmo raciocínio se você estiver preparando prova de faculdade ou revisando para o ENEM. Se você está estudando aprendizado de máquina de forma mais ampla, e não decorando uma definição para a semana de provas, vale procurar um roteiro de estudo completo em vez de um glossário.
Perguntas frequentes
Inferência é a mesma coisa que predição?
Na prática, sim. "Inferência" é o termo de engenharia para rodar um modelo já treinado sobre uma entrada nova e obter uma saída, e no aprendizado de máquina clássico essa saída era literalmente uma previsão. A palavra pegou mesmo para modelos generativos, onde a saída é texto ou imagem em vez de um prognóstico.
Um modelo de IA aprende com as minhas conversas?
O modelo com quem você está falando não aprende. Os pesos dele ficam fixos durante a sua sessão, e tudo que ele parece lembrar vem do seu prompt ou de anotações guardadas que são reinseridas no prompt. Se as suas conversas serão usadas depois para treinar um modelo futuro depende da política de dados do provedor, o que é uma questão separada.
Fine-tuning é treinamento ou inferência?
Treinamento. O fine-tuning atualiza pesos usando a mesma maquinaria de retropropagação do pré-treino, só que partindo de um modelo que já funciona e com um conjunto de dados bem menor. Qualquer coisa que muda permanentemente o que o modelo sabe é treinamento, por definição.
Se treinar é a parte difícil, por que as empresas se preocupam com o custo da inferência?
Porque o treinamento acontece um punhado de vezes e a inferência acontece a cada requisição. Uma inferência isolada é barata, mas multiplicada por milhões de usuários diários vira o custo recorrente dominante, e é por isso que tanto esforço de engenharia vai para quantização, cache e processamento em lote.
A comparação inteira se reduz a uma pergunta que você pode fazer sobre qualquer sistema de IA: os pesos estão sendo escritos ou apenas lidos? Treinamento escreve, e é lento, caro e raro. Inferência lê, e é rápida, barata por unidade e constante. Se quiser que isso fique na cabeça, pegue qualquer recurso de IA que você usou hoje e descubra qual dos dois você estava pagando, e o que teria que acontecer para o sistema lembrar de você de verdade.