Jazykové modely hľadajú opakujúce sa vzory
Veľké jazykové modely (LLM) vynikajú v hľadaní opakujúcich sa vzorov. Nehovorím to v zmysle zjednodušujúceho redukcionistického argumentu "jazykové modely sú len X". Verím, že pohľad na jazykové modely ako na systémy rozpoznávajúce vzory nám pomáha pochopiť, ako fungujú a ako na ich výkon vplýva veľkosť modelu a obsah promptu.
Ako neurónové siete používajú vzory
Realita je komplikovaná, často zahŕňa nekonečný rad výnimiek. Neurónové siete zvládajú túto zložitosť tým, že zachytávajú jednoduché opakujúce sa vzory, ktoré približne opisujú realitu, namiesto toho, aby sa ju snažili presne modelovať. Tieto vzory fungujú na viacerých úrovniach abstrakcie — od základnej jazykovej syntaxe cez štruktúru textu až po stratégie uvažovania. Sú uložené v parametroch neurónovej siete, ako aj v kontextovej pamäti (KV cache), ktorá vzniká pri spracovaní promptu.
Hoci sú vzory výpočtovo efektívne a dajú sa nájsť pomocou gradientového zostupu a pomocou mechanizmu kontextovej pamäte, samé osebe nie sú spoľahlivé. Neurónové siete to kompenzujú zhromažďovaním veľkého množstva vzorov, aby z nich vyskladaly komplexnejší model sveta. Výstup jazykového modelu vzniká kombinovaním signálov z mnohých vzorov pri generovaní každého tokenu, podobne ako hudba vzniká z prekrývajúcich sa vĺn, ktoré sa menia v čase.
Dôležité je, že väčšie množstvo vzorov nezväčšuje len rozsah znalostí, ale aj ich hĺbku, pretože mnohé vzory opisujú ten istý jav z rôznych uhlov pohľadu. Vrstvená štruktúra jazykových modelov umožňuje formovanie abstraktnejších vzorov, ktoré sa opierajú o jednoduchšie vzory v nižších vrstvách.
Štatistický pohľad
Z matematického hľadiska možno každý vzor vnímať ako kombináciu správneho pravidla a náhodného šumu. Keď viaceré vzory opisujú ten istý jav, zhlukujú sa okolo správneho pravidla, pričom šum ich vychyľuje náhodnými smermi. Podľa centrálnej limitnej vety má spriemerovanie súvisiacich vzorov tendenciu redukovať šum a odhaľovať správne pravidlo. Hoci neurónové siete dokážu robiť sofistikovanejšiu agregáciu než jednoduchý priemer, táto základná intuícia o redukcii šumu deštruktívnou interferenciou stále platí.
Dôsledky pre výkon modelu
Ak jazykové modely chápeme ako systémy, ktoré hľadajú opakujúce sa vzory, vieme lepšie predvídať faktory ovplyvňujúce ich výkon. Za každou chybou a halucináciou jazykového modelu možno vystopovať nejaký príliš jednoduchý vzor, ktorý model zvedie z cesty. Vývojári aplikácií jazykových modelov majú k dispozícii niekoľko možností, ako tieto chyby minimalizovať.
Veľkosť modelu zvyšuje rozmanitosť vzorov. Malé modely píšu "neistou rukou", blúdiac okolo správneho výstupu, akoby im neustále skĺzavala ruka, pretože majú menej vzorov, ktoré produkujú priemery s väčším množstvom šumu. Väčšie modely píšu "pevnou rukou", generujú presnejšie a sústredenejšie výstupy, pretože pracujú s väčším množstvom vzorov, ktoré majú stabilné priemery.
Context stuffing (po slovensky asi vypchávanie kontextu) dodáva modelu vzory špecifické pre danú úlohu prostredníctvom kontextového učenia. Všetky techniky context stuffingu sa v konečnom dôsledku snažia naplniť kontextovú pamäť relevantnými vzormi. Príklady (few-shots) sú obzvlášť účinné, najmä pri menších modeloch, pretože vzory sa ľahšie ťažia z konkrétnych príkladov. Naopak, irelevantné informácie v kontexte zhoršujú výkon pridávaním šumu.
Špecializácia zlepšuje relevantnosť vzorov zakódovaných v parametroch modelu. Fine-tunované modely a predtrénované špecializované modely majú výhodu nielen v tom, že obsahujú viac relevantných vzorov, ale aj v tom, že majú menej rušivých, irelevantných vzorov.
Kompresia kontextu sa môže javiť ako atraktívne riešenie, kým si neuvedomíte, že obmedzuje počet vzorov, ktoré sa dajú zhromaždiť na jeden token kontextu. Kontextová pamäť je nevyhnutne veľká, pretože rozmanitosť vzorov je pre výkon modelu kľúčová. Nadmerná kompresia kontextovej pamäte znižuje túto rozmanitosť, zvyšuje množstvo šumu a v konečnom dôsledku podkopáva výkon modelu.
Pri vývoji aplikácie by ste sa najprv mali zamerať na zlepšenie relevantnosti vzorov obohatením kontextu o príklady (few-shots) a informácie špecifické pre danú úlohu, filtrovaním irelevantných informácií a výberom alebo fine-tuningom špecializovaného modelu. Keď to nestačí, ďalším krokom je pokúsiť sa zvýšiť rozmanitosť vzorov použitím väčšieho modelu s rozsiahlejšou kontextovou pamäťou.