前言
近期在阅读dice-loss-for-nlp数据预处理源码时对encoder_plus()函数使用不太明晰,故整理其参数设置及输入输出文档
整理内容源自hugging face transformer官方文档,地址为huggingface/encoder_plus文档
模型输入参数
:Para
text:第一个被编码的句子
text_pair:第二个被编码的句子
add_special_tokens:是否对句子中的特殊字符([CLS]、[SEP]、[PAD]])进行编码(default:true)
padding:激活与控制padding策略
- True/longest:填充至batch中最长序列长度(如果只有一个序列就不进行填充)
- max_length:填充至根据参数指定的最长长度或是模型能接受的最大长度
- False/do_not_pad:不填充(default)
truncation:截断策略
- True/longest_first:截断至max_length指定的长度或是模型能接受的最大长度,如果提供了一对序列,则会从较长的那个序列中删除一个token
- only_first:截断至max_length指定的长度或是模型能接受的最大长度,如果提供了一对序列,则只会对第一个序列进行截断
- only_second:截断至max_length指定的长度或是模型能接受的最大长度,如果提供了一对序列,则只会对第二个序列进行截断
- Flase or do_not_truncation:不进行截断(default)
max_length:控制截断或填充的最大序列长度
stride:定义重叠tokens的数量(default:0)。如果与max_length一同设置为一个数字,当return_overflowing_tokens设置为True时,溢出的tokens将会包含一些从截断序列末尾返回的一些标记
is_split_into_words:输入是否已经是预分词的状态(default:False),如果设置为True,则tokenizer默认输入已经是分好词的状态(比如用空格分开)
pad_to_multiple_of:将序列填充至所提供值的倍数,需要padding被激活(主要用于compute capability>=7.5(Volta)的NVDIA硬件上启动Tensor Cores很有用)
return_tensors:返回tensor而非list of python integers(‘tf’、‘pt’、‘np’,分别对应tensorflow、pytorch与numpy三种tensor形式)
return_token_type_ids:是否返回token type IDs,如果设为默认则根据tokenizer的默认设置返回token type IDs
return_attention_mask:是否返回attention_mask,如果设为默认则根据tokenizer的默认设置返回attention_mask
return_overflowing_tokens:是否返回overflowing_tokens,如果是一对序列输入,则按照truncation_strategy=longest_first/true进行截断(default False)
return_special_tokens_mask:是否返回特殊token的掩码信息
return_offset_mapping:是否返回每个token的起始和结束字符(default False)
return_length:是否返回编码输入的长度(default False)
verbose:是否打印更多输出与警告信息(default True)
模型输出参数
:Return
BatchEncoding:
input_ids:进入模型的token ids序列
token_type_ids:进入模型的token type ids序列
attention_mask:序列掩码标记,指定模型关注哪些tokens的索引列表
overflowing_tokens:溢出token序列
num_truncated_tokens:溢出token序列长度
special_tokens_mask:0/1序列,1表示添加的特殊token,0表示普通序列token(只有add_special_tokens=True和return_special_tokens_mask=True生效才有用)
length:input的长度(return_length=true)