Skip to content

Commit 4c80c92

Browse files
committed
update moe
1 parent 117c0a2 commit 4c80c92

File tree

16 files changed

+522
-15
lines changed

16 files changed

+522
-15
lines changed

docs/chapter3/08_RNN.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,25 @@
88

99
### 1.1 简单方法的局限性
1010

11-
#### 1.1.1 词袋模型:向量求和
11+
#### 1.1.1 词袋模型
1212

13-
最直接的想法是像词袋法一样,将所有词向量相加或取平均。
14-
15-
- **问题**:这种方法完全忽略了语序信息。“我爱你” 和 “你爱我” 会得到完全相同的文本向量。更重要的是,它将所有词语视为同等重要。在“播放周杰伦的《稻香》”这句话中,“播放”和“《稻香》”显然比“的”包含更多分类所需的关键信息,但简单的求和无法体现这种差异。
13+
最直接的思路是像词袋法一样,将所有词向量相加或取平均。但是这种方法完全忽略了语序信息。“我爱你” 和 “你爱我” 会得到完全相同的文本向量。更重要的是,它将所有词语视为同等重要。在“播放周杰伦的《稻香》”这句话中,“播放”和“《稻香》”显然比“的”包含更多分类所需的关键信息,但简单的求和无法体现这种差异。
1614

1715
#### 1.1.2 全连接网络
1816

1917
另一个想法是,可以用一个全连接网络(Fully Connected Network, FCN)来处理这些词向量。有两种方式:
2018
1. **先求和,后 FCN**:这与向量求和没有本质区别,依然丢失了语序和重点信息。
2119
2. **先 FCN,后求和**:可以对每一个词向量都进行一次全连接变换,然后再将变换后的向量相加。
2220

23-
为了处理变长的句子,在每个时间步(即每个词元的位置)上使用的全连接层必须**共享同一套权重参数**。但这仍然存在一个致命缺陷:
24-
25-
- **问题**:在计算任意一个词的输出时(如 `《稻香》` 的输出),模型仅仅使用了 `《稻香》` 自己的词向量,完全没有考虑到它前面出现了 “播放”、“周杰伦”、“的” 这些词。每个词元依然是被**孤立处理**的,模型无法理解词元之间的顺序关系和上下文依赖,即**没有捕获序列特征**
21+
为了处理变长的句子,在每个时间步(即每个词元的位置)上使用的全连接层必须**共享同一套权重参数**。这仍然存在一个致命缺陷,在计算任意一个词的输出时(如 `《稻香》` 的输出),模型仅仅使用了 `《稻香》` 自己的词向量,完全没有考虑到它前面出现了 “播放”、“周杰伦”、“的” 这些词。每个词元依然是被**孤立处理**的,模型无法理解词元之间的顺序关系和上下文依赖,即**没有捕获序列特征**
2622

2723
> 在处理序列数据(如文本)时,模型按顺序逐个处理序列中的元素(如词元)。**“时间步”** 就是这个处理过程中的一个离散步骤。在文本处理的上下文中,**一个时间步通常对应于处理一个词元**。例如,对于句子“播放周杰伦的歌”,处理“播放”是时间步 1,处理“周杰伦”是时间步 2,以此类推。
2824
2925
#### 1.1.3 卷积神经网络(CNN)
3026

31-
在图像处理中大获成功的CNN也可以用于文本。通过使用一维卷积核(窗口)滑过整个词向量序列,CNN能够捕捉到词语的局部依赖关系(如n-grams)。
27+
在图像处理中大获成功的 CNN 也可以用于文本。通过使用一维卷积核(窗口)滑过整个词向量序列,CNN 能够捕捉到词语的局部依赖关系(如n-grams)。
3228

33-
- **问题**CNN 的缺陷在于它的**感受野是固定的**。一个大小为3的卷积核,只能看到附近3个词的关系。虽然可以通过堆叠多层CNN来扩大感受野,但对于句子开头和结尾的长距离依赖,CNN 仍然难以有效捕捉。无法预先设定一个适用于所有句子的“最佳”窗口大小。
29+
不过,CNN 的缺陷在于它的**感受野是固定的**。一个大小为3的卷积核,只能看到附近3个词的关系。虽然可以通过堆叠多层CNN来扩大感受野,但对于句子开头和结尾的长距离依赖,CNN 仍然难以有效捕捉。无法预先设定一个适用于所有句子的“最佳”窗口大小。
3430

