Faça profiling antes de otimizar: quebre os 400 milissegundos em busca de features, pré processamento, a passagem forward do modelo e rede, porque o modelo muitas vezes não é a maior fatia. Depois ataque a maior peça. Ganhos típicos são concorrência nos lookups de feature, cache, quantização, um runtime compilado, um modelo destilado, e tirar trabalho do caminho da requisição. Mire no p99 especificamente, não na média.
Por que os entrevistadores perguntam isso
Esta é uma pergunta de sistemas vestida de ML, e entrevistadores querem ver você medir antes de otimizar. Candidatos que propõem de cara um modelo menor estão chutando. Citar os componentes fora do modelo, principalmente busca de features e serialização, e saber que uma cauda muito acima da mediana normalmente significa enfileiramento ou cold start, são as marcas de quem já operou um serviço.
Como estruturar sua resposta
- Recuse otimizar antes de ter a decomposição dos 400ms.
- Cite os componentes que você cronometraria separadamente.
- Ordene as correções pelo tamanho da fatia que elas atacam.
- Note que o p99 normalmente aponta para enfileiramento, cold start ou garbage collection.
Exemplo de resposta
Eu não tocaria no modelo até ter uma decomposição. Eu tracejo uma requisição fim a fim e cronometro busca de features, desserialização, pré processamento, a passagem forward, pós processamento e rede. Toda vez que eu fiz isso num serviço que parecia lento, o modelo era a minoria do tempo. O último foi por volta de 400 milissegundos no total, com uns 90 no modelo e mais de 200 esperando três lookups sequenciais de feature contra uma store remota. Consertar isso não foi um problema de ML, foi disparar os lookups de forma concorrente e cachear os dois que só mudavam diariamente, e só isso já nos levou a maior parte do caminho. Depois disso eu olho o modelo: batching dinâmico, quantização int8, ou exportar para um runtime compilado como ONNX Runtime ou TensorRT, que em modelos menores costuma ser um ganho de duas a três vezes sem custo de acurácia. A outra coisa sobre o p99 especificamente é que uma cauda tão acima da mediana normalmente não é computação, é enfileiramento sob carga, um cold start numa réplica nova, ou garbage collection. Então eu checo se o p50 já está bom, porque se estiver, a correção é capacidade e pools aquecidos.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como o batching dinâmico ajuda o throughput mas prejudica a latência de uma requisição isolada?
- O que você cachearia, e como você invalidaria?
- Como você faria teste de carga para achar o ponto em que a cauda explode?
Mais perguntas para Engenheiro de Machine Learning
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas