一步一步理解大模型:因果掩码

GPT模型利用因果掩码防止在预测时看到未来令牌,通过自注意力机制只关注过去信息。训练时,使用torch.triu创建掩码矩阵,屏蔽未来的令牌,确保预测基于已知上下文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GPT的训练方法是使用因果掩码(causal mask),让模型在预测当前令牌时不能看到未来的令牌。

在Transformer模型中,自注意力(self-attention)是在整个令牌(token)序列上计算的,包括当前令牌之后的令牌。

在训练期间,我们不希望模型在预测当前令牌时看到未来的令牌而“作弊”。 为了防止这种情况,我们使用了因果掩码(causal mask),将所有未来的令牌设置为零,有效地从注意力机制中屏蔽了它们。

这使得模型在进行预测时只能关注过去和当前的令牌,并确保它仅基于每个时间步骤可用的信息进行预测。

具体实现中,这种掩码可以通过原始输入和一个合适的上三角矩阵相乘(或者逻辑与)来得到。

# Causal mask
causal_mask = torch.triu(torch.ones(input_shape[1], input_shape[1]), diagonal=1).bool().to(input.device)

例如,这句话:Cat is too fat. 会生成如下矩阵(假设窗口无限大):

Cat  <PAD> <PAD> <PAD>
Cat    is   <PAD> <PAD>
Cat    is    too   <PAD>

### Qwen 大模型架构及组成结构 Qwen 是一种基于 Transformer 的大型预训练语言模型,其设计目标是为了处理复杂的自然语言任务并提供高质量的结果。以下是关于 Qwen 架构及其组成部分的详细介绍: #### 1. **整体架构** Qwen 基于标准的 Transformer 结构构建,主要分为编码器(Encoder)和解码器(Decoder)。对于单向生成任务,通常仅使用解码器部分;而对于双向理解任务,则可能涉及编码器-解码器联合工作模式[^1]。 #### 2. **核心组件** ##### (1) 编码器(Encoder) 编码器的主要功能是对输入序列进行表示学习,通过多头自注意力机制捕捉上下文关系,并利用前馈神经网络增强特征表达能力。具体来说: - 输入经过嵌入层(Embedding Layer),将离散 token 转化为连续向量; - 使用堆叠的多个 Transformer 层来逐步提取高层次语义信息; - 每一层包含一个多头自注意力模块以及一个 MLP 模块。 ##### (2) 解码器(Decoder) 解码器用于生成输出序列,在每一步预测下一个词的过程中考虑已生成的部分作为条件约束。类似于编码器,它也由若干个 Transformer 层构成,不过引入了掩码操作以确保因果性——即当前时刻只依赖过去的历史而非未来的信息。 ##### (3) MLP 模块 正如所提到的内容所示,MLP(Multi-Layer Perceptron)是由两层线性变换加上中间夹带的一个非线性激活函数组成的子单元。它的作用在于补充局部交互之外更广泛的映射可能性,从而提升整个系统的建模灵活性与表现力。 ```python import torch.nn as nn class MLP(nn.Module): def __init__(self, input_dim, hidden_dim, output_dim): super(MLP, self).__init__() self.fc1 = nn.Linear(input_dim, hidden_dim) self.act = nn.GELU() # 或其他激活函数 self.fc2 = nn.Linear(hidden_dim, output_dim) def forward(self, x): x = self.fc1(x) x = self.act(x) x = self.fc2(x) return x ``` 上述代码片段展示了如何实现一个简单的 MLP 模块,其中 `nn.Linear` 表示全连接层,而 `nn.GELU()` 则代表了一种常用的激活方式之一 Gelu 函数的应用实例。 #### 3. **参数规模与其他特性** 除了基础框架外,Qwen 还具备超大规模参数数量级的优势,这使得它可以更好地拟合复杂分布下的数据规律。另外,针对不同应用场景需求,该系列还衍生出了多种变体版本如闭源版、开源精简型等供开发者选用。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值