BlogModele
Jak sprawdzić dane treningowe przed fine-tuningiem modelu językowego
Twoje przykłady nadają się do fine-tuningu, jeśli przejdą cztery testy: zapisane odpowiedzi zgadzają się z tym, co dziś powiedzieliby twoi eksperci, zbiór pokrywa przypadki, które naprawdę trafiają na produkcję, wiesz, skąd pochodzi każdy przykład i czy wolno ci go użyć, a żaden przypadek testowy nie znajduje się też w danych treningowych. Zrób je przed treningiem, bo model uczy się wadliwych przykładów równie wiernie jak dobrych.
Dlaczego sprawdzenie danych idzie przed treningiem
Żadne ustawienie treningu nie zrównoważy błędnych odpowiedzi w danych. W SFTTrainer z Hugging Face TRL funkcją straty jest entropia krzyżowa na poziomie tokenów, a dla zbiorów typu prompt-completion domyślnie liczy się ją tylko na tokenach odpowiedzi. Model jest nagradzany za odtwarzanie zapisanych odpowiedzi token po tokenie, łącznie z niedbałymi etykietami i wycofanymi zasadami.
Dokumentacja fine-tuningu OpenAI, napisana dla hostowanej platformy zamkniętej już dla nowych użytkowników, zaleca start od około 50 starannie przygotowanych przykładów i przemyślenie zadania lub promptu, jeśli nic nie zmieniają. Ta rada dotyczy też modeli z otwartymi wagami.
Porównaj zapisane odpowiedzi z oceną ekspertów
Dane historyczne wyglądają jak etykiety, ale często nimi nie są. Kategorie zgłoszeń wybiera się w pośpiechu, pola poprawia się dalej w procesie bez zapisania poprawki z powrotem, a flagi oszustw odzwierciedlają reguły, które od tamtej pory się zmieniły. Przed treningiem poproś eksperta dziedzinowego o oznaczenie losowej próbki bez wglądu w zapisaną odpowiedź i przypisz każdą rozbieżność do jednej z tych grup.
- Błędna etykieta: zapis jest po prostu niepoprawny. Popraw go albo usuń.
- Luka w wytycznych: dwóch ekspertów się nie zgadza, bo zasady nie rozstrzygają przypadku. Najpierw spisz regułę, potem oznaczaj ponownie.
- Nieaktualna odpowiedź: poprawna według starej polityki, błędna według obecnej. Odfiltruj według daty albo oznacz ponownie.
- Etykieta z perspektywy czasu: odpowiedź zależy od informacji, które pojawiły się później, na przykład od chargebacku kilka tygodni po decyzji. Wejście może zawierać tylko to, co było wiadomo w chwili decyzji.
Jeśli dwóch ekspertów zgadza się ze sobą rzadziej, niż model ma się zgadzać z nimi, najpierw popraw definicję zadania.
Porównaj przykłady z ruchem, który trafi do modelu
Poprawny zbiór wciąż może być niereprezentatywny. Porównaj dane wejściowe z produkcji z ostatniego miesiąca ze zbiorem treningowym według kategorii, języka, szablonu dokumentu, segmentu klienta i długości wejścia.
Rzadkie klasy licz osobno. Wskazówki do Hugging Face Evaluate zauważają, że przy 99 zwykłych przypadkach i jednym oszustwie model, który zawsze odpowiada, że wszystko jest w porządku, ma 99 procent trafności i nie wyłapuje niczego. Kosztowne przypadki raportuj oddzielnie.
Długość to test, o którym zespoły zapominają. W wersji TRL opisanej w dokumentacji w chwili pisania SFTTrainer przycina sekwencje dłuższe niż max_length, domyślnie 1024 tokeny, i zostawia początek. Licz tokeny tokenizerem modelu bazowego. Jeśli długie dokumenty przekraczają twój limit, podnieś go albo zmień strukturę wejścia, inaczej model uczy się na przykładach z uciętą odpowiedzią.
Zapisz, skąd pochodzi każdy przykład
Gebru i współautorzy zaproponowali, by każdy zbiór danych miał kartę opisującą cel, skład, sposób zebrania i zalecane zastosowania. Dla zbioru do fine-tuningu wystarczy jedna strona na źródło danych, jeśli zapisuje poniższe informacje.
- System źródłowy i zapytanie, którym pobrano dane, wraz z zakresem dat
- Kto wytworzył każdą etykietę: człowiek, reguła, późniejszy wynik czy inny model
- Wersja wytycznych, według których powstały etykiety
- Pola z danymi osobowymi lub poufnymi i sposób, w jaki je usunięto lub zachowano
- Podstawa, na której dane mogą posłużyć do treningu, potwierdzona przez waszych doradców ds. ochrony danych i prawników
Oznacz przykłady wygenerowane przez model lub syntetyczne, sprawdź ich próbkę równie starannie jak etykiety od ludzi i nie dopuszczaj ich do zbioru testowego, żeby móc je usunąć, gdyby później pojawił się problem.
Trzymaj przypadki testowe z dala od danych treningowych
Zbiór testowy mówi coś tylko wtedy, gdy model go nie widział. Lee i współautorzy stwierdzili, że nakładanie się danych treningowych i testowych dotyczyło ponad 4 procent przykładów walidacyjnych w badanych standardowych zbiorach. Dane biznesowe bywają gorsze: maile z szablonów, powtarzające się faktury i jedna sprawa zapisana jako kilka zgłoszeń dają mnóstwo prawie-kopii.
Deduplikuj przed podziałem, na znormalizowanym tekście lub z progiem podobieństwa, a nie tylko po dokładnych dopasowaniach. Potem ustal, na co model ma uogólniać. Jeśli będzie spotykał nowych dostawców lub szablony, odłóż całych dostawców. Jeśli będzie widział głównie przyszłe faktury od znanych dostawców, dziel według czasu, tak by okres testowy następował po treningowym. Losowy podział wierszy nie odpowiada na żadne z tych pytań.
Zamroź zbiór testowy i daj mu właściciela spoza zespołu trenującego.
Przykładowy audyt hipotetycznego zbioru faktur
Załóżmy, że zespół finansowy chce, by mały model wyciągał dwanaście pól z faktur dostawców, i ma 8000 faktur poprawionych przez księgowych. Wszystkie liczby są hipotetyczne, a progi ustala się, zanim ktokolwiek zobaczy wyniki.
- 1
Audyt próbki
Ekspert ponownie oznacza 300 losowych faktur, nie widząc zapisanych wartości. Cel: 97 procent zgodności na poziomie pól. Wynik: 93 procent, bo poprawek VAT wprowadzonych w ERP nigdy nie zapisano z powrotem.
- 2
Popraw źródło
Etykiety zostają odtworzone z końcowych wartości w ERP, a nowa próbka przekracza teraz próg.
- 3
Tabela pokrycia
Skany faktur to 9 procent ruchu z ostatniego kwartału, ale tylko 80 z 8000 przykładów. Zespół dodaje 700 oznaczonych skanów, co daje 780 z 8700, blisko celu 9 procent.
- 4
Test długości
6 procent faktur przekracza 1024 tokeny. Limit zostaje podniesiony, a faktury wielostronicowe dostają osobny wycinek testowy.
- 5
Deduplikacja i podział
Po usunięciu prawie-duplikatów zostaje 7350 z 8700 rekordów, a zespół sprawdza, czy skany nadal stanowią blisko 9 procent. Co miesiąc dochodzą nowi dostawcy, więc 20 procent dostawców trafia w całości do zbioru odłożonego, a drugi zbiór testowy obejmuje ostatni miesiąc od znanych dostawców.
- 6
Karta danych
Jedna strona opisuje źródła, pochodzenie etykiet, wersję wytycznych, usunięte pola osobowe i zgodę doradców.
Trening zaczyna się po kroku szóstym. Tam, gdzie wyniki nigdy nie są zapisywane albo eksperci nie zgadzają się w wielu przypadkach, najpierw zdefiniuj zadanie, a dopiero potem myśl o fine-tuningu.
Pytania
Ile przykładów potrzebujemy, żeby fine-tuning miał sens?
Nie ma uniwersalnej liczby. Dokumentacja OpenAI wspomina o poprawie przy 50 do 100 przykładach w niektórych zadaniach. Przy klasyfikacji lub ekstrakcji licz przykłady w każdej kategorii, także rzadkiej, i odłóż zbiór testowy na tyle duży, by pokazał różnicę.
Kto powinien przeprowadzić audyt danych, nasz zespół czy dostawca?
Etykiety oceniają twoi eksperci dziedzinowi, bo znają aktualne zasady. Partner inżynierski może zautomatyzować losowanie próbek, deduplikację i liczenie tokenów, żeby uruchamiały się przy każdej zmianie danych. Gdy tę pracę wykonuje Cloudsail, odbywa się ona w twoim środowisku, a dane tam zostają.
Powiązane usługi
Trenowanie własnych modeli
Mały model open-weight wytrenowany do jednego zadania i porównany z twoim obecnym modelem pod względem kosztu i dokładności.
Inżynieria i architektura AI
Asystenci, interfejsy głosowe i agenci w produktach, które sprzedajesz, razem z serwowaniem modeli i wyszukiwaniem pod spodem.
Więcej z bloga
Ocena dostrojonego modelu
Jak wykazać, że dostrojony model powinien zastąpić obecny: kryteria akceptacji spisane z góry, uczciwe porównanie na odłożonych przypadkach oraz koszt i opóźnienie w tej samej tabeli.
Zadania dla małych modeli
Jak znaleźć zadania o dużym wolumenie, z którymi mały model językowy poradzi sobie niezawodnie: lista kontrolna, test przed jakimkolwiek treningiem i porównanie kosztów przy twoim wolumenie.
Kompromisy destylacji modeli
Kiedy destylacja dużego modelu do mniejszego jest warta pracy: ile kosztuje nauczyciel, czego wymaga każda metoda, jaką jakość można stracić i jak to sprawdzić.
Porozmawiaj z inżynierem
Przyjdź z jednym zadaniem, które chcesz usprawnić. Rozmowa trwa 30 minut i nie wymaga dostępu do twoich systemów ani danych.
Rezerwacja odbywa się w Kalendarzu Google.
Wolisz najpierw napisać? Zostaw adres e-mail i kilka zdań, a odpowiemy, proponując terminy.
Sprawdź wersję roboczą w swoim programie pocztowym
Wyślij ją stamtąd, a inżynier odpowie ci osobiście, proponując terminy 30-minutowej rozmowy. Jeśli wersja robocza się nie otworzyła, napisz do nas na adres miki@cloudsail.com.