Jak funguje jazykový model

Generativní jazykový model předpovídá, jaké slovo má následovat.

Jak by například mohla pokračovat tato věta?

Tatínek ráno vstal a šel do…

Tatínek ráno vstal a šel do…

  • práce
  • koupelny
  • kina
  • koňské

Možností je spousta, některé jsou lepší než jiné, ale neexistuje jen jedna správná odpověď!

Proto může jazykové model na stejné zadání odpovědět pokaždé jinak!

Jazykový model se potřebuje z nějakých dat naučit, jak vypadá jazyk.

Dat je naštěstí plný internet.

Jazykový model si tak může přečíst miliony novinových článků, knih, filmových titulků a dalších dokumentů z internetu.

Jednoduchý n-gramový model (například 3-gramový), jaké se používaly dříve, pak v těchto textech počítá, jak časté jsou skupiny slov dané délky (například trojice slov).

Pro vygenerování pokračování daného textu se pak prostě podívá, jak časté jsou různé možnosti pokračování (přičemž vždy kouká jen na několik posledních slov).

Která z těchto možností si myslíte, že je v textech na internetu častější?

  • šel do práce
  • šel do koňské

Počty výskytů těchto trojic slov (v textech české Wikipedie) jsou:

  • šel do práce 1640x
  • šel do koňské 8x

Jazykový model by tedy nejspíš vybral pokračování "šel do práce"

Zkusme to ještě jednou

Která z těchto možností si myslíte, že je v textech na internetu častější?

  • šel do koupelny
  • šel do kina

Počty výskytů těchto trojic slov (v textech české Wikipedie) jsou:

  • šel do koupelny 372x
  • šel do kina 287x

Jazykový model nevybírá vždy nejpravděpodobnější variantu, ale náhodně si zvolí jednu z pravděpodobných variant.

V tomto případě by tedy vybral o něco častěji "šel do koupelny" než "šel do kina" (a ještě mnohem častěji "šel do práce")...

...ale model si může vybrat kteroukoliv z těchto možností, klidně pokaždé jinou.

Vygenerované slovo se stane součástí textu...

...a tento text zase zadáním pro další krok modelu, který se na něj pokusí dále navázat.

Jazykový model tedy generuje postupně slovo po slově, větu po větě, až vygeneruje celý text.

Dnešní modely založené na hlubokých umělých neuronových sítích jsou pokročilejší:

  • dívají se na větší počet předchozích slov než dvě nebo tři (například GPT-3 se dívá až na 2000 předchozích slov)
  • vybírají si, která z předchozích slov jsou nejdůležitější a na ta zaměřují větší pozornost (pomocí mechanismu zvaného attention)
  • umějí odhadnout podobnost významů slov (pomocí měření kosinové podobností slovních embeddinků)
  • počítají složitější matematické operace než jen obyčejné porovnávání, co je častější

Ale i nejmodernější modely jsou stále omezené tím, že se učí z dostupných textových dat.

Texty na internetu mají všelijaké problémy (například rasismus nebo sexismus), které se jazykové modely naučí napodobovat. Je proto potřeba je dále filtrovat a upravovat, abychom se aspoň trochu zbavili jejich nevhodného chování.

Texty ale mají i další problémy, které nejdou snadno filtrovat. Pokud například v textech něco chybí nebo to není dost časté, model se to nezvládne naučit.

Jazykový model vnímá svět jen skrze texty (a případně obrázky u novějších verzí), ale nemá lidské vnímání světa kolem sebe ani zkušenosti s interakcí se světem.

  • Je to trochu jako kdybyste jen seděli doma a četli si o světě venku knížky a zprávy na internetu, ale nikdy byste doopravdy nešli ven.
  • Vaše představa o tom, jak svět doopravdy vypadá a jak funguje, by nutně byla velmi podivná a zkreslená.