困惑度如何成为语言模型评估的黄金标准:从信息论到现代大模型的五十年演进

一个语言模型的好坏,究竟该如何衡量? 假设你训练了两个语言模型。模型A对句子"猫坐在垫子上"给出了0.01的概率,模型B给出了0.001的概率。哪个模型更好?直觉告诉我们模型A更好——它对真实存在的句子赋予了更高的概率。但如果模型A对所有句子都赋予高概率呢?包括那些毫无意义的句子组合? ...

9 min · 4499 words

Softmax函数:为什么这个公式统治了神经网络的概率输出

在神经网络的输出层,我们经常看到这样一个公式: $$\text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}$$它看起来如此简单——指数、求和、归一化。但为什么是这个特定的形式?为什么不直接除以总和?为什么要有指数?为什么这个函数能统治从图像分类到大语言模型的几乎所有概率输出? ...

12 min · 5596 words

为什么千亿参数模型的词表只有32K?从压缩效率到计算最优的完整解析

同样的文本内容,在一个模型中可能只需要100个token,在另一个模型中却可能膨胀到300个。这背后的差异源于一个经常被忽视但至关重要的设计决策:词表大小的选择。 ...

14 min · 6706 words
Blog Cover

大模型训练中的学习率调度:从线性预热到WSD策略的技术演进

训练过大模型的人都知道,学习率是最关键的超参数之一。设置得太小,训练几个月也收敛不了;设置得太大,模型直接发散。但即使找到了一个看似合适的初始值,直接从头到尾使用恒定学习率,效果往往也不尽如人意。 ...

12 min · 5596 words
Blog Cover

大模型为何普遍选择AdamW而非SGD:从自适应学习率到解耦权重衰减的技术解析

打开任何一个大语言模型的训练代码——GPT-3、LLaMA、BERT、Mistral——你会发现一个惊人的共性:它们清一色使用AdamW优化器。不是经典的随机梯度下降(SGD),不是带动量的SGD,而是AdamW。 ...

10 min · 4911 words

SwiGLU为何成为大模型的标配:从ReLU到门控激活函数的十五年演进

2017年,Transformer论文发表时,作者选择了一个看似平淡无奇的组件作为前馈神经网络(FFN)的激活函数:ReLU。这个在2011年被重新发现的函数,因其计算简单、梯度稳定而成为深度学习的标配。然而,到了2023年,几乎所有新发布的大语言模型——LLaMA、PaLM、Mistral——都在FFN层抛弃了ReLU,转而采用一个名字拗口的组合:SwiGLU。 ...

14 min · 6895 words
Blog Cover

大模型是如何被训练出来的?从预训练到对齐的三阶段技术全景

当我们与一个训练完成的大语言模型对话时,它似乎能理解我们的问题、组织连贯的回答、甚至在某些领域展现出接近专家的知识水平。但这个"智能体"并非凭空诞生——在它能说出第一句话之前,背后是一个历时数月、耗资千万美元、涉及万亿级token的复杂训练过程。 ...

18 min · 8885 words