You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hugging Face分词器padding机制及BERT分词器补全到指定max_length的方法

问题原因

padding=True的默认规则是仅将序列填充到当前批次内的最长序列长度,单样本输入时就会直接填充到样本本身的长度,不会触发到max_length的补全逻辑。要强制填充到你指定的max_length数值,需要将padding参数设置为字符串'max_length'。

修正后的代码

tokenizer = BertTokenizer.from_pretrained(MODEL_TYPE, do_lower_case=True)
sent = "I hate this. Not that."
_tokenized = tokenizer(
    sent, 
    padding='max_length',  # 替换原有padding=True
    max_length=20, 
    truncation=True
)
# 原代码存在变量名笔误,_tknzr未定义,替换为实例化的tokenizer
print(tokenizer.decode(_tokenized['input_ids']))
print(len(_tokenized['input_ids']))

输出结果

[CLS] i hate this. not that. [SEP] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD]
20

padding参数可选规则说明

  • padding=True / padding='longest':仅填充到当前批次的最长序列长度,单样本输入时无额外填充
  • padding='max_length':强制填充到max_length参数指定的长度,若序列本身长度超过max_length会按照truncation配置截断
  • padding=False / padding='do_not_pad':不执行任何填充操作

内容的提问来源于stack exchange,提问作者MsA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:15:08