PadWithHiddenStateOperation

功能

在llama的微调场景中的unpad方案调用算子,Transformer的encoder过程中,序列长度不再按照最大长度计算,根据实际的长度进行计算(向上pad到16倍数),减少计算量。

定义

struct PadWithHiddenStateParam {
    std::vector<int32_t> qSeqLen;
    int32_t              maxSeqLen;
    bool operator==(const PadWithHiddenStateParam &other) const
   {
       return this->qSeqLen == other.qSeqLen &&
           this->maxSeqLen == other.maxSeqLen;
   }
};

成员

成员名称

描述

qSeqLen

每个batch的实际输入长度。元素个数为batchSize。

maxSeqLen

qSeqLen中最大输入长度。

输入

参数

维度

数据类型

格式

描述

x

[nTokens, hiddenSize]

float16

ND

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

输出

参数

维度

数据类型

格式

描述

output

[batchSize, maxSeqLen, hiddenSize]

float16

ND

pad后带冗余的tensor。与unpad输入shape一致。