引子
刚入门大模型的时候,由于线性代数、概率论和信息论等数学知识的短板,很容易迷失在诸多术语中:logprob(对数概率)、likelihood(似然)、NLL(Negative Log Likelihood,负对数似然)、cross entropy(交叉熵)、perplexity(困惑度)。它们常常出现在论文和文档的各种角落里,但都像点赞之交的朋友,频见其名,不解其意。
后来某天,在慢慢的补过一些最基础的数学知识后,在公司相关的上下文浸淫足够久后,终于在某次和 ChatGPT 的聊天中发现:上面一组概念本质上是同一件事的不同面向的侧写。从概率论的门摸进去叫 NLL,从信息论的门踏进去叫交叉熵,从 PyTorch 的门看进去叫 F.cross_entropy——殊途同归,本质上都是在试图刻画"模型当前输出离预期还有多远"。
“横看成岭侧成峰”,在大模型这种高维上下文的领域中,这种盲人摸象的感觉所在多有。不过我们这种三维生物,也只能靠长久的浸淫,才能靠着不同领域知识的交叉验证,才会突然有一天顿悟——嗷,原来这是同一座山。
本文想做的,就是想聊聊大模型领域中最基础概念——交叉熵这个损失函数的“一花各表”。


