Recursos/Treinamento de modelo/Teste e disponibilização de um modelo

Conceito

Inferência e implantação

A inferência é o uso de um modelo para gerar respostas. Um modelo treinado deve primeiro ser implantado — seus pesos carregados em hardware por trás de um endpoint —, o que pode levar minutos, e então custa dinheiro por token ou por hora.

Capítulo 93 min de leitura4 referências

O que é

A Inferência é tudo o que acontece após o treinamento: um prompt entra, o modelo produz uma resposta. Nada é aprendido; os pesos permanecem fixos. Cada chat de teste, cada resposta de avaliação, cada veredito de juiz e cada resposta em produção é inferência.

Como funciona

Um modelo gera texto um token por vez. Primeiro, ele lê todo o prompt em uma única passagem (chamada de prefill), o que é rápido porque todos os tokens podem ser processados em paralelo. Em seguida, ele decodifica: prevê o próximo token, anexa-o e repete o processo até produzir um token de fim ou atingir um limite de comprimento. Cada novo token precisa de outra passagem pelo modelo, e é por isso que respostas longas demoram mais do que perguntas longas.

  • O Tempo até o primeiro token é principalmente prefill: prompts mais longos, maior a espera antes de algo aparecer.
  • Tokens por segundo é a velocidade de decodificação: define a rapidez com que a resposta é transmitida.
  • Configurações de amostragem, como a temperatura, decidem como o próximo token é escolhido a partir das probabilidades do modelo. Valores baixos tornam as respostas mais previsíveis; valores altos, mais variadas.
  • Batching: um servidor responde a várias solicitações simultaneamente para manter a GPU ocupada. Sistemas de serviço como o vLLM gerenciam a memória tão bem que aumentaram a taxa de transferência em 2 a 4 vezes em comparação com sistemas anteriores, mantendo a mesma latência.

Implantação

O treinamento produz um conjunto de pesos armazenados no provedor. Para responder, esses pesos devem ser implantados: carregados na memória de uma ou mais GPUs, por trás de um endpoint que aceita solicitações. A memória necessária é aproximadamente o número de parâmetros multiplicado pelos bytes usados por parâmetro:

por que modelos grandes precisam de hardware potente
memory for weights ≈ parameters × bytes per parameter

7B model  × 2 bytes (16-bit)  ≈ 14 GB
70B model × 2 bytes (16-bit)  ≈ 140 GB  → several GPUs

Alocar esse hardware, baixar os pesos e carregá-los na memória da GPU é a inicialização a frio. Para modelos gerenciados, isso geralmente é rápido ou invisível; para modelos abertos em GPUs dedicadas, frequentemente leva de 10 a 40 minutos. Uma vez carregada, a implantação permanece aquecida e responde em segundos — enquanto existir.

  1. 01Escolher duraçãocusto por hora mostrado antecipadamente
  2. 02Implantandocarregar pesos · cold start
  3. 03Ativochat · o medidor roda
  4. 04Excluindoo faturamento é interrompido
Uma implantação dedicada é faturada por cada hora em que existe, sendo usada ou não. O ciclo de vida termina ao excluí-la.
Exemplo prático: testando um modelo aberto ajustado
  1. Uma execução supervisionada em um modelo aberto de 8 bilhões de parâmetros foi concluída. Em precisão de 16 bits, seus pesos ocupam cerca de 16 GB, portanto, ele precisa de uma GPU com mais memória do que isso, além de espaço para as solicitações em processamento.
  2. Você inicia um chat de teste por duas horas. O preço por hora é exibido antes que qualquer coisa seja criada.
  3. Implantando: a GPU é alocada e os pesos são carregados. Isso leva cerca de 15 minutos; o faturamento da implantação foi iniciado.
  4. Ao vivo: cada pergunta é respondida em um ou dois segundos. Você testa dez perguntas reais da semana passada.
  5. Você termina mais cedo e encerra a sessão. Excluir remove a implantação e o faturamento é interrompido. Custo: o tempo de existência da implantação × o preço por hora, independentemente de quantas perguntas você tenha feito.

Erros comuns

  • Deixar uma implantação dedicada em execução durante a noite “por precaução” — ela é faturada por hora, sendo usada ou não.
  • Julgar um modelo por sua primeira resposta após uma inicialização a frio, ou pelo tempo de resposta enquanto ele ainda está carregando.
  • Testar com configurações de amostragem diferentes ou um prompt de sistema diferente daqueles usados na avaliação.
  • Esperar que um modelo com fine-tuning saiba de coisas que aconteceram após o treinamento: a inferência não aprende.

Referências e leitura complementar

Fontes externas abrem em uma nova aba.

  1. 01Efficient Memory Management for Large Language Model Serving with PagedAttentionKwon et al., 2023 · arXiv · arxiv.orgO artigo do vLLM: como os sistemas de serviço agrupam solicitações em lotes e gerenciam a memória da GPU.
  2. 02Text Generation InferenceHugging Face docs · huggingface.coUma pilha de serviços em produção para modelos abertos, com seus recursos explicados.
  3. 03Inference EndpointsHugging Face docs · huggingface.coO que envolve a implantação de um modelo por trás de um endpoint gerenciado.
  4. 04Cold start (computing)Wikipedia · en.wikipedia.orgA ideia geral de uma inicialização a frio.

Transforme semanas de trabalho especializado em minutos

Veja como o Scalata se adapta à sua equipe, aos seus dados e aos seus Controles.

Fale com vendas