前置知识: 10.《动手学深度学习》注意力机制
普通线性注意力
原始 Tansformer(左) VS 线性 Tansformer(右):
- N:序列长度,在自然语言处理任务中,指句子中 Token 或词的数量。
- d:特征维度,即每个元素(如单词的词向量)的维度。
- O(N²d)、O(Nd²) :计算复杂度。大 O 描述了计算量随输入序列变长的增长速度,如 O(N²d) 表示计算量与 N² 和 d 成正比 。
- Q(Query):“查询” 矩阵,用于在自注意力机制中向其他元素询问相关
分类目录归档:DeepLearning
前置知识: 10.《动手学深度学习》注意力机制
原始 Tansformer(左) VS 线性 Tansformer(右):
大语言模型(LLMs)的上下文学习:经过预训练的 LLMs 能根据文本提示或任务示例来直接对下游任务进行预测,而无需更新模型权重,这种能力也被称为上下文学习(in-context learning,ICL)或语境学习
简单来说,ICL 就是在不更新模型参数的前提下,通过输入经典示例作为提示来增强模型的能力
以情感分析为例,来说明 ICL 的一般流程(图源):
ICL 的分类:
TabPFN 的主要特点:
贝叶斯神经网络(Bayesian neural networks, BNNs):
方案:将 config.json 文件中 num_hidden_layers 的值修改为较小的值(比如 1)
原理:隐藏层中 block 的输入输出维度是一致的,因此去除重复的 block 并不会影响模型的处理逻辑;但需要注意该方法会影响模型的性能,因此只适合模型调试阶段使用。
分层推理法:将模型根据层来进行拆分存储,推理时分批次将要处理的层导入显存
代码示例:
from accelerate import init_empty_weights
from accele
模型融合(model merging):
思考:如何验证模型融合的合理性? (此处
循环神经网络(RNNs):具有隐状态、不同层参数共享的神经网络
常见的三种基础 RNNs :RNN、GRU、LSTM
隐变量模型:使用隐状态 $h_{t-1}$ 存储前 $t-1$ 步的序列信息 $$P(x_t|x_{t-1},...,x_1)\approx P(x_t|h_{t-1})$$ $$h_t=f(x_t,h_{t-1})$$ 循环神经网络(recurrent neural networks,RNNs) 是具有隐状态的神经网络
假设时刻 $t$ 的输入为 $X_t \in \mathbb{R}^{n\times d}$,对应的权重参数为 $W
卷积神经网络(CNN):引入了卷积操作的神经网络
严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cross-correlation)
二维互相关运算示例:
池化(pool)层的优点:降低卷积层对位置的敏感性
常用池化层分两种:最大池化层和平均池化层,前者示例如下:
类似于卷积层,池化层也会有填充和步幅,使用大于 1 的步幅可以起到降维的作用
不同于卷积层,池化层在每个输入通道上是单独计算的,所以池化层的输出通道数等于输入通道数
膨胀(dilated)卷积,也称