Teste as partes determinísticas de forma adequada e as estocásticas de forma comportamental. Faça testes unitários das transformações de feature contra fixtures, imponha contratos de schema e de faixa nas entradas, mantenha um teste de linha dourada que carrega o pipeline serializado e checa que entradas conhecidas produzem scores conhecidos, e escreva testes comportamentais nas saídas do modelo (invariância, expectativas direcionais) em vez de assegurar um número exato de acurácia.
Por que os entrevistadores perguntam isso
Muitos candidatos dizem que não dá para testar machine learning de verdade, o que é a resposta errada. Entrevistadores querem ouvir que a maior parte de um pipeline é código determinístico comum que se testa bem, e que os modelos em si são testáveis de forma comportamental. Citar um teste de regressão de linha dourada e contratos de validação de dados mostra que você já evitou uma indisponibilidade em vez de só reagir a uma.
Como estruturar sua resposta
- Aponte que a maior parte do pipeline é código determinístico.
- Cite testes unitários nas transformações e contratos de schema nas entradas.
- Descreva um teste de linha dourada sobre o artefato serializado.
- Acrescente testes comportamentais em vez de assegurar uma métrica exata.
- Diga o que pertence ao CI e o que roda por agendamento.
Exemplo de resposta
A maior parte de um pipeline é código comum e se testa exatamente como código comum. Transformações de feature ganham testes unitários contra fixtures pequenas, incluindo os casos feios: nulos, uma categoria nunca vista no treino, um valor negativo onde só se esperavam positivos. Os dados de entrada ganham checagens de contrato, ou seja schema, tipos, faixas e taxas de nulo esperadas, rodadas como porta antes do treino em vez de descobertas depois como um modelo estranho. Depois um teste de linha dourada, em que eu guardo um pipeline serializado e um punhado de entradas fixas com os scores esperados, e o CI falha se uma refatoração mudar isso. Isso já pegou mudanças silenciosas de pré processamento para mim mais de uma vez. Para o modelo em si eu não asseguro acurácia acima de algum número, porque isso é instável e é uma porta ruim. Eu escrevo testes comportamentais no lugar: invariância, ou seja mudar um campo irrelevante mal move o score, e expectativas direcionais, ou seja aumentar uma feature que sabemos ser monotonicamente relacionada move a previsão para o lado certo. Treinos completos são lentos demais para todo commit, então esses vão para a rodada noturna, com um treino de fumaça rápido numa amostra minúscula no CI para provar que o pipeline ainda roda fim a fim.
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 você escreveria um teste para um modelo que é legitimamente não determinístico?
- Que ferramenta de validação de dados você usaria, e no que você colocaria a porta?
- Como você impede que testes de linha dourada virem ruído de manutenção?
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