elastic / elastic/ml-cpp

[ML] Failure in CBoostedTreeTest/testMseIncrementalForTargetDrift

Offen
#2,033 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
:ml/DataFrameAnalysis >test-failure
Vorherrschende Sprache
C++
Sterne
157
Forks
67
Ø Merge
17 Std. 52 Min.
Gemergte PRs (30 T.)
20

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit CBoostedTreeTest.cc um Zeile 918 und reproduziere testMseIncrementalForTargetDrift auf dem feature/incremental-training-Branch oder im Build von PR #2032. Prüfe, ob das Test-Setup für beide Verteilungen null Fehler erzeugen kann und ob die Ausführungen einen reproduzierbaren Zufalls-Seed verwenden. Als erledigt gilt die Aufgabe, wenn der Fehler erklärt ist und der Test mit einer Assertion, die seiner beabsichtigten Invariante entspricht, deterministisch ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
machine-learning, testing-qa
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.