用途:在 Megatron-Bridge 中校验并使用打包序列(packed sequences)与长上下文训练,区分 LLM 的离线打包 SFT 与 VLM 的批内打包(in-batch packing)。
主要能力:提供离线打包 SFT 配置(PackedSequenceSpecs、enable_offline_packing、pad_to_max_length)、VLM 批内打包(enable_in_batch_packing)、长上下文基线(seq_length=16384、context_parallel_size=2),以及 Bridge 侧配置校验与 THD 运行时约束。
使用方式:LLM 离线打包需设置 micro_batch_size=1、dataset/model seq_length 一致、dataset_kwargs 含 pad_to_max_length=True,并配置 PackedSequenceSpecs(packed_sequence_size=4096, pad_seq_to_mult=1)。启用 CP 时需 context_parallel_size=2、calculate_per_token_loss=True、ddp.average_in_collective=False,pad_seq_to_mult 取 CP2;若同时启用 sequence_parallel,需按 math.lcm(2CP, CP*TP) 对齐。启用 CUDA graphs 时需 pad_cu_seqlens=True 且 pad_to_max_length=True,并需随打包数据集提供 metadata JSON。VLM 批内打包设置 enable_in_batch_packing=True、micro_batch_size=2。
验证:可用 uv run python -m pytest 运行 test_packed_seq_utils.py、test_config.py、test_in_batch.py、test_vlm_step.py、test_packed_parquet.py、test_sft.py 等单元测试,成功标准为所选测试全部通过、离线与批内配置互斥校验保持、打包元数据以 MCore THD 形式到达训练步、映射填充行不贡献损失。
限制:离线打包与批内打包互斥;CP 下序列长度须满足 2*context_parallel_size 整除;打包支持因模型族而异,Qwen3-Next、GLM-4.5、Qwen3.5-VL 存在显式退出路径;MTP 微调与打包序列不兼容;合成填充行须保持全零损失掩码;打包 THD 批次要求 micro-batch size 为 1。