1 什么是语言模型(Language Model)
P0 · rag
🏷 标签:language-model, llm, autoregressive, probability
1️⃣ 考察意图
面试官想考察你对语言模型本质的理解,而非背诵定义。这是典型的“概念+演进”题,刁钻点在于:能否从概率建模的数学本质出发,清晰区分统计LM、神经LM和现代LLM的差异,并点出“自回归”这一核心训练范式。答好了能展示:扎实的数学基础、对模型演进脉络的掌握、以及从“语言建模”到“涌现能力”的工程洞察力。
2️⃣ 标准答
定义与数学本质语言模型(Language Model)的核心是对token序列的概率分布建模,即计算联合概率 P(w_1, w_2, ..., w_n)。通过链式法则,分解为条件概率的乘积:P(w_1, w_2, ..., w_n) = \prod_{t=1}^n P(w_t | w_1, ..., w_{t-1})这个公式是所有LM的根基,无论是统计的还是神经的。
统计语言模型:n-gram
- 方法:基于马尔可夫假设,只依赖前n-1个token。例如,trigram模型计算 P(w_t | w_{t-2}, w_{t-1})。
- 工程取舍:n越大,上下文越丰富,但参数空间指数增长(词汇表V,参数约 V^n)。实际中n=3或4是常见折中,再大就稀疏到无法估计。
- 坑与解法:未登录词(OOV)会导致零概率。解法是平滑技术,如Kneser-Ney平滑,通过回退和折扣分配概率给未见n-gram。
神经网络语言模型:RNN与Transformer
- RNNLM(Bengio 2003):用固定维度的隐状态压缩历史,解决n-gram的稀疏问题。但存在梯度消失/爆炸,长程依赖差。
- Transformer LM(如GPT系列):用自注意力机制直接建模所有位置的关系,通过位置编码(如RoPE)注入顺序信息。训练目标是最大化条件概率 P(w_t | w_{<t}),即自回归(autoregressive)方式。
- 工程取舍:Transformer并行计算效率高,但自回归推理时需逐token生成,无法并行。实际用KV Cache缓存历史key/value,避免重复计算,但内存随序列长度线性增长。
现代LLM的涌现能力
- 语言模型目标(next token prediction)本身是简单的,但在大规模数据(数万亿token)和参数(百亿级)下,涌现出上下文学习(In-Context Learning)、指令遵循等能力。这并非显式设计,而是自回归训练带来的副产品。
- 实际落地的坑:训练时用teacher forcing(给定真实前文),推理时用自生成token,分布偏移(exposure bias)导致误差累积。解法是训练时加入少量采样(如scheduled sampling),或推理时用beam search、top-p采样缓解。
- 评估指标:困惑度(Perplexity)衡量模型对序列的惊讶程度,PPL = 2^{H(P)},越低越好。但PPL与下游任务质量不完全相关,需结合BLEU、ROUGE等任务指标。
总结:语言模型从统计的n-gram进化到神经的Transformer,核心始终是条件概率建模。现代LLM的成功在于规模放大后,简单目标催生了复杂能力。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从三个层面回答:第一,数学本质——语言模型是对token序列的联合概率建模,通过链式法则分解为条件概率乘积。第二,演进脉络——从统计n-gram(马尔可夫假设、平滑技术)到神经RNN/Transformer(自注意力、自回归训练)。第三,现代LLM的涌现——next token prediction目标在规模放大后产生上下文学习等能力,但需注意exposure bias和评估指标脱节。总结一句:语言模型是概率建模的工程实现,其核心从未改变,只是规模放大了效果。”
4️⃣ 高频追问 & 应对
追问 1:为什么现代LLM都用自回归,而不是双向模型(如BERT)?
自回归(GPT风格)天然适合生成任务,因为生成是逐token的因果过程。双向模型(BERT)通过masked LM训练,能利用上下文,但生成时需特殊处理(如自回归解码器+编码器)。工程取舍:自回归训练简单(只需next token prediction),推理时用KV Cache加速;双向模型在理解任务(如分类、NER)上更强,但生成效率低。实际中,LLM(如GPT-4)选择自回归,因为生成是核心场景,理解能力可通过指令微调弥补。
追问 2:语言模型的困惑度(PPL)和下游任务性能一定正相关吗?
不一定。PPL衡量模型对测试集token的预测能力,但下游任务(如问答、翻译)需要语义理解、知识检索等。例如,一个模型PPL很低,但可能只是记住了训练集模式,泛化到新领域时表现差。实际中,PPL作为训练监控指标,但最终评估需用任务指标(如MMLU、HumanEval)。工程上,微调时PPL下降不一定带来任务提升,需结合验证集任务指标早停。
追问 3:如何处理长序列的语言模型?Transformer的自注意力复杂度是O(n²)。
常见解法:1)稀疏注意力(如Longformer、BigBird),只计算局部窗口和全局token,复杂度降为O(n)。2)线性注意力(如Performer),用核方法近似注意力,复杂度O(n)。3)位置编码优化(如RoPE、ALiBi),支持外推更长序列。工程取舍:稀疏注意力丢失长程依赖,线性注意力精度损失。实际中,GPT-4用FlashAttention(IO-aware算法)和分块策略,在A100上处理128K上下文。
5️⃣ 避坑 · 常见错误答法
- ❌ 说“语言模型就是预测下一个词” → ✅ 正确切入:从概率建模出发,强调链式法则和条件概率,再解释自回归训练。
- ❌ 混淆语言模型和词嵌入(如Word2Vec) → ✅ 明确区分:Word2Vec是静态词向量,语言模型是序列概率建模,且能生成上下文相关表示。
- ❌ 只提Transformer,忽略统计LM和RNN → ✅ 展示演进脉络,说明n-gram的稀疏问题如何被神经模型解决,体现历史理解。
6️⃣ 简历呼应
- 如果你有RAG项目:从“语言模型作为生成器”切入,讨论如何用LM的概率分布控制生成质量(如top-p采样),以及PPL如何影响检索增强的鲁棒性。
- 如果你只做过传统NLP:用n-gram类比,说明从统计到神经的演进,强调“链式法则”是共同基础,展示你对模型本质的理解。
- 如果你是校招无项目:聚焦论文复现,如“我在WikiText-2上训练了小型Transformer LM,对比了n-gram和GPT-2的PPL差异,并分析了模型规模与困惑度的关系”。
- “A Neural Probabilistic Language Model” (Bengio 2003) — 神经网络LM的开山之作
- “Language Models are Few-Shot Learners” (GPT-3, 2020) — 自回归LM的规模效应
- “Attention Is All You Need” (Vaswani 2017) — Transformer架构基础
- “FlashAttention: Fast and Memory-Efficient Exact Attention” (Dao 2022) — 长序列优化
- “Scaling Laws for Neural Language Models” (Kaplan 2020) — 模型规模与性能的关系