从训练到上线Megatron-LLM模型合并、Hugging Face格式转换与Hub发布全流程【免费下载链接】Megatron-LLMdistributed trainer for LLMs项目地址: https://gitcode.com/gh_mirrors/me/Megatron-LLMMegatron-LLM 是一个面向大规模语言模型LLM的分布式训练框架支持 Llama、Falcon、Mistral 等主流架构并提供张量并行、流水线并行与数据并行三种并行策略。训练完成后模型往往还停留在分片检查点状态——本文带你走通 Megatron-LLM 模型合并、Hugging Face 格式转换与 Hub 发布的完整流程让训练成果真正可复现、可分享、可上线 。一、为什么训练后要先合并检查点在大模型训练中Megatron-LLM 会把模型权重按**张量并行TP和流水线并行PP**切分到多张 GPU 上落盘时就变成一堆分布式分片。这种格式✅ 适合继续训练断点续训、调整并行度重新切分都很方便❌ 不适合直接部署Hugging Face、vLLM 等推理生态只认整块权重格式。所以从训练走向上线第一步就是把分片检查点合并re-parallelize成一个完整的 Megatron 检查点再进行格式转换。二、模型合并最快步骤checkpoint_util 三步走项目内置了检查点合并工具 tools/checkpoint_util.py它通过加载器 保存器两个进程协作完成加载由 tools/checkpoint_loader_megatron.py 读取原始检查点重切分按你指定的目标 TP/PP 大小重组权重比如合并为 TP1、PP1 的单卡可加载格式保存由 tools/checkpoint_saver_megatron.py 写出新的检查点目录。 关键参数--target_tensor_parallel_size与--target_pipeline_parallel_size决定合并后的并行布局--load_dir/--save_dir分别是输入输出目录。想快速上手的可直接参考现成脚本 examples/parallelize.sh它按模型类型 参数量 TP PP四个参数一键调用合并流程是理解该工具的最佳范本。三、Hugging Face 格式双向转换Megatron-LLM 与 Hugging Face 生态之间可以双向无损转换官方文档见 docs/guide/weights_conversion.md。1. 训练前HF 权重 → Megatron 检查点脚本 weights_conversion/hf_to_megatron.py 支持 Falcon、Mistral、Llama、Llama 2 与 CodeLlamaFalcon / Mistral权重自动从 Hugging Face 下载只需--size如 7、40与--out输出目录Llama 系列推荐从 Hugging Face 拉取无需 Meta 原始权重Llama 2 需先执行huggingface-cli login并使用已获授权的账号核心转换逻辑由 weights_conversion/utils/permute_qkv.pyQKV 矩阵重排与 weights_conversion/utils/merge_llama.py权重合并完成。调用方式可参考 examples/hf_to_megatron.shpython weights_conversion/hf_to_megatron.py 模型 --size规模 --out输出目录。2. 训练后Megatron 检查点 → HF 权重脚本 weights_conversion/megatron_to_hf.py 是上线前的最后一步格式还原--input_dir指向含latest_checkpointed_iteration.txt的 Megatron 检查点根目录--model指定模型类型llama2 / falcon / codellama 等--output_dir输出 HF 格式权重会一并转换分词器tokenizer输出目录可直接被transformers库加载还支持--num_output_shards分片输出、--override_special_tokens自定义特殊 token 等参数。 提示HF → Megatron → HF 的往返转换保证了训练前的官方权重和训练后的自有权重使用同一套部署格式方便做效果对比。四、一键发布到 Hubpush_to_hub.py权重转成 HF 格式后用 tools/push_to_hub.py 即可上传到 Hugging Face Hubpython tools/push_to_hub.py /path/to/checkpoint \ --hf_repo_name your_org/model_name \ --dtype bf16 \ --auth_token hf_xxx常用可选项--max_shard_size控制单文件大小默认 10GB 自动分片、--rope_scaling_type / --rope_scaling_factor覆盖 RoPE 缩放配置以支持更长上下文、--trust_remote_code允许自定义模型代码。发布后别人就能用一行from_pretrained加载你的模型 。五、全流程速查表阶段目标核心文件① 权重导入HF → Megatron 检查点weights_conversion/hf_to_megatron.py② 分布式训练多机多卡预训练/微调megatron/training.py、megatron/core/parallel_state.py③ 检查点合并分片 → 完整检查点tools/checkpoint_util.py④ 格式转换Megatron → HF 权重weights_conversion/megatron_to_hf.py⑤ 发布上线上传 Hugging Face Hubtools/push_to_hub.py更多细节可查阅 docs/guide/getting_started.md 与 docs/guide/weights_conversion.md。总结Megatron-LLM 把训练—合并—转换—发布做成了清晰的工具链用checkpoint_util合并并行分片用weights_conversion双向打通 Hugging Face 格式最后用push_to_hub一键发布。掌握这条流水线你就能把多机训练出的大模型完整、可复现地交付给整个社区 。【免费下载链接】Megatron-LLMdistributed trainer for LLMs项目地址: https://gitcode.com/gh_mirrors/me/Megatron-LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考