---
title: 压缩mask
description: "又名mask-free。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/ascendtb/ascendtb_01_0275.html
sourcePath: /source/zh/canncommercial/900/API/ascendtb/ascendtb_01_0275.html
indexId: f3feb70768ea4b1f5c8af2fa90bf56471a337cf4fc226af3a7d767b613f80d0864
---
# 压缩mask

#### 功能说明

又名mask-free。

在长序列场景下，由于seqLen较大，需要的mask的大小也会变大。此时可开启此功能，传入压缩后的mask，以减小显存占用。


#### 开启方式

参数“isTriuMask”置为1。

- 在rope场景下：将变量“maskType”置为MASK_TYPE_NORM_COMPRESS。
- 在alibi场景下：依据具体需要，将变量“maskType”置为MASK_TYPE_ALIBI_COMPRESS或MASK_TYPE_ALIBI_COMPRESS_SQRT或MASK_TYPE_ALIBI_COMPRESS_LEFT_ALIGN。

alibi压缩mask场景需传入slopes。


#### 约束说明

- alibi压缩mask只有“calcType”置为PA_ENCODER和PREFIX_ENCODER时生效。
- “maskType”为MASK_TYPE_ALIBI_COMPRESS或MASK_TYPE_ALIBI_COMPRESS_SQRT时，mask的维度：

  - 在Atlas A2 训练系列产品 / Atlas A2 推理系列产品和Atlas A3 推理系列产品 / Atlas A3 训练系列产品上为[headNum, seqLen, 128]或[256, 256]。
  - 在Atlas 推理系列产品上为[headNum,128//16,maxSeqLen,16]或[1,256//16,256,16]。
- “maskType”为MASK_TYPE_NORM_COMPRESS时，mask的维度：

  - 在Atlas A2 训练系列产品 / Atlas A2 推理系列产品和Atlas A3 推理系列产品 / Atlas A3 训练系列产品上为[128,128]。
  - 在Atlas 推理系列产品上为[1,128//16,128,16]。
- 使用alibi压缩mask时，q、k、v的headSize要小于等于128。
- MASK_TYPE_ALIBI_COMPRESS_LEFT_ALIGN仅支持Atlas A2 训练系列产品 / Atlas A2 推理系列产品和Atlas A3 推理系列产品 / Atlas A3 训练系列产品。此时mask的维度为[256, 256]。
- Atlas A2 训练系列产品 / Atlas A2 推理系列产品和Atlas A3 推理系列产品 / Atlas A3 训练系列产品上，当数据类型为float16时，alibi压缩mask只有开启高精度才有效。
- 不同压缩mask的构造方法：

  - 对于norm场景：
对应maskType为MASK_TYPE_NORM_COMPRESS。
mask为128 * 128的倒三角，其中：

    1. 当为float16场景时，mask如下图所示。
      图1 float16场景下的压缩norm mask

    2. 当为bf16/float16高精度场景时，mask如下图所示。
      图2 bf16/float16场景下的压缩norm mask

  - 对于alibi场景：
alibi mask可以拆解为
其中，alibi coefficient为每个head各不相同的系数，triangularMask代表倒三角mask。压缩mask的场景下，输入tensor中的mask即为压缩后的alibi bias，slopes即为alibi coefficient。针对alibi bias的压缩有如下三种情况：

    1. 右对齐alibi bias
      对应“maskType”为MASK_TYPE_ALIBI_COMPRESS。

      如下图所示，为512 * 512的压缩前的alibi bias。

      图3 512 * 512压缩前的alibi bias

      对应的压缩后的256 * 256的压缩后的alibi bias如下图所示。

      图4 256 * 256压缩后的alibi bias

    2. 开平方的右对齐alibi bias
      对应“maskType”为MASK_TYPE_ALIBI_COMPRESS_SQRT。

      在右对齐alibi bias的基础上对于bias本身做了开根号处理，1的bias变为..., 其余与1一致。

    3. 左对齐的alibi bias
      对应“maskType”为MASK_TYPE_ALIBI_COMPRESS_LEFT_ALIGN。

      压缩前的alibi bias如下图所示。

      图5 压缩前的alibi bias

      压缩后的alibi bias如下图所示。

      图6 压缩后的alibi bias

      注意：左对齐的压缩mask只支持 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 和 Atlas A3 推理系列产品 / Atlas A3 训练系列产品 。