3531
## 二、引入“记忆”的 RNN
3632

@@ -126,12 +122,10 @@ Jeffrey Elman 在其论文 [^1]中通过实验发现,即使不给网络任何
126122

127123
这证明了 RNN 不仅仅是在“记忆”历史,它实际上是在通过**预测任务**,隐式地学会了语言的**句法和语义结构**
128124

129-
> **辨析:动态表示 vs 动态词向量**
125+
> **动态表示 vs. 动态词向量**
130126
>
131127
> 如果你听说过 ELMo 可能会有疑问:**“实现从静态到动态跨越的,究竟是 RNN 还是后来的 ELMo?”**
132128
>
133-
> 这是一个视角的差异。
134-
>
135129
> 1. **从原理机制上讲,是 RNN**:正如本节所述,RNN 的隐藏状态 $h_t$ 本质上就是一个随上下文变化的动态向量。它最早具备了“根据语境改变数值”的核心能力。
136130
> 2. **从 NLP 发展范式上讲,是 ELMo**:在 ELMo (2018) 之前,大家通常只把 Word2Vec 这种**查表**得到的向量称为“词向量”,而把 RNN 的输出视为特定任务的**中间状态**。ELMo 的贡献在于它确立了**“动态词向量”**这一概念,并将其作为一种通用的、可迁移的预训练特征,改变了 NLP 的开发模式。
137131
>

docs/chapter3/09_LSTM&GRU.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ GRU 对 LSTM 做了两大核心改动:
293293

294294
### 6.1 窥孔连接(Peephole Connections)
295295

296-
在标准 LSTM 中,三个门(遗忘、输入、输出)的决策依据仅来自当前输入 $x_t$ 和前一时刻的隐藏状态 $h_{t-1}$。但正如 Gers 和 Schmidhuber 在 **Recurrent Nets that Time and Count** 一文中指出的,这种机制有一个潜在的弱点,**门控单元无法直接“看到”它们控制的细胞状态** [^4]
296+
在标准 LSTM 中,三个门(遗忘、输入、输出)的决策依据仅来自当前输入 $x_t$ 和前一时刻的隐藏状态 $h_{t-1}$。但正如 Gers 和 Schmidhuber 在 **Recurrent Nets that Time and Count** 一文中指出的,这种机制有一个潜在的弱点,**门控单元无法直接“看到”它们控制的细胞状态** [^4]
297297

298298
特别是当输出门关闭时,隐藏状态 $h_{t-1}$ 接近于 0,此时门控单元失去了关于细胞内部状态的重要信息。为了解决这个问题,研究者提出了**窥孔连接**,允许门控单元直接访问细胞状态:
299299

docs/chapter6/17_handcraft_llama2.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44

55
本节将聚焦于 Llama2,一个由 Meta AI 推出的开源大模型。我们不再依赖 `transformers` 库的高度封装,而是从零开始,先梳理关键思想与设计取舍,再逐步落地到代码实现。这一过程将帮助你理解原理,深化对大模型内部工作的理解。
66

7-
> [本节完整代码](https://github.com/datawhalechina/base-nlp/tree/main/code/C6/llama2)
8-
97
## 一、Llama2 架构总览
108

119
Llama2 遵循了 GPT 系列开创的 **Decoder-Only** 架构。这意味着它完全由 **Transformer 解码器层**堆叠而成,天然适用于自回归的文本生成任务。
@@ -38,6 +36,8 @@ Llama2 遵循了 GPT 系列开创的 **Decoder-Only** 架构。这意味着它
3836

3937
## 二、关键组件详解
4038

39+
> [本节完整代码](https://github.com/datawhalechina/base-nlp/tree/main/code/C6/llama2)
40+
4141
### 2.1 预归一化
4242

4343
#### 2.1.1 设计思路

0 commit comments

Comments
 (0)