Auditar um ML que chegou pronto com afirmações que o código não sustentava Auditing a ready-made ML system whose claims the code didn’t back up
Um protótipo de priorização de clientes parecia convincente no relatório, mas algumas afirmações não batiam com o código. Em vez de acrescentar outro modelo, auditei o que ele realmente calculava. Os dados são sintéticos, e a auditoria mostra como um erro de premissa pode sobreviver num painel aparentemente pronto. A client prioritization prototype looked convincing in its report, but some claims did not match the code. Instead of adding another model, I audited what it actually computed. The data is synthetic, and the audit shows how a wrong assumption can survive in a dashboard that looks finished.
Palavras sublinhadas têm uma explicação rápida. Toque nelas. Underlined words have a quick explanation. Tap them.
Pegar um pipeline de classificação que já existia e conferir cada afirmação do relatório contra o que o código de fato executa. Take a classification pipeline that already existed and check every claim in the report against what the code actually executes.
Sistema que chega pronto com número bonito é justamente onde mais mora afirmação que ninguém verificou. Um agrupamento dito confirmado que não foi confirmado não é erro de documentação: é uma decisão de negócio tomada em cima de nada, e que continua sendo tomada todo mês até alguém abrir o código. A system that arrives ready-made with a good-looking number is exactly where unverified claims tend to live. A clustering said to be confirmed that was never confirmed isn’t a documentation slip: it's a business decision made on nothing, and one that keeps getting made every month until someone opens the code.
Cada divergência virou um registro de decisão com um teste que impede a volta do comportamento errado. As alegações sem lastro foram apagadas do texto, e a checagem foi feita por busca no próprio código, não por leitura do relatório. A base é 100% sintética, então o retorno de cerca de 300% é cenário declarado, não medição. Every discrepancy became a decision record with a test that prevents the wrong behavior from coming back. Unsubstantiated claims were struck from the text, and the check was done by searching the code itself, not by reading the report. The dataset is 100% synthetic, so the roughly 300% return is a declared scenario, not a measurement.
Seis achados corrigidos, cada um com registro e um teste que trava o comportamento certo: um "K=6 confirmado por métrica" que era K=2; pesos ditos "calibrados por especialista" que eram uma regra fixa; o notebook e o painel calculando a nota do mesmo cliente com fórmulas diferentes. O classificador treinado foi testado e perdeu da heurística de negócio de 10 critérios (AUC 0,76 contra 0,78). Isso ficou publicado. Six findings fixed, each one with a record and a test that locks in the right behavior: a "K=6 confirmed by metric" that was actually K=2; weights claimed to be "calibrated by an expert" that were a fixed rule; the notebook and the dashboard computing the same client’s score with different formulas. The trained classifier was tested and lost to the 10-criteria business heuristic (AUC 0.76 against 0.78). That got published as is.
O classificador perdeu da regra de negócio, e isso ficou publicado. A auditoria foi mais útil do que outro ajuste de modelo: mostrou exatamente quais afirmações precisavam ser retiradas e deixou testes para impedir que voltassem. Ainda falta validação com dados e usuários reais. The classifier lost to the business rule, and I published that result. The audit was more useful than another model tweak: it showed which claims needed to be removed and left tests to keep them from coming back. Validation with real data and users is still missing.