news 2026/3/20 23:38:06

小白友好!ms-swift命令行参数详解(附常用模板)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白友好!ms-swift命令行参数详解(附常用模板)

小白友好!ms-swift命令行参数详解(附常用模板)

你是不是也遇到过这些情况:

  • 想用ms-swift微调一个模型,但看到几十个参数就头皮发麻?
  • 复制粘贴别人命令后报错,却不知道哪个参数写错了、少写了、写反了?
  • 看文档里一堆--train_type lora--lora_rank 8--target_modules all-linear,完全分不清谁管什么、谁必须配、谁可以省略?

别担心——这篇文章就是为你写的。不讲原理、不堆术语、不列全表,只聚焦最常遇到的23个核心参数,用大白话讲清:
它到底控制什么?
不写会怎样?
写错会报什么错?
小白怎么选最安全的值?
配套给出5类高频场景的「抄作业模板」,改改就能跑通

全文无门槛,哪怕你刚装完CUDA、连pip install都手抖,也能照着一步步走通。


1. 先搞懂:ms-swift命令行的3个核心动作

ms-swift所有命令都围绕三件事展开:训练(sft/pt/rlhf)→ 推理(infer)→ 部署(deploy/eval/export)。参数也按这三类组织,我们先划清边界:

动作常用子命令典型用途小白注意点
训练swift sft
swift pt
swift rlhf
微调指令、预训练、强化学习对齐参数最多、最易出错,本文重点覆盖
推理swift infer
swift app
本地测试、Web界面交互、批量生成参数精简,重在“快跑通”
部署评测swift eval
swift deploy
swift export
模型打分、服务化上线、量化导出多数参数可默认,优先保证--model--infer_backend正确

关键提醒:所有命令都以swift [子命令]开头,比如swift sft是微调,swift infer是推理。别漏掉swift,否则系统会报command not found


2. 训练参数详解:sft/pt/rlhf 通用核心参数(12个)

这部分参数在微调(sft)、预训练(pt)、强化学习(rlhf)中高度复用,掌握它们,80%训练命令都能看懂。

2.1 模型与数据:你的起点和燃料

--model(必填!)
  • 它管什么:告诉ms-swift“你要训哪个模型”
  • 怎么填:填Hugging Face或ModelScope上的模型ID,比如Qwen/Qwen2.5-7B-InstructAI-ModelScope/qwen2-7b-instruct
  • 小白避坑
    • ❌ 别填本地路径(如/home/user/model/),除非你明确加了--model_path
    • ❌ 别漏掉斜杠,Qwen/Qwen2.5-7B-InstructQwenQwen2.5-7B-Instruct
    • 不确定模型ID?去 ModelScope模型库 搜名字,复制“模型ID”字段
--dataset(必填!)
  • 它管什么:指定训练用的数据集
  • 怎么填:支持单个或多个,用空格隔开;可加#数字控制采样量
    --dataset 'AI-ModelScope/alpaca-gpt4-data-zh' 'swift/self-cognition#500'
  • 小白避坑
    • ❌ 单引号必须加!尤其含空格或#时,否则shell会报错
    • #500表示只取前500条,不是“第500条”,别写成#0500
    • 新手推荐从swift/self-cognition(自我认知)开始,数据干净、收敛快
--train_type(必填!)
  • 它管什么:决定你是“全参数训”还是“轻量微调”
  • 怎么选
    • full:全参数训练(需A100/H100,显存≥40GB,新手慎用)
    • lora:主流选择!LoRA微调,7B模型单卡3090(24GB)就能跑
    • qlora:QLoRA,显存再砍一半,适合24GB以下显卡
  • 小白口诀

    “有卡选lora,卡紧选qlora,没卡别碰full

2.2 计算资源:让训练不崩的关键设置

--per_device_train_batch_size(必填!)
  • 它管什么:每张GPU上一次喂多少条数据
  • 怎么选
    • 3090/4090(24GB):填12
    • A100(40GB):可填4
    • 显存爆了?立刻减小这个值!
  • 小白提示:它和--gradient_accumulation_steps(见下)一起控制“实际batch size”,不用死记公式,先填1保稳。
--gradient_accumulation_steps(推荐填!)
  • 它管什么:模拟更大的batch size,让小显存也能训大模型
  • 怎么填:填整数,比如16
  • 小白理解

    实际batch size =per_device_train_batch_size × gradient_accumulation_steps × GPU数量
    你填per_device=1,grad_acc=16, 单卡 → 实际batch=16

  • 安全值:新手从816开始,显存不够就往上加。
