Inferência, em inteligência artificial, é o processo de executar um modelo treinado em novas entradas para produzir uma saída, em contraste com o treinamento, a fase anterior em que os parâmetros do modelo são aprendidos a partir de dados. Um modelo de linguagem de grande porte respondendo à pergunta de um usuário, um classificador de imagens rotulando uma foto e um modelo de difusão gerando uma imagem a partir de um prompt de texto estão todos realizando inferência. Uma vez que o treinamento termina e os pesos de um modelo são fixados, cada uso subsequente desse modelo é uma chamada de inferência.
Custo e hardware
A inferência tem demandas computacionais diferentes do treinamento. Treinar um modelo grande exige processar conjuntos de dados enormes ao longo de muitas passagens e normalmente é executado em grandes clusters de GPUs ou TPUs por semanas ou meses. A inferência, por sua vez, opera continuamente, muitas vezes atendendo milhões de solicitações individuais, e sua estrutura de custos depende mais da latência, o tempo para produzir uma única resposta, e da taxa de transferência, o número de solicitações que um sistema pode atender por unidade de hardware, do que do total de computação consumida por um único trabalho. Como os modelos de linguagem geram texto um token por vez, com cada novo token dependendo de todos os anteriores, a inferência para modelos autorregressivos é comparativamente lenta e limitada por memória, em vez de limitada por computação, o que impulsionou uma onda de engenharia de inferência especializada, distinta da pesquisa focada em treinamento. A Nvidia e outros fabricantes de chips lançaram hardware especificamente otimizado para cargas de trabalho de inferência, e provedores de nuvem precificam capacidade de inferência e treinamento de maneiras diferentes.
Técnicas de otimização
Como o custo de inferência escala diretamente com o uso, ela é um alvo importante para otimização. A quantização reduz a precisão numérica dos pesos de um modelo, cortando o uso de memória e muitas vezes acelerando a computação com uma modesta compensação de precisão. A destilação de conhecimento treina um modelo menor para imitar um maior, produzindo um modelo mais barato de executar em tempo de inferência. A decodificação especulativa usa um modelo de rascunho pequeno e rápido para propor vários tokens de uma vez, que um modelo maior então verifica em paralelo, reduzindo o número de etapas sequenciais lentas necessárias para gerar saídas longas. Agrupar solicitações de vários usuários, armazenar em cache resultados intermediários previamente calculados, como o cache de chave-valor de atenção, e rotear consultas mais simples para modelos menores são técnicas adicionais comuns para reduzir o custo de servir um modelo em escala.
Computação em tempo de teste
A inferência tem sido tradicionalmente tratada como uma etapa fixa e leve em comparação ao treinamento, mas o surgimento de modelos de raciocínio que geram raciocínio interno estendido antes de responder introduziu uma nova dimensão: gastar mais computação em tempo de inferência, uma abordagem conhecida como computação em tempo de teste, pode melhorar substancialmente a qualidade da saída em problemas difíceis. Isso confundiu a suposição anterior de que apenas a computação em tempo de treinamento importava para a capacidade, já que um modelo agora pode trocar custo de inferência por precisão em um determinado problema ao "pensar por mais tempo", uma compensação que não existia da mesma forma para gerações anteriores de modelos que produziam uma quantidade fixa de saída, independentemente da dificuldade da tarefa.
Economia
Como produtos de IA amplamente usados atendem solicitações de inferência continuamente, o custo de inferência, não o custo de treinamento, domina a economia de longo prazo de operar um modelo implantado, e a discussão da indústria sobre gastos com infraestrutura de IA cada vez mais se concentra na capacidade de inferência à medida que o uso escala, juntamente com investimento contínuo em pré-treinamento de modelos cada vez maiores.