AI・機械学習
中級
Document Packing(Sequence Packing)(ドキュメントパッキング)
LLMプリトレーニングの高速化技法。複数の短い文書をコンテキスト長いっぱいに連結しバッチ化することで、パディングによるGPU計算の無駄をゼロに近づけ、学習スループットを大幅に向上させる。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
document-packing
sequence-packing
pretraining
gpu-efficiency
mfu
padding
Document Packing(Sequence Packing)
Document Packingは、LLMのプリトレーニング効率を高めるためのデータ処理技術。通常、学習データの文書はバラバラな長さを持つため、バッチ化する際に短い文書にパディングトークンを付加してシーケンス長を揃える必要があった。このパディング部分はGPUが無駄な計算を行う原因となり、Model FLOP Utilization(MFU)を大幅に低下させる。
技術的仕組み
Document Packingでは、複数の文書をEOS(End-of-Sequence)トークンで区切りながら連結し、コンテキスト長(例:4096トークン)いっぱいまで詰め込む:
[Doc1 tokens][EOS][Doc2 tokens][EOS][Doc3 tokens...]
← ────────── コンテキスト長 4096 ────────── →
パディングトークンがほぼゼロになるため、GPUの計算リソースを有効活用できる。
文書間の注意漏洩防止
単純にパッキングするだけでは、異なる文書間でself-attentionが計算され文脈が混濁する。これを防ぐ手法:
- Attention Mask: パック内の各文書に固有のマスクを適用し他文書トークンへの注意をゼロにする
- Position ID Reset: 各文書の先頭でposition IDをリセットし2D位置エンコーディングで文書内位置を表現
- Flash Attention対応: Flash Attention 2以降はVariable-Length Sequenceをサポートし、パッキングと効率的に組み合わせられる
効率改善の実績
- パディング削減でMFUが5〜15%ポイント向上(モデル・データセット依存)
- 同一GPUリソースで学習できるトークン数が増加
- LLaMA 3の公開技術レポートでもDocument Packingが効率化の重要要素として挙げられている
採用状況
LLaMA・Mistral・Gemma・Qwen2・Phi-3など現代の主要オープンLLMのプリトレーニングパイプラインで標準的に採用されている。HuggingFace TRL・MegatronLM・FSDP各フレームワークがサポートする事実上の標準技術となっている。