Upload ms-swift/docs/source/Instruction/ReleaseNote3.0.md with huggingface_hub
Browse files
ms-swift/docs/source/Instruction/ReleaseNote3.0.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# ReleaseNote 3.0
|
| 2 |
+
|
| 3 |
+
> 如果您在3.x版本使用上遇到任何问题,请提交issue给我们。如存在2.x可用而3.x不可用的情况请暂时使用2.x版本等待我们修复完成。
|
| 4 |
+
|
| 5 |
+
## 新功能
|
| 6 |
+
|
| 7 |
+
1. 数据集模块重构。数据集加载速度提升2-20倍,encode速度提升2-4倍,支持streaming模式
|
| 8 |
+
- 移除了dataset_name机制,采用dataset_id、dataset_dir、dataset_path方式指定数据集
|
| 9 |
+
- 使用`--dataset_num_proc`支持多进程加速处理
|
| 10 |
+
- 使用`--streaming`支持流式加载hub端和本地数据集
|
| 11 |
+
- 支持`--packing`命令以获得更稳定的训练效率
|
| 12 |
+
- 指定`--dataset <dataset_dir>`支持本地加载开源数据集
|
| 13 |
+
2. 对模型进行了重构:
|
| 14 |
+
- 移除了model_type机制,使用`--model <model_id>/<model_path>`来训练和推理
|
| 15 |
+
- 若是新模型,直接使用`--model <model_id>/<model_path> --template xxx --model_type xxx`,无需书写python脚本进行模型注册
|
| 16 |
+
3. template模块重构:
|
| 17 |
+
- 使用`--template_backend jinja`采用jinja模式推理
|
| 18 |
+
- 采用messages格式作为入参接口
|
| 19 |
+
4. 支持了plugin机制,用于定制训练过程,目前支持的plugin有:
|
| 20 |
+
- callback 定制训练回调方法
|
| 21 |
+
- loss 定制loss方法
|
| 22 |
+
- loss_scale 定制每个token的权重
|
| 23 |
+
- metric 定制交叉验证的指标
|
| 24 |
+
- optimizer 定制训练使用的optimizer和lr_scheduler
|
| 25 |
+
- tools 定制agent训练的system格式
|
| 26 |
+
- tuner 定制新的tuner
|
| 27 |
+
4. 训练模块重构:
|
| 28 |
+
- 支持了一行命令启动多机训练,详情查看[这里](https://github.com/modelscope/ms-swift/tree/main/examples/train/multi-node/deepspeed/README.md)
|
| 29 |
+
- 支持所有多模态LLM的PreTrain
|
| 30 |
+
- 训练中的predict_with_generate采用infer模块,支持多模态LLM和多卡
|
| 31 |
+
- 人类对齐KTO算法支持多模态LLM
|
| 32 |
+
5. 推理与部署模块重构:
|
| 33 |
+
- 支持pt backend下的batch推理,支持多卡推理
|
| 34 |
+
- 推理和部署模块统一采用openai格式接口
|
| 35 |
+
- 支持了异步推理接口
|
| 36 |
+
6. app-ui合并入web-ui,app-ui支持多模态推理
|
| 37 |
+
7. 支持All-to-All模型,即Emu3-Gen或Janus等文生图或全模态模型的训练和部署等
|
| 38 |
+
8. 对examples进行了功能提升,目前examples可以全面反映SWIFT的能力,易用性更强
|
| 39 |
+
9. 使用`--use_hf true/false`来切换HuggingFace社区和ModelScope社区的数据集模型的下载上传
|
| 40 |
+
10. 更好地支持了以代码形式进行训练、推理,代码结构更清晰,并补充了大量的代码注释
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
## BreakChange
|
| 44 |
+
|
| 45 |
+
本文档列举3.x版本和2.x版本的BreakChange。开发者在使用时应当注意这些不同。
|
| 46 |
+
|
| 47 |
+
### 参数差异
|
| 48 |
+
|
| 49 |
+
- model_type的含义发生了变化。3.0版本只需要指定--model,model_type仅当模型为SWIFT不支持模型时才需要额外指定
|
| 50 |
+
- sft_type更名为train_type
|
| 51 |
+
- model_id_or_path更名为model
|
| 52 |
+
- template_type更名为template
|
| 53 |
+
- quantization_bit更名为quant_bits
|
| 54 |
+
- check_model_is_latest更名为check_model
|
| 55 |
+
- batch_size更名为per_device_train_batch_size,沿用了transformers的命名规则
|
| 56 |
+
- eval_batch_size更名为per_device_eval_batch_size,沿用了transformers的命名规则
|
| 57 |
+
- tuner_backend移除了swift选项
|
| 58 |
+
- use_flash_attn更名为attn_impl
|
| 59 |
+
- bnb_4bit_comp_dtype更名为bnb_4bit_compute_dtype
|
| 60 |
+
- 移除了train_dataset_sample和val_dataset_sample
|
| 61 |
+
- dtype更名为torch_dtype,同时选项名称从bf16变更为标准的bfloat16,fp16变更为float16,fp32变更为float32
|
| 62 |
+
- 移除了eval_human选项
|
| 63 |
+
- dataset选项移除了HF::使用方式,使用新增的--use_hf控制下载和上传
|
| 64 |
+
- 移除了do_sample选项,使用temperature进行控制
|
| 65 |
+
- add_output_dir_suffix更名为add_version
|
| 66 |
+
- 移除了eval_token,使用api_key支持
|
| 67 |
+
- target_modules(lora_target_modules)的ALL改为了all-linear,含义相同
|
| 68 |
+
- deepspeed的配置更改为`default-zero2`->`zero2`, `default-zero3`->`zero3`
|
| 69 |
+
- infer/deploy/export移除了--ckpt_dir参数,使用--model, --adapters进行控制
|
| 70 |
+
|
| 71 |
+
2.0标记为compatible参数的部分整体移除了。
|
| 72 |
+
|
| 73 |
+
### 功能
|
| 74 |
+
|
| 75 |
+
1. 预训练请使用swift pt命令。该命令会默认使用generation template,而swift sft命令默认使用model_type预置的template
|
| 76 |
+
2. 整体移除了2.x版本的examples目录,并添加了按功能类型划分的新examples
|
| 77 |
+
3. 数据集格式完全向messages格式兼容,不再支持query/response/history格式
|
| 78 |
+
4. merge_lora的存储目录可以通过`--output_dir`指定了,且merge_lora和量化不能在一个命令中执行,需要最少两个命令
|
| 79 |
+
5. 使用`swift app --model xxx`开启app-ui界面,支持了多模态界面推理
|
| 80 |
+
6. 移除了AIGC的依赖以及对应的examples和训练代码
|