Skip to content

Commit e78dc0c

Browse files
committed
update all lang
1 parent d682fdc commit e78dc0c

File tree

24 files changed

+116
-116
lines changed

24 files changed

+116
-116
lines changed

app/(private)/campuchia/page.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,14 +233,14 @@ Compressive transformer មានការបាត់បង់ការហ្
233233
1. **Auto-encoding loss** (គោលបំណងបង្ហាប់ដោយគ្មានការបាត់បង់) វាស់វែងថាតើយើងអាចបង្កើតអង្គចងចាំដើមឡើងវិញពីអង្គចងចាំបង្ហាប់បានល្អប៉ុណ្ណា។
234234

235235
$$
236-
\mathcal{L}_{ac} = \left\| \mathbf{old\_mem}^{(i)} - g\big(\mathbf{new\_cm}^{(i)}\big) \right\|_2
236+
\mathcal{L}_{ac} = \left\| \mathbf{old_mem}^{(i)} - g\big(\mathbf{new_cm}^{(i)}\big) \right\|_2
237237
$$
238238

239239
ដែល $g: \mathbb{R}^{[\frac{L}{c}] \times d} \to \mathbb{R}^{L \times d}$ ត្រឡប់អនុគមន៍បង្ហាប់ $f$ ។
240240

241241
2. **Attention-reconstruction loss** (គោលបំណងមានការបាត់បង់) បង្កើត Attention ដែលផ្អែកលើមាតិកាឡើងវិញធៀបនឹងអង្គចងចាំធៀបនឹងអង្គចងចាំបង្ហាប់ ហើយកាត់បន្ថយភាពខុសគ្នា៖
242242
$$
243-
\mathcal{L}_{ar} = \left\| \operatorname{attn}\big(\mathbf{h}^{(i)}, \mathbf{old\_mem}^{(i)}\big) - \operatorname{attn}\big(\mathbf{h}^{(i)}, \mathbf{new\_cm}^{(i)}\big) \right\|_2
243+
\mathcal{L}_{ar} = \left\| \operatorname{attn}\big(\mathbf{h}^{(i)}, \mathbf{old_mem}^{(i)}\big) - \operatorname{attn}\big(\mathbf{h}^{(i)}, \mathbf{new_cm}^{(i)}\big) \right\|_2
244244
$$
245245

246246
Transformer-XL ដែលមានអង្គចងចាំទំហំ $m$ មានช่วงเวลาអតិបរមា $m \times N$, ដែល $N$ គឺជាចំនួនស្រទាប់នៅក្នុងគំរូ, និងค่าใช้จ่าย Attention $\mathcal{O}(L^2 + Lm)$។ ក្នុងការប្រៀបធៀប, Compressive Transformer មានช่วงเวลา $(m_m + c \cdot m_{cm}) \times N$ និងค่าใช้จ่าย Attention $\mathcal{O}(L^2 + L(m_m + m_{cm}))$។ អត្រាបង្រួម $c$ ធំជាងផ្តល់នូវការដោះដូរល្អប្រសើររវាងប្រវែងช่วงเวลาและค่าใช้จ่าย Attention។
@@ -544,7 +544,7 @@ _แถวบนแสดงรูปแบบการเชื่อมต่
544544
1. Attention หนึ่งประเภทต่อ residual block ហើយបន្ទាប់មកสลับกัน,
545545
$\text{attn}(\mathbf{X}) = \text{Attend}(\mathbf{X}, A^{(n \mod p)}) \mathbf{W}^o$, ដែល $n$ គឺជាសន្ទស្សន៍ของ residual block បច្ចុប្បន្ន។
546546
2. ตั้งค่า head เดียวที่យកចិត្តទុកដាក់ต่อទីតាំងที่ factorized heads ทั้งหมดយកចិត្តទុកដាក់,
547-
$\text{attn}(\mathbf{X}) = \text{Attend}(\mathbf{X}, \cup\_{m=1}^p A^{(m)}) \mathbf{W}^o $។
547+
$\text{attn}(\mathbf{X}) = \text{Attend}(\mathbf{X}, \cup_{m=1}^p A^{(m)}) \mathbf{W}^o $។
548548
3. ใช้យន្តការ Multi-Head Attention, แต่ខុសពី vanilla Transformer, head នីមួយៗอาจใช้รูปแบบที่นำเสนอข้างต้น, 1 หรือ 2 ។ -> ตัวเลือกนี้มักจะให้ประสิทธิภาพดีที่สุด។
549549

