昇腾社区首页
中文
注册

UnpadWithHiddenStateOperation

功能

在llama的微调场景中的unpad方案调用算子,Unpad Transformer的encoder过程中,序列长度不再按照最大长度计算,根据实际的长度进行计算(向上pad到16倍数),减少计算量。当前只支持Atlas 800I A2推理产品

定义

struct UnpadWithHiddenStateParam {
    std::vector<int32_t> qSeqLen;
    int32_t maxSeqLen = 4096;
};

成员

成员名称

描述

qSeqLen

每个batch实际SeqLen的值,元素个数为batchSize。batchSize的值最大不超过32。

maxSeqLen

最大SeqLen值。取值不超过4096。

输入

参数

维度

数据类型

格式

描述

x

[batchSize, maxSeqLen, hiddenSize]

float16

ND

unpad前,带冗余的tensor,与pad输出shape一致。

输出

参数

维度

数据类型

格式

描述

output

[nTokens, hiddenSize]

float16

ND

unpad后,不带冗余的tensor,与pad输入shape一致。nTokens为qSeqLen数组的元素和。