Back to archive
#ai#llm#glossary#aigen

Cross-entropy

Cross-entropy mierzy, jak rozkład przewidywany przez model pasuje do rozkładu docelowego. W uczeniu modelu językowego może pełnić rolę funkcji straty: przypisanie małego prawdopodobieństwa tokenowi z danych zwiększa karę.

H(q,p)=i=1nqilnpiH(q,p)=-\sum_{i=1}^{n}q_i\ln p_i

qiq_i oznacza docelowe prawdopodobieństwo kandydata ii, a pip_i prawdopodobieństwo przewidywane. Gdy etykieta wskazuje jeden poprawny token yy, cały wzór upraszcza się do lnpy-\ln p_y. Softmax może wyznaczyć rozkład z logitów; Cross-entropy ocenia go względem celu. Dokumentacja PyTorch: CrossEntropyLoss opisuje oba rodzaje etykiet. Ta konkretna funkcja przyjmuje bezpośrednio logity, więc nie należy wcześniej przepuszczać ich przez Softmax.

Co oznacza wartość straty

Własny przykład: model przypisuje poprawnemu tokenowi prawdopodobieństwo 0,8. Strata wynosi około 0,223. Przy prawdopodobieństwie 0,2 rośnie do około 1,609. Używamy logarytmu naturalnego. Dwa modele mogą wskazać ten sam token jako najbardziej prawdopodobny, a mimo to uzyskać różną stratę, ponieważ liczy się także przypisana mu wartość.

Przy Autoregressive Language Modeling celem jest kolejny token z tekstu. Minimalizowanie średniej takiej straty odpowiada maksymalizowaniu log-likelihood danych, bez uwzględnienia dodatkowych składników regularyzacji. Taką postać celu opisują Bengio et al., A Neural Probabilistic Language Model, §2.

Średnia musi dotyczyć właściwych pozycji: padding oraz tokeny wyłączone z oceny nie powinny jej zmieniać. Przy miękkich etykietach celu nie wolno zastępować pełnej sumy pojedynczym lnpy-\ln p_y. Z uśrednioną stratą dla pojedynczych tokenów wiąże się Perplexity.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.