--torch_dtype(推荐填!)
  • 它管什么:指定计算精度,直接影响显存和速度
  • 怎么选
    • bfloat16:推荐!速度快、显存省、效果稳(A100/V100/RTX3090+必备)
    • float16:兼容性更好,老卡可用
    • float32:别用!慢且费显存,仅调试用
  • 小白口诀

    “新卡用bfloat16,老卡用float16,绝不碰float32

2.3 LoRA专项:微调必配的3个参数

如果你选了--train_type lora,这三个参数必须成套出现,缺一不可。

--lora_rank(必填!)
  • 它管什么:LoRA矩阵的“宽度”,越大越强、越费显存
  • 怎么选
    • 7B模型:8(安全)、16(进阶)
    • 13B模型:8(保稳)、16(推荐)
  • 小白经验8能解决90%任务,想更强再试16,别一上来就64
--lora_alpha(必填!)
  • 它管什么:LoRA更新的“力度”,一般设为rank×2
  • 怎么填--lora_rank 8--lora_alpha 16--lora_rank 16--lora_alpha 32
  • 小白口诀

    “alpha = rank × 2,照着抄,准没错”

--target_modules(必填!)
  • 它管什么:指定LoRA插在哪几层,决定“训什么”
  • 怎么填
    • all-linear:自动找所有线性层(最省心,新手首选)
    • q_proj,v_proj,k_proj,o_proj:手动指定(进阶用,需查模型结构)
  • 小白警告

    ❌ 别写allall-layers,ms-swift不认!
    记住all-linear,四字真言,保你通关

2.4 训练流程:控制节奏的3个参数

