Boas Práticas de ML em Rust
Inferência e serviço de ML reproduzíveis, rápidos e com segurança de memória em Rust.
Busque em todas as páginas da documentação
Inferência e serviço de ML reproduzíveis, rápidos e com segurança de memória em Rust.
model_version. Os clientes sabem quando o comportamento mudou.max_tokens e comprimento de contexto no lado do servidor. Parâmetros do cliente são dicas, não políticas.spawn_blocking ou pool dedicado para forwards. Nunca bloqueie threads de trabalho do Tokio em matmul./predict e de geração. GPUs são caras para compartilhar com a internet.Executar a passagem de modelo síncrona dentro de manipuladores Axum assíncronos sem spawn_blocking, paralisando rotas não relacionadas.
Pelo menos uma entrada fixa por cabeça de saída do modelo - logits de classificação, vetor de embedding ou logit do primeiro token.
Adequado para modelos pequenos e pesquisa; o treinamento de LLM grande geralmente permanece em Python com Rust possuindo a inferência.
ort para ONNX exportado de qualquer framework; candle para portas HF Rust e pilhas puramente Rust.
VRAM no carregamento, crescimento de KV por solicitação e sessões máximas concorrentes no runbook associado ao SKU de hardware.
Trate as alterações de tokenizer.json como alterações de modelo - reexecute os testes dourados e aumente model_version.
Versionar a política de chunking e o modelo de embedding juntos; mudar um sem o outro prejudica o recall.
Apenas EP de CPU no pipeline de PR; trabalho de GPU noturno para regressão de desempenho em fixtures maiores.
Result através de tarefas de bloqueio; mapeie para o status HTTP sem vazar erros de forma de tensor para os clientes.
Veja Servindo Modelos com Axum para layout do manipulador.
Versões da Stack: Esta página foi escrita para Rust 1.97.0 (edição 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, e Polars 0.46+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026