
LLaMA-Factory微调Hy4 previewhy_v4模板注册与FSDP加速实战【免费下载链接】Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家MoE旗舰模型。模型总参数量 770B每个 token 激活 49B主干共包含78层第一层采用标准 FFN其余 77 层均为 MoE 结构每层包含 256 个路由专家与 1 个共享专家每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP总参数量 10B激活 0.7B以支持投机解码。项目地址: https://ai.gitcode.com/tencent_hunyuan/Hy4-preview腾讯混元旗舰 MoE 模型Hy4 preview总参数 770B、每 token 激活 49B现已开源完整微调方案。本文以LLaMA-Factory 微调为主线手把手带你完成hy_v4 对话模板注册与FSDP 加速覆盖 LoRA 微调、全量微调与慢思考CoT训练帮助你在多机多卡上跑通 770B 级模型训练。一、为什么用 LLaMA-Factory 微调 Hy4 previewHy4 preview 是腾讯混元团队研发的混合专家MoE旗舰模型核心规格如下项目规格总参数量770B每 token 激活49B主干层数78 层第 1 层标准 FFN其余 77 层为 MoE每层专家256 个路由专家 1 个共享专家激活策略top-8 路由专家 共享专家注意力MLAMulti-head Latent Attention投机解码原生内置 1 层 MTP总参 10B激活 0.7B官方在 finetune/ 目录下提供三套微调方案其中 llama_factory_support/ 面向熟悉 LLaMA-Factory 的用户脚本、补丁与配置文件开箱即用。二、快速上手一键启动微调1. 克隆仓库并安装依赖git clone https://gitcode.com/tencent_hunyuan/Hy4-preview cd Hy4-preview/finetune pip install -r requirements.txt依赖清单见 requirements.txttransformers5.16.2、torch2.10.0、accelerate1.11.0、peft0.18.1、deepspeed0.18.7、flash-attn等同时需按 LLaMA-Factory 官方指引完成其自身安装。2. 修改启动脚本编辑 train_lf.sh设置显卡数与节点 IPexport HOST_GPU_NUM8 # 单机保持默认多机填 IP 列表如 192.168.1.1,192.168.1.2 export IP_LIST${IP_LIST:-127.0.0.1}如需切换 LoRA 配置通过环境变量指定 YAMLexport YAML_FILEhy_v4_lora_sft.yaml3. 启动训练在每一台机器的 llama_factory_support/ 目录下执行bash train_lf.sh脚本通过torchrun拉起分布式进程每个进程运行 train_hy_v4.py 并自动注入全部 HYV4 补丁。 硬件参考最小配置LoRA 微调约8 机 64 卡、全量微调约16 机 128 卡每卡显存 ≥96GB每机 CPU 内存 ≥2TB。详见 README_CN.md。三、hy_v4 对话模板注册详解模板注册是微调正确性的关键。hy_v4_template.py 用register_template向 LLaMA-Factory 注册名为hy_v4的模板。1. Token 格式对话每一轮遵循如下结构对应 chat_template.jinja位置Token说明段首hy_start:opensource角色分隔兼作 BOSID 120000段中hy_middle:opensource角色名与正文分隔ID 120001段尾hy_end:opensource轮次结束兼作 EOSID 120025Loss 掩码仅对 assistant 内容含 EOS计算损失system / user 部分不参与。2. 快思考与慢思考模板采用ReasoningTemplate并配置thought_words(think:opensource, /think:opensource)从而正确屏蔽思考标签 token。快思考数据中不含think:opensource标签 → 模型学习直接作答。慢思考CoTassistant 内容中必须写入think:opensource.../think:opensource标签否则只能学到快思考。⚠️ 是否有慢/快思考完全由数据中是否存在 think 标签决定请在训练慢思考能力时务必加入 think 标签。3. 注册源码核心注册代码见 hy_v4_template.py#L40-L50register_template( namehy_v4, template_classReasoningTemplate, format_userStringFormatter(slots[hy_start:opensourceuserhy_middle:opensource{{content}}hy_end:opensource]), format_assistantStringFormatter(slots[hy_start:opensourceassistanthy_middle:opensource{{content}}hy_end:opensource]), format_systemStringFormatter(slots[hy_start:opensourcesystemhy_middle:opensource{{content}}hy_end:opensource]), thought_words(think:opensource, /think:opensource), stop_words[hy_end:opensource], efficient_eosFalse, )四、FSDP 加速实战对LoRA 微调官方推荐FSDPFull Shard Data Parallel兼容性好、配置简单全部配置内置于 hy_v4_lora_sft.yaml。1. FSDP 配置fsdp: true fsdp_config: version: 1 fsdp_sharding_strategy: FULL_SHARD fsdp_backward_prefetch: BACKWARD_PRE fsdp_state_dict_type: FULL_STATE_DICT fsdp_use_orig_params: true fsdp_cpu_ram_efficient_loading: true fsdp_offload_params: false fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP fsdp_transformer_layer_cls_to_wrap: HYV4DecoderLayer关键点FULL_SHARD全切分参数 / 梯度 / 优化器状态最大化显存节省。TRANSFORMER_BASED_WRAPHYV4DecoderLayer按解码器层切分粒度合理、通信高效。fsdp_cpu_ram_efficient_loading: true仅 local_rank 0 加载真实权重到 CPU其余 rank 建 meta 模型由 FSDP 广播把单节点峰值 CPU 内存从N_ranks × 模型降到1 × 模型。2. LoRA 目标模块Hy4 preview 使用 MLALoRA 默认挂载在注意力投影层见 hy_v4_lora_sft.yaml#L26-L30lora_rank: 64 lora_alpha: 128 lora_dropout: 0.05 lora_target: q_a_proj,q_b_proj,kv_a_proj_with_mqa,kv_b_proj,o_proj3. FSDP vs DeepSpeed 怎么选场景推荐策略说明LoRA 微调FSDP配置简单、兼容性好全量微调DeepSpeed ZeRO-3 Offload指向ds_zero3_offload.json显存极度紧张DeepSpeed ZeRO-3 Offload参数 / 优化器 offload 到 CPU全量微调的 DeepSpeed 配置见 hy_v4_full_sft.yaml 的deepspeed字段。五、运行时补丁让 770B 模型跑得动train_hy_v4.py 启动时依次完成四件事注册模板、应用补丁、注入回调、调用run_exp()。真正的重活在 hy_v4_patches.py它通过 monkey-patch 解决了多个 770B 级工程难题补丁作用Patch 1ZeRO-3 权重加载key 重命名 专家张量 3D 融合 buffer 手动加载Patch 2保存 checkpoint 时自动拷贝 tokenizer 文件保证每个 ckpt 目录可独立推理Patch 3分片加载shard-by-shard把每 rank CPU 内存从约 670GB 降到约 7GBPatch 4FSDP wrap 前统一参数 dtype 为 bf16并关闭混精避免 bf16→fp32 上转翻倍显存Patch 5兼容新版 transformers 的create_optimizer(model)签名此外train_hy_v4.py#L54-L77 还针对ZeRO-3 CPU offload场景跳过全局梯度范数计算max_grad_norm0时避免 770B 模型在 optimizer step 处 NCCL 超时 / 死锁。补丁在import hy_v4_patches时即自动生效见 hy_v4_patches.py#L650-L654无需手动调用。六、训练数据与关键超参数1. 数据格式训练数据为 messages 结构sharegpt 格式示例见 example_data.jsonl{messages: [{role: system, content: You are a helpful assistant.}, {role: user, content: 11?}, {role: assistant, content: 112}]}在 dataset_info.json 中注册数据集hy_v4_demo指向../data/example_data.jsonl。2. 学习率建议微调类型learning_rate配置文件全量微调1.0e-5hy_v4_full_sft.yamlLoRA 微调2.0e-4hy_v4_lora_sft.yaml两者均使用cosine_with_min_lr调度、bf16: true、gradient_checkpointing: true并建议flash_attn: auto。3. 其他常用参数cutoff_len最大序列长度LoRA 可适当调小省显存。max_samples限制使用的样本数示例默认 1000。save_steps/logging_steps存盘与日志间隔。report_to可选none / wandb / tensorboard / swanlab / mlflow。七、常见问题 FAQQ1启动时提示线性层 bias 未加载Hy4 preview 的线性层q_a_proj 等不使用 bias可忽略但 MoE 路由的e_score_correction_bias属于 buffer由补丁自动加载若加载失败请勿忽略。Q2LoRA 训练只保存 LoRA 权重是的。LoRA 微调只保存适配器权重不保存 base 模型权重推理时需合并或加载对应 base。Q3想断点续训怎么做将resume_from_checkpoint设为已有 checkpoint 路径且不要同时指定model_name_or_path后者只加载权重不加载训练状态。续训 loss 可能有微小偏差属正常现象。Q4全量微调 CPU OOMPatch 3 的分片加载已把 CPU 内存降到约 7GB/rank若仍不足可尝试调小cutoff_len、降低per_device_train_batch_size或改用 offload 配置。小结模板注册hy_v4模板 ReasoningTemplate决定 token 切分与慢 / 快思考行为是训练正确性的基石。FSDP 加速LoRA 用 FSDP、全量用 ZeRO-3Offload二者按需二选一。运行时补丁自动解决 ZeRO-3 加载、分片加载、dtype 统一等 770B 工程难题。掌握以上三步你就能在 llama_factory_support/ 目录下快速跑通 Hy4 preview 的微调任务。【免费下载链接】Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家MoE旗舰模型。模型总参数量 770B每个 token 激活 49B主干共包含78层第一层采用标准 FFN其余 77 层均为 MoE 结构每层包含 256 个路由专家与 1 个共享专家每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP总参数量 10B激活 0.7B以支持投机解码。项目地址: https://ai.gitcode.com/tencent_hunyuan/Hy4-preview创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考