【Datawhale组队学习202602】Hello-Agents task03 大语言模型基础

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • [一、语言模型与 Transformer 架构](#一、语言模型与 Transformer 架构)
    • [1.1 语言模型](#1.1 语言模型)
    • [1.2 统计语言模型与 N-gram 的思想](#1.2 统计语言模型与 N-gram 的思想)
      • [1.2.1 统计模型](#1.2.1 统计模型)
      • [1.2.2 动手算一遍N-gram:用datawhale例子深化理解](#1.2.2 动手算一遍N-gram:用datawhale例子深化理解)
      • [1.2.3 N-gram的局限和意义](#1.2.3 N-gram的局限和意义)
    • [1.3 神经网络语言模型与词嵌入](#1.3 神经网络语言模型与词嵌入)
      • [1.3.1 神经网络语言模型](#1.3.1 神经网络语言模型)
      • [1.3.2 NNLM 架构拆解](#1.3.2 NNLM 架构拆解)
      • [1.3.3 NNLM 的局限](#1.3.3 NNLM 的局限)
    • [1.4 循环神经网络 RNN 与长短时记忆网络 LSTM](#1.4 循环神经网络 RNN 与长短时记忆网络 LSTM)
    • [1.5 Transformer 架构解析](#1.5 Transformer 架构解析)
  • 二、大语言模型交互
    • [2.1 提示工程](#2.1 提示工程)
    • [2.2 文本分词](#2.2 文本分词)
    • [2.3 调用开源大语言模型](#2.3 调用开源大语言模型)
    • [2.4 模型的选择](#2.4 模型的选择)
  • 三、大语言模型的缩放法则与局限
  • 习题
  • 总结

前言


一、语言模型与 Transformer 架构

1.1 语言模型

语言模型 (Language Model, LM) 是自然语言处理的核心。

其根本任务是计算一个词序列(即一个句子)出现的概率。

  • 在多智能体系统中,语言模型是智能体理解人类指令、生成回应的基础。
  • 下面将回顾从经典的统计方法到现代深度学习模型的演进历程。

1.2 统计语言模型与 N-gram 的思想

1.2.1 统计模型

  • 在深度学习兴起之前,统计方法 是语言模型的主流。
  • 核心思想 : 一个句子出现的概率,等于该句子中每个词出现的条件概率的连乘。对于一个由词 w 1 , w 2 , ⋯   , w m w_1,w_2,\cdots,w_m w1,w2,⋯,wm 构成的句子 S,其概率 P(S) 可以表示为:

P ( S ) = P ( w 1 , w 2 , ... , w m ) = P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) ⋅ P ( w 3 ∣ w 1 , w 2 ) ⋯ P ( w m ∣ w 1 , ... , w m − 1 ) P(S)=P(w_1,w_2,...,w_m)=P(w_1)⋅P(w_2∣w_1)⋅P(w_3∣w_1,w_2)⋯P(w_m∣w_1,...,w_{m−1}) P(S)=P(w1,w2,...,wm)=P(w1)⋅P(w2∣w1)⋅P(w3∣w1,w2)⋯P(wm∣w1,...,wm−1)

  • 这个公式被称为概率的链式法则。
  • 然而,直接计算这个公式几乎是不可能的,因为像 P ( w m ∣ w 1 , ⋯   , w m − 1 ) P(w_m∣w_1,\cdots,w_{m−1}) P(wm∣w1,⋯,wm−1) 这样的条件概率太难从语料库中估计了,词序列 w 1 , ⋯   , w m − 1 w_1,\cdots,w_{m−1} w1,⋯,wm−1 可能从未在训练数据中出现过。

图 3.1 马尔可夫假设示意图

  • 为了解决这个问题,研究者引入了马尔可夫假设 (Markov Assumption)

  • 核心思想是:我们不必回溯一个词的全部历史,可以近似地认为,一个词的出现概率只与它前面有限的 n − 1 n−1 n−1 个词有关,基于这个假设建立的语言模型,称之为 N-gram模型。这里的 "N" 代表考虑的上下文窗口大小。

  • 这正是N-gram的思想:

一个词的出现,主要受它前面有限几个词的影响,不必记住整句话的历史。

模型 看几个词来猜 例子
Unigram (N=1) 不看上下文,只看词本身频率 猜"的""是"这种高频词
Bigram (N=2) 只看前1个词 "天气很" → 猜"好"
Trigram (N=3) 看前2个词 "今天天气很" → 猜"热"(夏天语境)
  • 这些概率可以通过在大型语料库中进行最大似然估计(Maximum Likelihood Estimation,MLE) 来计算。
  • 例如,对于 Bigram 模型,我们想计算在词 w i − 1 w_{i−1} wi−1 出现后,下一个词是 w i w_i wi 的概率 P ( w i ∣ w i − 1 ) P(w_i∣w_{i−1}) P(wi∣wi−1)。根据最大似然估计,这个概率可以通过简单的计数来估算:

P ( w i ∣ w i − 1 ) = C o u n t ( w i − 1 , w i ) C o u n t ( w i − 1 ) P(w_i∣w_{i−1})=\frac{Count(w_{i−1},w_i)}{Count(w_{i−1})} P(wi∣wi−1)=Count(wi−1)Count(wi−1,wi)

  • 这里的 Count() 函数就代表"计数":
    • C o u n t ( w i − 1 , w i ) Count(w_{i−1},w_i) Count(wi−1,wi):表示词对 ( w i − 1 , w i ) (w_{i−1},w_i) (wi−1,wi) 在语料库中连续出现的总次数。
    • C o u n t ( w i − 1 ) Count(w_{i−1}) Count(wi−1):表示单个词 w i − 1 w_{i−1} wi−1 在语料库中出现的总次数。

1.2.2 动手算一遍N-gram:用datawhale例子深化理解

  • 语料库:

    句子1: datawhale agent learns
    句子2: datawhale agent works

  • Bi-gram 计算句子 datawhale agent learns 的概率:

步骤 计算 结果 直观解释
1. P ( datawhale ) P(\text{datawhale}) P(datawhale) datawhale出现次数 总词数 = 2 6 \frac{\text{datawhale出现次数}}{\text{总词数}} = \frac{2}{6} 总词数datawhale出现次数=62 ≈0.333 语料中1/3的词是datawhale
2. P ( agent ∣ datawhale ) P(\text{agent}|\text{datawhale}) P(agent∣datawhale) "datawhale agent"出现次数 datawhale出现次数 = 2 2 \frac{\text{"datawhale agent"出现次数}}{\text{datawhale出现次数}} = \frac{2}{2} datawhale出现次数"datawhale agent"出现次数=22 =1.0 只要出现datawhale,下个词100%是agent
3. P ( learns ∣ agent ) P(\text{learns}|\text{agent}) P(learns∣agent) "agent learns"出现次数 agent出现次数 = 1 2 \frac{\text{"agent learns"出现次数}}{\text{agent出现次数}} = \frac{1}{2} agent出现次数"agent learns"出现次数=21 =0.5 agent后面一半是learns,一半是works
最终概率 0.333 × 1.0 × 0.5 0.333 \times 1.0 \times 0.5 0.333×1.0×0.5 ≈0.167 这个句子有16.7%的可能性出现
  • 关键点来了,这里可以看出概率是连乘,只要中间某一步概率很低(如0.01),整个句子概率就会急剧下降------这解释了为什么N-gram难以生成长句子("概率塌缩"问题)。

1.2.3 N-gram的局限和意义

  • N-gram 的三大局限
局限 说明 例子
数据稀疏问题 语料中未出现的词对,概率=0 → 整个句子概率归零 语料无"agent flies",则$P(\text{flies}
长距离依赖缺失 只看前N-1个词,无法捕捉远距离关联 "虽然今天下雨,但我还是决定___" → 应该填"出门",但Bigram只看到"决定",猜不准
无语义理解 仅统计共现频率,不懂词义相似性 语料有"吃苹果",但无"吃香蕉" → 模型认为$P(\text{香蕉}

为缓解数据稀疏,研究者发明了平滑技术 (如加1平滑):
P smoothed ( w i ∣ w i − 1 ) = Count ( w i − 1 , w i ) + 1 Count ( w i − 1 ) + V P_{\text{smoothed}}(w_i|w_{i-1}) = \frac{\text{Count}(w_{i-1},w_i) + 1}{\text{Count}(w_{i-1}) + V} Psmoothed(wi∣wi−1)=Count(wi−1)+VCount(wi−1,wi)+1

其中 V V V是词汇表大小。这相当于"假装每个词对都至少出现过1次",避免概率为0。但这是打补丁,无法根本解决语义缺失问题。

  • 但是,N-gram 模型首次让机器"量化"语言规律,支撑了早期机器翻译、语音识别等工作,可谓是真正的将 NLP 理念注入到人们的头脑中。

1.3 神经网络语言模型与词嵌入

1.3.1 神经网络语言模型

研究者们转向了神经网络,并提出了一种思想:用连续的向量来表示词。

2003年,Bengio 等人提出的 前馈神经网络语言模型 (Feedforward Neural Network Language Model) 是这一领域的里程碑。

  • Bengio 的 NNLM 提出一个天才想法:

把每个词映射到高维空间中的一个点(向量),让语义相近的词在空间中"地理位置"相近。

传统N-gram 神经网络语言模型
词 = 离散ID(如agent=42 词 = 连续向量(如agent=[0.2, -1.3, 0.7, ...]
词之间无关系 词之间有"距离"和"方向"
无法泛化 可通过向量运算泛化(如king - man + woman ≈ queen
  • 生活化比喻:词的二维地图(实际是高维,但原理相同):

    Y轴(皇室程度)

    │ king ● queen ●

    │ man ● woman ●
    └──────────────────────────→ X轴(性别倾向)
    男性 女性

  • kingqueen在Y轴(皇室)上位置相近

  • manwoman在X轴(性别)上有固定偏移

  • kingman的向量 ≈ 从queenwoman的向量

  • 关键点来了,词向量不是人工设计的,而是在预测下一个词的任务中自动学习出来的------模型为了准确预测,被迫让语义相似的词在向量空间中靠近。

1.3.2 NNLM 架构拆解

  • NNLM 工作流程如下:
text 复制代码
输入: "datawhale agent"  (预测下一个词)
       ↓
[Step 1] One-hot编码
  "datawhale" → [0,0,1,0,...]  (长度=词汇表大小V)
  "agent"     → [0,1,0,0,...]
       ↓
[Step 2] 查找词嵌入(Embedding Lookup)
  通过权重矩阵 C (V×d),将one-hot映射为d维向量:
    "datawhale" → [0.3, -0.7, 1.2, ...]  (d=100维)
    "agent"     → [-0.5, 0.9, 0.4, ...]
       ↓
[Step 3] 拼接上下文向量
  [0.3, -0.7, 1.2, ..., -0.5, 0.9, 0.4, ...]  (2d维)
       ↓
[Step 4] 隐藏层非线性变换
  通过全连接层 + tanh 激活函数,提取高阶特征
       ↓
[Step 5] Softmax输出概率分布
  输出V个词的概率,如 P(learns)=0.6, P(works)=0.4, ...

1.3.3 NNLM 的局限

  • NNLM 虽革命性,但仍继承 N-gram固定上下文窗口限制。
  • 这个局限直接催生了循环神经网络(RNN) ------它能处理任意长序列,通过"记忆单元"保留远距离依赖。
  • 2013年 Mikolov 的 Word2Vec 进一步简化了训练,让词向量技术大规模普及。

1.4 循环神经网络 RNN 与长短时记忆网络 LSTM

  • 循环神经网络 (Recurrent Neural Network, RNN) 应运而生,其核心思想非常直观:为网络增加"记忆"能力

  • 以 "虽然今天下雨,但我还是决定___" 为例

  • N-gram/NNLM 的局限:每次只拍一张"快照"

    输入: "虽然今天下雨,但我还是决定___"
    ↑______↑
    只看最后2个词"还是决定",丢失"下雨"的关键信息

  • 这就像读书时每次只看当前页的最后两行,把前面的全忘了。

  • RNN 引入隐藏状态(hidden state) 作为"记忆笔记":

text 复制代码
时间步1: 读"虽然" → 笔记 = f("虽然", 初始空白)
时间步2: 读"今天" → 笔记 = f("今天", 上一步笔记)
时间步3: 读"下雨" → 笔记 = f("下雨", 上一步笔记)
...
时间步n: 读"决定" → 笔记 = f("决定", 包含"下雨"信息的笔记) → 预测"出门"
  • RNNLSTM 完成了NLP的第二次范式革命
范式 核心突破 代表模型
固定窗口 语言 = 局部共现 N-gram
循环记忆 语言 = 时序过程 RNN → LSTM
全局关联 语言 = 关系网络 Transformer

1.5 Transformer 架构解析


二、大语言模型交互

2.1 提示工程

2.2 文本分词

2.3 调用开源大语言模型

2.4 模型的选择


三、大语言模型的缩放法则与局限

3.1 缩放法则

缩放法则 Scaling Laws 是大语言模型领域最重要的发现之一。

3.1.1 什么是缩放法则

  • 它揭示了 模型性能(通常用损失 Loss 来衡量)模型参数量训练数据量 以及 计算资源 之间存在着可预测的 幂律 关系。

L ( N , D ) ≈ ( N c N ) α N + ( D c D ) α D + L 0 L(N, D) \approx \left(\frac{N_c}{N}\right)^{\alpha_N} + \left(\frac{D_c}{D}\right)^{\alpha_D} + L_0 L(N,D)≈(NNc)αN+(DDc)αD+L0

  • 研究发现,在双对数坐标下,这是一条平滑直线------意味着模型的性能是可预测地、平滑的提升。

  • 直观理解三要素:

资源 作用 过度投入的后果
参数量 N N N 模型的脑容量:决定能记住多少模式 只增参数不增数据 → 过拟合(死记硬背)
数据量 D D D 模型的眼界阅历:决定见过多少样例 只增数据不增参数 → 欠拟合(记不住)
计算量 C C C 模型的训练时长和资源:决定优化充分程度 计算不足 → 未收敛(学艺不精)

2022年 Deepmind 提出了 Chinchilla 定律,对此进行了重要修正。

该定律指出,在给定的计算预算下,为了达到最优性能,模型参数量和训练数据量之间存在一个最优配比

  • 核心结论 :在固定计算预算 C C C 下,最优配比是 N ∝ D N \propto D N∝D,即参数量与数据量应同比例增长。

3.1.2 涌现

能力涌现(Emergence) : 当模型规模跨过某个临界阈值 ,突然展现出小模型完全不具备的能力,且这种能力无法通过外推小模型性能预测。

通俗理解为量变引发质变。

  • 根据对现在大模型及其参数的了解,不一定正确,可能会有某个小模型经过特定任务从而学习到了某种能力。
能力 小模型(<10B) 大模型(>10B) 临界点
链式思考(CoT) 无法分步推理 能输出"首先...然后...因此..." ~60B
指令遵循 需精细prompt 理解"用三句话总结"等自然指令 ~20B
代码生成 仅能写简单函数 能生成完整类+错误处理 ~100B
多语言翻译 仅支持主流语言 支持小语种互译 ~50B
  • 涌现是不是大模型有意识了?现在的研究认为还不是,它仍是统计模式的复杂组合,但复杂到人类难以直观解释
  • 目前学界有三种解释(尚无定论):
假说 核心思想 类比
相变假说 模型参数达到临界点,内部表征发生质变 水加热到100°C突然汽化
任务分解假说 大模型将复杂任务自动分解为子任务链 小时候学系鞋带:先学打结→再学绕圈→最后组合
稀疏激活假说 大模型中只有少数神经元被特定任务激活,形成"虚拟专家" 图书馆有100万本书,只查询"量子力学"就只翻100本

3.2 模型幻觉

模型幻觉(Hallucination),通常指的是大语言模型生成的内容与客观事实、用户输入或上下文信息相矛盾,或者生成了不存在的事实、实体或事件。

3.2.1 幻觉的三种类型

类型 定义 案例
事实性幻觉 生成与现实矛盾的信息 比如 "巴黎的首都是柏林"
忠实性幻觉 未忠实反映源文本 比如,摘要中添加原文没有的"专家认为"
内在幻觉 与自身上下文矛盾 比如,前文说"用户喜欢咖啡",后文推荐"茶馆"

3.2.2 为什么LLM必然会产生幻觉?

层1:训练目标的本质缺陷
  • LLM的训练目标是 "最大化下一个词的预测概率",而非"保证事实正确性"。
text 复制代码
训练目标: P("巴黎" | "法国的首都是") → 最大概率词是"巴黎" ✓
但模型不知道"巴黎"是事实,只知道它在训练数据中高频出现
层2:自回归生成的累积误差
  • 生成是链式过程 :第 t t t 步依赖前 t − 1 t-1 t−1 步,错误会像滚雪球一样放大。

    正确链: "法国" → "首都" → "巴黎" → "埃菲尔铁塔"
    幻觉链: "法国" → "首都" → "柏林"(错误)→ "柏林铁塔"(虚构)→ ...

层3:训练数据的噪声与矛盾
  • 互联网数据包含大量错误、虚构、矛盾内容(如维基百科编辑战、小说、谣言)。
  • 模型学到的是人类常说的话,而非真实世界。
层4:无外部验证机制
  • LLM是封闭系统:生成时无法查询外部知识库验证。

    人类:不确定时 → 查维基/问专家 → 验证后再回答
    LLM:不确定时 → 仍按概率生成 → "自信地胡说"

  • 事实上就是模型无法区分"我知道"和"我瞎蒙的"。

3.2.3 两大衍生局限:时效性与偏见

局限 根源 案例
知识冻结 模型能力=训练数据截止日 问GPT-3.5"2024年奥运会举办地" → 回答"东京"(训练截止2021)
社会偏见 训练数据反映人类偏见 问"护士的性别" 的话, 高概率生成"女性"(强化性别刻板印象)
  • 本质上 : LLM是人类知识的哈哈镜------它放大了我们的智慧,也放大了我们的错误。**

3.2.4 提升大语言模型可靠性的技术

技术 原理 适用场景 效果
RAG(检索增强生成) 生成前先检索外部知识库,将结果注入上下文 事实密集型任务(客服、医疗) 幻觉率↓
工具调用(Tool Use) 允许模型调用计算器/搜索引擎/代码解释器 精确计算、实时信息查询 错误率↓
思维链(CoT) 强制模型分步推理,暴露中间逻辑 复杂推理(数学、逻辑谜题) 可解释性↑,幻觉率↓

习题

  1. 自然语言处理中,语言模型经历了从统计到神经网络的模型演进。
    • 请使用本章提供的迷你语料库(datawhale agent learns, datawhale agent works),计算句子 agent works 在Bigram模型下的概率
    • N-gram模型的核心假设是马尔可夫假设。请解释这个假设的含义,以及N-gram模型存在哪些根本性局限?
    • 神经网络语言模型(RNN/LSTM)和Transformer分别是如何克服N-gram模型局限的?它们各自的优势是什么?

答:

  • Bi-gram 计算句子 datawhale agent learns 的概率:
步骤 计算 结果 直观解释
1. P ( datawhale ) P(\text{datawhale}) P(datawhale) datawhale出现次数 总词数 = 2 6 \frac{\text{datawhale出现次数}}{\text{总词数}} = \frac{2}{6} 总词数datawhale出现次数=62 ≈0.333 语料中1/3的词是datawhale
2. P ( agent ∣ datawhale ) P(\text{agent}|\text{datawhale}) P(agent∣datawhale) "datawhale agent"出现次数 datawhale出现次数 = 2 2 \frac{\text{"datawhale agent"出现次数}}{\text{datawhale出现次数}} = \frac{2}{2} datawhale出现次数"datawhale agent"出现次数=22 =1.0 只要出现datawhale,下个词100%是agent
3. P ( learns ∣ agent ) P(\text{learns}|\text{agent}) P(learns∣agent) "agent learns"出现次数 agent出现次数 = 1 2 \frac{\text{"agent learns"出现次数}}{\text{agent出现次数}} = \frac{1}{2} agent出现次数"agent learns"出现次数=21 =0.5 agent后面一半是learns,一半是works
最终概率 0.333 × 1.0 × 0.5 0.333 \times 1.0 \times 0.5 0.333×1.0×0.5 ≈0.167 这个句子有16.7%的可能性出现
  • 马尔可夫假设的核心思想:一个词的出现概率,只依赖于它前面有限的 n−1 个词,与更早的历史无关。 N-gram 模型的局限在于无语义理解,词都是离散的,而且数据稀疏,因为语料库的空间过于巨大,无法捕捉长距离的词语之间的关系,只是固定窗口大小。

    N-gram (早期)

    ├─ 局限:固定窗口、无语义


    RNN/LSTM (现代)

    ├─ 突破:循环记忆 → 长序列建模
    ├─ 局限:顺序计算、梯度瓶颈


    Transformer (2017-)

    ├─ 突破:自注意力 → 全局关联 + 并行训练
    └─ 成就:奠定大语言模型基础,如GPT/BERT等


总结

  • 大语言模型的缩放法则指导如何造出更强的模型,而幻觉与局限提醒我们再强的模型也有边界。
相关推荐
gzroy1 小时前
华为昇腾服务器部署Qwen Image模型及推理服务
人工智能
AC赳赳老秦1 小时前
边缘AI落地趋势:DeepSeek在工业边缘节点的部署与低功耗优化技巧
人工智能·python·算法·云原生·架构·pygame·deepseek
模型时代1 小时前
诺基亚预测广域网流量大幅增长但专家质疑假设
人工智能
yhdata1 小时前
锁定294.2亿元!2032年物理入侵检测系统市场规模前瞻,产业布局加速推进
人工智能
小鸡吃米…1 小时前
TensorFlow 实现线性回归
人工智能·python·tensorflow·线性回归
星爷AG I2 小时前
12-1 社会认知(AGI理论基础)
人工智能
callJJ2 小时前
Java 源码阅读方法论:从入门到实战
java·开发语言·人工智能·spring·ioc·源码阅读
予枫的编程笔记2 小时前
【Docker进阶篇】Docker Compose 实战:一键启动Web+数据库+缓存,微服务环境部署不再绕弯
人工智能·docker·开发效率工具·容器编排·docker compose·后端开发·微服务部署