provider.quantizations para rotear uma solicitação apenas para provedores que servem o modelo na precisão que você testou:
O que a quantização muda
A quantização armazena os pesos de um modelo em um tipo numérico menor. O mesmo modelo passa a precisar de menos memória e responde mais rápido, com algum custo para a qualidade da saída. Duas coisas descrevem um modelo quantizado: o formato (o tipo numérico, comoFP8 ou INT4) e o método (como os pesos foram convertidos para ele, como AWQ ou GPTQ).
Cada vez que o número de bits cai pela metade, a memória que os pesos precisam também cai pela metade. Em um modelo de 70B de parâmetros, só os pesos ocupam aproximadamente:
Esses valores são aritméticos (parâmetros × bytes por peso) e não incluem as ativações nem o cache KV, para os quais os provedores também precisam de memória.
Comparar formatos de precisão
Um formato de precisão é o tipo numérico que um provedor usa para armazenar os pesos de um modelo. Uma precisão menor usa menos memória e responde mais rápido, com um risco maior para a qualidade da saída.BF16 ou FP16
Os dois têm 16 bits. OBF16 mantém uma faixa de expoente maior, então é mais estável; o FP16 é comum e rápido, mas menos estável em algumas cargas de trabalho. Quando um provedor oferece BF16, ele é a escolha mais segura para tráfego em que a qualidade é crítica.
FP8 e FP4
OFP8 traz um grande ganho de eficiência e mantém uma qualidade utilizável na maioria das tarefas. O FP4 vai além, mas a qualidade cai com mais frequência, principalmente em raciocínio sutil, contextos longos e saídas estruturadas estritas.
INT8 e INT4
Os formatos inteiros são feitos para vazão e memória na inferência. O quanto eles preservam a qualidade depende do método de quantização, dos dados de calibração e da arquitetura do modelo. OINT8 é mais fácil de implantar com segurança que o INT4.
Ler o rótulo de um modelo
Os provedores rotulam as variantes comobf16, fp16, fp8, int8, q4, 4bit, 8bit e assim por diante. A nomenclatura não é padronizada: 4bit pode significar FP4 ou INT4. Consulte a documentação do provedor para saber a variante exata.
Comparar métodos de quantização
Um formato comoINT4 é a precisão de destino; um método como AWQ ou GPTQ é a forma como os pesos foram convertidos para ela. AWQ INT4 e GPTQ INT4 chegam ao mesmo destino de maneiras diferentes, então podem se comportar de formas muito diferentes. O método afeta quanto da precisão é preservada, quais runtimes conseguem servir o modelo, o layout de memória e a velocidade de serviço, e se foram necessários dados de calibração.
Para comparar métodos na sua própria carga de trabalho:
- Escolha primeiro o runtime: aquele que você consegue implantar com confiabilidade.
- Mantenha apenas as famílias de métodos que esse runtime aceita.
- Faça benchmark de vários métodos com a mesma precisão de destino.
- Acompanhe os modos de falha, não só as pontuações médias de benchmark: correção das saídas estruturadas, fidelidade em contextos longos, confiabilidade das chamadas de ferramentas, comportamento de segurança e moderação, e latência de cauda sob carga.
Rotear para uma precisão
O filtroprovider.quantizations verifica a oferta do modelo de cada provedor, não só o nome do provedor:
- A correspondência ignora maiúsculas e minúsculas, espaços,
-e_. Aliases inequívocos também correspondem:bfloat16paraBF16,float16paraFP16,float8paraFP8. Um rótulo como4bitnão é tratado comoFP4nem comoINT4. - Ofertas sem metadados de quantização nunca correspondem.
- Não há alternativa para outra precisão. Se nenhuma oferta corresponder, a solicitação falha com
400 unsupported_model_or_endpoint, motivoquantization_not_available. O erro lista as precisões disponíveis e, emrouting_diagnostics.quantization, quais provedores foram descartados e por quê. routing.quantizationsé aceito como alternativa aprovider.quantizations.
Escolher uma precisão
Você não precisa de uma única precisão para tudo. Mantenha uma precisão maior para atendimento ao cliente e decisões críticas, e aceite uma precisão menor para classificação ou resumo em alto volume.
1
Defina critérios de sucesso
Defina limites de qualidade (precisão nas tarefas, taxas de aprovação, validade das saídas estruturadas), metas de latência e custo, e os modos de falha que você não vai aceitar.
2
Meça uma referência de alta precisão
Comece com
BF16 ou FP16. Registre a qualidade da saída, a latência mediana e de cauda e o custo em tokens. Toda precisão menor é comparada com essa referência.3
Desça um nível por vez
Teste
FP8 ou INT8 em seguida. Passe para FP4 ou INT4 só se precisar da economia extra de custo ou vazão. Não pule direto para a menor variante, a menos que já tenha evidências de que ela funciona na sua carga de trabalho.4
Teste com prompts parecidos com os de produção
Inclua prompts longos, raciocínio em várias etapas, chamadas de ferramentas e casos extremos de tickets de suporte.
5
Lance e continue acompanhando
Mantenha um modelo ou uma precisão alternativa no seu próprio cliente para quando nenhuma oferta corresponder, monitore a qualidade depois do lançamento e teste de novo quando o runtime do provedor ou a revisão do modelo mudar. Depois de escolher uma precisão, ajuste os parâmetros de inferência sobre ela.