Logitit: muuta pisteitä ennen tokenin valintaa
Logitit (logits) ovat mallin normalisoimattomia pisteitä. Kielimalli tuottaa yhdessä sijainnissa pisteen jokaiselle sanaston tokenille, ja softmax muuntaa pisteet todennäköisyyksiksi.
Softmaxille merkitsevät vain piste-erot. Saman vakion lisääminen kaikkiin logitteihin säilyttää jakauman, kun taas erojen kertominen muuttaa sen keskittymistä.
Estä token pisteiden tasolla
NumPy-esimerkki estää yhden ehdokkaan ennen normalisointia ja otantaa. Luvut ovat havainnollistavia mallin ulostuloja.
import numpy as np
logits = np.array([2.4, 1.2, -0.5, 0.8])
logits[1] = -np.inf
probabilities = np.exp(logits - logits.max())
probabilities /= probabilities.sum()
next_id = np.random.default_rng(7).choice(len(logits), p=probabilities)
Estetyn tokenin todennäköisyys on nolla, ja muiden summa on yksi. Suurimman pisteen vähentäminen ennen eksponenttifunktiota parantaa numeerista vakautta muuttamatta jakaumaa.
Logitti ei ole todennäköisyys, eikä tokenin todennäköisyys tai suuri piste takaa väitteen totuutta. Koulutushäviö ottaa usein logitit suoraan ja tekee vakaan normalisoinnin sisäisesti. Rajapinnan merkitys on pidettävä selvänä, jotta softmaxia ei tehdä kahdesti.