🎯核心定义
Padding (填充) 把 batch 内长度不等的序列补齐到同一长度,以对齐 GPU 矩阵运算 —— 通常动态 pad 到 batch 内最长序列(或 8/16 的倍数);Packing (打包) 则把多条短序列无分隔符地拼接进同一条长序列,彻底消除 pad token 的计算浪费,训练时用注意力 mask / loss mask 屏蔽跨样本边界。
⚡解决的核心痛点
固定长度 padding 在短文本占比高时,pad token 可占计算量的 50% 以上,且 pad 位置仍会产生无效注意力;Packing 把有效 token 利用率提升到接近 100%,但必须 mask 掉拼接边界,否则模型会学到“跨样本预测”的错误模式。