kontaminacja benchmarków

Przedostanie się zadań ze zbioru testowego do danych treningowych modelu, przez co wynik benchmarku mierzy zapamiętanie zamiast zdolności. Trudna do wykrycia, bo rzadko jest dosłowna. Odpowiedzią nie jest lepszy benchmark, lecz własny, niepublikowany zestaw testowy z realnych przypadków.

W Polsce nazywane też:

zanieczyszczenie zbiorów testowychwyciek zbioru testowego

Model odpowiada bezbłędnie na zestaw testowy. Pytanie brzmi, czy umie rozwiązać te zadania, czy widział je już wcześniej.

Na czym polega problem

Zbiory testowe używane do porównywania modeli są publikowane, omawiane i cytowane w internecie. Dane treningowe pochodzą z internetu. Prędzej czy później zadania testowe wraz z odpowiedziami trafiają do treningu — i wtedy wynik przestaje mierzyć zdolność, a zaczyna mierzyć zapamiętanie.

Dlaczego trudno to wykryć

Kontaminacja rzadko jest dosłowna. Zadanie mogło trafić do danych w przeformułowanej postaci, w tłumaczeniu, w omówieniu na forum albo w cudzym artykule. Twórcy modeli filtrują dane, ale filtry działają na dokładne dopasowania, a nie na parafrazy.

Objawy

Podejrzenie budzi duża różnica między wynikiem na benchmarku a zachowaniem na zadaniach tego samego typu, ale sformułowanych inaczej. Podobnie działa nagły skok wyników na starym benchmarku bez odpowiadającej mu poprawy w praktyce.

Co z tym robić

Odpowiedzią nie jest szukanie lepszego benchmarku, tylko posiadanie własnego zestawu testowego, zbudowanego z realnych przypadków z twojej produkcji i nigdzie niepublikowanego. Taki zestaw jest z definicji wolny od kontaminacji, mierzy dokładnie to, na czym ci zależy, i służy przy każdej zmianie modelu.

Kilkadziesiąt przypadków z zapisanym oczekiwanym wynikiem wystarczy, żeby podejmować decyzje lepiej niż na podstawie publicznych rankingów.