GPU do badań ML · Płatność crypto bez KYC
IteraGPU
Metoda / Dane i ocena

Zachowaj ocenę, która wciąż może cię zaskoczyć.

Użyteczny zbiór ewaluacyjny odzwierciedla pracę, którą model będzie musiał wykonać, nie służąc przy tym do wyboru jego ustawień. Zdefiniuj ocenianą jednostkę, pogrupuj powiązane przykłady, wyszukaj duplikaty i zarezerwuj finalny zbiór odłożony na bok. Wtedy będziesz mógł zinterpretować różnicę w jakości. Losowy podział wierszy nie gwarantuje tej niezależności, zwłaszcza gdy kilka wierszy pochodzi z tego samego dokumentu lub tej samej rozmowy.

01 /

Zdefiniuj, co reprezentuje każdy przykład

Zacznij od zdania opisującego decyzję: rozpoznanie kategorii nowego zgłoszenia, wyodrębnienie trzech pól z dokumentu albo odpowiedź na pytanie wraz z załącznikami. Opisz dane wejściowe dostępne w momencie predykcji, oczekiwane wyjście oraz przypadki poza zakresem. Informacja dodana po rozwiązaniu zgłoszenia nie powinna pojawiać się w danych wejściowych, które mają reprezentować jego nadejście.

Następnie rozróżnij wiersz i niezależną jednostkę. Pięć wiadomości z jednej rozmowy dzieli wspólny kontekst; dziesięć stron jednego dossier dzieli swoje pochodzenie. Jeśli twój cel dotyczy nowych dossier, trzymaj każde dossier w jednej partycji. Podział według użytkownika, dokumentu, urządzenia lub okresu odpowiada na różne pytania: wybierz ten, który przypomina przyszłe użycie, a następnie zapisz jego uzasadnienie w manifeście.

Źródła techniczne: scikit-learn 1.9 — walidacja z grupami i zależnościami czasowymi

02 /

Przypisz rolę każdemu zbiorowi

Zbiór uczący służy do dostrajania modelu. Zbiór walidacyjny kieruje decyzjami rozwojowymi: promptem, progiem, hiperparametrami lub wyborem wariantu. Finalny test odpowiada na pytanie ustalone z góry. Zaglądanie do niego, by wybrać najlepsze ustawienie, stopniowo czyni ten test narzędziem rozwojowym, nawet jeśli nie liczy się na nim żadnego gradientu.

Oddziel również dane używane do uczenia przekształcenia. Normalizacja, selekcja zmiennych lub imputacja dopasowana na całym korpusie może przekazać informację do modelu. Ucz się tych przekształceń na dozwolonej partycji, a następnie zastosuj zachowane przekształcenie do pozostałych zbiorów. Pipeline ułatwia tę kontrolę; sam jednak nie naprawi źle rozdzielonych grup.

Role do nazwania przed wygenerowaniem pierwszych wyników
ZbiórDozwolone użycieDecyzja, której należy unikać
UczącyDostrajanie parametrów i wyuczonych przekształceńImportowanie do niego odpowiedzi z finalnego testu
WalidacyjnyWybór ustawień, promptów i progówPrzedstawianie najlepszego wyniku eksploracyjnego jako niezależnego wyniku finalnego
Finalny testOcena wybranej konfiguracji według ustalonej regułyZmiana ustawień po odczycie i ponowne użycie tego samego wyniku jako potwierdzenia
Ewentualna kalibracjaPrzygotowanie metody kwantyzacji, która tego wymagaUżyj testu końcowego, aby zbudować oceniany wariant

Źródła techniczne: scikit-learn 1.9 — wyciek danych i transformacje

03 /

Radzenie sobie z duplikatami bez usuwania trudnych przypadków

Zachowaj surowy korpus, a następnie zbuduj roboczy inwentarz z identyfikatorem, pochodzeniem i grupą. Odcisk treści wykrywa dokładne kopie zgodnie z wybraną reprezentacją. Udokumentuj tę reprezentację: usunięcie całej interpunkcji lub zamiana tekstu na małe litery może scalić wpisy, których różnica ma znaczenie dla zadania. Zachowaj powiązanie między odrzuconą kopią a zachowanym egzemplarzem.

Quasi-duplikaty wymagają dodatkowego przeglądu: zmodyfikowany eksport, przeformułowana odpowiedź, wspólny fragment lub ponownie zredagowany dokument. Wysokie podobieństwo to sygnał do zbadania, a nie dowód, że dwie adnotacje są wymienne. Pogrupuj powiązane warianty przed podziałem danych. Jeśli dwie kopie mają sprzeczne odwołania, otwórz pytanie adnotacyjne; nie wybieraj automatycznie tej, którą model przewiduje najlepiej.

04 /

Przykład przećwiczony: 1200 wierszy to nie 1200 niezależnych obserwacji

Ten przykład jest w całości ilustracyjny: nie zmierzono żadnego korpusu ani modelu. Załóżmy 240 rozmów, każda wyeksportowana w pięciu wierszach. Jeden wiersz to dokładna kopia w każdej rozmowie; pozostałe cztery są odrębne. Usunięcie tych 240 kopii pozostawia 960 przykładów, wciąż zorganizowanych w 240 grup. Poniższy wybór dydaktyczny przeznacza 70% grup na uczenie, 15% na walidację i 15% na test.

Otrzymujemy 168, 36 i 36 rozmów, czyli 672, 144 i 144 przykłady. Równość proporcji w wierszach i grupach wynika tutaj z czterech przykładów na rozmowę. W rzeczywistym korpusie o zmiennych rozmiarach nie byłaby automatyczna. Te proporcje nie są uniwersalną regułą: muszą pozostawić wystarczająco dużo grup i ważnych przypadków w każdym zbiorze.

