1. 语言模型的两大流派:自编码与自回归
第一次接触大语言模型时,很多人会被各种术语绕晕。其实从损失函数的角度来看,现代语言模型主要分为两大阵营:自编码式(如BERT)和自回归式(如GPT、GLM)。这两种模型在处理文本时,就像两种不同的阅读方式。
想象你在玩填字游戏。自编码模型就像同时看到谜题的左右提示,可以双向推理空白处的内容;而自回归模型则像只能看到左侧提示,必须按顺序逐个猜测。这种根本差异直接影响了它们的损失函数设计。
我在实际项目中使用BERT和GLM时发现,选择哪种模型往往取决于任务特性。比如需要理解完整上下文的任务(如文本分类),BERT的双向优势明显;而需要生成连贯文本的场景(如对话系统),自回归模型的表现更自然。这背后的关键就在于它们的损失函数如何引导模型学习。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. BERT的损失函数设计解析
2.1 掩码语言模型的巧妙设计
BERT的核心创新是**Masked Language Model (MLM)**任务。具体实现时,它会随机遮盖输入文本中15%的token(比如把"city"变成"[MASK]"),然后让模型预测被遮盖的词。这个过程的损失函数计算非常讲究:
python复制def mlm_loss(masked_positions, logits, true_labels):
# 只计算被mask位置的损失
masked_logits = logits[masked_positions] # shape: [num_masked, vocab_size]
loss = cross_entropy(masked_logits, true_labels)
return loss
这种设计带来三个实战要点:
- 动态掩码:每次epoch重新随机选择掩码位置,避免模型记忆固定模式
- 部分替换:不是所有被选中的token都变成[MASK],10%保持原词,10%替换为随机词
- 全词掩码:对中文等语言,更推荐掩码整个词语而非单个字
2.2 下一句预测的辅助作用
BERT的第二个损失项是Next Sentence Prediction (NSP)。这个二分类任务判断两个句子是否连续,其损失函数看似简单却
