Upload ms-swift/docs/source/Instruction/命令行参数.md with huggingface_hub
Browse files
ms-swift/docs/source/Instruction/命令行参数.md
ADDED
|
@@ -0,0 +1,639 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 命令行参数
|
| 2 |
+
|
| 3 |
+
命令行参数的介绍会分为基本参数,原子参数、集成参数和特定模型参数。命令行最终使用的参数列表为集成参数。集成参数继承自基本参数和一些原子参数。特定模型参数是针对于具体模型的参数,可以通过`--model_kwargs'`或者环境变量进行设置。Megatron-SWIFT命令行参数介绍可以在[Megatron-SWIFT训练文档](./Megatron-SWIFT训练.md)中找到。
|
| 4 |
+
|
| 5 |
+
提示:
|
| 6 |
+
- 命令行传入list使用空格隔开即可。例如:`--dataset <dataset_path1> <dataset_path2>`。
|
| 7 |
+
- 命令行传入dict使用json。例如:`--model_kwargs '{"fps_max_frames": 12}'`
|
| 8 |
+
- 带🔥的参数为重要参数,刚熟悉ms-swift的用户可以先关注这些命令行参数
|
| 9 |
+
|
| 10 |
+
## 基本参数
|
| 11 |
+
|
| 12 |
+
- 🔥tuner_backend: 可选为'peft','unsloth'。默认为'peft'
|
| 13 |
+
- 🔥train_type: 可选为: 'lora'、'full'、'longlora'、'adalora'、'llamapro'、'adapter'、'vera'、'boft'、'fourierft'、'reft'。默认为'lora'
|
| 14 |
+
- 🔥adapters: 用于指定adapter的id/path的list,默认为`[]`
|
| 15 |
+
- external_plugins: 外部plugin py文件列表,这些文件会被注册进plugin模块中,例子请参见[这里](https://github.com/modelscope/ms-swift/tree/main/examples/train/grpo/run_external_rm.sh)
|
| 16 |
+
- seed: 默认为42
|
| 17 |
+
- model_kwargs: 特定模型可传入的额外参数,该参数列表会在训练推理时打印日志进行提示。例如`--model_kwargs '{"fps_max_frames": 12}'`
|
| 18 |
+
- load_args: 当指定`--resume_from_checkpoint`、`--model`、`--adapters`会读取保存文件中的`args.json`,将默认为None的`基本参数`(除去数据参数和生成参数)进行赋值(可通过手动传入进行覆盖)。推理和导出时默认为True,训练时默认为False
|
| 19 |
+
- load_data_args: 如果将该参数设置为True,则会额外读取`args.json`中的数据参数。默认为False
|
| 20 |
+
- use_hf: 控制模型下载、数据集下载、模型推送使用ModelScope还是HuggingFace。默认为False,使用ModelScope
|
| 21 |
+
- hub_token: hub token. modelscope的hub token可以查看[这里](https://modelscope.cn/my/myaccesstoken)
|
| 22 |
+
- custom_register_path: 自定义模型、对话模板和数据集注册的`.py`文件路径的list。默认为`[]`
|
| 23 |
+
|
| 24 |
+
### 模型参数
|
| 25 |
+
- 🔥model: 模型id或模型本地路径。如果是自定义模型请配合`model_type`和`template`使用,具体可以参考[自定义模型](../Customization/自定义模型.md)
|
| 26 |
+
- model_type: 模型类型。相同的模型架构、template、模型加载过程被定义为一个model_type。默认为None,根据`--model`的后缀和config.json中的architectures属性进行自动选择
|
| 27 |
+
- model_revision: 模型版本,默认为None
|
| 28 |
+
- task_type: 默认为'causal_lm'。可选为'causal_lm'、'seq_cls'、'embedding'。seq_cls的例子可以查看[这里](https://github.com/modelscope/ms-swift/tree/main/examples/train/seq_cls),embedding的例子查看[这里](https://github.com/modelscope/ms-swift/tree/main/examples/train/embedding)
|
| 29 |
+
- 🔥torch_dtype: 模型权重的数据类型,支持`float16`,`bfloat16`,`float32`。默认为None,从config.json文件中读取
|
| 30 |
+
- attn_impl: attention类型,可选项为`flash_attn`, `sdpa`, `eager`。默认使用sdpa,若不支持则使用eager。
|
| 31 |
+
- 注意:这三种实现并不一定都支持,这取决于对应模型的支持情况。
|
| 32 |
+
- num_labels: 分类模型(即`--task_type seq_cls`)需要指定该参数。代表标签数量,默认为None
|
| 33 |
+
- problem_type: 分类模型(即`--task_type seq_cls`)需要指定该参数。可选为'regression', 'single_label_classification', 'multi_label_classification'。默认为None,根据num_labels和数据集类型进行自动设置
|
| 34 |
+
- rope_scaling: rope类型,支持`linear`和`dynamic`,请配合`max_length`共同使用。默认为None
|
| 35 |
+
- device_map: 模型使用的device_map配置,例如:'auto'、'cpu'、json字符串、json文件路径。默认为None,根据设备和分布式训练情况自动设置
|
| 36 |
+
- max_memory: device_map设置为'auto'或者'sequential'时,会根据max_memory进行模型权重的device分配,例如:`--max_memory '{0: "20GB", 1: "20GB"}'`。默认为None
|
| 37 |
+
- local_repo_path: 部分模型在加载时依赖于github repo。为了避免`git clone`时遇到网络问题,可以直接使用本地repo。该参数需要传入本地repo的路径, 默认为`None`
|
| 38 |
+
|
| 39 |
+
### 数据参数
|
| 40 |
+
- 🔥dataset: 数据集id或路径的list。默认为`[]`。每个数据集的传入格式为:`数据集id or 数据集路径:子数据集#采样数量`,其中子数据集和取样数据可选。本地数据集支持jsonl、csv、json、文件夹等。开源数据集可以通过git clone到本地并将文件夹传入而离线使用。自定义数据集格式可以参考[自定义数据集](../Customization/自定义数据集.md)。你可以传入`--dataset <dataset1> <dataset2>`来使用多个数据集。
|
| 41 |
+
- 子数据集: 该参数只有当dataset为ID或者文件夹时生效。若注册时指定了subsets,且只有一个子数据集,则默认选择注册时���定的子数据集,否则默认为'default'。你可以使用`/`来选择多个子数据集,例如:`<dataset_id>:subset1/subset2`。你也可以使用'all'来选择所有的子数据集,例如:`<dataset_id>:all`。
|
| 42 |
+
- 采样数量: 默认使用完整的数据集。若采样数少于数据样本总数,则进行随机选择(不重复采样)。若采样数高于数据样本总数,则只额外随机采样`采样数%数据样本总数`的样本,数据样本重复采样`采样数//数据样本总数`次。注意:流式数据集只进行顺序采样。若设置`--dataset_shuffle false`,则非流式数据集也进行顺序采样。
|
| 43 |
+
- 🔥val_dataset: 验证集id或路径的list。默认为`[]`
|
| 44 |
+
- 🔥split_dataset_ratio: 不指定val_dataset时如何拆分训练集和验证集,默认为0.01。若不需要切分验证集,设置为0即可
|
| 45 |
+
- data_seed: 数据集随机种子,默认为42
|
| 46 |
+
- 🔥dataset_num_proc: 数据集预处理的进程数,默认为1
|
| 47 |
+
- dataset_shuffle: 是否对dataset进行随机操作。默认为True。
|
| 48 |
+
- 注意:CPT/SFT的随机包括两个部分:数据集的随机,由`dataset_shuffle`控制;train_dataloader中的随机,由`train_dataloader_shuffle`控制。
|
| 49 |
+
- val_dataset_shuffle: 是否对val_dataset进行随机操作。默认为False。
|
| 50 |
+
- 🔥streaming: 流式读取并处理数据集,默认False。通常在处理大型数据集时,设置为True
|
| 51 |
+
- interleave_prob: 默认值为 None。在组合多个数据集时,默认使用 `concatenate_datasets` 函数;如果设置了该参数,则会使用 `interleave_datasets` 函数。该参数通常用于流式数据集的组合,并会作为参数传入 `interleave_datasets` 函数中
|
| 52 |
+
- stopping_strategy: 可选为"first_exhausted", "all_exhausted",默认为"first_exhausted"。传入interleave_datasets函数中
|
| 53 |
+
- shuffle_buffer_size: 该参数用于指定流式数据集的随机buffer大小,默认为1000
|
| 54 |
+
- enable_cache: 数据集预处理使用cache,默认False
|
| 55 |
+
- download_mode: 数据集下载模式,包含`reuse_dataset_if_exists`和`force_redownload`,默认为reuse_dataset_if_exists
|
| 56 |
+
- columns: 用于对数据集进行列映射,使数据集满足AutoPreprocessor可以处理的样式,具体查看[这里](../Customization/自定义数据集.md)。你可以传入json字符串,例如:`'{"text1": "query", "text2": "response"}'`,默认为None。
|
| 57 |
+
- strict: 如果为True,则数据集只要某行有问题直接抛错,否则会丢弃出错数据样本。默认False
|
| 58 |
+
- remove_unused_columns: 是否删除数据集中不被使用的列,默认为True
|
| 59 |
+
- 🔥model_name: 仅用于自我认知任务,只对`swift/self-cognition`数据集生效,替换掉数据集中的`{{NAME}}`通配符。传入模型中文名和英文名,以空格分隔,例如:`--model_name 小黄 'Xiao Huang'`。默认为None
|
| 60 |
+
- 🔥model_author: 仅用于自我认知任务,只对`swift/self-cognition`数据集生效,替换掉数据集中的`{{AUTHOR}}`通配符。传入模型作者的中文名和英文名,以空格分隔,例如:`--model_author '魔搭' 'ModelScope'`。默认为None
|
| 61 |
+
- custom_dataset_info: 自定义数据集注册的json文件路径,参考[自定义数据集](../Customization/自定义数据集.md)。默认为`[]`
|
| 62 |
+
|
| 63 |
+
### 模板参数
|
| 64 |
+
- 🔥template: 对话模板类型。默认为None,自动选择对应model的template类型
|
| 65 |
+
- 🔥system: 自定义system字段,可以传入字符串或者txt文件路径。默认为None,使用template的默认system
|
| 66 |
+
- 注意:数据集中的system优先级最高,然后是`--system`,最后是定义在template中的`default_system`。
|
| 67 |
+
- 🔥max_length: 单样本的tokens最大长度。默认为None,设置为模型支持的tokens最大长度(max_model_len)
|
| 68 |
+
- 注意:PPO、GRPO和推理情况下,max_length代表max_prompt_length
|
| 69 |
+
- truncation_strategy: 如果单样本的tokens超过`max_length`如何处理,支持`delete`, `left`和`right`,代表删除、左侧裁剪和右侧裁剪,默认为'delete'
|
| 70 |
+
- 🔥max_pixels: 多模态模型输入图片的最大像素数(H\*W),将超过该限制的图像进行缩放。默认为None,不限制最大像素数
|
| 71 |
+
- tools_prompt: 智能体训练时的工具列表转为system的格式,请参考[智能体训练](./智能体的支持.md)。可选为'react_en'、'react_zh'、'glm4'、'toolbench'、'qwen',默认为'react_en'
|
| 72 |
+
- norm_bbox: 控制如何对bbox进行缩放。可选项为'norm1000', 'none'。其中'norm1000'代表对bbox进行千分位坐标缩放,'none'代表不缩放。默认为None,根据模型进行自动选择
|
| 73 |
+
- response_prefix: response的前缀字符,例如QwQ-32B将response_prefix设置为`'<think>\n'`。默认为None,根据模型自动设置
|
| 74 |
+
- padding_side: 当训练`batch_size>=2`时的padding_side,可选值为'left'、'right',默认为'right'。(推理时的batch_size>=2时,只进行左padding)
|
| 75 |
+
- loss_scale: 训练tokens的loss权重设置。默认为`'default'`,代表所有response(含history)以1计算交叉熵损失。可选值为'default'���'last_round'、'all',以及agent需要的loss_scale: 'react'、'agentflan'、'alpha_umi'和'qwen'。其中'last_round'代表只计算最后一轮response的损失,'all'代表计算所有tokens的损失。agent部分可以查看[插件化](../Customization/插件化.md)和[智能体训练](./智能体的支持.md)
|
| 76 |
+
- use_chat_template: 使用chat模板或generation模板,默认为`True`。`swift pt`会自动设置为generation模板
|
| 77 |
+
- template_backend: 选择template后端,可选为'swift'、'jinja',默认为'swift'。如果使用jinja,则使用transformers的`apply_chat_template`。
|
| 78 |
+
- 注意:jinja的template后端只支持推理,不支持训练。
|
| 79 |
+
|
| 80 |
+
### 生成参数
|
| 81 |
+
参考[generation_config](https://huggingface.co/docs/transformers/main_classes/text_generation#transformers.GenerationConfig)文档
|
| 82 |
+
|
| 83 |
+
- 🔥max_new_tokens: 推理最大生成新tokens的数量。默认为None,无限制
|
| 84 |
+
- temperature: 温度参数。默认为None,读取generation_config.json。
|
| 85 |
+
- 注意:do_sample参数在本版本中移除了,请将temperature配置为0来达到相同效果
|
| 86 |
+
- top_k: top_k参数,默认为None。读取generation_config.json
|
| 87 |
+
- top_p: top_p参数,默认为None。读取generation_config.json
|
| 88 |
+
- repetition_penalty: 重复惩罚项。默认为None,读取generation_config.json
|
| 89 |
+
- num_beams: beam search的并行保留数量,默认为1
|
| 90 |
+
- 🔥stream: 流式输出,默认为`False`
|
| 91 |
+
- stop_words: 除了eos_token外额外的停止词,默认为`[]`。
|
| 92 |
+
- 注意:eos_token会在输出respsone中被删除,额外停止词会在输出中保留
|
| 93 |
+
- logprobs: 是否输出logprobs,默认为False
|
| 94 |
+
- top_logprobs: 输出top_logprobs的数量,默认为None
|
| 95 |
+
|
| 96 |
+
### 量化参数
|
| 97 |
+
以下为加载模型时量化的参数,具体含义可以查看[量化](https://huggingface.co/docs/transformers/main/en/main_classes/quantization)文档。这里不包含`swift export`中涉及的`gptq`、`awq`量化参数
|
| 98 |
+
|
| 99 |
+
- 🔥quant_method: 加载模型时采用的量化方法,可选项为`bnb`、`hqq`、`eetq`
|
| 100 |
+
- 🔥quant_bits: 量化bits数,默认为None
|
| 101 |
+
- hqq_axis: hqq量化axis,默认为None
|
| 102 |
+
- bnb_4bit_compute_dtype: bnb量化计算类型,可选为`float16`、`bfloat16`、`float32`。默认为None,设置为`torch_dtype`
|
| 103 |
+
- bnb_4bit_quant_type: bnb量化类型,支持`fp4`和`nf4`,默认为`nf4`
|
| 104 |
+
- bnb_4bit_use_double_quant: 是否使用双重量化,默认为`True`
|
| 105 |
+
- bnb_4bit_quant_storage: bnb量化存储类型,默认为None
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
## 原子参数
|
| 109 |
+
|
| 110 |
+
### Seq2SeqTrainer参数
|
| 111 |
+
|
| 112 |
+
该参数列表继承自transformers `Seq2SeqTrainingArguments`,ms-swift对其默认值进行了覆盖。未列出的请参考[HF官方文档](https://huggingface.co/docs/transformers/main/en/main_classes/trainer#transformers.Seq2SeqTrainingArguments)
|
| 113 |
+
|
| 114 |
+
- 🔥output_dir: 默认为None,设置为`output/<model_name>`
|
| 115 |
+
- 🔥gradient_checkpointing: 是否使用gradient_checkpointing,默认为True
|
| 116 |
+
- 🔥deepspeed: 默认为None。可以设置为'zero0', 'zero1', 'zero2', 'zero3', 'zero2_offload', 'zero3_offload'来使用ms-swift内置的deepspeed配置文件
|
| 117 |
+
- zero_hpz_partition_size: 默认为None,这个参数是ZeRO++的特性,即node内模型分片,node间数据分片,如果遇到grad_norm NaN,请尝试使用`--torch_dtype float16`
|
| 118 |
+
- 🔥per_device_train_batch_size: 默认值1
|
| 119 |
+
- 🔥per_device_eval_batch_size: 默认值1
|
| 120 |
+
- 🔥gradient_accumulation_steps: 梯度累加,默认为None,即设置gradient_accumulation_steps使得total_batch_size>=16。total_batch_size等于`per_device_train_batch_size * gradient_accumulation_steps * world_size`
|
| 121 |
+
- weight_decay: weight衰减系数,默认值0.1
|
| 122 |
+
- adam_beta2: 默认为0.95
|
| 123 |
+
- 🔥learning_rate: 学习率,全参数默认为1e-5,LoRA等tuners为1e-4
|
| 124 |
+
- lr_scheduler_type: lr_scheduler类型,默认为'cosine'
|
| 125 |
+
- lr_scheduler_kwargs: lr_scheduler其他参数。默认为None
|
| 126 |
+
- 🔥gradient_checkpointing_kwargs: 传入`torch.utils.checkpoint`中的参数。例如设置为`--gradient_checkpointing_kwargs '{"use_reentrant": false}'`。默认为None
|
| 127 |
+
- full_determinism: 确保训练中获得可重现的结果,注意:这会对性能产生负面影响。默认为False
|
| 128 |
+
- 🔥report_to: 默认值为`tensorboard`。你也可以指定`--report_to tensorboard wandb swanlab`、`--report_to all`
|
| 129 |
+
- logging_first_step: 是否记录第一个step的日志,默认为True
|
| 130 |
+
- logging_steps: 日志打印间隔,默认为5
|
| 131 |
+
- predict_with_generate: 验证时使用生成式的方式,默认为False。
|
| 132 |
+
- metric_for_best_model: 默认为None,即当`predict_with_generate`设置为False时,设置为'loss',否则设置为'rouge-l'(在PPO训练时,不进行默认值设置;GRPO训练设置为'reward')。
|
| 133 |
+
- greater_is_better: 默认为None,即当`metric_for_best_model`含'loss'时,设置为False,否则设置为True.
|
| 134 |
+
|
| 135 |
+
|
| 136 |
+
其他重要参数:
|
| 137 |
+
- 🔥num_train_epochs: 训练的epoch数,默认为3
|
| 138 |
+
- 🔥save_strategy: 保存模型的策略,可选为'no'、'steps'、'epoch',默认为'steps'
|
| 139 |
+
- 🔥save_steps: 默认为500
|
| 140 |
+
- 🔥eval_strategy: 评估策略。默认为None,跟随`save_strategy`的策略
|
| 141 |
+
- 🔥eval_steps: 默认为None,如果存在评估数据集,则跟随`save_steps`的策略
|
| 142 |
+
- 🔥save_total_limit: 最多保存的checkpoint数,会将过期的checkpoint进行删除。默认为None,保存所有的checkpoint
|
| 143 |
+
- max_steps: 最大训练的steps数。在数据集为流式时需要被设置。默认为-1
|
| 144 |
+
- 🔥warmup_ratio: 默认为0.
|
| 145 |
+
- save_on_each_node: 默认为False。在多机训练时需要被考虑
|
| 146 |
+
- save_only_model: 是否只保存模型权重而不包含优化器状态,随机种子状态等内容。默认为False
|
| 147 |
+
- 🔥resume_from_checkpoint: 断点续训参数,传入checkpoint路径。默认为None
|
| 148 |
+
- 注意: resume_from_checkpoint会读取模型权重,优化器权重,随机种子,并从上次训练的steps继续开始训练。你可以指定`--resume_only_model`只读取模型权重。
|
| 149 |
+
- 🔥ddp_backend: 可选为"nccl"、"gloo"、"mpi"、"ccl"、"hccl" 、"cncl"、"mccl"。默认为None,进行自动选择
|
| 150 |
+
- 🔥ddp_find_unused_parameters: 默认为None
|
| 151 |
+
- ddp_timeout: 默认为1800,单位为秒
|
| 152 |
+
- 🔥dataloader_num_workers: 默认为None,若是windows平台,则设置为0,否则设置为1
|
| 153 |
+
- dataloader_pin_memory: 默认为True
|
| 154 |
+
- dataloader_persistent_workers: 默认为False
|
| 155 |
+
- dataloader_prefetch_factor: 默认为None,若`dataloader_num_workers > 0`,设置为10
|
| 156 |
+
- train_dataloader_shuffle: CPT/SFT训练的dataloader是否随机,默认为True。该参数对IterableDataset无效。IterableDataset采用顺序的方式读取
|
| 157 |
+
- 🔥neftune_noise_alpha: neftune添加的噪声系数, 默认为0,通常可以设置为5、10、15
|
| 158 |
+
- 🔥use_liger_kernel: 是否启用[Liger](https://github.com/linkedin/Liger-Kernel)内核加速训练并减少显存消耗。默认为False。示例shell参考[这里](https://github.com/modelscope/ms-swift/blob/main/examples/train/liger)
|
| 159 |
+
- average_tokens_across_devices: 是否在设备之间进行token数平均。如果设置为True,将使用all_reduce同步`num_tokens_in_batch`以进行精确的损失计算。默认为False
|
| 160 |
+
- max_grad_norm: 梯度裁剪。默认为1.
|
| 161 |
+
- push_to_hub: 推送checkpoint到hub。默认为False
|
| 162 |
+
- hub_model_id: 默认为None
|
| 163 |
+
- hub_private_repo: 默认为False
|
| 164 |
+
|
| 165 |
+
### Tuner参数
|
| 166 |
+
- 🔥freeze_llm: 该参数只对多模态模型生效,可用于全参和LoRA,但含义不同。若是全参数训练,将freeze_llm设置为True将会将llm部分权重进行冻结,若是LoRA训练且`target_modules`设置为'all-linear',将freeze_llm设置为True将会取消在llm部分添加LoRA模块。该参数默认为False
|
| 167 |
+
- 🔥freeze_vit: 该参数只对多模态模型生效,可用于全参和LoRA,含义参考`freeze_llm`。默认为True
|
| 168 |
+
- 🔥freeze_aligner: 该参数只对多模态模型生效,可用于全参和LoRA,含义参考`freeze_llm`。默认为True
|
| 169 |
+
- 🔥target_modules: 指定lora模块, 默认为`all-linear`. 在LLM和多模态LLM中,其行为有所不同. 若是LLM则自动寻找除lm_head外的linear并附加tuner,若是多模态LLM,则默认只在LLM上附加tuner,该行为可以被`freeze_llm`、`freeze_vit`、`freeze_aligner`控制。该参数不限于LoRA,可用于其他tuners
|
| 170 |
+
- 🔥target_regex: 指定lora模块的regex表达式,默认为`None`。如果该值传入,则target_modules参数失效。该参数不限于LoRA,可用于其他tuners
|
| 171 |
+
- init_weights: 初始化weights的方法,LoRA可以指定为`true`、`false`、`gaussian`、`pissa`、`pissa_niter_[number of iters]`,Bone可以指定为`true`、`false`、`bat`。默认值`true`
|
| 172 |
+
- 🔥modules_to_save: 在已附加tuner后,额外指定一部分原模型模块参与训练和存储。默认为`[]`. 该参数不限于LoRA,可用于其他tuners
|
| 173 |
+
|
| 174 |
+
#### 全参
|
| 175 |
+
- freeze_parameters: 需要被冻结参数的前缀,默认为`[]`
|
| 176 |
+
- freeze_parameters_ratio: 从下往上冻结的参数比例,默认为0。可设置为1将所有参数冻结,结合`trainable_parameters`设置可训练参数
|
| 177 |
+
- trainable_parameters: 额外可训练参数的前缀,默认为`[]`。
|
| 178 |
+
- 备注:`trainable_parameters`的优先级高于`freeze_parameters`和`freeze_parameters_ratio`。当指定全参数训练时,会将所有模块设置为可训练的状态,随后根据`freeze_parameters`、`freeze_parameters_ratio`将部分参数冻结,最后根据`trainable_parameters`重新打开部分参数参与训练
|
| 179 |
+
|
| 180 |
+
#### LoRA
|
| 181 |
+
- 🔥lora_rank: 默认为`8`
|
| 182 |
+
- 🔥lora_alpha: 默认为`32`
|
| 183 |
+
- lora_dropout: 默认为`0.05`
|
| 184 |
+
- lora_bias: 默认为`'none'`,可以选择的值: 'none'、'all'。如果你要将bias全都设置为可训练,你可以设置为`'all'`
|
| 185 |
+
- lora_dtype: 指定lora模块的dtype类型。支持'float16'、'bfloat16'、'float32'。默认为None,跟随原模型类型
|
| 186 |
+
- 🔥use_dora: 默认为`False`,是否使用`DoRA`
|
| 187 |
+
- use_rslora: 默认为`False`,是否使用`RS-LoRA`
|
| 188 |
+
- 🔥lorap_lr_ratio: LoRA+参数,默认值`None`,建议值`10~16`。使用lora时指定该参数可使用lora+
|
| 189 |
+
|
| 190 |
+
##### LoRA-GA
|
| 191 |
+
- lora_ga_batch_size: 默认值为 `2`。在 LoRA-GA 中估计梯度以进行初始化时使用的批处理大小。
|
| 192 |
+
- lora_ga_iters: 默认值为 `2`。在 LoRA-GA 中估计梯度以进行初始化时的迭代次数。
|
| 193 |
+
- lora_ga_max_length: 默认值为 `1024`。在 LoRA-GA 中估计梯度以进行初始化时的最大输入长度。
|
| 194 |
+
- lora_ga_direction: 默认值为 `ArB2r`。在 LoRA-GA 中使用估计梯度进行初始化时的初始方向。允许的值有:`ArBr`、`A2rBr`、`ArB2r` 和 `random`。
|
| 195 |
+
- lora_ga_scale: 默认值为 `stable`。LoRA-GA 的初始化缩放方式。允许的值有:`gd`、`unit`、`stable` 和 `weightS`。
|
| 196 |
+
- lora_ga_stable_gamma: 默认值为 `16`。当初始化时选择 `stable` 缩放时的 gamma 值。
|
| 197 |
+
|
| 198 |
+
#### FourierFt
|
| 199 |
+
|
| 200 |
+
FourierFt使用`target_modules`, `target_regex`, `modules_to_save`三个参数.
|
| 201 |
+
|
| 202 |
+
- fourier_n_frequency: 傅里叶变换的频率数量, `int`类型, 类似于LoRA中的`r`. 默认值`2000`.
|
| 203 |
+
- fourier_scaling: W矩阵的缩放值, `float`类型, 类似LoRA中的`lora_alpha`. 默认值`300.0`.
|
| 204 |
+
|
| 205 |
+
#### BOFT
|
| 206 |
+
|
| 207 |
+
BOFT使用`target_modules`, `target_regex`, `modules_to_save`三个参数.
|
| 208 |
+
|
| 209 |
+
- boft_block_size: BOFT块尺寸, 默认值4.
|
| 210 |
+
- boft_block_num: BOFT块数量, 不能和`boft_block_size`同时使用.
|
| 211 |
+
- boft_dropout: boft的dropout值, 默认0.0.
|
| 212 |
+
|
| 213 |
+
#### Vera
|
| 214 |
+
|
| 215 |
+
Vera使用`target_modules`, `target_regex`, `modules_to_save`三个参数.
|
| 216 |
+
|
| 217 |
+
- vera_rank: Vera Attention的尺寸, 默认值256.
|
| 218 |
+
- vera_projection_prng_key: 是否存储Vera映射矩阵, 默认为True.
|
| 219 |
+
- vera_dropout: Vera的dropout值, 默认`0.0`.
|
| 220 |
+
- vera_d_initial: Vera的d矩阵的初始值, 默认`0.1`.
|
| 221 |
+
|
| 222 |
+
#### GaLore
|
| 223 |
+
|
| 224 |
+
- 🔥use_galore: 默认值False, 是否使用GaLore.
|
| 225 |
+
- galore_target_modules: 默认值None, 不传的情况下对attention和mlp应用GaLore.
|
| 226 |
+
- galore_rank: 默认值128, GaLore的rank值.
|
| 227 |
+
- galore_update_proj_gap: 默认值50, 分解矩阵的更新间隔.
|
| 228 |
+
- galore_scale: 默认值1.0, 矩阵权重系数.
|
| 229 |
+
- galore_proj_type: 默认值`std`, GaLore矩阵分解类型.
|
| 230 |
+
- galore_optim_per_parameter: 默认值False, 是否给每个Galore目标Parameter设定一个单独的optimizer.
|
| 231 |
+
- galore_with_embedding: 默认值False, 是否对embedding应用GaLore.
|
| 232 |
+
- galore_quantization: 是否使用q-galore. 默认值`False`.
|
| 233 |
+
- galore_proj_quant: 是否对SVD分解矩阵做量化, 默认`False`.
|
| 234 |
+
- galore_proj_bits: SVD量化bit数.
|
| 235 |
+
- galore_proj_group_size: SVD量化分组数.
|
| 236 |
+
- galore_cos_threshold: 投影矩阵更新的cos相似度阈值. 默认值0.4.
|
| 237 |
+
- galore_gamma_proj: 在投影矩阵逐渐相似后会拉长更新间隔, 本参数为每次拉长间隔的系数, 默认值2.
|
| 238 |
+
- galore_queue_size: 计算投影矩阵相似度的队列长度, 默认值5.
|
| 239 |
+
|
| 240 |
+
#### LISA
|
| 241 |
+
|
| 242 |
+
注意:LISA仅支持全参数,即`--train_type full`.
|
| 243 |
+
|
| 244 |
+
- 🔥lisa_activated_layers: 默认值`0`, 代表不使用LISA,改为非0代表需要激活的layers个数,建议设置为2或8.
|
| 245 |
+
- lisa_step_interval: 默认值`20`, 多少iter切换可反向传播的layers.
|
| 246 |
+
|
| 247 |
+
#### UNSLOTH
|
| 248 |
+
|
| 249 |
+
🔥unsloth无新增参数,对已有参数进行调节即可支持:
|
| 250 |
+
|
| 251 |
+
```
|
| 252 |
+
--tuner_backend unsloth
|
| 253 |
+
--train_type full/lora
|
| 254 |
+
--quant_bits 4
|
| 255 |
+
```
|
| 256 |
+
|
| 257 |
+
#### LLAMAPRO
|
| 258 |
+
|
| 259 |
+
- 🔥llamapro_num_new_blocks: 默认值`4`, 插入的新layers总数.
|
| 260 |
+
- llamapro_num_groups: 默认值`None`, 分为多少组插入new_blocks, 如果为`None`则等于`llamapro_num_new_blocks`, 即每个新的layer单独插入原模型.
|
| 261 |
+
|
| 262 |
+
#### AdaLoRA
|
| 263 |
+
|
| 264 |
+
以下参数`train_type`设置为`adalora`时生效. adalora的`target_modules`等参数继承于lora的对应参数, 但`lora_dtype`参数不生效.
|
| 265 |
+
|
| 266 |
+
- adalora_target_r: 默认值`8`, adalora的平均rank.
|
| 267 |
+
- adalora_init_r: 默认值`12`, adalora的初始rank.
|
| 268 |
+
- adalora_tinit: 默认值`0`, adalora的初始warmup.
|
| 269 |
+
- adalora_tfinal: 默认值`0`, adalora的final warmup.
|
| 270 |
+
- adalora_deltaT: 默认值`1`, adalora的step间隔.
|
| 271 |
+
- adalora_beta1: 默认值`0.85`, adalora的EMA参数.
|
| 272 |
+
- adalora_beta2: 默认值`0.85`, adalora的EMA参数.
|
| 273 |
+
- adalora_orth_reg_weight: 默认值`0.5`, adalora的正则化参数.
|
| 274 |
+
|
| 275 |
+
#### ReFT
|
| 276 |
+
|
| 277 |
+
以下参数`train_type`设置为`reft`时生效.
|
| 278 |
+
|
| 279 |
+
> 1. ReFT无法合并tuner
|
| 280 |
+
> 2. ReFT和gradient_checkpointing不兼容
|
| 281 |
+
> 3. 如果使用DeepSpeed遇到问题请暂时卸载DeepSpeed
|
| 282 |
+
|
| 283 |
+
- 🔥reft_layers: ReFT应用于哪些层上, 默认为`None`, 代表所有层, 可以输入层号的list, 例如reft_layers 1 2 3 4`
|
| 284 |
+
- 🔥reft_rank: ReFT矩阵的rank, 默认为`4`.
|
| 285 |
+
- reft_intervention_type: ReFT的类型, 支持'NoreftIntervention', 'LoreftIntervention', 'ConsreftIntervention', 'LobireftIntervention', 'DireftIntervention', 'NodireftIntervention', 默认为`LoreftIntervention`.
|
| 286 |
+
- reft_args: ReFT Intervention中的其他支持参数, 以json-string格式输入.
|
| 287 |
+
|
| 288 |
+
### LMDeploy参数
|
| 289 |
+
参数含义可以查看[lmdeploy文档](https://lmdeploy.readthedocs.io/en/latest/api/pipeline.html#turbomindengineconfig)
|
| 290 |
+
|
| 291 |
+
- 🔥tp: tensor并行度。默认为`1`
|
| 292 |
+
- session_len: 默认为`None`
|
| 293 |
+
- cache_max_entry_count: 默认为`0.8`
|
| 294 |
+
- quant_policy: 默认为`0`
|
| 295 |
+
- vision_batch_size: 默认为`1`
|
| 296 |
+
|
| 297 |
+
### vLLM参数
|
| 298 |
+
参数含义��以查看[vllm文档](https://docs.vllm.ai/en/latest/serving/engine_args.html)
|
| 299 |
+
|
| 300 |
+
- 🔥gpu_memory_utilization: 默认值`0.9`
|
| 301 |
+
- 🔥tensor_parallel_size: 默认为`1`
|
| 302 |
+
- pipeline_parallel_size: 默认为`1`
|
| 303 |
+
- max_num_seqs: 默认为`256`
|
| 304 |
+
- 🔥max_model_len: 默认为`None`
|
| 305 |
+
- disable_custom_all_reduce: 默认为`False`
|
| 306 |
+
- enforce_eager: vllm使用pytorch eager模式还是建立cuda graph,默认为`False`。设置为True可以节约显存,但会影响效率
|
| 307 |
+
- 🔥limit_mm_per_prompt: 控制vllm使用多图,默认为`None`。例如传入`--limit_mm_per_prompt '{"image": 5, "video": 2}'`
|
| 308 |
+
- vllm_max_lora_rank: 默认为`16`。vllm对于lora支持的参数
|
| 309 |
+
- enable_prefix_caching: 开启vllm的自动前缀缓存,节约重复查询前缀的处理时间。默认为`False`
|
| 310 |
+
|
| 311 |
+
|
| 312 |
+
### 合并参数
|
| 313 |
+
|
| 314 |
+
- 🔥merge_lora: 是否合并lora,本参数支持lora、llamapro、longlora,默认为False。例子参数[这里](https://github.com/modelscope/ms-swift/blob/main/examples/export/merge_lora.sh)
|
| 315 |
+
- safe_serialization: 是否存储safetensors,默认为True
|
| 316 |
+
- max_shard_size: 单存储文件最大大小,默认'5GB'
|
| 317 |
+
|
| 318 |
+
|
| 319 |
+
## 集成参数
|
| 320 |
+
|
| 321 |
+
### 训练参数
|
| 322 |
+
训练参数除包含[基本参数](#基本参数)、[Seq2SeqTrainer参数](#Seq2SeqTrainer参数)、[tuner参数](#tuner参数)外,还包含下面的部分:
|
| 323 |
+
|
| 324 |
+
- add_version: 在output_dir上额外增加目录`'<版本号>-<时间戳>'`防止权重覆盖,默认为True
|
| 325 |
+
- resume_only_model: 默认为False。如果在指定resume_from_checkpoint的基础上,将该参数设置为True,则仅resume模型权重
|
| 326 |
+
- check_model: 检查本地模型文件有损坏或修改并给出提示,默认为True。如果是断网环境,请设置为False
|
| 327 |
+
- 🔥create_checkpoint_symlink: 额外创建checkpoint软链接,方便书写自动化训练脚本。best_model和last_model的软链接路径分别为f'{output_dir}/best'和f'{output_dir}/last'
|
| 328 |
+
- loss_type: loss类型。默认为None,使用模型自带损失函数
|
| 329 |
+
- 🔥packing: 是否使用序列packing提升计算效率,默认为False
|
| 330 |
+
- 注意:使用packing请结合`--attn_impl flash_attn`使用且"transformers>=4.44",具体查看[该PR](https://github.com/huggingface/transformers/pull/31629)。
|
| 331 |
+
- 🔥lazy_tokenize: 是否使用lazy_tokenize。若该参数设置为False,则在训练之前对所有的数据集样本进行tokenize(多模态模型则包括从磁盘中读取图片)。该参数在LLM训练中默认设置为False,而MLLM训练默认为True,节约内存
|
| 332 |
+
- acc_strategy: 训练和验证时计算acc的策略。可选为`seq`和`token`级别的acc,默认为`token`
|
| 333 |
+
- max_new_tokens: 覆盖生成参数。predict_with_generate=True时的最大生成token数量,默认64
|
| 334 |
+
- temperature: 覆盖生成参数。predict_with_generate=True时的temperature,默认0
|
| 335 |
+
- optimizer: plugin的自定义optimizer名称,默认为None
|
| 336 |
+
- metric: plugin的自定义metric名称。默认为None,即在predict_with_generate=False的情况下设置为'acc',在predict_with_generate=True的情况下设置为'nlg'
|
| 337 |
+
- eval_use_evalscope: 是否使用evalscope进行训练时评测,需要设置该参数来开启评测,具体使用参考[示例](../Instruction/评测.md#训练中评测)
|
| 338 |
+
- eval_datasets: 评测数据集,可设置多个数据集,用空格分割
|
| 339 |
+
- eval_datasets_args: 评测数据集参数,json格式,可设置多个数据集的参数
|
| 340 |
+
- eval_limit: 评测数据集采样数
|
| 341 |
+
- eval_generation_config: 评测时模型推理配置,json格式,默认为`{'max_tokens': 512}`
|
| 342 |
+
|
| 343 |
+
### RLHF参数
|
| 344 |
+
RLHF参数继承于[训练参数](#训练参数)
|
| 345 |
+
|
| 346 |
+
- 🔥rlhf_type: 人类对齐算法类型,支持`dpo`、`orpo`、`simpo`、`kto`、`cpo`、`rm`、`ppo`和`grpo`。默认为'dpo'
|
| 347 |
+
- ref_model: 采用dpo、kto、ppo、grpo算法且使用全参数训练时需要传入。默认为None
|
| 348 |
+
- ref_model_type: 同model_type。默认为None
|
| 349 |
+
- ref_model_revision: 同model_revision。默认为None
|
| 350 |
+
- 🔥beta: KL正则项系数,默认为`None`,即`simpo`算法默认为`2.`,GRPO默认为`0.04`,其他算法默认为`0.1`。具体参考[文档](./人类对齐.md)
|
| 351 |
+
- label_smoothing: 是否使用DPO smoothing,默认值为`0`
|
| 352 |
+
- 🔥rpo_alpha: 控制DPO中加入sft_loss的权重,默认为`1`。最后的loss为`KL_loss + rpo_alpha * sft_loss`
|
| 353 |
+
- cpo_alpha: CPO/SimPO loss 中 nll loss的系数, 默认为`1.`
|
| 354 |
+
- simpo_gamma: SimPO算法中的reward margin项,论文建议设置为0.5-1.5,默认为`1.`
|
| 355 |
+
- desirable_weight: KTO算法中对desirable response的loss权重 $\lambda_D$,默认为`1.`
|
| 356 |
+
- undesirable_weight: KTO算法中对undesirable response的loss权重 $\lambda_U$,默认为`1.`
|
| 357 |
+
- loss_scale: 覆盖模板参数,默认为'last_round'
|
| 358 |
+
- temperature: 默认为0.9,该参数将在PPO、GRPO中使用
|
| 359 |
+
|
| 360 |
+
#### Reward模型参数
|
| 361 |
+
reward模型参数将在PPO、GRPO中使用。
|
| 362 |
+
|
| 363 |
+
- reward_model: 默认为None
|
| 364 |
+
- reward_adapters: 默认为`[]`
|
| 365 |
+
- reward_model_type: 默认为None
|
| 366 |
+
- reward_model_revision: 默认为None
|
| 367 |
+
|
| 368 |
+
#### PPO参数
|
| 369 |
+
|
| 370 |
+
以下参数含义可以参考[这里](https://huggingface.co/docs/trl/main/ppo_trainer)
|
| 371 |
+
- num_ppo_epochs: 默认为4
|
| 372 |
+
- whiten_rewards: 默认为False
|
| 373 |
+
- kl_coef: 默认为0.05
|
| 374 |
+
- cliprange: 默认为0.2
|
| 375 |
+
- vf_coef: 默认为0.1
|
| 376 |
+
- cliprange_value: 默认为0.2
|
| 377 |
+
- gamma: 默认为1.0
|
| 378 |
+
- lam: 默认为0.95
|
| 379 |
+
- num_mini_batches: 默认为1
|
| 380 |
+
- local_rollout_forward_batch_size: 默认为64
|
| 381 |
+
- num_sample_generations: 默认为10
|
| 382 |
+
- response_length: 默认为512
|
| 383 |
+
- missing_eos_penalty: 默认为None
|
| 384 |
+
|
| 385 |
+
|
| 386 |
+
#### GRPO参数
|
| 387 |
+
- num_generations: GRPO算法中的G值,默认为8
|
| 388 |
+
- max_completion_length: GRPO算法中的最大生成长度,默认为512
|
| 389 |
+
- ds3_gather_for_generation: 该参数适用于DeepSpeed ZeRO-3。如果启用,策略模型权重将被收集用于生成,从而提高生成速度。然而,禁用此选项允许训练超出单个GPU VRAM的模型,尽管生成速度会变慢。禁用此选项与vLLM生成不兼容。默认为True
|
| 390 |
+
- reward_funcs: GRPO算法奖励函数,可选项为`accuracy`、`format`、`cosine` 和 `repetition`,见swift/plugin/orm.py。你也可以在plugin中自定义自己的奖励函数。默认为`[]`
|
| 391 |
+
- reward_weights: 每个奖励函数的权重。必须与奖励函数的数量匹配。如果为 None,则所有奖励的权重都相等,为`1.0`
|
| 392 |
+
- 提示:如果GRPO训练中包含`--reward_model`,则其加在奖励函数的最后位置
|
| 393 |
+
- log_completions: 是否记录训练中的模型生成内容,搭配 `--report_to wandb` 使用。默认为False
|
| 394 |
+
- 提示:若没有设置`--report_to wandb`,则会在checkpoint中创建`completions.jsonl`来存储生成内容
|
| 395 |
+
- use_vllm: 是否使用vLLM作为GRPO生成的infer_backend,默认为False
|
| 396 |
+
- num_infer_workers: 每个node上推理worker数量,仅对vllm或者lmdeploy时有效
|
| 397 |
+
- vllm_device: 设置vLLM部署的设备,可以设置为`auto`,代表按照num_infer_workers数量使用最后的几张卡,否则请传入和num_infer_workers相等数量的设备,例如`--vllm_device cuda:1 cuda:2`
|
| 398 |
+
- vllm_gpu_memory_utilization: vllm透传参数,默认为0.9
|
| 399 |
+
- vllm_max_model_len: vllm透传参数,默认为None
|
| 400 |
+
- vllm_max_num_seqs: vllm透传参数,默认为256
|
| 401 |
+
- vllm_enforce_eager: vllm透传参数,默认为False
|
| 402 |
+
- vllm_limit_mm_per_prompt: vllm透传参数,默认为None
|
| 403 |
+
- vllm_enable_prefix_caching: vllm透传参数,默认为True
|
| 404 |
+
- top_k: 默认为50
|
| 405 |
+
- top_p: 默认为0.9
|
| 406 |
+
- repetition_penalty: 重复惩罚项。默认为1.
|
| 407 |
+
- num_iterations: 每个批次代更新次数,默认为1.
|
| 408 |
+
- epsilon: clip 系数,默认为0.2.
|
| 409 |
+
- epsilon_high: upper clip 系数,默认为None,设置后与epsilon共同构成[epsilon, epsilon_high]裁剪范围.
|
| 410 |
+
- async_generate: 异步rollout以提高训练速度,默认`false`.
|
| 411 |
+
- sleep_level: vllm特有参数,在训练和rollout复用卡的时候,可以选择vllm进行offload.
|
| 412 |
+
- move_model_batches: 在模型向vLLM/LMDeploy等快速推理框架移动参数时,将layers分为多少个batch. 默认为None, 代表整个模型不进行拆分,否则拆分为move_model_batches+1(非layer参数)+1(多模态部分参数)个
|
| 413 |
+
- offload_optimizer: 是否在vLLM/LMDeploy推理时offload optimizer参数,默认为False
|
| 414 |
+
- offload_model: 是否在vLLM/LMDeploy推理时offload 模型本身,默认为False
|
| 415 |
+
- 注意:若该参数设置为True,训练时grad_norm一直为0,请安装`vllm==0.7.3`
|
| 416 |
+
- gc_collect_after_offload: 是否在offload结束时进行gc(python gc和GPU gc),默认为False
|
| 417 |
+
- multi_turn_func: 多轮GRPO参数, 传入对应的plugin名称, 同时在plugin/multi_turn.py中添加好对应的实现
|
| 418 |
+
- mini_batch_size:用于将每个设备上的批次大小(per_device_batch)进一步切分为更小的子批次。为确保切分有效,per_device_train_batch_size 需要能够被 mini_batch_size 整除
|
| 419 |
+
- dynamic_sample:筛除group内奖励标准差为0的数据,额外采样新数据,默认为False。
|
| 420 |
+
- max_resample_times:dynamic_sample设置下限制重采样次数,默认3次。
|
| 421 |
+
- overlong_filter:跳过超长截断的样本,不参与loss计算,默认为False。
|
| 422 |
+
|
| 423 |
+
cosine 奖励参数
|
| 424 |
+
- cosine_min_len_value_wrong:cosine 奖励函数参数,生成错误答案时,最小长度对应的奖励值。默认值为0.0
|
| 425 |
+
- cosine_max_len_value_wrong:生成错误答案时,最大长度对应的奖励值。默认值为-0.5
|
| 426 |
+
- cosine_min_len_value_correct:生成正确答案时,最小长度对应的奖励值。默认值为1.0
|
| 427 |
+
- cosine_max_len_value_correct:生成正确答案时,最大长度对应的奖励值。默认值为0.5
|
| 428 |
+
- cosine_max_len:生成文本的最大长度限制。默认等于 max_completion_length
|
| 429 |
+
|
| 430 |
+
repetition 奖励参数
|
| 431 |
+
- repetition_n_grams:用于检测重复的 n-gram 大小。默认值为3
|
| 432 |
+
- repetition_max_penalty:最大惩罚值,用于控制惩罚的强度。默认值为-1.0
|
| 433 |
+
|
| 434 |
+
soft overlong 奖励参数
|
| 435 |
+
- soft_max_length: 论文中的L_max,模型的最大生成长度,默认等于max_completion_length
|
| 436 |
+
- soft_cache_length: 论文中的L_cache,控制长度惩罚区间,区间为[soft_max_length-soft_cache_length, soft_max_length]
|
| 437 |
+
|
| 438 |
+
#### SWANLAB
|
| 439 |
+
|
| 440 |
+
- swanlab_token: SwanLab的api-key
|
| 441 |
+
- swanlab_project: swanlab的project,需要在页面中预先创建好:[https://swanlab.cn/space/~](https://swanlab.cn/space/~)
|
| 442 |
+
- swanlab_workspace: 默认为None,会使用api-key对应的username
|
| 443 |
+
- swanlab_exp_name: 实验名,可以为空,为空时默认传入--output_dir的值
|
| 444 |
+
- swanlab_mode: 可选cloud和local,云模式或者本地模式
|
| 445 |
+
|
| 446 |
+
### 推理参数
|
| 447 |
+
|
| 448 |
+
推理参数除包含[基本参数](#基本参数)、[合并参数](#合并参数)、[vLLM参数](#vllm参数)、[LMDeploy参数](#LMDeploy参数)外,还包含下面的部分:
|
| 449 |
+
|
| 450 |
+
- 🔥infer_backend: 推理加速后端,支持'pt'、'vllm'、'lmdeploy'三种推理引擎。默认为'pt'
|
| 451 |
+
- 🔥max_batch_size: 指定infer_backend为pt时生效,用于批量推理,默认为1
|
| 452 |
+
- ddp_backend: 指定infer_backend为pt时生效,用于指定多卡推理时的分布式后端,默认为None,进行自动选择。多卡推理例子可以查看[这里](https://github.com/modelscope/ms-swift/tree/main/examples/infer/pt)
|
| 453 |
+
- 🔥result_path: 推理结果存储路径(jsonl),默认为None,保存在checkpoint目录(含args.json文件)或者'./result'目录,最终存储路径会在命令行中打印
|
| 454 |
+
- metric: 对推理的结果进行评估,目前支持'acc'和'rouge'。默认为None,即不进行评估
|
| 455 |
+
- val_dataset_sample: 推理数据集采样数,默认为None
|
| 456 |
+
|
| 457 |
+
|
| 458 |
+
### 部署参数
|
| 459 |
+
|
| 460 |
+
部署参数继承于[推理参数](#推理参数)
|
| 461 |
+
|
| 462 |
+
- host: 服务host,默认为'0.0.0.0'
|
| 463 |
+
- port: 端口号,默认为8000
|
| 464 |
+
- api_key: 访问需要使用的api_key,默认为None
|
| 465 |
+
- owned_by: 默认为`swift`
|
| 466 |
+
- 🔥served_model_name: 提供服务的模型名称,默认使用model的后缀
|
| 467 |
+
- verbose: 打印详细日志,默认为True
|
| 468 |
+
- 注意:在`swift app`或者`swift eval`时,默认为False
|
| 469 |
+
- log_interval: tokens/s统计值打印间隔,默认20秒。设置为-1则不打印
|
| 470 |
+
- max_logprobs: 最多返回客户端的logprobs数量,默认为20
|
| 471 |
+
|
| 472 |
+
|
| 473 |
+
### Web-UI参数
|
| 474 |
+
- server_name: web-ui的host,默认为'0.0.0.0'
|
| 475 |
+
- server_port: web-ui的port,默认为7860
|
| 476 |
+
- share: 默认为False
|
| 477 |
+
- lang: web-ui的语言,可选为'zh', 'en'。默认为'zh'
|
| 478 |
+
|
| 479 |
+
|
| 480 |
+
### App参数
|
| 481 |
+
|
| 482 |
+
App参数继承于[部署参数](#部署参数), [Web-UI参数](#Web-UI参数)
|
| 483 |
+
- base_url: 模型部署的base_url,例如`http://localhost:8000/v1`。默认为`None`,使用本地部署
|
| 484 |
+
- studio_title: studio的标题。默认为None,设置为模型名
|
| 485 |
+
- is_multimodal: 是否启动多模态版本的app。默认为None,自动根据model判断,若无法判断,设置为False
|
| 486 |
+
- lang: 覆盖Web-UI参数,默认为'en'
|
| 487 |
+
|
| 488 |
+
### 评测参数
|
| 489 |
+
|
| 490 |
+
评测参数继承于[部署参数](#部署参数)
|
| 491 |
+
|
| 492 |
+
- 🔥eval_backend: 评测后端,默认为'Native',也可以指定为'OpenCompass'或'VLMEvalKit'
|
| 493 |
+
- 🔥eval_dataset: 评测数据集,请查看[评测文档](./评测.md)
|
| 494 |
+
- eval_limit: 每个评测集的采样数,默认为None
|
| 495 |
+
- eval_output_dir: 评测存储结果的文件夹,默认为'eval_output'
|
| 496 |
+
- 🔥local_dataset: 部分评测集,如`CMB`无法直接运行,需要下载额外数据包才可以使用。设置本参数为`true`可以自动下载全量数据包,并在当前目录下创建`data`文件夹并开始评测。数据包仅会下载一次,后续会使用缓存。该参数默认为`false`。
|
| 497 |
+
- 注意:默认评测会使用`~/.cache/opencompass`下的数据集,在指定本参数后会直接使用当前目录下的data文件夹
|
| 498 |
+
- temperature: 覆盖生成参数,默认为0
|
| 499 |
+
- eval_num_proc: 评测时客户端最大并发数,默认为16
|
| 500 |
+
- 🔥eval_url: 评测url,例如`http://localhost:8000/v1`。例子可以查看[这里](https://github.com/modelscope/ms-swift/tree/main/examples/eval/eval_url)。默认为None,采用本地部署评估
|
| 501 |
+
|
| 502 |
+
### 导出参数
|
| 503 |
+
|
| 504 |
+
导出参数除包含[基本参数](#基本参数)和[合并参数](#合并参数)外,还包含下面的部分:
|
| 505 |
+
|
| 506 |
+
- 🔥output_dir: 导出结果存储路径。默认为None,会自动设置合适后缀的路径
|
| 507 |
+
- exist_ok: 如果output_dir存在,不抛出异常,进行覆盖。默认为False
|
| 508 |
+
- 🔥quant_method: 可选为'gptq'、'awq'、'bnb',默认为None。例子参考[这里](https://github.com/modelscope/ms-swift/tree/main/examples/export/quantize)
|
| 509 |
+
- quant_n_samples: gptq/awq的校验集采样数,默认为256
|
| 510 |
+
- max_length: 校准集的max_length, 默认值2048
|
| 511 |
+
- quant_batch_size: 量化batch_size,默认为1
|
| 512 |
+
- group_size: 量化group大小,默认为128
|
| 513 |
+
- to_ollama: 产生ollama所需的Modelfile文件。默认为False
|
| 514 |
+
- 🔥to_mcore: HF格式权重转成Megatron格式。默认为False
|
| 515 |
+
- to_hf: Megatron格式权重转成HF格式。默认为False
|
| 516 |
+
- mcore_model: mcore格式模型路径。默认为None
|
| 517 |
+
- thread_count: `--to_mcore true`时的模型切片数。默认为None,根据模型大小自动设置,使得最大分片小于10GB
|
| 518 |
+
- test_convert_precision: 测试HF和Megatron格式权重转换的精度误差。默认为False
|
| 519 |
+
- 🔥push_to_hub: 是否推送hub,默认为False。例子参��[这里](https://github.com/modelscope/ms-swift/blob/main/examples/export/push_to_hub.sh)
|
| 520 |
+
- hub_model_id: 推送的model_id,默认为None
|
| 521 |
+
- hub_private_repo: 是否是private repo,默认为False
|
| 522 |
+
- commit_message: 提交信息,默认为'update files'
|
| 523 |
+
|
| 524 |
+
### 采样参数
|
| 525 |
+
|
| 526 |
+
- prm_model: 过程奖励模型的类型,可以是模型id(以pt方式拉起),或者plugin中定义的prm key(自定义推理过程)
|
| 527 |
+
- orm_model: 结果奖励模型的类型,通常是通配符或测试用例等,一般定义在plugin中
|
| 528 |
+
- sampler_type:采样类型,目前支持 sample, mcts,未来会支持 dvts
|
| 529 |
+
- sampler_engine:支持`pt`, `lmdeploy`, `vllm`, `client`, `no`,默认为`pt`,采样模型的推理引擎
|
| 530 |
+
- sampler_type:采样类型,目前支持sample(do_sample方式),未来会支持mcts和dvts
|
| 531 |
+
- sampler_engine:支持`pt`, `lmdeploy`, `vllm`, `no`,默认为`pt`,采样模型的推理引擎
|
| 532 |
+
- output_dir:输出目录,默认为`sample_output`
|
| 533 |
+
- output_file:输出文件名称,默认为`None`使用时间戳作为文件名。传入时不需要传入目录,仅支持jsonl格式
|
| 534 |
+
- override_exist_file:如`output_file`存在,是否覆盖
|
| 535 |
+
- num_sampling_per_gpu_batch_size:每次采样的batch_size
|
| 536 |
+
- num_sampling_per_gpu_batches:共采样多少batch
|
| 537 |
+
- n_best_to_keep:返回多少最佳sequences
|
| 538 |
+
- data_range:本采样处理数据集的分片。传入格式为`2 3`,代表数据集分为3份处理(这意味着通常有三个`swift sample`在并行处理),本实例正在处理第3个分片
|
| 539 |
+
- temperature:在这里默认为1.0
|
| 540 |
+
- prm_threshold:PRM阈值,低于该阈值的结果会被过滤掉,默认值为`0`
|
| 541 |
+
- easy_query_threshold:单个query的所有采样中,ORM评估如果正确,大于该比例的query会被丢弃,防止过于简单的query出现在结果中,默认为`None`,代表不过滤
|
| 542 |
+
- engine_kwargs:传入sampler_engine的额外参数,以json string传入,例如`{"cache_max_entry_count":0.7}`
|
| 543 |
+
- num_return_sequences:采样返回的原始sequence数量。默认为64,本参数对`sample`采样有效
|
| 544 |
+
- cache_files:为避免同时加载prm和generator造成显存OOM,可以分两步进行采样,第一步将prm和orm置为`None`,则所有结果都会输出到文件中,第二次运行采样将sampler_engine置为`no`并传入`--cache_files`为上次采样的输出文件,则会使用上次输出的结果进行prm和orm评估并输出最终结果。
|
| 545 |
+
- 注意:使用cache_files时,`--dataset`仍然需要传入,这是因为cache_files的id是由原始数据计算的md5,需要把两部分信息结合使用。
|
| 546 |
+
|
| 547 |
+
#### MCTS
|
| 548 |
+
- rollout_depth:rollout 时的最大深度,默认为 `5`
|
| 549 |
+
- rollout_start_depth:开始 rollout 时的深度,低于此深度的节点只会进行 expand 操作,默认为 `3`
|
| 550 |
+
- max_iterations:mcts 的最大迭代次数,默认为 `100`
|
| 551 |
+
- process_reward_rate:select 中计算 value 时 process reward 占的比例,默认为 `0.0`,即不使用 PRM
|
| 552 |
+
- exploration_rate:UCT 算法中的探索参数,值越大越照顾探索次数较小的节点,默认为 `0.5`
|
| 553 |
+
- api_key:使用 client 作为推理引擎时需要,默认为 `EMPTY`
|
| 554 |
+
- base_url:使用 client 作为推理引擎时需要,默认为 'https://dashscope.aliyuncs.com/compatible-mode/v1'
|
| 555 |
+
|
| 556 |
+
|
| 557 |
+
## 特定模型参数
|
| 558 |
+
特定模型参数可以通过`--model_kwargs`或者环境变量进行设置,例如: `--model_kwargs '{"fps_max_frames": 12}'`或者`FPS_MAX_FRAMES=12`
|
| 559 |
+
|
| 560 |
+
### qwen2_vl, qvq, qwen2_5_vl
|
| 561 |
+
参数含义同`qwen_vl_utils`或者`qwen_omni_utils`库,可以查看[这里](https://github.com/QwenLM/Qwen2-VL/blob/main/qwen-vl-utils/src/qwen_vl_utils/vision_process.py#L24)
|
| 562 |
+
|
| 563 |
+
- IMAGE_FACTOR: 默认为28
|
| 564 |
+
- MIN_PIXELS: 默认为`4 * 28 * 28`
|
| 565 |
+
- 🔥MAX_PIXELS: 默认为`16384 * 28 * 28`,参考[这里](https://github.com/modelscope/ms-swift/blob/main/examples/train/multimodal/ocr.sh#L3)
|
| 566 |
+
- MAX_RATIO: 默认为200
|
| 567 |
+
- VIDEO_MIN_PIXELS: 默认为`128 * 28 * 28`
|
| 568 |
+
- 🔥VIDEO_MAX_PIXELS: 默认为`768 * 28 * 28`,参考[这里](https://github.com/modelscope/ms-swift/blob/main/examples/train/multimodal/video.sh#L7)
|
| 569 |
+
- VIDEO_TOTAL_PIXELS: 默认为`24576 * 28 * 28`
|
| 570 |
+
- FRAME_FACTOR: 默认为2
|
| 571 |
+
- FPS: 默认为2.0
|
| 572 |
+
- FPS_MIN_FRAMES: 默认为4
|
| 573 |
+
- 🔥FPS_MAX_FRAMES: 默认为768,参考[这里](https://github.com/modelscope/ms-swift/blob/main/examples/train/multimodal/video.sh#L8)
|
| 574 |
+
|
| 575 |
+
### qwen2_audio
|
| 576 |
+
- SAMPLING_RATE: 默认为16000
|
| 577 |
+
|
| 578 |
+
### qwen2_5_omni
|
| 579 |
+
qwen2_5_omni除了包含qwen2_5_vl和qwen2_audio的模型特定参数外,还包含以下参数:
|
| 580 |
+
- USE_AUDIO_IN_VIDEO: 默认为False
|
| 581 |
+
- 🔥ENABLE_AUDIO_OUTPUT: 默认为True。若使用zero3进行训练,请设置为False
|
| 582 |
+
|
| 583 |
+
### internvl, internvl_phi3
|
| 584 |
+
参数含义可以查看[这里](https://modelscope.cn/models/OpenGVLab/Mini-InternVL-Chat-2B-V1-5)
|
| 585 |
+
- MAX_NUM: 默认为12
|
| 586 |
+
- INPUT_SIZE: 默认为448
|
| 587 |
+
|
| 588 |
+
### internvl2, internvl2_phi3, internvl2_5, internvl3
|
| 589 |
+
参数含义可以查看[这里](https://modelscope.cn/models/OpenGVLab/InternVL2_5-2B)
|
| 590 |
+
- MAX_NUM: 默认为12
|
| 591 |
+
- INPUT_SIZE: 默认为448
|
| 592 |
+
- VIDEO_MAX_NUM: 默认为1。视频的MAX_NUM
|
| 593 |
+
- VIDEO_SEGMENTS: 默认为8
|
| 594 |
+
|
| 595 |
+
|
| 596 |
+
### minicpmv2_6, minicpmo2_6
|
| 597 |
+
- MAX_SLICE_NUMS: 默认为9,参考[这里](https://modelscope.cn/models/OpenBMB/MiniCPM-V-2_6/file/view/master?fileName=config.json&status=1)
|
| 598 |
+
- VIDEO_MAX_SLICE_NUMS: 默认为1,视频的MAX_SLICE_NUMS,参考[这里](https://modelscope.cn/models/OpenBMB/MiniCPM-V-2_6)
|
| 599 |
+
- MAX_NUM_FRAMES: 默认为64,参考[这里](https://modelscope.cn/models/OpenBMB/MiniCPM-V-2_6)
|
| 600 |
+
|
| 601 |
+
### minicpmo2_6
|
| 602 |
+
- INIT_TTS: 默认为False
|
| 603 |
+
- INIT_AUDIO: 默认为False
|
| 604 |
+
|
| 605 |
+
### ovis1_6, ovis2
|
| 606 |
+
- MAX_PARTITION: 默认为9,参考[这里](https://github.com/AIDC-AI/Ovis/blob/d248e34d755a95d24315c40e2489750a869c5dbc/ovis/model/modeling_ovis.py#L312)
|
| 607 |
+
|
| 608 |
+
### mplug_owl3, mplug_owl3_241101
|
| 609 |
+
- MAX_NUM_FRAMES: 默认为16,参考[这里](https://modelscope.cn/models/iic/mPLUG-Owl3-7B-240728)
|
| 610 |
+
|
| 611 |
+
### xcomposer2_4khd
|
| 612 |
+
- HD_NUM: 默认为55,参考[这里](https://modelscope.cn/models/Shanghai_AI_Laboratory/internlm-xcomposer2-4khd-7b)
|
| 613 |
+
|
| 614 |
+
### xcomposer2_5
|
| 615 |
+
- HD_NUM: 图片数量为1时,默认值为24。大于1,默认为6。参考[这里](https://modelscope.cn/models/AI-ModelScope/internlm-xcomposer2d5-7b/file/view/master?fileName=modeling_internlm_xcomposer2.py&status=1#L254)
|
| 616 |
+
|
| 617 |
+
### video_cogvlm2
|
| 618 |
+
- NUM_FRAMES: 默认为24,参考[这里](https://github.com/THUDM/CogVLM2/blob/main/video_demo/inference.py#L22)
|
| 619 |
+
|
| 620 |
+
### phi3_vision
|
| 621 |
+
- NUM_CROPS: 默认为4,参考[这里](https://modelscope.cn/models/LLM-Research/Phi-3.5-vision-instruct)
|
| 622 |
+
|
| 623 |
+
### llama3_1_omni
|
| 624 |
+
- N_MELS: 默认为128,参考[这里](https://github.com/ictnlp/LLaMA-Omni/blob/544d0ff3de8817fdcbc5192941a11cf4a72cbf2b/omni_speech/infer/infer.py#L57)
|
| 625 |
+
|
| 626 |
+
### video_llava
|
| 627 |
+
- NUM_FRAMES: 默认为16
|
| 628 |
+
|
| 629 |
+
|
| 630 |
+
## 其他环境变量
|
| 631 |
+
- CUDA_VISIBLE_DEVICES: 控制使用哪些GPU卡。默认使用所有卡
|
| 632 |
+
- ASCEND_RT_VISIBLE_DEVICES: 控制使用哪些NPU卡(ASCEND卡生效)。默认使用所有卡
|
| 633 |
+
- MODELSCOPE_CACHE: 控制缓存路径。
|
| 634 |
+
- NPROC_PER_NODE: torchrun中`--nproc_per_node`的参数透传。默认为1。若设置了`NPROC_PER_NODE`或者`NNODES`环境变量,则使用torchrun启动训练或推理
|
| 635 |
+
- MASTER_PORT: torchrun中`--master_port`的参数透传。默认为29500
|
| 636 |
+
- MASTER_ADDR: torchrun中`--master_addr`的参数透传
|
| 637 |
+
- NNODES: torchrun中`--nnodes`的参数透传
|
| 638 |
+
- NODE_RANK: torchrun中`--node_rank`的参数透传
|
| 639 |
+
- LOG_LEVEL: 日志的level,默认为'INFO',你可以设置为'WARNING', 'ERROR'等。
|