【大模型基础|微调实战03】—— ms-swift-3.12-Megatron-SWIFT命令行参数(训练、推理、对齐、量化、部署全参数)

发布时间:2026/9/16 14:51:21

【大模型基础|微调实战03】—— ms-swift-3.12-Megatron-SWIFT命令行参数(训练、推理、对齐、量化、部署全参数) ms-swift 3.12 命令行参数全解训练、推理、对齐、量化、部署ms-swift 的参数文档有几百条全看一遍不现实随手抄一份别人博客里的命令又容易踩版本坑——同一个参数在 3.12 和 4.x 里可能根本不是一回事。这篇文章解决一件事把 3.12 真正会用到的参数按用途分类讲清楚默认值以官方文档为准。覆盖参数的四层结构、传参格式、六大模块的核心参数、Megatron-SWIFT 专有参数以及高频报错。一、先厘清参数的四层结构官方把命令行参数分成四类层级说明你要不要管基本参数Base通用能力如train_type、seed✅ 常用原子参数Atomic训练器底层细项⚠️ 少数场景才动集成参数Integrated继承上面两类命令行最终生效的就是它✅ 主力特定模型参数Model-specific按模型定制走--model_kwargs⚠️ 多模态/特殊模型才用 重点命令行实际生效的是「集成参数」它是基本参数和原子参数的并集。所以查参数时以集成参数文档为准看别处的旧文档容易对不上。另外记住标记规则带 的是官方标注的重要参数新手优先掌握这些。二、传参格式三种传参风格弄混了就会报解析错误。# list空格分隔多数据集、多路径--datasetdata1 data2 data3# dictJSON 字符串模型额外配置--model_kwargs{fps_max_frames: 12}# bool小写 true / false--gradient_checkpointingtrue⚠️ 注意布尔值必须写小写true/false写成True/False会解析失败。JSON 字符串要用单引号把整个字典包起来里面用双引号。三、核心参数速查下面每张表的「默认值」栏均以 ms-swift 3.12 官方文档为准。默认值这东西最容易以讹传讹照抄前先核对。3.1 基本参数参数说明3.12 默认值train_type微调类型loratuner_backend微调后端peft可选peft/unslothadaptersadapter 权重路径列表[]model模型 ID 或本地路径必填model_type模型类型None按--model与 config.json 自动推断use_hf用 HuggingFace 还是 ModelScopeFalse即默认 ModelScopeseed全局随机种子42external_plugins外置插件.py列表[]model_kwargs模型特定参数JSONNone⚠️ 注意3.12 用的是train_type不是tuner_type。tuner_type是 4.x 分支的参数名在 3.12 的参数表里不存在我核查过官方 3.12 文档全文检索tuner_type零命中。这两个版本哪个用哪个很容易记反。tuner_backend的可选值只有peft和unsloth两个。3.2 模型参数参数说明3.12 默认值torch_dtype权重数据类型None读 config.json可选float16/bfloat16/float32device_map设备分配None按可用设备与分布式配置自动决定attn_impl注意力实现None读 config.json可选sdpa/eager/flash_attn/flash_attention_2/flash_attention_3max_model_len模型最大长度Nonerope_scaling长度外推策略None可传linear/dynamic/yarn或直接传 JSONrope_scaling的用法值得单独说传字符串如yarn时Swift 会结合max_model_len自动算出缩放因子传 JSON如{factor: 2.0, type: yarn}时直接替换 config.json 里的rope_scaling。3.3 数据参数参数说明3.12 默认值dataset训练数据[]val_dataset验证数据[]custom_dataset_info外接数据集注册文件[]columns字段映射Nonesplit_dataset_ratio从训练集切验证集的比例0.不切分dataset_num_proc预处理进程数1strict遇到坏样本是否报错False静默丢弃packing样本打包Falsepadding_free免 paddingFalse⚠️ 注意参数名是--custom_dataset_info不是--dataset_info。 重点split_dataset_ratio默认是0.也就是默认不切分验证集。很多人以为它会自动按 5% 切结果训练日志里根本没有验证指标。要验证集要么显式设置这个比例要么用--val_dataset指定。3.4 模板参数参数说明3.12 默认值template对话模板None按模型自动选择system系统提示词字符串或 .txt 路径None用模板的default_systemmax_length单样本最大 token 数None取模型最大支持长度truncation_strategy超长处理delete可选delete/left/right/splitloss_scale损失计算范围defaultloss_scale的可选值比想象中多基础策略有default、last_round、all另有ignore_empty_think和 Agent 相关的react/hermes/qwen等且支持组合例如defaultignore_empty_think。⚠️ 注意数据内的 system 字段优先级高于命令行--system。命令行传了却没生效先看看数据里是不是已经写了 system。3.5 训练参数参数说明3.12 默认值output_dir输出目录—— 建议显式指定num_train_epochs训练轮数3per_device_train_batch_size单卡 batch1gradient_accumulation_steps梯度累积——learning_rate学习率全参1e-5LoRA 等 tuner 为1e-4warmup_ratio预热比例0gradient_checkpointing梯度检查点True默认已开启save_steps保存间隔500eval_steps评估间隔None有验证集时跟随save_stepssave_total_limit最多保留 checkpoint 数None全部保留这几个默认值值得划重点它们和很多教程里写的都不一样learning_rate按微调方式分档全参1e-5、LoRA1e-4不是统一值。warmup_ratio默认是0不是常见的 0.05。gradient_checkpointing默认True省显存但会拖慢训练。想换速度可以显式设false。save_total_limit默认不限制长时间训练会把磁盘塞满建议显式设成 2~3。3.6 LoRA 参数参数说明3.12 默认值lora_rank低秩矩阵的秩8lora_alpha缩放系数32lora_dropoutdropout0.05target_modules目标模块[all-linear]use_dora是否启用 DoRAFalse⚠️ 注意默认lora_rank8、lora_alpha32两者比值是 4不是 2。网上流传的「alpha 必须是 rank 的两倍」是经验说法而非框架约定真正起作用的是alpha/rank这个比值。target_regex优先级高于target_modules——传了正则target_modules会被忽略。3.7 量化参数参数说明3.12 默认值quant_method量化方法None可选bnb/hqq/eetq/quanto/fp8quant_bits量化位数Nonebnb_4bit_quant_type4bit 量化类型nf4可选fp4/nf4bnb_4bit_use_double_quant双量化True⚠️ 注意3.12 没有--load_in_4bit/--load_in_8bit这两个参数。想做 QLoRA正确写法是--quant_methodbnb--quant_bits4如果用的是已经 AWQ/GPTQ 量化好的模型官方明确说明不需要再设quant_method等量化参数。3.8 RLHF 对齐参数参数说明3.12 默认值rlhf_type对齐算法dpo可选dpo/orpo/simpo/kto/cpo/rm/ppo/grpo/gkdbeta与参考模型的偏离程度按算法而异见下ref_model参考模型None取--modelref_adapters参考模型的 adapter[]rpo_alphaDPO 中 SFT 损失的权重None默认不含 SFT 损失desirable_weightKTO 正样本权重1.0undesirable_weightKTO 负样本权重1.0beta的默认值不是统一值官方文档给的分档是算法beta 默认值SimPO2.0GRPO0.04GKD0.5其他DPO / KTO / ORPO 等0.1 重点beta越大表示与参考模型偏离越小越保守。照抄别人的--beta 0.1到 SimPO 上就完全错了。ref_adapters是实用参数SFT 用的 LoRA想让它的权重同时当参考模型可以用--adapters sft_ckpt --ref_adapters sft_ckpt需 ms-swift 3.8。3.9 推理与部署参数参数说明3.12 默认值infer_backend推理后端pt可选pt/vllm/sglang/lmdeploymax_new_tokens最大生成长度None不限stream流式输出None交互式为 True批量推理为 Falsemerge_lora合并 LoRA 权重Falsevllm_max_model_lenvLLM 最大序列长度None读 config.jsonhost部署监听地址0.0.0.0port部署端口8000⚠️ 注意infer_backend默认是ptPyTorch 原生不是 vLLM。想加速必须显式指定--infer_backend vllm。3.10 导出参数参数说明3.12 默认值merge_lora合并 LoRAFalsepush_to_hub推送模型库Falsehub_model_id目标模型 IDNonehub_token访问令牌Nonequant_method导出量化方法None可选gptq/awq/bnb/fp8quant_n_samplesGPTQ/AWQ 校准样本数256quant_batch_size量化 batch1group_size分组大小128导出阶段的quant_method可选项与训练阶段不同训练是bnb/hqq/eetq/quanto/fp8导出是gptq/awq/bnb/fp8。同一个参数名在不同子命令下取值不一样这是很容易踩的坑。四、Megatron-SWIFT 专有参数Megatron-SWIFT 是走 Megatron 并行体系的训练入口参数与上面的通用参数部分不通用。核心差异train_type在 Megatron 下默认是full不是lora。batch size 拆成两层micro_batch_size单卡和global_batch_size全局。显存控制靠激活重计算而非梯度检查点。参数说明3.12 默认值micro_batch_size单设备 batch1global_batch_size全局 batch micro × DP × 梯度累积16recompute_granularity激活重计算粒度selective可选full/selective/nonerecompute_modules重计算的模块[core_attn]attention_backend注意力后端flash可选flash/fused/unfused/local/autotrain_iters总训练迭代数Nonemax_epochs训练轮数Nonetensor_model_parallel_sizeTP 并行度1pipeline_model_parallel_sizePP 并行度1几个要点重计算粒度推荐selective只重算核心注意力部分比full整层重算省时间显存收益却接近。none需要 ms-swift 3.12.3。recompute_modules配 MoE 模型很好用--recompute_granularity selective --recompute_modules core_attn moe能进一步压显存。global_batch_size的算法是micro_batch_size × DP × 梯度累积其中DP 总卡数 / (TP × PP × CP)。调参时按下式反推别瞎试。部分模型不支持 flash attention如 Llama4、GPT-OSS需改成--attention_backend unfused --padding_free false。优化器状态吃显存时可以用--optimizer_cpu_offload true把优化器状态卸到 CPU。五、实战命令5.1 SFT 训练LoRA QLoRACUDA_VISIBLE_DEVICES0swift sft\--modelQwen/Qwen2.5-1.8B-Instruct\--train_typelora\--custom_dataset_infodataset_info.json\--datasetmed_disc med_self_cog\--torch_dtypebfloat16\--quant_methodbnb\--quant_bits4\--num_train_epochs2\--per_device_train_batch_size4\--gradient_accumulation_steps2\--learning_rate1e-4\--lora_rank16\--lora_alpha32\--target_modulesall-linear\--max_length2048\--split_dataset_ratio0.05\--save_total_limit3\--system你是专业医疗助手提供严谨安全的健康咨询不替代医嘱\--output_dir./output_sft注意这里显式设置了--split_dataset_ratio 0.05因为它默认是0.不切分。5.2 偏好对齐DPOCUDA_VISIBLE_DEVICES0swift rlhf\--rlhf_typedpo\--modelQwen/Qwen2.5-1.8B-Instruct\--train_typelora\--adapters./output_sft/checkpoint-xxx\--ref_adapters./output_sft/checkpoint-xxx\--dataset偏好数据集\--beta0.1\--num_train_epochs1\--per_device_train_batch_size2\--learning_rate1e-5\--output_dir./output_dpo5.3 合并 量化 推送CUDA_VISIBLE_DEVICES0swiftexport\--adapters./output_dpo/checkpoint-xxx\--merge_loratrue\--quant_methodawq\--push_to_hubtrue\--hub_model_id你的用户名/qwen2.5-med-1.8b\--hub_token你的 ModelScope 令牌\--use_hffalse5.4 部署为 API 服务CUDA_VISIBLE_DEVICES0swift deploy\--adapters./output_sft/checkpoint-xxx\--infer_backendvllm\--vllm_max_model_len4096\--host0.0.0.0\--port8000六、高频报错排查6.1 用了tuner_type报未知参数原因tuner_type是 4.x 的参数名3.12 已改名。解决换成--train_type。验证swift sft --help | grep -E train_type|tuner_type。6.2 用了--load_in_4bit报未知参数原因3.12 没有这个开关。解决改用--quant_method bnb --quant_bits 4。6.3 布尔值解析失败原因写成了True/False。解决改成小写true/false。6.4 训练日志没有验证指标原因split_dataset_ratio默认是0.压根没切验证集。解决显式设--split_dataset_ratio 0.05或用--val_dataset。6.5beta设了没效果 / 效果异常原因beta默认值随算法而异照抄别的算法的值。解决对照第 3.8 节的分档表确认。6.6 磁盘被 checkpoint 撑爆原因save_total_limit默认None会保留所有 checkpoint。解决显式设--save_total_limit 2或3。七、总结你真正需要记住的 N 件事3.12 用train_type4.x 用tuner_type——反了就报未知参数。命令行最终生效的是「集成参数」查文档以它为准。默认值别照抄博客num_train_epochs3、per_device_train_batch_size1、warmup_ratio0、gradient_checkpointingTrue、split_dataset_ratio0.这些和很多教程写的不一样。learning_rate按方式分档全参1e-5、LoRA1e-4。LoRA 默认r8, alpha32比值是 4起作用的是比值不是「alpha 必须等于 2r」。QLoRA 用--quant_method bnb --quant_bits 43.12 没有load_in_4bit。beta的默认值按算法区分SimPO 是 2.0DPO/KTO 是 0.1。quant_method在训练和导出阶段取值不同别拿训练的可选值去导出。验证清单swift sft --help | grep train_type能查到参数LoRA 命令里用的是--train_type且位数与--quant_bits配对布尔参数一律小写需要验证集时已显式设置--split_dataset_ratio或--val_dataset已设--save_total_limit防止磁盘写满对齐任务的beta与该算法的官方默认分档核对过导出任务的quant_method用的是导出阶段的可选值参考资源ms-swift 命令行参数通用https://swift.readthedocs.io/en/v3.12/Instruction/Command-line-parameters.htmlms-swift Megatron-SWIFT 命令行参数https://swift.readthedocs.io/en/v3.12/Megatron-SWIFT/Command-line-parameters.htmlms-swift 自定义数据集https://swift.readthedocs.io/en/v3.12/Customization/Custom-dataset.htmlvLLM 引擎参数vllm_*前缀参数的含义见此https://docs.vllm.ai/en/latest/serving/engine_args.html标签#ms-swift #命令行参数 #大模型微调 #LoRA #Megatron #模型部署 #ModelScope
延伸阅读

