GPT的自回归语言建模(Autoregressive Language Modeling)

GPT的自回归语言建模(Autoregressive Language Modeling)

flyfish

1. 什么是语言建模?

首先,先从语言建模的目标说起。语言建模 的任务是让模型学会理解语言的结构和模式。具体来说,它要根据已经观察到的上下文预测下一个单词的可能性

举个例子:

假设你看到这样一句话:

"我今天去超市买了"

作为人类,我们可能会预测这句话后面最可能的单词是:

  • "水果"
  • "一些东西"
  • "食品"

为什么能预测出这些合理的词?这是因为我们掌握了语言的规律和语义逻辑。

语言模型的目标就是通过数学和机器学习的方法让计算机具备这种能力。它需要学习:

  1. 语言中单词之间的关联。
  2. 语法结构和上下文关系。

2. 什么是自回归语言建模?

自回归语言建模是一种特殊的语言建模方法,核心思想是:

  • 根据已经生成的单词,逐个预测下一个单词的概率

"自回归"(Autoregressive)这个词来源于统计学,意思是输出取决于过去的输出 。在语言建模中,这就意味着:
P ( x 1 , x 2 , x 3 , ... , x T ) = P ( x 1 ) ⋅ P ( x 2 ∣ x 1 ) ⋅ P ( x 3 ∣ x 1 , x 2 ) ⋯ P ( x T ∣ x 1 , x 2 , ... , x T − 1 ) P(x_1, x_2, x_3, \dots, x_T) = P(x_1) \cdot P(x_2 | x_1) \cdot P(x_3 | x_1, x_2) \cdots P(x_T | x_1, x_2, \dots, x_{T-1}) P(x1,x2,x3,...,xT)=P(x1)⋅P(x2∣x1)⋅P(x3∣x1,x2)⋯P(xT∣x1,x2,...,xT−1)

分解含义:
  1. 序列概率分解

    • 整个句子的概率 P ( x 1 , x 2 , ... , x T ) P(x_1, x_2, \dots, x_T) P(x1,x2,...,xT) 可以分解成每个单词的条件概率乘积。
    • 例如,一个句子的概率是由每个单词在其上下文中的合理性共同决定的。
  2. 逐步预测

    • 自回归建模每次只预测下一个单词,而不会同时预测多个单词。
    • 比如,给定 "我今天去超市",模型会预测 "买" 是最有可能的下一个单词;然后它会用 "我今天去超市买" 作为上下文,预测后面的单词 "水果"。
GPT 的核心任务:

GPT 就是一个自回归语言模型,它通过训练让模型最大化每个单词在上下文中的概率。换句话说,它学会了从左到右逐个生成单词。


3. 自回归语言建模的训练过程

GPT 的训练目标是让模型学会预测下一个单词的概率。具体来说:

目标函数:

给定一个输入序列 x 1 , x 2 , ... , x T x_1, x_2, \dots, x_T x1,x2,...,xT,训练模型的目标是最大化整个序列的概率
P ( x 1 , x 2 , ... , x T ) = ∏ t = 1 T P ( x t ∣ x 1 , x 2 , ... , x t − 1 ) P(x_1, x_2, \dots, x_T) = \prod_{t=1}^T P(x_t | x_1, x_2, \dots, x_{t-1}) P(x1,x2,...,xT)=t=1∏TP(xt∣x1,x2,...,xt−1)

为了实现这个目标,模型通过最大化对数概率 (log-likelihood)来训练:
L = 1 N ∑ i = 1 N ∑ t = 1 T log ⁡ P ( x t ∣ x 1 , x 2 , ... , x t − 1 ; θ ) \mathcal{L} = \frac{1}{N} \sum_{i=1}^N \sum_{t=1}^T \log P(x_t | x_1, x_2, \dots, x_{t-1}; \theta) L=N1i=1∑Nt=1∑TlogP(xt∣x1,x2,...,xt−1;θ)

其中:

  • N N N:是训练样本的总数。
  • T T T:是每个句子的单词数。
  • θ \theta θ:是模型的参数。
