Architektura transformeru je dnes v podstatě vyřešená. Rozdíly mezi špičkovými modely nevznikají tím, že by někdo vymyslel lepší attention, ale tím, na čem se model učil. Data jsou největší páka na kvalitu modelu a zároveň nejméně popsaná část celého oboru, protože je to zároveň konkurenční výhoda i právní riziko. Tahle kapitola ukazuje, co se s textem musí stát, než se z něj stane trénovací dávka.
Cesta od webu k dávce
Z každého kroku vypadne většina vstupu. Z původních petabajtů zbude řádově jednotky procent. Ta selekce je ten produkt.
Filtrace kvality
Cílem není hezký text, ale text, ze kterého se dá něco naučit. Používají se dvě vrstvy:
Heuristiky. Levné, pouštějí se na všechno. Vyhazují dokumenty podle délky řádků, poměru symbolů k písmenům, podílu duplicitních řádků, počtu slov ve slovníku běžné řeči, přítomnosti seznamů odkazů. Cílem je odstranit šablony, automaticky generovaný obsah a strojový překlad.
Klasifikátor. Malý model natrénovaný na tom, aby odlišil „text podobný referenční sadě“ (encyklopedie, učebnice, dobře psané články) od průměru webu. Používá se jako skóre, podle kterého se dokumenty řadí a bere se horní část.
Pozor na past: agresivní filtrace podle „kvality“ systematicky vyhazuje menšinové dialekty, neformální psaní a jazyky s menším zastoupením. Model pak umí jen jeden registr jazyka.
Deduplikace: nejlevnější zlepšení, jaké existuje
Web je z velké části kopie sebe sama. Bez deduplikace model spoustu pasáží prostě odříkává.
| Typ | Co hledá | Nástroj |
|---|---|---|
| Přesná | identické dokumenty | hash celého textu |
| Přibližná | dokumenty lišící se v detailech | MinHash a LSH nad n gramy |
| Řádková | opakující se bloky napříč weby (patičky, cookie lišty) | počítání četností řádků |
| Napříč epochami | tentýž dokument viděný vícekrát | plánování pořadí dat |
Efekt je měřitelný přímo na výsledné kvalitě: deduplikovaný korpus dá při stejném počtu tokenů lepší model než syrový, protože model neplýtvá kapacitou na memorování.
Dekontaminace: proč benchmarkům nelze věřit
Když se do trénovacích dat dostane testovací sada, model má skvělá čísla a v praxi selhává. Stane se to snadno, protože benchmarky jsou veřejné a na webu se kopírují.
Postup je stejný jako u deduplikace, jen se místo duplicit hledá překryv s testovacími sadami: najdou se dokumenty obsahující delší doslovné úseky z testů a vyhodí se. Kdo dekontaminaci nedělá nebo o ní nemluví, jeho benchmarkovým číslům nelze věřit.
Prakticky: pokud vybíráš model podle tabulek, dívej se, jestli poskytovatel dekontaminaci popisuje, a hlavně ověř model na vlastních datech, která nikde nebyla zveřejněna.
Míchání zdrojů
Poměr zdrojů je jedno z mála čísel, které opravdu rozhoduje o charakteru modelu.
| Zdroj | Co dává | Poznámka |
|---|---|---|
| Filtrovaný web | šíře znalostí, běžný jazyk | největší objem |
| Kód | strukturované uvažování | pomáhá i na neprogramátorské úlohy |
| Odborné a technické texty | přesnost, terminologie | malý objem, velký dopad |
| Knihy | dlouhý souvislý kontext | právně nejcitlivější |
| Vícejazyčná data | znalost dalších jazyků | u češtiny rozhoduje o kvalitě |
| Syntetická data | cílené dovednosti | riziko sbírání vlastních chyb |
Zajímavý a opakovaně potvrzený jev: přidání kódu zlepší i schopnosti, které s programováním nesouvisejí. Předpokládá se, že kód nutí model modelovat dlouhé závislosti a přesnou strukturu.
Zdroje se navíc nemíchají rovnoměrně. Kvalitní malé korpusy se opakují víckrát, web méně, a poměry se během tréninku mění: ke konci se přidává víc kvalitních a odbornějších dat.
Kolik dat vlastně potřebuješ
Odpověď dávají scaling zákony, ale prakticky: dnešní modely se trénují hluboko za bodem, který Chinchilla označila za výpočetně optimální, protože se optimalizuje cena inference, ne cena tréninku. Menší model trénovaný na mnohem víc tokenech se pak levněji provozuje.
Důsledkem je, že se naráží na strop dostupného kvalitního textu. Odtud tlak na syntetická data, na lepší filtraci a na vytěžení dalších modalit.
Syntetická data
Data vygenerovaná jiným modelem. Používají se hlavně v pozdějších fázích, tam, kde přirozená data chybí: instrukce a odpovědi, ukázky uvažování krok za krokem, převod dokumentů na otázky.
Rizika, která se s tím pojí:
- Sbírání chyb. Model se učí omyly svého učitele včetně stylistických manýr.
- Zúžení rozmanitosti. Generovaný text je uhlazenější a variabilita klesá, což se projeví jako nudnější a předvídatelnější výstup.
- Uzavřená smyčka. Trénink na výstupech vlastního modelu bez nových reálných dat kvalitu snižuje. Syntetická data potřebují nějaké ukotvení: ověřitelné úlohy, testy, lidskou kontrolu.
Nejlépe fungují tam, kde jde výsledek ověřit: matematika, kód s testy, úlohy s jednoznačnou odpovědí. Tam je možné vygenerovat mnoho pokusů a nechat jen ty správné.
Právo a etika, stručně
Tohle není vyřešená oblast a přehled se rychle mění, ale pár věcí platí:
- Licence dat a autorská práva jsou předmětem soudních sporů, ne jasných pravidel.
- Rozdíl mezi tréninkem na veřejně dostupném textu a na textu za placenou zdí je zásadní.
- Osobní údaje v trénovacích datech naráží na GDPR, protože model je nedokáže cíleně zapomenout.
- Rostoucí část webu blokuje sběr dat, takže hodnota licencovaných korpusů stoupá.
Pro tebe jako uživatele z toho plyne konkrétní věc: pokud posíláš do modelu cizí data, zajímej se, jestli je poskytovatel používá k tréninku. Viz kapitola o bezpečnosti dat.
Kam dál
Na data navazuje moderní trénink, který popisuje, co se s nimi dělá dál, a tokenizer od nuly, protože slovník vzniká právě z nich. Proč se dnes trénuje déle, než by bylo výpočetně optimální, vysvětlují scaling zákony. Co se stane, když je v datech chyba, řeší když se trénink pokazí.
Cvičení
- Ve firemním korpusu je 30 % dokumentů duplicitních. Proč se vyplatí je vyhodit, i když tím přijdeš o třetinu objemu?
- Chceš model, který umí dobře česky. Co uděláš s poměrem zdrojů a co s tokenizerem?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
- Protože model na duplicitách plýtvá kapacitou: místo zobecňování si je pamatuje doslova. Deduplikovaný korpus dá při stejném počtu natrénovaných tokenů lepší model než syrový. Navíc duplicity zkreslují validaci, protože se tatáž pasáž snadno objeví v trénovací i testovací části, a ty pak měříš memorování místo schopnosti.
- Zvýšíš podíl kvalitní češtiny a natrénuješ tokenizer na datech, kde má čeština silné zastoupení. Samotný poměr dat nestačí: když tokenizer vznikl na převážně anglickém korpusu, česká slova se drolí na víc tokenů, takže na stejný text padne víc kontextu i peněz a model má těžší úlohu. Obojí se ladí společně, viz tokenizer.
Shrnutí
- Data jsou dnes větší páka na kvalitu než architektura a zároveň nejlépe střežené know how.
- Pipeline: extrakce, filtrace kvality, deduplikace, dekontaminace, míchání, tokenizace.
- Deduplikace zlepší model při stejném počtu tokenů, protože nemusí memorovat kopie.
- Bez dekontaminace nemají benchmarková čísla vypovídací hodnotu. Ověřuj na vlastních datech.
- Přidání kódu do dat zlepšuje i schopnosti nesouvisející s programováním.
- Syntetická data pomáhají tam, kde jde výsledek ověřit, jinak hrozí sbírání chyb a ztráta rozmanitosti.
Proč se deduplikace vyplatí, i když tím z korpusu ubude část tokenů?
Protože model na duplicitách plýtvá kapacitou: místo zobecňování si opakované pasáže pamatuje doslova. Deduplikovaný korpus proto dá při stejném počtu natrénovaných tokenů lepší model než syrový. Kromě přesných kopií se hledají i téměř shodné dokumenty přes MinHash a opakující se řádky typu patiček a cookie lišt.
Model má výborná čísla na veřejných benchmarcích, ale na tvých datech selhává. Co se pravděpodobně stalo?
Nejspíš kontaminace: testovací sady se dostaly do trénovacích dat, takže model odpovědi zná místo aby je odvozoval. Benchmarky jsou veřejné a po webu se kopírují, takže se to stane snadno. Proto se dělá dekontaminace, tedy vyhazování dokumentů s doslovným překryvem s testy, a proto se model vždy ověřuje na vlastních nezveřejněných datech.
Jaké je hlavní riziko tréninku na syntetických datech a kde naopak fungují dobře?
Hlavní riziko je sbírání chyb a zúžení rozmanitosti: model přebírá omyly i manýry svého učitele a jeho výstup se stává uhlazenějším a předvídatelnějším. Dobře fungují tam, kde jde správnost ověřit nezávisle, tedy u matematiky, kódu s testy a úloh s jednoznačnou odpovědí, protože se dá vygenerovat mnoho pokusů a ponechat jen ty ověřeně správné.
