训练与推理时 Tokenizer Padding 用法笔记

张开发
2026/5/3 2:26:05 15 分钟阅读
训练与推理时 Tokenizer Padding 用法笔记
训练与推理时 Tokenizer Padding 用法笔记核心原则Padding 的核心目的是「保证一个 Batch 内所有样本形状一致」适配 DataLoader 并行计算训练与推理的差异本质是「是否需要固定长度」直接影响效率和延迟。一、训练时padding#34;max_length#34;固定长度补齐1. 核心要求训练时数据会随机乱序保证模型泛化性必须使用padding\\#34;max\_length\\#34;手动指定max\_length将所有样本统一补齐到该固定长度。2. 关键原因DataLoader 并行计算的前提所有样本的input\_ids形状必须完全一致如 [batch_size, max_length]乱序后若长度不统一会直接报错。固定长度可确保训练过程中每个 Batch 的 Tensor 维度稳定避免因样本长度波动导致训练中断。3. 具体示例结合之前的代码场景假设训练数据有3条文本设置max\_length10无论原始文本长度如何均补齐到10。# 训练时代码关键参数encodedtokenizer(texts,paddingmax_length,# 固定长度补齐truncationTrue,# 超长截断max_length10,# 手动指定固定长度return_tensorspt)# 原始文本长度分别为6、18、3texts[我要投诉客服,# 长度6今天天气真不错但是下午突然下大雨了,# 长度18超长截断你好# 长度3补齐到10]# 最终 input_ids 形状3, 10所有样本长度均为10# 样本1补齐后[101, 2769, 3429, 2006, 6370, 2145, 3221, 102, 0, 0]# 样本2截断补齐[101, 791, 2824, 2824, 3698, 2207, 6991, 8024, 102, 0]# 样本3补齐后[101, 872, 1962, 102, 0, 0, 0, 0, 0, 0]# 注0 [PAD]101[CLS]102[SEP]二、推理时paddingTrue动态长度补齐1. 核心要求推理线上服务、预测时使用paddingTrue默认不指定 max_length按「当前 Batch 内最长的文本长度」动态补齐不固定统一长度。2. 关键优势核心重点保证形状一致满足 DataLoader 并行计算需求避免报错。减少无意义计算无需补齐到训练时的固定长如10只补到当前 Batch 最长值减少大量 [PAD] 带来的无效计算。降低线上延迟无效计算减少后线上服务延迟通常可降低 50%~70%核心优化点。3. 具体示例对应训练示例对比更直观推理时同一个 Batch 内3条文本动态取最长文本长度假设最长为6仅补齐到6无需补到训练时的10。# 推理时代码关键参数encodedtokenizer(texts,paddingTrue,# 动态补齐按当前Batch最长truncationTrue,# 超长截断# 不指定 max_length自动适配当前Batchreturn_tensorspt)# 同一批推理文本长度分别为6、5、3texts[我要投诉客服,# 长度6当前Batch最长今天天气好,# 长度5补齐到6你好# 长度3补齐到6]# 最终 input_ids 形状3, 6仅补齐到当前Batch最长的6# 样本1无需补齐[101, 2769, 3429, 2006, 6370, 2145, 3221, 102] → 修正长度6含CLS/SEP# 样本2补齐后[101, 791, 2824, 2824, 3698, 2207, 102, 0] → 修正[101, 791, 2824, 2824, 3698, 2207, 102]长度7统一说明含CLS/SEP后最长为7则补到7# 简化理解当前Batch最长文本含CLS/SEP为7则所有样本补到7无需补到训练时的10减少3个[PAD]的无效计算三、训练与推理 Padding 对比表重点记忆对比维度训练时推理时Padding 参数padding#34;max_length#34; 指定 max_lengthpaddingTrue不指定 max_length补齐长度固定长度所有 Batch 统一动态长度按当前 Batch 最长文本核心目的适配乱序后的数据并行保证训练稳定保证并行的同时减少无效计算降低延迟优缺点优点稳定缺点存在无意义 Padding 计算优点高效、低延迟缺点长度随 Batch 波动不影响推理适用场景模型训练数据乱序、批量更新线上推理、预测追求效率和低延迟四、总结极简好记训练固定长padding#34;max_length#34;→ 稳适配乱序并行。推理动态长paddingTrue→ 快砍半延迟避免无效计算。核心差异是否固定长度本质是「训练求稳、推理求快」。注文档部分内容可能由 AI 生成

更多文章