550550
Sparse Transformer ក៏បានស្នើชุดของการเปลี่ยนแปลงเพื่อให้สามารถฝึก Transformer ได้ถึงរ้อยๆ ស្រទាប់, រួមទាំង gradient checkpointing, ការគណនា Attention & FF layers ឡើងវិញในระหว่าง backward pass, การฝึกแบบ mixed precision, การใช้งาน block-sparse ที่มีประสิทธิภาพ, ฯลฯ។ សូមตรวจสอบ [เอกสาร](https://arxiv.org/abs/1904.10509) สำหรับรายละเอียดเพิ่มเติมหรือការបង្ហោះก่อนหน้าของฉันเกี่ยวกับ [เทคนิคสำหรับการขยายการฝึกគំរូ](https://lilianweng.github.io/posts/2021-09-25-train-large/)

app/(private)/china/page.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
| $$ \mathbf{Q} = \mathbf{X}\mathbf{W}^q \in \mathbb{R}^{L \times d_k} $$ | 查询嵌入输入。 |
1717
| $$ \mathbf{K} = \mathbf{X}\mathbf{W}^k \in \mathbb{R}^{L \times d_k} $$ | 键嵌入输入。 |
1818
| $$ \mathbf{V} = \mathbf{X}\mathbf{W}^v \in \mathbb{R}^{L \times d_v} $$ | 值嵌入输入。 |
19-
| $$ S_i $$ |$$ i $$ 个查询 $$ \mathbf{q}\_i $$ 关注的键位置集合。 |
19+
| $$ S_i $$ |$$ i $$ 个查询 $$ \mathbf{q}_i $$ 关注的键位置集合。 |
2020
| $$ \mathbf{A} \in \mathbb{R}^{L \times L} $$ | 长度为 $$ L $$ 的输入序列与其自身的自注意力矩阵。 $$ \mathbf{A} = \text{softmax}(\mathbf{Q}\mathbf{K}^\top / \sqrt{d_k}) $$|
21-
| $$ a\_{ij} \in \mathbf{A} $$ | 查询 $$ \mathbf{q}\_i $$ 与键 $$ \mathbf{k}\_j $$ 之间的标量注意力得分。 |
22-
| $$ \mathbf{P} \in \mathbb{R}^{L \times d} $$ | 位置编码矩阵,其中第 $$ i $$$$ \mathbf{p}\_i $$ 是输入 $$ \mathbf{x}\_i $$ 的位置编码。 |
21+
| $$ a_{ij} \in \mathbf{A} $$ | 查询 $$ \mathbf{q}_i $$ 与键 $$ \mathbf{k}_j $$ 之间的标量注意力得分。 |
22+
| $$ \mathbf{P} \in \mathbb{R}^{L \times d} $$ | 位置编码矩阵,其中第 $$ i $$$$ \mathbf{p}_i $$ 是输入 $$ \mathbf{x}_i $$ 的位置编码。 |
2323

2424
## 注意力与自注意力
2525

@@ -29,7 +29,7 @@ _自注意力_ 是一种注意力机制,模型通过使用同一数据样本
2929

3030
注意力/自注意力有多种形式,Transformer([Vaswani 等人,2017](https://arxiv.org/abs/1706.03762))依赖于*缩放点积注意力*:给定查询矩阵 $$ \mathbf{Q} $$、键矩阵 $$ \mathbf{K} $$ 和值矩阵 $$ \mathbf{V} $$,输出是值向量的加权和,其中每个值槽的权重由查询与对应键的点积决定:
3131
$$ \text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}(\frac{\mathbf{Q} {\mathbf{K}}^\top}{\sqrt{d_k}})\mathbf{V} $$
32-
对于查询和键向量 $$ \mathbf{q}\_i, \mathbf{k}\_j \in \mathbb{R}^d $$(查询和键矩阵中的行向量),我们得到一个标量得分:
32+
对于查询和键向量 $$ \mathbf{q}_i, \mathbf{k}_j \in \mathbb{R}^d $$(查询和键矩阵中的行向量),我们得到一个标量得分:
3333

3434
$$
3535
a_{ij} = \text{softmax}(\frac{\mathbf{q}_i {\mathbf{k}_j}^\top}{\sqrt{d_k}})
@@ -117,7 +117,7 @@ y_t^n &= W_y s_t^n + b_y
117117
\end{aligned}
118118
$$
119119

120-
其中 $$ \delta\_{n,1} $$ 是一个二进制标志,指示输入步骤是否已递增。
120+
其中 $$ \delta_{n,1} $$ 是一个二进制标志,指示输入步骤是否已递增。
121121

122122
步骤数 $$ N(t) $$ 由一个额外的 sigmoid 停止单元 $$ h $$ 决定,其具有关联的权重矩阵 $$ W_h $$ 和偏置 $$ b_h $$,在第 $$ t $$ 个输入元素的第 $$ n $$ 次中间步骤输出停止概率 $$ p_t^n $$
123123
$$ h_t^n = \sigma(W_h s_t^n + b_h) $$
@@ -138,9 +138,9 @@ $$
138138
最终状态和输出是均值场更新:
139139
$$ s*t = \sum*{n=1}^{N(t)} p*t^n s_t^n, \quad y_t = \sum*{n=1}^{N(t)} p*t^n y_t^n $$
140140
![ACT计算图](/posts/transformer-family-2/ACT-computation-graph.png)
141-
*图 5. 具有ACT机制的RNN的计算图。(图片来源:[Graves, 2016](https://arxiv.org/abs/1603.08983)\_
141+
*图 5. 具有ACT机制的RNN的计算图。(图片来源:[Graves, 2016](https://arxiv.org/abs/1603.08983)_
142142

143-
为了避免对每个输入进行不必要的思考,ACT在损失函数中添加了*思考成本* $$ \mathcal{P}(x) = \sum\_{t=1}^L N(t) + R(t) $$,以鼓励减少中间计算步骤的数量。
143+
为了避免对每个输入进行不必要的思考,ACT在损失函数中添加了*思考成本* $$ \mathcal{P}(x) = \sum_{t=1}^L N(t) + R(t) $$,以鼓励减少中间计算步骤的数量。
144144

145145
## 改进注意力跨度
146146

@@ -168,7 +168,7 @@ $$ s*t = \sum*{n=1}^{N(t)} p*t^n s_t^n, \quad y_t = \sum*{n=1}^{N(t)} p*t^n y_t^
168168
![Transformer-XL的训练阶段](/posts/transformer-family-2/transformer-XL-training.png)
169169
_图 6. 原始Transformer与Transformer-XL的训练阶段比较,段长度为4。(图片来源:[Dai 等人,2019](https://arxiv.org/abs/1901.02860) 图2左半部分)。_
170170

171-
我们将模型中第 $$ (\tau + 1) $$ 段的第 $$ n $$ 层隐藏状态标记为 $$ \mathbf{h}_{\tau+1}^{(n)} \in \mathbb{R}^{L \times d} $$。除了依赖于同一段的上一层隐藏状态 $$ \mathbf{h}_{\tau+1}^{(n-1)} $$ 外,它还依赖于前一段的同一层隐藏状态 $$ \mathbf{h}\_{\tau}^{(n)} $$。通过纳入前几隐藏状态的信息,模型将注意力跨度扩展到更长的过去,跨越多个段。
171+
我们将模型中第 $$ (\tau + 1) $$ 段的第 $$ n $$ 层隐藏状态标记为 $$ \mathbf{h}_{\tau+1}^{(n)} \in \mathbb{R}^{L \times d} $$。除了依赖于同一段的上一层隐藏状态 $$ \mathbf{h}_{\tau+1}^{(n-1)} $$ 外,它还依赖于前一段的同一层隐藏状态 $$ \mathbf{h}_{\tau}^{(n)} $$。通过纳入前几隐藏状态的信息,模型将注意力跨度扩展到更长的过去,跨越多个段。
172172

173173
$$
174174
\begin{aligned}
@@ -209,7 +209,7 @@ a_{ij}^\text{rel} =
209209
$$
210210

211211
-$$ \mathbf{p}_j $$ 替换为相对位置编码 $$ \mathbf{r}_{i-j} \in \mathbf{R}^{d} $$
212-
-$$ \mathbf{p}\_i\mathbf{W}^q $$ 替换为两个可训练参数 $$ \mathbf{u} $$(用于内容)和 $$ \mathbf{v} $$(用于位置);
212+
-$$ \mathbf{p}_i\mathbf{W}^q $$ 替换为两个可训练参数 $$ \mathbf{u} $$(用于内容)和 $$ \mathbf{v} $$(用于位置);
213213
-$$ \mathbf{W}^k $$ 分成两个矩阵,$$ \mathbf{W}^k_E $$ 用于内容信息,$$ \mathbf{W}^k_R $$ 用于位置信息。
214214

215215
### 自适应注意力跨度
@@ -240,9 +240,9 @@ _图 8. 自适应注意力跨度中使用的软掩码函数。(图片来源:
240240

241241
软掩码函数应用于注意力权重中的softmax元素:
242242
$$ a*{ij} = \frac{m_z(i-j)\exp(s*{ij})}{\sum*{r=i-s}^{i-1}m_z(i-r) \exp(s*{ir})} $$
243-
在上述方程中,$$ z $$ 是可微的,因此它与其他模型部分一起训练。参数 $$ z^{(i)}, i=1, \dots, h $$ 为每个头*单独*学习。此外,损失函数对 $$ \sum\_{i=1}^h z^{(i)} $$ 有一个额外的L1惩罚。
243+
在上述方程中,$$ z $$ 是可微的,因此它与其他模型部分一起训练。参数 $$ z^{(i)}, i=1, \dots, h $$ 为每个头*单独*学习。此外,损失函数对 $$ \sum_{i=1}^h z^{(i)} $$ 有一个额外的L1惩罚。
244244

245-
使用[自适应计算时间](#adaptive-computation-time-act),该方法可以进一步增强,以具有灵活的注意力跨度长度,动态适应当前输入。注意力头在时间 $$ t $$ 的跨度参数 $$ z_t $$ 是一个sigmoid函数,$$ z_t = S \sigma(\mathbf{v} \cdot \mathbf{x}\_t +b) $$,其中向量 $$ \mathbf{v} $$ 和偏置标量 $$ b $$ 与其他参数一起学习。
245+
使用[自适应计算时间](#adaptive-computation-time-act),该方法可以进一步增强,以具有灵活的注意力跨度长度,动态适应当前输入。注意力头在时间 $$ t $$ 的跨度参数 $$ z_t $$ 是一个sigmoid函数,$$ z_t = S \sigma(\mathbf{v} \cdot \mathbf{x}_t +b) $$,其中向量 $$ \mathbf{v} $$ 和偏置标量 $$ b $$ 与其他参数一起学习。
246246

247247
在具有自适应注意力跨度的Transformer实验中,[Sukhbaatar 等人,2019](https://arxiv.org/abs/1905.07799) 发现了一个普遍趋势:较低层不需要很长的注意力跨度,而较高层中的一些注意力头可能使用异常长的跨度。自适应注意力跨度还大大减少了FLOPS的数量,特别是在具有许多注意力层和大上下文长度的大模型中。
248248

@@ -287,13 +287,13 @@ $$
287287
\end{aligned}
288288
$$
289289

290-
注意,尽管 $$ S_i $$ 的大小不固定,$$ a(\mathbf{x}\_i, S_i) $$ 始终是 $$ d_v $$ 的大小,因此 $$ \text{Attend}(\mathbf{X}, \mathcal{S}) \in \mathbb{R}^{L \times d_v} $$
290+
注意,尽管 $$ S_i $$ 的大小不固定,$$ a(\mathbf{x}_i, S_i) $$ 始终是 $$ d_v $$ 的大小,因此 $$ \text{Attend}(\mathbf{X}, \mathcal{S}) \in \mathbb{R}^{L \times d_v} $$
291291

292292
在自回归模型中,一个注意力跨度定义为 $$ S_i = \{j: j \leq i\} $$,因为它允许每个标记关注过去的所有位置。
293293

294-
在分解自注意力中,集合 $$ S*i $$ 被分解为一个*\_依赖结构,使得对于每对 $$ (i, j) $$(其中 $$ j \leq i $$),存在一条从 $$ i $$ 回到 $$ j $$ 的路径,$$ i $$ 可以直接或间接关注 $$ j $$
294+
在分解自注意力中,集合 $$ S*i $$ 被分解为一个*树_依赖结构,使得对于每对 $$ (i, j) $$(其中 $$ j \leq i $$),存在一条从 $$ i $$ 回到 $$ j $$ 的路径,$$ i $$ 可以直接或间接关注 $$ j $$
295295

296-
具体来说,集合 $$ S*i $$ 被分成 $$ p $$*非重叠\_子集,其中第 $$ m $$ 个子集表示为 $$ A^{(m)}\_i \subset S_i, m = 1,\dots, p $$。因此,输出位置 $$ i $$ 和任何 $$ j $$ 之间的路径最大长度为 $$ p + 1 $$。例如,如果 $$ (j, a, b, c, \dots, i) $$$$ i $$$$ j $$ 之间的索引路径,我们会有 $$ j \in A_a^{(1)}, a \in A_b^{(2)}, b \in A_c^{(3)}, \dots $$,依此类推。
296+
具体来说,集合 $$ S*i $$ 被分成 $$ p $$*非重叠_子集,其中第 $$ m $$ 个子集表示为 $$ A^{(m)}_i \subset S_i, m = 1,\dots, p $$。因此,输出位置 $$ i $$ 和任何 $$ j $$ 之间的路径最大长度为 $$ p + 1 $$。例如,如果 $$ (j, a, b, c, \dots, i) $$$$ i $$$$ j $$ 之间的索引路径,我们会有 $$ j \in A_a^{(1)}, a \in A_b^{(2)}, b \in A_c^{(3)}, \dots $$,依此类推。
297297

298298
**稀疏分解注意力**
299299

@@ -329,7 +329,7 @@ $$
329329
1. 每个残差块使用一种注意力类型,然后交错使用,<br/>
330330
$$ \text{attention}(\mathbf{X}) = \text{Attend}(\mathbf{X}, A^{(n \mod p)}) \mathbf{W}^o $$,其中 $$ n $$ 是当前残差块的索引。
331331
2. 设置一个单一的头,关注所有分解头关注的位置,<br/>
332-
$$ \text{attention}(\mathbf{X}) = \text{Attend}(\mathbf{X}, \cup\_{m=1}^p A^{(m)}) \mathbf{W}^o $$
332+
$$ \text{attention}(\mathbf{X}) = \text{Attend}(\mathbf{X}, \cup_{m=1}^p A^{(m)}) \mathbf{W}^o $$
333333
3. 使用多头注意力机制,但与原始Transformer不同,每个头可能采用上述模式1或2。=> 此选项通常表现最佳。
334334

335335
Sparse Transformer还提出了一组更改,以便将Transformer训练到数百层,包括梯度检查点、在反向传播期间重新计算注意力与FF层、混合精度训练、有效的块稀疏实现等。详情请查看[论文](https://arxiv.org/abs/1904.10509)
@@ -350,18 +350,18 @@ Reformer提出了两个主要更改:
350350
<a name="LSH" />
351351
**局部敏感哈希注意力**
352352

353-
[注意力公式](#attention-and-self-attention)$$ \mathbf{Q} \mathbf{K}^\top $$ 部分,我们只对最大元素感兴趣,因为只有大元素在softmax后贡献较多。对于每个查询 $$ \mathbf{q}\_i \in \mathbf{Q} $$,我们寻找 $$ \mathbf{K} $$ 中与 $$ \mathbf{q}\_i $$ 最接近的行向量。为了在高维空间中快速找到最近邻,Reformer将[局部敏感哈希 (LSH)](https://en.wikipedia.org/wiki/Locality-sensitive_hashing)纳入其注意力机制。
353+
[注意力公式](#attention-and-self-attention)$$ \mathbf{Q} \mathbf{K}^\top $$ 部分,我们只对最大元素感兴趣,因为只有大元素在softmax后贡献较多。对于每个查询 $$ \mathbf{q}_i \in \mathbf{Q} $$,我们寻找 $$ \mathbf{K} $$ 中与 $$ \mathbf{q}_i $$ 最接近的行向量。为了在高维空间中快速找到最近邻,Reformer将[局部敏感哈希 (LSH)](https://en.wikipedia.org/wiki/Locality-sensitive_hashing)纳入其注意力机制。
354354

355355
哈希方案 $$ x \mapsto h(x) $$ 如果保留了数据点之间的距离信息,则称为*局部敏感*,使接近的向量获得相似的哈希,而远离的向量具有非常不同的哈希。Reformer采用了这样的哈希方案,给定一个固定的随机矩阵 $$ \mathbf{R} \in \mathbb{R}^{d \times b/2} $$(其中 $$ b $$ 是一个超参数),哈希函数为 $$ h(x) = \arg\max([xR; -xR]) $$
356356

357357
![LSH注意力矩阵](/posts/transformer-family-2/LSH-attention-matrix.png)
358358
_图 11. 局部敏感哈希 (LSH) 注意力的示意图。(图片来源:[Kitaev 等人,2020](https://arxiv.org/abs/2001.04451) 图1右半部分)。_
359359

360-
在LSH注意力中,查询只能关注同一哈希桶中的位置,$$ S_i = \{j: h(\mathbf{q}\_i) = h(\mathbf{k}\_j)\} $$。其执行过程如下,如图11所示:
360+
在LSH注意力中,查询只能关注同一哈希桶中的位置,$$ S_i = \{j: h(\mathbf{q}_i) = h(\mathbf{k}_j)\} $$。其执行过程如下,如图11所示:
361361

362362
- (a) 完整注意力的注意力矩阵通常是稀疏的。
363363
- (b) 使用LSH,我们可以根据哈希桶对键和查询进行排序对齐。
364-
- (c) 设置 $$ \mathbf{Q} = \mathbf{K} $$(精确地说 $$ \mathbf{k}\_j = \mathbf{q}\_j / \|\mathbf{q}\_j\| $$),以便一个桶中有相等数量的键和查询,便于批处理。有趣的是,这种"共享QK"配置不影响Transformer的性能。
364+
- (c) 设置 $$ \mathbf{Q} = \mathbf{K} $$(精确地说 $$ \mathbf{k}_j = \mathbf{q}_j / \|\mathbf{q}_j\| $$),以便一个桶中有相等数量的键和查询,便于批处理。有趣的是,这种"共享QK"配置不影响Transformer的性能。
365365
- (d) 应用批处理,将 $$ m $$ 个连续查询分组在一起。
366366

367367
![LSH注意力](/posts/transformer-family-2/LSH-attention.png)

0 commit comments

Comments
 (0)