返回 大语言模型 思维导图
中文·English
大语言模型ID: padding-packing

填充与打包 Padding/Packing

Padding & Packing
🎯核心定义
Padding (填充) 把 batch 内长度不等的序列补齐到同一长度,以对齐 GPU 矩阵运算 —— 通常动态 pad 到 batch 内最长序列(或 8/16 的倍数);Packing (打包) 则把多条短序列无分隔符地拼接进同一条长序列,彻底消除 pad token 的计算浪费,训练时用注意力 mask / loss mask 屏蔽跨样本边界。
💡使用场景
训练与推理的 batching —— 动态 padding 比固定最大长度显著省算力;长短差异大的数据集(如指令微调数据)训练时,用 sequence packing 把样本拼接至接近 LmaxL_{max};也是 FlashAttention 高效训练的前置要求。
解决的核心痛点
固定长度 padding 在短文本占比高时,pad token 可占计算量的 50% 以上,且 pad 位置仍会产生无效注意力;Packing 把有效 token 利用率提升到接近 100%,但必须 mask 掉拼接边界,否则模型会学到“跨样本预测”的错误模式。
🎯5 个高频面试考点 (Exam Points)
1
动态 padding 与固定长度 padding 各节省什么?为什么 pad 到 8/16 的倍数?
2
Sequence packing 如何消除 pad token 浪费?跨样本边界如何 mask?
3
pad token 参与注意力计算会带来什么问题?attention mask 的作用?
4
Packing 时 loss 计算要注意什么?为什么需要 loss mask?
5
Padding/Packing 与 FlashAttention、PagedAttention 的关系?
📖 关联深度指南:📄 tokenizer-and-sampling
更新于 2026-08-12
🎯
检验攻克程度:针对「填充与打包 Padding/Packing」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点文本嵌入 Embeddings下一个知识点解码策略

🔗 更多 大语言模型 知识点卡片

Agent 与工具调用对齐税与偏好数据缩放点积注意力注意力变体 MHA/MQA/GQA