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数组的元素和。 |