Przewodnik 12: Którego zbioru danych użyć? Kompletny przewodnik po wyborze

Autor: Jakub RusinowskiOstatnia aktualizacja 7 min czytaniaZaawansowany

Wybór właściwego zbioru danych to pojedynczo największy czynnik udanego przebiegu fine-tuningu. Ten przewodnik przecina zamęt praktycznym frameworkiem decyzyjnym.


Pięć kategorii zbiorów danych

KategoriaCzym jestKiedy używać
PretreningSurowy tekst na masową skalę (sieć, książki, kod)Trenowanie modelu od zera — wymaga 100B+ tokenów i poważnych klastrów GPU
InstrukcjaPary prompt + odpowiedź uczące model podążania za instrukcjamiNajczęstszy cel fine-tuningu — zmienia model bazowy w asystenta
PreferencjaPary wybrana/odrzucona odpowiedź dla dopasowania (RLHF/DPO)Po SFT, gdy chcesz uczynić odpowiedzi bardziej pomocnymi, bezpiecznymi lub stylistycznie dopasowanymi
KodKod źródłowy, problemy programistyczne i rozwiązaniaBudowanie asystenta kodowania lub poprawa zdolności programistycznych modelu
EwaluacjaBenchmarki mierzące możliwości modelu (nie do treningu)Testowanie i porównywanie modeli — uruchom je po fine-tuningu, by zmierzyć poprawę

Szybka tabela decyzyjna: cel → zbiór danych

Twój celKategoriaNajlepsze wybory
Stworzyć pomocnego asystenta czatuInstrukcjaStanford Alpaca, ShareGPT 52K, OpenHermes 2.5
Nauczyć złożonego rozumowaniaInstrukcjaWizardLM Evol Instruct 70k
Mały, ale potężny asystentInstrukcjaLIMA (1k), Smoltalk
Zbudować asystenta kodowaniaKodMagicoder-OSS-Instruct, CodeFeedback
Wstępnie wytrenować model koduKodThe Stack v2
Dopasować do preferencji ludzkichPreferencjaAnthropic HH-RLHF, UltraFeedback
Szybki lokalny eksperyment DPOPreferencjaDPO Mix 7K
Jakość rozmowy wieloturowejInstrukcjaShareGPT 52K
Zbenchmarkować dostrojony modelEwaluacjaMMLU (wiedza), HumanEval (kod), MT-Bench (czat)

Sygnały jakości zbioru danych

Nie wszystkie zbiory danych są równe. Oto jak ocenić jeden przed zaangażowaniem:

Dobre sygnały:

  • Wysoka liczba miesięcznych pobrań (>500k sugeruje zaufanie społeczności)
  • Poparty opublikowaną pracą z badaniami ablacyjnymi
  • Jasna licencja (Apache 2.0 lub MIT do użytku komercyjnego, CC-BY-NC do badań)
  • Udokumentowane jawne kroki deduplikacji i filtrowania jakości
  • Przejrzyste źródło danych (napisane przez człowieka > GPT-3 > nieznany LLM)

Znaki ostrzegawcze:

  • Brak określonej licencji
  • „Wygenerowane przez GPT-4" bez filtrowania jakości
  • Bardzo niska liczba pobrań dla starego zbioru
  • Brak pracy, wpisu na blogu lub dokumentacji technicznej
  • Zawiera tekst chroniony prawem autorskim zeskrobany bez pozwolenia

Jakość vs ilość: lekcja LIMA

Praca LIMA (2023) dokonała uderzającego odkrycia: model dostrojony na zaledwie 1000 starannie wyselekcjonowanych przykładach był konkurencyjny wobec modeli trenowanych na milionach przykładów z zaszumionych zbiorów.

Kluczowy wniosek: dopasowanie powierzchniowe jest płytkie. Modele mają już wiedzę o świecie z pretreningu. Fine-tuning uczy formatu i stylu, nie nowych faktów. Mały, wysokiej jakości zbiór (200–1000 przykładów) często przewyższa duży, zaszumiony (100k+).

Praktyczna zasada: Zacznij od 500–2000 wysokiej jakości przykładów specyficznych dla Twojego zadania. Skaluj tylko wtedy, gdy wyczerpią się dobre przykłady.


Gdzie znaleźć więcej zbiorów danych

  • Hugging Face Datasets — Szukaj według zadania, języka, licencji. Sortuj według pobrań.
  • Papers With Code — Zbiory danych z powiązanymi pracami i tablicami wyników.
  • r/LocalLLaMA — Społeczność co tydzień dzieli się nowymi zbiorami do fine-tuningu.
  • DataComp — Systematyczny benchmark metod kuracji danych.

Budowanie własnego zbioru danych

Czasem najlepszy zbiór danych jeszcze nie istnieje. Oto minimalne wykonalne podejście:

1. Zdefiniuj precyzyjnie swoje zadanie — „obsługa klienta produktu SaaS" bije „pomocnego asystenta"

2. Zbierz 200–500 przykładów — realne pytania użytkowników + idealne odpowiedzi, lub syntetyzuj z Claude/GPT-4

3. Użyj formatu JSONL:

jsonl
{"messages": [{"role": "user", "content": "How do I reset my password?"}, {"role": "assistant", "content": "Click 'Forgot Password' on the login page..."}]}
{"messages": [{"role": "user", "content": "Where can I find my invoice?"}, {"role": "assistant", "content": "Invoices are in Settings → Billing → Invoice History."}]}

4. Iteruj na porażkach — po jednym przebiegu fine-tuningu zobacz, które typy zapytań model myli, dodaj więcej przykładów dla tych przypadków.

5. Mieszaj z danymi ogólnymi — połącz swoje własne dane 50/50 z ogólnym zbiorem instrukcji jak OpenHermes 2.5, by zapobiec katastrofalnemu zapominaniu.