UnpadOperation

功能

对于输入input_ids,把所有有效的token拼接在一起,并在最后补0

定义

struct UnpadParam {};

输入

参数

维度

数据类型

格式

描述

input_ids

[batch, max_seq_len]

int64

ND

经过pad(末尾填充0)之后,batch个token id序列

cum_offsets_now

[batch, 1]

int32

ND

每个batch末尾填充0的数量组成的序列的前缀和

token_num

[1, 1]

int64

ND

有效token数量总和

seq_len

[batch, 1]

int32

ND

每个batch中的有效token数量

输出

参数

维度

数据类型

格式

描述

x_remove_padding

[1, batch * max_seq_len]

int64

ND

从input_ids中去除填充的0后得到的有效token序列(为了保持shape,在末尾填充0)

cum_offsets_out

[batch, 1]

int32

ND

去除cum_offsets_now最后一个batch的数值,再将其整体后移一个batch,并将第一个batch的值置为0

padding_offset

[1, batch * max_seq_len]

int32

ND

由seq_len和cum_offsets_out组合计算得到