1200 − 240 = 960 przykładów; 168 + 36 + 36 = 240 grup; 672 + 144 + 144 = 960 przykładów.
Ilustracyjny podział arytmetyczny, po przetworzeniu kopii
PodziałCałe rozmowyPrzykładyRola
Uczący168672Dostroić
Walidacyjny36144Wybrać
Finalny test36144Potwierdzić na odrębnym zbiorze

Źródła techniczne: scikit-learn 1.9 — GroupShuffleSplit liczy grupy

05 /

Sprawdź klasy, długości i chronologię

Po podziale policz klasy i grupy, które je noszą. Klasa obecna w wielu wierszach, ale w jednej rozmowie, nie oferuje wielu niezależnych przypadków. Zbadaj również długości, faktycznie pokryte języki, niekompletne dokumenty i kategorie ważne dla decyzji. Pocieszająca średnia może maskować podział bez żadnego przykładu krytycznego przypadku.

Stratyfikacja z grupami stara się zachować proporcje klas bez rozpraszania grup. Nie gwarantuje idealnej równowagi, gdy grup jest niewiele lub są bardzo nierówne. Jeśli zadanie polega na przewidywaniu przyszłych obserwacji, podział chronologiczny może być bardziej odpowiedni niż losowe mieszanie. Sprawdź też, czy zmienne były dostępne w dacie predykcji.

Źródła techniczne: scikit-learn 1.9 — StratifiedGroupKFold i jego ograniczenia · scikit-learn 1.9 — walidacja danych czasowych

06 /

Uczyń punkt odniesienia wystarczająco precyzyjnym, by ocenić wynik

Napisz instrukcję adnotacji z przykładami i przypadkami brzegowymi. W przypadku ekstrakcji określ znaczenie nieobecnego pola, format dat, walutę i akceptowane odpowiedniki. W przypadku klasyfikacji opisz granice między kategoriami. Odpowiedź inna niż punkt odniesienia nie zawsze jest błędem modelu: punkt odniesienia może być niejednoznaczny lub błędny.

Zleć przegląd zróżnicowanej selekcji, zwłaszcza sporów i ważnych przypadków, a następnie zapisz rozstrzygnięcie. Zachowaj poprawki w nowej wersji zbioru. Jeśli poprawka zmienia wynik porównania, przelicz wszystkie powiązane warianty na tym samym punkcie odniesienia; nie poprawiaj tylko wiersza niekorzystnego dla preferowanego modelu.

07 /

Przygotuj pakiet ewaluacyjny przed kampanią GPU

Rezultatem tych przygotowań jest identyfikowalny zbiór wraz z jego regułami. Pozwala odtworzyć selekcję danych bez polegania na pamięci notebooka. Przygotowanie tego pakietu przed wynajmem pozwala uniknąć zużywania okresu obliczeniowego na rozwiązywanie różnic w plikach lub kryteriach.

  • Ustal identyfikatory, grupy, podziały i ich uzasadnienie; zachowaj skrypt lub listę, które je tworzą.
  • Sprawdź przecięcia identyfikatorów, grup i skrótów między partycjami. Każde nieoczekiwane przecięcie musi zostać wyjaśnione lub poprawione.
  • Wyeksportuj liczebności według partycji, klasy i użytecznej podgrupy, a także listę wykluczeń i ich powody.
  • Ustal punkt odniesienia, zasady normalizacji, główną metrykę i progi przed porównaniem.
  • Zachowaj wersję, skróty, prawa do wykorzystania i lokalizację danych. Skrót zapewnia identyfikację, a nie anonimowość.
  • Zarezerwuj dostęp do testu końcowego aż do zaplanowanej decyzji; prowadź dziennik konsultacji i zmian protokołu.
08 /

Wiedzieć, co dowodzi kontrola

Przygotowanie jest akceptowalne, gdy liczebności zgadzają się ze spisem, nakładanie się jest opanowane, a każdy wynik można ocenić według jasnej reguły. Nie dowodzi to jednak, że model odniesie sukces ani że wszystkie przyszłe zastosowania są reprezentowane. Mały zbiór może opisywać konkretny problem, pozostając niewystarczającym do wyciągnięcia wniosków o rzadkiej klasie.

Jeśli wykorzystujesz błędy testu końcowego do ulepszenia systemu, zachowaj ten test jako historyczny i przygotuj nowe niezależne potwierdzenie. W przypadku modelu wstępnie wytrenowanego, którego dane źródłowe są nieznane, twoja partycja nie może zaświadczyć o braku wcześniejszej ekspozycji. Udokumentuj to ograniczenie, zamiast nazywać zbiór całkowicie dziewiczym.

Praktyczne pytania

Czy zawsze trzeba przeznaczać 20% danych na test?

Nie. Użyteczny udział zależy od liczby niezależnych jednostek i przypadków do pokrycia. Sprawdź grupy, ważne kategorie i dokładność oczekiwanego wniosku; sam procent nie gwarantuje informatywnego testu.

Czy inny identyfikator wystarczy, aby wykluczyć duplikaty?

Nie. Dwa eksporty mogą mieć różne identyfikatory, a zawierać ten sam tekst lub warianty tego samego przypadku. Sprawdź treść i pochodzenie, a następnie pozostaw powiązane przykłady w partycji zgodnej z twoją regułą grupowania.

Czy mogę ponownie wykorzystać test po poprawieniu modelu na podstawie jego błędów?

Możesz go zachować do śledzenia historii, ale uczestniczył w rozwoju. Aby potwierdzić poprawę na danych odłożonych, użyj nowego niezależnego zbioru i jasno ogłoś rolę każdego z nich.