命令行参数
目录
sft 参数
dpo 参数
merge-lora infer 参数
export 参数
eval 参数
app-ui 参数
deploy 参数
sft 参数
--model_type:代表选定的模型类型,默认为None。model_type指定相应模型的默认lora_target_modules、template_type、 等信息。您可以通过仅指定 进行微调model_type。相应将使用默认设置,模型将从 ModelScope 下载并使用默认缓存路径。必须指定 model_type 和 model_id_or_path 之一。您可以在此处model_id_or_path查看可用的 列表。您可以设置环境变量来控制从 HF Hub 下载模型和数据集,请参阅HuggingFace 生态系统兼容性文档。model_type USE_HF
--model_id_or_path:表示model_idModelScope/HuggingFace Hub 中的 或模型的本地路径,默认为None。如果提供的model_id_or_path已经注册,则将model_type根据 推断model_id_or_path。如果尚未注册,model_type则model_id_or_path必须同时指定 和 ,例如--model_type <model_type> --model_id_or_path <model_id_or_path>。
--model_revision:ModelScope Hub 上 对应的版本号model_id,默认为None。如果model_revision是None,则使用 中注册的修订版本MODEL_MAPPING。否则,强制使用model_revision从命令行传递的 。
--local_repo_path:部分模型依赖 GitHub repo 进行加载,为避免 过程中出现网络问题git clone,您可以直接使用本地 repo,此参数需要输入本地 repo 路径,默认为None。这些模型包括:
mPLUG-Owl 型号:https://github.com/X-PLUG/mPLUG-Owl
DeepSeek-VL 模型:https://github.com/deepseek-ai/DeepSeek-VL
YI-VL型号:https://github.com/01-ai/Yi
LLAVA 模型:https://github.com/haotian-liu/LLaVA.git
--sft_type:微调方式,默认为'lora'。可选项有:'lora', 'full', 'longlora', 'adalora', 'ia3', 'llamapro', 'adapter', 'vera', 'boft'。若使用qlora,需设置--sft_type lora --quantization_bit 4。
--packing:打包数据集长度为max-length,默认False。
--freeze_parameters:当 sft_type 设置为“full”时,冻结模型的最底层参数。范围是 0. ~ 1.,默认值是0.。这在 lora 和完全微调之间提供了折衷。
--additional_trainable_parameters:除了 freeze_parameters 之外,只有当 sft_type 为 'full' 时才允许,默认为[]。例如,如果你想在 50% 的参数之外训练 embedding 层,你可以设置--freeze_parameters 0.5 --additional_trainable_parameters transformer.wte,所有以 开头的参数transformer.wte都将被激活。你也可以设置--freeze_parameters 1 --additional_trainable_parameters xxx自定义可训练层。
--tuner_backend:后端支持lora、qlora,默认为'peft'。可选项包括:'swift'、'peft'、'unsloth'。
--template_type:使用的对话模板类型,默认为,即根据 进行查找'AUTO'。可用选项可在 中找到。templateMODEL_MAPPINGmodel_typetemplate_typeTEMPLATE_MAPPING.keys()
--output_dir:ckpt 存放目录,默认为'output'。我们会将model_type微调版本号追加到此目录,方便用户在不改变output_dir命令行参数的情况下,对不同型号进行多次对比实验。如果不想追加此内容,请指定--add_output_dir_suffix false。
--add_output_dir_suffix:默认为True,表示目录后会附加 后缀model_type和微调版本号output_dir。设置为False可避免此行为。
--ddp_backend:后端是否支持分布式训练,默认为None。选项包括:'nccl','gloo','mpi','ccl'。
--seed:全局种子,默认为42。用于复现训练结果。
--resume_from_checkpoint:用于从某个检查点继续训练,默认为None。你可以将其设置为检查点的路径,例如:--resume_from_checkpoint output/qwen-7b-chat/vx-xxx/checkpoint-xxx,即从该点继续训练。支持调整--resume_only_model为在检查点继续期间只读取模型文件。
--resume_only_model:默认为False,表示严格检查点延续,这将读取模型、优化器、lr_scheduler 的权重以及存储在每个设备上的随机种子,并从最后暂停的步骤继续训练。如果设置为True,它将只读取模型的权重。
--dtype:加载基础模型时的torch_dtype,默认为'AUTO',即智能选择dtype:若机器不支持bf16,则使用fp16;若MODEL_MAPPING对应模型指定了torch_dtype,则使用该模型的dtype;否则使用bf16。可选项包括:'bf16','fp16','fp32'。
--dataset:用于选择训练数据集,默认为。你可以在这里[]看到可用的数据集列表。如果你需要用多个数据集进行训练,可以使用 ',' 或 ' ' 来分隔它们,例如:或。它支持 Modelscope Hub/HuggingFace Hub/local 路径、子集选择和数据集采样。每个数据集的指定格式如下: 。最简单的情况只需要指定 dataset_name、dataset_id 或 dataset_path。自定义数据集可以在自定义和扩展数据集文档中找到--dataset alpaca-en,alpaca-zh--dataset alpaca-en alpaca-zh[HF or MS::]{dataset_name} or {dataset_id} or {dataset_path}[:subset1/subset2/...][#dataset_sample]
支持MS和HF hub,以及dataset_sample,例如'MS::alpaca-zh#2000'、'HF::jd-sentiment-zh#2000'(默认使用的hub由USE_UF环境变量控制,默认为MS)。
对子集进行更细粒度的控制:默认使用注册时指定的子集(如果注册时未指定,则使用“默认”)。例如,“sharegpt-gpt4”。如果指定了子集,则使用数据集的相应子集。例如,“sharegpt-gpt4:default/V3_format#2000”。以“/”分隔。
支持 dataset_id。例如,'AI-ModelScope/alpaca-gpt4-data-zh#2000'、'HF::llm-wizard/alpaca-gpt4-data-zh#2000'、'hurner/alpaca-gpt4-data-zh#2000'、'HF::shibing624/alpaca-zh#2000'。如果 dataset_id 已注册,它将使用注册时指定的预处理函数、子集、拆分等。否则,它将使用,支持 5 种数据集格式,并使用 'default' 子集,拆分设置为 'train'。支持的数据集格式可以在自定义和扩展数据集文档SmartPreprocessor中找到。
支持dataset_path,例如'1.jsonl#5000'(如果是相对路径,则是相对于运行目录)。
--val_dataset:指定与参数格式相同的单独验证数据集dataset,默认为[]。如果使用val_dataset,则会dataset_test_ratio被忽略。
--dataset_seed:数据集处理的种子,默认为42。以random_state形式存在,不影响全局种子。
--dataset_test_ratio:用于指定将子数据集拆分为训练集和验证集的比例,默认值为 ,0.01若--val_dataset设置 ,则该参数无效。
--train_dataset_sample:训练数据集的样本个数,默认为-1,表示使用完整的训练数据集进行训练。此参数已弃用,请使用--dataset {dataset_name}#{dataset_sample}代替。
--val_dataset_sample:用于对验证集进行抽样,默认值为None,自动选取合适数量的数据样本进行验证。如果指定-1,则使用完整验证集进行验证。此参数已弃用,验证集的样本数量由--dataset_test_ratio或控制--val_dataset {dataset_name}#{dataset_sample}。
--system:对话模板使用的系统,默认为None,即使用模型默认的系统。如果设置为 ,则不使用系统。
--tools_prompt:选择对应的tools系统提示进行tools字段转换,选项有['react_en', 'react_zh', 'toolbench'],分别对应英文版ReAct格式、中文版ReAct格式、toolbench格式,默认为英文版ReAct格式,更多信息可以参考Agent 部署最佳实践。
--max_length:最大 token 长度,默认为2048。避免因个别样本过长而导致 OOM 问题。--truncation_strategy delete指定 时,超过 max_length 的样本将被删除。--truncation_strategy truncation_left指定 时,最左边的 token 将被截断:input_ids[-max_length:]。如果设置为 -1,则无限制。
--truncation_strategy:默认'delete'从数据集中删除超过max_length的句子,'truncation_left'会从左侧截断多余的文本,这可能会截断特殊标记并影响性能,不推荐。
--check_dataset_strategy:默认为'none',即不检查。如果训练的是LLM模型,'warning'建议将 作为数据检查策略。如果你的训练目标是句子分类等,'none'建议设置为 。
--custom_train_dataset_path:默认值为[]。此参数已弃用,请使用--dataset {dataset_path}。
--custom_val_dataset_path:默认值为[]。此参数已弃用。请使用--val_dataset {dataset_path}。
--self_cognition_samp