当前位置: 首页 > news >正文

【自然语言处理与大模型】使用Xtuner进行模型合并与导出

        在上一篇文章中我为大家介绍了Xtuner框架如何进行QLoRA微调,这个框架在微调过后会得到适配器权重文件,它的后缀是.pth。但原模型都是huggingface模型,其后缀是safetensors。所以呢我们在使用这个框架导出模型之前要合并,合并之前要做数据转换。

(1)数据转换

        Xtuner使用 PyTorch 训练出来的模型权重文件保存为 pth 格式(例如 iter_2000.pth;如果使用了 DeepSpeed,则会保存为一个文件夹)。为了便于后续使用,我们需要将其转换为 HuggingFace 模型格式,可以使用命令 xtuner convert pth_to_hf 来完成转换。具体命令如下:

xtuner convert pth_to_hf ${FINETUNE_CFG} ${PTH_PATH} ${SAVE_PATH}
# 例如:xtuner convert pth_to_hf internlm2_chat_7b_qlora_custom_sft_e1_copy.py ./iter_2000.pth ./iter_2000_hf

 这里涉及的三个参数分别是:

  • ${FINETUNE_CFG}:这是微调配置文件的路径。这个配置文件包含了关于如何加载原始模型、adapter层以及如何进行转换的相关信息。它通常是 Python 脚本的形式,例如 internlm2_chat_7b_qlora_custom_sft_e1_copy.py

  • ${PTH_PATH}:这是要转换的 PyTorch 模型权重文件的路径。这通常是在训练过程中保存下来的检查点文件(checkpoint),例如 ./iter_2000.pth,表示经过 2000 步迭代后保存的模型权重。

  • ${SAVE_PATH}:这是转换后的 Hugging Face 格式的模型将要保存的位置。您可以指定一个目录,转换后的模型文件将会被存储在这个目录下。例如 ./iter_2000_hf 表示在当前目录下创建一个名为 iter_2000_hf 的文件夹,并将转换后的模型存放在里面。

(2)模型合并导出

        若使用了 LoRA 或 QLoRA 进行微调,模型转换后将仅包含 adapter 参数,而不包含原始的 LLM 参数。如果你希望获得合并后的模型权重(例如用于后续评测)可以使用 xtuner convert merge 命令来完成这一操作:

# xtuner convert merge ${LLM} ${LLM_ADAPTER} ${SAVE_PATH}
xtuner convert merge /root/InternLM/models/Qwen3-0.6B /root/InternLM/models/Qwen3-0.6B_adapter /root/InternLM/models/merged_Qwen3-0.6B

其中参数为:

  • ${LLM}:原始 Qwen3-0.6B 模型位于 /root/InternLM/models/Qwen3-0.6B
  • ${LLM_ADAPTER}:微调后得到的 adapter 层(即训练好的额外层)位于 /root/InternLM/models/Qwen3-0.6B_adapter
  • ${SAVE_PATH}:我们希望将合并后的模型保存到 /root/InternLM/models/merged_Qwen3-0.6B

相关文章:

  • Github 2025-05-03 Rust开源项目日报 Top10
  • (即插即用模块-Attention部分) 六十三、(2024 CVPR) MLKA 多尺度大核注意力
  • 我写了一个分析 Linux 平台打开文件描述符跨进程传递的工具
  • 学习黑客网络安全法
  • Docker与WSL2如何清理
  • WebRTC 服务器之Janus架构分析
  • 【JAVA】数组与内存模型:二维数组底层实现(9)
  • 2.2 矩阵
  • NV203NV207SSD固态闪存NV208NV213
  • Maven 实现多模块项目依赖管理
  • neo4j初尝试
  • YOLOv11改进:利用RT-DETR主干网络PPHGNetV2助力轻量化目标检测
  • Excel-CLI:终端中的轻量级Excel查看器
  • 普通IT的股票交易成长史--20250502 突破(2)
  • 硬件工程师面试常见问题(12)
  • ES6/ES11知识点 续一
  • JavaScript性能优化实战之调试与性能检测工具
  • 【Hive入门】Hive与Spark SQL深度集成:通过Spark ThriftServer高效查询Hive表
  • 【Hive入门】Hive与Spark SQL深度集成:执行引擎性能全面对比与调优分析
  • 【Linux】Petalinux驱动开发基础
  • 金正恩视察重要军工企业要求推进武力强化变革
  • 8小时《大师与玛格丽特》:长度可以是特点,但不是价值标准
  • 印巴冲突升级,巴防长称已击落5架印度战机
  • 中国驻俄大使张汉晖人民日报撰文:共襄和平伟业,续谱友谊新篇
  • 马上评|独生子女奖励不能“私了”,政府诚信是第一诚信
  • 外交部:中方和欧洲议会决定同步全面取消对相互交往的限制