自注意力机制中的gen_nopeek_mask()函数

"no-peek"掩码通常用于在自注意力机制中,确保模型在生成序列时只能注意到当前位置之前的信息,而不能"窥视"未来的信息

python 复制代码
def gen_nopeek_mask(length):    
    mask = (torch.triu(torch.ones(length, length)) == 1).transpose(0, 1)
    mask = mask.float().masked_fill(mask == 0, float('-inf')).masked_fill(mask == 1, float(0.0))
    return mask.to(device)
  1. torch.triu(torch.ones(length, length)) == 1: 创建一个大小为 (length, length) 的上三角矩阵,其中上三角的元素为1,下三角的元素为0。

  2. .transpose(0, 1): 将矩阵进行转置,得到对角线上方的区域。

  3. mask = mask.float(): 将布尔类型的矩阵转换为浮点数类型。

  4. .masked_fill(mask == 0, float('-inf')): 将矩阵中值为0的位置用负无穷(-∞)填充。这样,在计算注意力权重时,这些位置的值经过 softmax 函数后将趋近于零,表示模型在这些位置不应该关注。

  5. .masked_fill(mask == 1, float(0.0)): 将矩阵中值为1的位置用0填充。这样,在计算注意力权重时,这些位置的值经过 softmax 函数后将保持为1,表示模型在这些位置应该关注。

最终,mask 是一个上三角矩阵,其中对角线及其以下的元素为负无穷,而对角线以上的元素为0。这样的矩阵在自注意力机制中被用作掩码,确保模型在生成每个位置时只关注之前的位置,而不会使用未来的信息。

让我们使用一个具体的长度来演示 gen_nopeek_mask 函数,比如 length = 4。以下是运行这个函数的示例:

python 复制代码
import torch

def gen_nopeek_mask(length):
    mask = (torch.triu(torch.ones(length, length)) == 1).transpose(0, 1)
    mask = mask.float().masked_fill(mask == 0, float('-inf')).masked_fill(mask == 1, float(0.0))
    return mask

# 生成长度为 4 的 nopeek mask
mask_example = gen_nopeek_mask(4)
print(mask_example)
复制代码
运行这个示例,将得到一个 4x4 的矩阵,其中包含了上三角区域以及对角线以下的部分:
bash 复制代码
tensor([[ 0., -inf, -inf, -inf],
        [ 0.,  0., -inf, -inf],
        [ 0.,  0.,  0., -inf],
        [ 0.,  0.,  0.,  0.]])

这个矩阵是一个示例的 "no-peek" 掩码。在这个掩码中,对角线以下和对角线上的元素被设置为负无穷和零,以确保在自注意力机制中,模型只能关注当前位置之前的信息。这种掩码通常在 Transformer 模型中的解码器中使用。

将矩阵中值为0的位置用负无穷(-∞)填充。这样,在计算注意力权重时,这些位置的值经过 softmax 函数后将趋近于0,表示模型在这些位置不应该关注

将矩阵中值为1的位置用0填充。这样,在计算注意力权重时,这些位置的值经过 softmax 函数后将保持为1,表示模型在这些位置应该关注

相关推荐
NebulaData2 分钟前
从通用到垂直:AI 平台竞争的下半场与产业落地路径
人工智能·数据挖掘
NingboWill2 分钟前
AI日报 - 2026年05月13日
人工智能·快手·ai ppt·宇树
跨境卫士苏苏3 分钟前
欧盟固定收费临近轻小件卖家如何判断继续铺量还是收缩
大数据·人工智能·安全·跨境电商·亚马逊
高工智能汽车3 分钟前
从新势力到合资豪华旗舰 百度地图车道级SR导航何以成为高端旗舰车型首选?
人工智能·汽车
数据皮皮侠4 分钟前
上市公司内源与债权股权融资协同数据(2009-2025)
大数据·人工智能·算法·microsoft·百度
2601_958599049 分钟前
ChatGPT 全能力解析:从核心功能到多模型协同,解锁 AI 生产力天花板
人工智能·chatgpt
俊哥V12 分钟前
AI一周事件 · 2026年5月6日至5月12日
人工智能·ai
xiaozhazha_14 分钟前
2026年企业级AI CRM系统落地:技术选型、架构考量与实施路径实践指南
人工智能
Lyon1985052818 分钟前
《文字定律》随笔-AI们聊“艺术”-Deepseek、Grok、ChatGPT、Geminni
人工智能·chatgpt·ai写作·grok·gemini·deepseek
qq_4112624225 分钟前
基于 ESP32-S3 的四博 AI 台灯方案:摄像头拍照答题、语音大模型、双目屏与生活陪伴系统设计
人工智能·智能音箱