--num_train_epochs(推荐填!)
  • 它管什么:训几轮完整数据
  • 怎么选
    • 指令微调(sft):1~3足够(数据多时1轮就够)
    • 预训练(pt):10~100+(数据流式加载,看--max_steps
  • 小白建议:先设1,跑通再调高。
--max_steps(可选,但推荐!)
  • 它管什么:训多少步就停,比epochs更精准
  • 怎么用:和--num_train_epochs二选一,同时填会冲突!
  • 小白口诀

    “小数据用epochs,大数据流用max_steps

--learning_rate(必填!)
  • 它管什么:模型“学习有多猛”,太大训飞、太小训不动
  • 怎么选
    • LoRA微调:1e-4(0.0001)是黄金值
    • 全参数训:2e-5~5e-5(0.00002~0.00005)
  • 小白铁律

    LoRA就填1e-4,别改!改了大概率训废。


3. 推理参数详解:infer 最简实用参数(5个)

训完模型,下一步就是试试效果。swift infer参数极少,但几个关键点必须对。

3.1 模型加载:两种方式,选对不报错

--model(可选,但常需)
  • 什么时候用:训完直接推理原模型(没加LoRA)
    swift infer --model Qwen/Qwen2.5-7B-Instruct
--adapters(可选,但LoRA必用)
  • 什么时候用:推理你训好的LoRA权重(最常见!)
  • 怎么填:填sft命令里--output_dir下的具体checkpoint文件夹,比如:
    --adapters output/vx-xxx/checkpoint-100
  • 小白避坑
    • ❌ 别填output/总目录,要填到checkpoint-xxx这一级
    • 不确定路径?进output/文件夹,ls -lt看最新生成的文件夹名

小技巧:如果--adapters路径下有args.json,ms-swift会自动读取训练时的--model--system等参数,你不用重复写!

3.2 推理体验:让回答更像人

--temperature(推荐填!)
  • 它管什么:控制回答“随机性”,越小越稳定、越大越发散
  • 怎么选
    • 写代码/答事实:0(最严谨)
    • 创意写作/聊天:0.7~0.9(有灵感但不胡说)
  • 小白口诀

    “求稳填0,求活填0.7,绝不填1.5(会疯)”

--max_new_tokens(必填!)
  • 它管什么:最多生成多少个字(token),防无限输出
  • 怎么选
    • 简单问答:512
    • 长文生成:1024~2048
  • 小白警告:不填会卡死!默认可能无限生成。
--stream(推荐开!)
  • 它管什么:开启“边想边说”,像ChatGPT一样逐字输出
  • 怎么填--stream true(开)或--stream false(关)
  • 小白体验

    true:看着字一个个蹦出来,心里有底
    ❌ 关false:等10秒突然刷出一大段,容易误判卡死


4. 部署与评测参数:eval/deploy 必知参数(6个)

训好、推好,最后一步:让模型真正能用起来。

4.1 评测(eval):给模型打分

--eval_dataset(必填!)
  • 它管什么:用哪个标准题库考模型
  • 怎么填:填评测集名字,比如gsm8k(数学题)、mmlu(综合知识)、ceval(中文考试)
  • 小白捷径

    去官方评测集列表 Ctrl+F搜关键词,比如搜“数学”看到gsm8k,直接抄。

--infer_backend(必填!)
  • 它管什么:用什么引擎跑推理,决定速度和显存
  • 怎么选
    • pt:PyTorch原生,兼容最好,新手首选
    • vllm:最快!但需A100/V100/RTX4090+,显存≥24GB
    • lmdeploy:国产优化,华为昇腾/NPU用户选它
  • 小白口诀

    “没卡用pt,有卡用vllm,国产卡用lmdeploy

--eval_limit(推荐填!)
  • 它管什么:只考前N道题,避免等1小时出结果
  • 怎么填--eval_limit 100(考100题),新手从50起步
  • 小白价值:1分钟出分,快速验证模型是否训对。

4.2 部署(deploy):一键变API

--infer_backend(同eval,必填!)
  • 同上,部署也得选引擎,逻辑一致。
--host&--port(推荐填!)
  • 它管什么:指定API服务跑在哪个IP和端口
  • 怎么填
    --host 0.0.0.0 --port 8000
  • 小白说明
    • 0.0.0.0= 所有设备都能访问(局域网内)
    • 8000= 常用端口,别用80(需root)或443(HTTPS)

部署成功后,浏览器打开http://你的IP:8000就能看到WebUI界面!


5. 5类高频场景:小白可直接抄的命令模板

别再从零拼参数!下面5个模板覆盖90%新手需求,复制→替换模型/数据→回车运行

5.1 模板1:单卡3090微调Qwen2.5-7B(最稳妥入门)

CUDA_VISIBLE_DEVICES=0 \ swift sft \ --model Qwen/Qwen2.5-7B-Instruct \ --dataset 'swift/self-cognition#500' \ --train_type lora \ --per_device_train_batch_size 1 \ --gradient_accumulation_steps 16 \ --torch_dtype bfloat16 \ --lora_rank 8 \ --lora_alpha 16 \ --target_modules all-linear \ --learning_rate 1e-4 \ --num_train_epochs 1 \ --max_length 2048 \ --output_dir output_qwen25_7b_lora \ --logging_steps 5 \ --save_steps 50 \ --eval_steps 50

适配:3090/4090(24GB)
效果:1小时内训完,自我认知能力明显提升

5.2 模板2:单卡3090推理你训好的LoRA模型

CUDA_VISIBLE_DEVICES=0 \ swift infer \ --adapters output_qwen25_7b_lora/vx-xxx/checkpoint-50 \ --stream true \ --temperature 0 \ --max_new_tokens 1024 \ --infer_backend pt

替换checkpoint-50为你实际生成的文件夹名
运行后输入who are you?,看它是否记得自己是Qwen2.5

5.3 模板3:用vLLM加速推理(A100/4090用户)

CUDA_VISIBLE_DEVICES=0 \ swift infer \ --model Qwen/Qwen2.5-7B-Instruct \ --adapters output_qwen25_7b_lora/vx-xxx/checkpoint-50 \ --merge_lora true \ --infer_backend vllm \ --vllm_max_model_len 8192 \ --stream true \ --temperature 0.7 \ --max_new_tokens 2048

--merge_lora true:把LoRA权重合并进原模型,vLLM才能用
pt快3~5倍,显存占用更低

5.4 模板4:快速评测模型数学能力(gsm8k)

CUDA_VISIBLE_DEVICES=0 \ swift eval \ --model Qwen/Qwen2.5-7B-Instruct \ --adapters output_qwen25_7b_lora/vx-xxx/checkpoint-50 \ --infer_backend pt \ --eval_dataset gsm8k \ --eval_limit 50 \ --eval_output_dir eval_results

50道小学奥数题,2分钟出准确率(accuracy)
结果存于eval_results/,打开CSV看详细得分

5.5 模板5:部署成Web服务(局域网可用)

CUDA_VISIBLE_DEVICES=0 \ swift deploy \ --model Qwen/Qwen2.5-7B-Instruct \ --adapters output_qwen25_7b_lora/vx-xxx/checkpoint-50 \ --infer_backend vllm \ --host 0.0.0.0 \ --port 8000 \ --vllm_max_model_len 8192

运行后,手机/电脑浏览器打开http://服务器IP:8000
输入问题,实时获得回答,像用ChatGPT一样


6. 常见报错速查表:5分钟定位问题

参数填错?别翻日志大海捞针,对照这张表,秒级修复。

报错信息(关键词)可能原因速查步骤修复方案
CUDA out of memory显存不足--per_device_train_batch_size--gradient_accumulation_steps↓ batch_size(如11),↑ grad_acc(如1632
KeyError: 'q_proj'--target_modules写错查模型是否支持q_proj(Qwen用all-linear改成--target_modules all-linear
No module named 'vllm'vLLM未安装运行pip list | grep vllmpip install vllm -U(A100/4090)或pip install lmdeploy -U(国产卡)
FileNotFoundError: ... args.json--adapters路径不对output/目录,ls看真实文件夹名改成完整路径,如output/vx-20240501/checkpoint-100
ValueError: max_length must be > 0--max_length缺失或为0检查sft命令是否漏了--max_length 2048补上--max_length 2048(Qwen系列推荐值)

终极技巧:遇到报错,先复制报错第一行,去ms-swift GitHub Issues 搜索,90%问题已有答案。


7. 总结:小白上手三步走

回顾一下,你不需要记住全部参数,只要抓住这三条主线:

7.1 训练:三件套保命

  • 模型+数据+类型--model+--dataset+--train_type lora(必须同时存在)
  • 显存守门员--per_device_train_batch_size 1+--gradient_accumulation_steps 16(3090黄金组合)
  • LoRA三剑客--lora_rank 8+--lora_alpha 16+--target_modules all-linear(缺一不可)

7.2 推理:两要素通关

  • 加载方式:训完LoRA,一定用--adapters [checkpoint路径],别用--model
  • 体验开关--stream true(看输出) +--temperature 0(求稳) +--max_new_tokens 1024(防卡死)

7.3 部署评测:一配置见效

  • 评测--eval_dataset gsm8k(数学)或mmlu(综合) +--infer_backend pt(兼容)
  • 部署--host 0.0.0.0 --port 8000(局域网可访问) +--infer_backend vllm(有卡必选)

现在,你已经比90%刚接触ms-swift的人更清楚参数怎么用了。下一步?
打开终端,复制模板1,把Qwen/Qwen2.5-7B-Instruct换成你想训的模型,回车!
5分钟后,你会看到第一行Step 1/...的日志——那一刻,你就正式踏入大模型微调的大门了。

--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 0:45:21

JLink驱动安装完整示例:构建独立烧录工作站

以下是对您提供的博文内容进行 深度润色与重构后的技术文章 。整体风格已全面转向 真实工程师口吻的技术分享体 ,去除了所有AI痕迹、模板化表达和冗余结构,强化了逻辑递进、实战细节与工程思辨,并严格遵循您提出的全部优化要求&#xff0…

作者头像 李华
网站建设 2026/3/14 22:44:39

Hunyuan-MT vs mBART:38语种互译效果与GPU消耗对比评测

Hunyuan-MT vs mBART:38语种互译效果与GPU消耗对比评测 1. 为什么这次对比值得你花三分钟看完 你有没有遇到过这样的场景: 要把一份维吾尔语产品说明书快速翻成中文,但主流翻译工具要么不支持,要么错得离谱;给西班牙…

作者头像 李华
网站建设 2026/3/19 8:12:33

如何使用XInputTest进行专业游戏控制器性能测试

如何使用XInputTest进行专业游戏控制器性能测试 【免费下载链接】XInputTest Xbox 360 Controller (XInput) Polling Rate Checker 项目地址: https://gitcode.com/gh_mirrors/xin/XInputTest 想准确评估Xbox 360控制器的响应性能?XInputTest作为一款轻量级测…

作者头像 李华
网站建设 2026/3/15 17:54:16

剪贴板增强工具:让你的复制粘贴效率提升300%的实用指南

剪贴板增强工具:让你的复制粘贴效率提升300%的实用指南 【免费下载链接】Maccy Lightweight clipboard manager for macOS 项目地址: https://gitcode.com/gh_mirrors/ma/Maccy 日常办公中,你是否经常遇到这些问题:刚复制的内容不小心…

作者头像 李华
网站建设 2026/3/15 17:54:20

Qwen3-1.7B新手避坑:常见问题全解答

Qwen3-1.7B新手避坑:常见问题全解答 你刚点开Qwen3-1.7B镜像,Jupyter页面加载完成,复制粘贴了那段LangChain调用代码——结果卡在chat_model.invoke("你是谁?"),控制台没反应、没报错、也没输出。 或者更糟…

作者头像 李华
网站建设 2026/3/15 17:54:21

YOLOv13镜像使用总结:适合新手的终极方案

YOLOv13镜像使用总结:适合新手的终极方案 你是不是也经历过—— 花三天配环境,结果卡在 flash_attn 编译失败; 查遍论坛,发现别人用的 CUDA 版本和你差了 0.1; 好不容易跑通预测,一训练就报 CUDA out of m…

作者头像 李华