PadWithHiddenStateOperation
功能
PadWithHiddenState是带隐藏层的pad,这个算子的主要作用是将变长的序列填充为固定长度,便于批处理和模型训练。
定义
struct PadWithHiddenStateParam { std::vector<int32_t> qSeqLen; int32_t maxSeqLen = 4096; };
参数列表
成员名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
qSeqLen |
std::vector<int32_t> |
- |
每个batch的实际输入长度。元素个数为batchSize。batchSize的值最大不超过32。 |
maxSeqLen |
int32_t |
4096 |
qSeqLen中最大输入长度。取值不超过4096。 |
输入
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
x |
[nTokens, hiddenSize] |
float16 |
ND |
pad前不带冗余的tensor。与unpad输出shape一致。 |
- 计算公式:
这个公式用于计算一个batch中所有序列的总token数。
- 示例:
batchSize = 3
qSeqlen = [5, 10, 7]
则 nTokens = 5 +10 + 7 =22
输出
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
output |
[batchSize, maxSeqLen, hiddenSize] |
float16 |
ND |
pad后带冗余的tensor。与unpad输入shape一致。 |