训练过程的步骤:
  1. 输入序列

    • 输入模型一个序列,例如 "我今天去超市"。
  2. 预测下一个单词

    • 模型预测下一个单词 P ( x t + 1 ∣ x 1 , x 2 , ... , x t ) P(x_{t+1} | x_1, x_2, \dots, x_t) P(xt+1∣x1,x2,...,xt)。比如它可能预测 "买" 的概率是 80%,"看" 是 10%,"玩" 是 5%。
  3. 计算损失(Loss)

    • 如果真实单词是 "买",但模型预测的概率只有 0.8,则损失会是:
      − log ⁡ ( 0.8 ) -\log(0.8) −log(0.8)。模型会尝试调整参数,让下次预测更准确。
  4. 反向传播和参数更新

    • 通过梯度下降优化模型参数,逐步提升预测能力。
  5. 重复

    • 通过数亿句子训练,模型逐渐学会捕捉语言模式和语义规律。

4. GPT 的自回归生成

当训练完成后,GPT 可以用来生成文本。其生成过程如下:

生成步骤
  1. 输入起始内容

    • 比如输入一句话的开头 "人工智能正在改变世界,尤其是"。
  2. 预测下一个单词

    • GPT 会基于这部分内容预测下一个单词。例如可能预测:
      • "科技" 的概率是 50%;
      • "经济" 的概率是 30%;
      • "文化" 的概率是 20%。
  3. 采样生成

    • 根据概率分布,随机选择一个单词作为输出。例如选了 "科技"。
  4. 迭代生成

    • 用新的句子 "人工智能正在改变世界,尤其是科技" 作为输入,继续预测下一个单词。
  5. 终止条件

    • 当生成的内容达到指定长度或出现结束符(如句号)时停止。

5. 自回归的强大能力

自回归语言建模有几个关键优势:

  1. 上下文感知

    • 每个预测都考虑了之前所有的单词,所以生成的内容具有上下文逻辑。
  2. 灵活性

    • 可以处理任意长度的序列,因为生成是逐步进行的。
  3. 生成能力

    • 模型会生成概率最高的内容,但也可以通过随机采样引入多样性。

6. 自回归的局限性

虽然自回归语言建模非常强大,但也存在一些限制:

  1. 单向性

    • 自回归模型只能从左到右生成,不能同时利用后文信息。
    • 例如,不能直接知道句子最后一个词对第一个词的影响。
  2. 生成速度较慢

    • 生成是逐步进行的,每次都要计算所有的前文,上下文越长计算越慢。
  3. 无法全局优化

    • 每个单词的预测是独立的,可能导致整体句子生成不连贯。
相关推荐
学历真的很重要17 小时前
Eino 开源框架全景解析 - 以“大模型应用的搭积木指南”方式理解(一)
后端·语言模型·面试·golang·ai编程·eino
%KT%18 小时前
简单聊聊多模态大语言模型MLLM
人工智能·语言模型·自然语言处理
泡泡茶壶_ovo18 小时前
RORPCAP: retrieval-based objects and relations prompt for image captioning
人工智能·深度学习·计算机视觉·语言模型·prompt·多模态·imagecaptioning
凉冰不加冰20 小时前
大语言模型原理(Transformer架构)
语言模型
Lntano__y21 小时前
详细分析大语言模型attention的计算复杂度,从数学角度分析
人工智能·语言模型·自然语言处理
魔乐社区21 小时前
OpenAI重新开源!gpt-oss-20b适配昇腾并上线魔乐社区
人工智能·gpt·深度学习·开源·大模型
勤劳的进取家1 天前
论文阅读:Do As I Can, Not As I Say: Grounding Language in Robotic Affordances
论文阅读·人工智能·机器学习·语言模型·自然语言处理
THMAIL1 天前
大模型0基础开发入门与实践:第8章 “大力出奇迹”的哲学:大语言模型的核心技术揭秘
人工智能·语言模型·自然语言处理
Fine姐2 天前
自然语言处理NLP L4: 高级语言模型——四种泛化平滑方式
人工智能·语言模型·自然语言处理
天涯海风2 天前
检索增强生成(RAG) 缓存增强生成(CAG) 生成中检索(RICHES) 知识库增强语言模型(KBLAM)
人工智能·缓存·语言模型