更多相关文章

2026/9/16 14:51:21

Java Web电商实战:JSP+Servlet+MySQL完整闭环

简介:本资源是一套完整的Java Web开发实战项目——基于JSP的网上体育商城系统,面向高校计算机专业本科生及Java初学者,用于毕业设计、课程设计或Web全栈能力进阶训练。项目覆盖用户管理、商品浏览、购物车、订单处理与支付集成等电商核心功能…

2026/9/16 15:41:44

Django实战:构建多平台电商数据爬虫与清洗入库系统

简介:一份聚焦电商数据采集的Python爬虫分析系统源码,面向高校学生、课程设计与毕业设计人群,适合用来学习爬虫开发与Django项目搭建。系统实现了对京东、淘宝、苏宁、亚马逊中国四个主流电商平台的商品信息抓取,字段涵盖商品名称…

2026/9/16 15:41:44

HTTP与HTTPS详解:请求头、状态码与抓包排障实战

先别急着复制代码,也别急着看框架源码,很多后端新人甚至干了两三年的开发,遇到接口报错还是只会看“500 - Internal Server Error”这七个单词,然后一脸茫然。真正的问题往往藏在状态码、响应头甚至一次重定向的细节里。这篇东西我…

2026/9/16 15:41:44

2026数据智能体选型决策地图:四类厂商本质差异与落地标尺

1. 这不是又一份“厂商对比表”,而是一张数据智能体落地的决策地图2026年,数据智能体(Data Agent)已不再是PPT里的概念名词,它正批量嵌入企业BI看板、供应链预警系统、客户成功工单流、甚至财务月结流程中。我去年帮三…

2026/9/16 15:41:44

微信小程序社区养老系统为何首选SSM架构

简介:本资源是一套完整的社区养老服务微信小程序毕业设计/课程设计项目源码,面向Java初学者与Web开发学习者,聚焦SSM框架实战与小程序前后端协同开发场景。项目以解决社区养老信息互通、服务预约与邻里互助等现实需求为目标,涵盖信…

2026/9/16 15:41:44

M3U8与HLS视频流深入解析:从切片、AES加密到多码流自适应

1. M3U8索引文件到底在管什么——从一次黑屏排查说起前段时间接了个视频站点的改造需求,客户反馈说网页里嵌的视频总是播着播着就黑屏,尤其有些用户网络一波动,整个页面直接卡死。我第一反应是文件太大、浏览器撑不住,去服务器上一…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码