elastic / elastic/ml-cpp

[ML] Failure in CBoostedTreeTest/testMseIncrementalForTargetDrift

Aperta
#2,033 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
:ml/DataFrameAnalysis >test-failure
Lingua principale
C++
Stelle
157
Fork
67
Merge medio
17h 52m
PR unite (30g)
20

Descrizione

The following error was seen on the `feature/incremental-training` branch for a PR build of #2032:

```
[Exception] - critical check errorDecreaseOnNew > 2.0 * errorIncreaseOnOld has failed [0 <= 0]
== [File] - CBoostedTreeTest.cc
== [Line] -918
```

The test could be trivially fixed by changing the assertion on line 918 from `>` to `>=`. However, this comment makes me think this might be a sign of a worse problem with the test:

```
// By construction, the prediction error for the old training data must
// increase because the old and new data distributions overlap and their
// target values disagree. However, we should see proportionally a much
// larger reduction in the new training data predcition error.
```

If the test is supposed to be constructed such that the prediction errors for the old and new data distributions cannot both be 0 then something is wrong in the test setup code.

Another thing to note is that this failure only occurred once out of several CI runs. So this test is not deterministic for a given platform/architecture. At one time we were always using the same random number generator seed for ml-cpp unit tests so that behaviour was consistent. If we are no longer doing that then we need to get the test code to print the random number generator seed for each run so that problems like this can be debugged.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia da CBoostedTreeTest.cc intorno alla riga 918 e riproduci testMseIncrementalForTargetDrift sul branch feature/incremental-training o nella build di PR #2032. Verifica se la configurazione del test può produrre zero errori per entrambe le distribuzioni e se le esecuzioni usano un seed casuale riproducibile. Il lavoro è concluso quando il fallimento è spiegato e il test è deterministico, con un’assertion che corrisponde al suo invariante previsto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
machine-learning, testing-qa
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.