大模型发展近年突飞猛进,更多的人被吸引到LLM部署、训练、微调工作中去,但高楼决不是一日建成的,也需要回顾一下NLP的历史发展,看看语言模型的发展史。
1. 统计语言模型(Statistical Language Model, SLM)
- 时间:1990年代至2000年代初
- 特点:基于统计方法,利用词频和n-gram建模。
- 原理:
假设第 (t) 个词的概率仅依赖于前 (n-1) 个词(马尔可夫假设),即:
P ( w t ∣ w 1 : t − 1 ) ≈ P ( w t ∣ w t − n + 1 : t − 1 ) P(w_t | w_{1:t-1}) \approx P(w_t | w_{t-n+1:t-1}) P(wt∣w1:t−1)≈P(wt∣wt−n+1:t−1)
n-gram的概率通过极大似然估计(MLE)计算:
P ( w t ∣ w t − n + 1 : t − 1 ) = Count ( w t − n + 1 : t ) Count ( w t − n + 1 : t − 1 ) P(w_t | w_{t-n+1:t-1}) = \frac{\text{Count}(w_{t-n+1:t})}{\text{Count}(w_{t-n+1:t-1})} P(wt∣wt−n+1:t−1)=Count(wt−n+1:t−1)Count(wt−n+1:t) - 优点:
- 计算简单,适用于小规模数据。
- 缺点:
- 数据稀疏性:长尾n-gram概率可能为0(需平滑技术如拉普拉斯平滑)。
- 上下文限制:无法捕捉长距离依赖(受限于n的大小)。
2. 神经网络语言模型(NNLM)
- 时间:2003年(Bengio等提出)
- 特点:首次用神经网络建模语言模型,引入词嵌入(Word Embedding)。
- 原理:
- 输入层:将词映射为低维向量(嵌入)。
- 隐藏层:全连接层提取特征。
- 输出层:Softmax预测下一个词的概率:
P ( w t ∣ w t − n + 1 : t − 1 ) = Softmax ( W ⋅ tanh ( C ( w t − n + 1 : t − 1 ) + b ) ) P(w_t | w_{t-n+1:t-1}) = \text{Softmax}(W \cdot \tanh(C(w_{t-n+1:t-1}) + b)) P(wt∣wt−n+1:t−1)=Softmax(W⋅tanh(C(wt−n+1:t−1)+b))
其中 C C C 是词向量拼接矩阵, W W W 和 b b b 是参数。
- 优点:
- 缓解数据稀疏问题,支持词相似性推理。
- 缺点:
- 计算复杂度高(Softmax需要遍历所有词)。
- 上下文窗口固定,无法捕捉长距离依赖。
3. Word2Vec 模型
- 时间:2013年(Mikolov等提出)
- 特点:高效词嵌入模型,分两种架构:CBOW(上下文预测词)和Skip-gram(词预测上下文)。
- 原理:
- 目标函数(Skip-gram):
max ∑ ( w , c ) ∈ D log σ ( v c ⋅ v w ) + ∑ c ′ ∉ D log σ ( − v c ′ ⋅ v w ) \max \sum_{(w, c) \in D} \log \sigma(v_c \cdot v_w) + \sum_{c' \notin D} \log \sigma(-v_{c'} \cdot v_w) max(w,c)∈D∑logσ(vc⋅vw)+c′∈/D∑logσ(−vc′⋅vw)
其中 v w v_w vw 是词向量, c c c 是上下文词,负采样(Negative Sampling)优化计算。
- 目标函数(Skip-gram):
- 优点:
- 训练高效,词向量可捕捉语义和语法关系(如
king - man + woman = queen
)。
- 训练高效,词向量可捕捉语义和语法关系(如
- 缺点:
- 词向量静态(一词一义),无法处理多义词。
- 无句级上下文建模。
4. ELMo 模型(Embeddings from Language Models)
- 时间:2018年(Peters等提出)
- 特点:双向LSTM生成上下文相关的词向量。
- 原理:
- 双向语言模型联合训练:
log P ( w 1 : T ) = ∑ t = 1 T ( log P ( w t ∣ w 1 : t − 1 ; Θ forward ) + log P ( w t ∣ w t + 1 : T ; Θ backward ) ) \log P(w_{1:T}) = \sum_{t=1}^T \left( \log P(w_t | w_{1:t-1}; \Theta_{\text{forward}}) + \log P(w_t | w_{t+1:T}; \Theta_{\text{backward}}) \right) logP(w1:T)=t=1∑T(logP(wt∣w1:t−1;Θforward)+logP(wt∣wt+1:T;Θbackward)) - 最终词向量是多层LSTM输出的加权组合:
ELMo t = γ ∑ l = 0 L s l ⋅ h t , l \text{ELMo}_t = \gamma \sum_{l=0}^L s_l \cdot h_{t,l} ELMot=γl=0∑Lsl⋅ht,l
- 双向语言模型联合训练:
- 优点:
- 动态词向量,一词多义建模。
- 缺点:
- LSTM难以捕捉长距离依赖。
- 双向仅是浅层拼接,非深度交互。
5. BERT 模型(Bidirectional Encoder Representations from Transformers)
- 时间:2018年(Google提出)
- 特点:基于Transformer的双向预训练模型,开创“预训练+微调”范式。
- 原理:
- Masked Language Model (MLM):随机遮盖15%的词,预测被遮盖词:
Loss = ∑ m ∈ M log P ( w m ∣ w ∖ m ) \text{Loss} = \sum_{m \in M} \log P(w_m | w_{\setminus m}) Loss=m∈M∑logP(wm∣w∖m) - Next Sentence Prediction (NSP):判断两句子是否连续。
- 使用Transformer Encoder堆叠,自注意力机制捕捉全局依赖。
- Masked Language Model (MLM):随机遮盖15%的词,预测被遮盖词:
- 优点:
- 深度双向上下文建模,通用性强(支持多种下游任务)。
- 缺点:
- 预训练和推理计算成本高。
- MLM导致预训练与微调输入不一致(
[MASK]
符号在微调中不存在)。
6. 大语言模型(Large Language Models, LLMs)
- 时间:2020年至今(如GPT-3、PaLM、LLaMA等)
- 特点:千亿级参数,基于Transformer解码器,支持零样本(Zero-shot)和少样本(Few-shot)学习。
- 原理:
- 自回归生成:基于上文逐词生成:
P ( w 1 : T ) = ∏ t = 1 T P ( w t ∣ w 1 : t − 1 ) P(w_{1:T}) = \prod_{t=1}^T P(w_t | w_{1:t-1}) P(w1:T)=t=1∏TP(wt∣w1:t−1) - 缩放定律(Scaling Laws):模型性能随参数、数据、计算量指数增长。
- 自回归生成:基于上文逐词生成:
- 优点:
- 强大的泛化能力和生成质量。
- 无需任务特定微调(提示工程即可)。
- 缺点:
- 训练成本极高(GPT-3训练费用超千万美元)。
- 可能生成错误或有害内容(幻觉问题)。
小结
模型 | 时间 | 核心思想 | 优点 | 缺点 |
---|---|---|---|---|
统计LM | 1990s | n-gram统计概率 | 简单快速 | 数据稀疏,上下文受限 |
NNLM | 2003 | 神经网络+词嵌入 | 缓解稀疏性 | 计算复杂,短距离依赖 |
Word2Vec | 2013 | 高效静态词向量 | 语义关系捕捉 | 一词一义,无上下文 |
ELMo | 2018 | 双向LSTM动态词向量 | 一词多义 | 浅层双向,长依赖有限 |
BERT | 2018 | Transformer双向预训练 | 深度双向,通用性强 | 计算资源消耗大 |
大语言模型 | 2020s | 超大规模自回归模型 | 零样本学习,生成能力强 | 成本高,不可控生成 |
疑问
1.为什么Word2Vec的结构可以捕捉部分多语义问题,但还是不够?
- 单一向量表示:Word2Vec 为每个词汇分配一个固定的向量,不论该词在不同上下文中可能具有完全不同的含义。这意味着词语的所有语义都被混合在一个向量中,无法明确地区分各个语义层面。
- 上下文窗口的局限:虽然局部上下文可以捕捉一些语义信息,但在很多情况下,局部信息不足以揭示词汇的全部语义细节。尤其对于那些需要更长距离依赖关系才能理解的语境,Word2Vec 的窗口大小往往无法涵盖所有相关信息。
- 模型的浅层结构:Word2Vec 的架构相对简单,没有像更先进的上下文敏感模型(如 BERT 或 ELMo)那样通过深层网络捕捉词语在不同句子中的语义变化。深层模型可以根据具体上下文动态调整词的表示,从而更好地处理多义性问题。
2.动态词向量相比于静态词向量,改进在哪里?
- 上下文依赖性
动态词向量可以根据所在句子的上下文生成不同的表示,从而捕捉同一个词在不同语境下的多重含义,而静态词向量则为每个词生成唯一的固定表示。 - 捕捉细粒度语义
由于考虑了完整的上下文信息,动态词向量能够更好地捕捉词语的细微语义变化,包括歧义消解、多义性处理以及复杂的语法结构信息。 - 长距离依赖关系
动态模型(尤其是基于Transformer的模型)可以捕捉句子中远距离词汇间的关系,从而提升对整句语义的理解,而静态模型通常受限于固定窗口,无法有效捕捉长距离信息。
3.举例说明动态词向量和静态词向量?
- 静态词向量(例如Word2Vec):
无论是在“我吃了一个苹果”还是在“苹果发布了新手机”这两个句子中,“苹果”都会有相同的词向量表示。这是因为静态词向量在训练时为每个词分配了一个固定向量,无法根据上下文区分“苹果”是水果还是科技公司。 - 动态词向量(例如BERT、ELMo):
在“我吃了一个苹果”中,模型会利用上下文信息生成一个侧重于水果概念的向量;而在“苹果发布了新手机”中,模型则会生成一个与科技公司相关的向量。这种上下文敏感性使得模型能够捕捉同一词在不同语境下的语义差异,从而更精确地理解句子的意义。
4.为什么transformer结构比LSTM更能捕获长距离依赖?
- 直接建模任意位置之间的关系
自注意力允许模型在计算一个词的表示时,直接参考序列中所有其他词的表示,无论它们相隔多远。这意味着,任意两个位置的词都可以通过一个注意力权重直接互相联系,而不需要经过多个中间状态的传递。 - 消除序列信息传递的限制
LSTM 是通过循环结构依次传递信息,尽管有门控机制,但在很长的序列中,远距离的信息传递仍然容易出现梯度消失或信息衰减的问题。而 Transformer 的并行处理方式可以同时处理整个序列,避免了这种逐步传递带来的限制。 - 计算效率与并行性
Transformer 的自注意力机制使得每个词与所有其他词之间的依赖关系可以并行计算,这不仅提高了效率,同时也使模型能够更全面地捕捉全局信息,从而更好地理解长距离依赖。
5.基于Transformer和LSTM结构的语言模型各自发展如何?
基于 LSTM 架构的大模型
- Google Neural Machine Translation (GNMT)
GNMT 是谷歌推出的神经机器翻译系统,基于 LSTM 编码器-解码器结构,结合注意力机制,实现了较高质量的翻译效果,曾在实际应用中大放异彩。 - ELMo (Embeddings from Language Models)
ELMo 利用双向 LSTM 模型生成上下文相关的词向量,能够捕捉词语在不同语境下的多义性,曾推动自然语言处理各个任务性能的提升。 - AWD-LSTM 语言模型
这类模型(如ASGD Weight-Dropped LSTM)通过正则化和优化策略,在语言模型训练中取得了不错的效果,并为后续的研究提供了参考。
基于 Transformer 架构的大模型 - BERT 系列
BERT 及其变体(如RoBERTa、ALBERT等)利用 Transformer 的自注意力机制,在大规模无监督预训练的基础上,通过微调在问答、文本分类等多项任务上刷新了记录。 - GPT 系列
GPT、GPT-2、GPT-3 以及最新的 GPT-4 均基于 Transformer 架构,采用自回归生成方式,展现了出色的语言生成和理解能力。这些模型参数量巨大,推动了对话系统、自动写作等领域的发展。 - T5 (Text-to-Text Transfer Transformer)
T5 将所有文本处理任务统一为文本生成任务,通过大规模预训练和多任务微调,在多项任务上实现了优秀性能。 - Transformer-XL 和 XLNet
这些模型通过引入相对位置编码和记忆机制,进一步改善了 Transformer 在长序列建模上的效果,同时扩展了自注意力机制的应用范围。