Upload ms-swift/docs/source/GetStarted/快速开始.md with huggingface_hub
Browse files
ms-swift/docs/source/GetStarted/快速开始.md
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 快速开始
|
| 2 |
+
|
| 3 |
+
ms-swift是魔搭社区提供的大模型与多模态大模型训练部署框架,现已支持450+大模型与150+多模态大模型的训练(预训练、微调、人类对齐)、推理、评测、量化与部署。模型开发者可以在ms-swift框架中一站式完成围绕大模型的各类需求。目前ms-swift的主要能力包含:
|
| 4 |
+
|
| 5 |
+
- 🍎 模型类型:支持450+纯文本大模型、150+多模态大模型以及All-to-All全模态模型、序列分类模型、Embedding模型训练到部署全流程。
|
| 6 |
+
- 数据集类型:内置150+预训练、微调、人类对齐、多模态等各种类型的数据集,并支持自定义数据集。
|
| 7 |
+
- 硬件支持:CPU、RTX系列、T4/V100、A10/A100/H100、Ascend NPU、MPS等。
|
| 8 |
+
- 🍊 轻量训练:支持了LoRA、QLoRA、DoRA、LoRA+、ReFT、RS-LoRA、LLaMAPro、Adapter、GaLore、Q-Galore、LISA、UnSloth、Liger-Kernel等轻量微调方式。
|
| 9 |
+
- 分布式训练:支持分布式数据并行(DDP)、device_map简易模型并行、DeepSpeed ZeRO2 ZeRO3、FSDP等分布式训练技术。
|
| 10 |
+
- 量化训练:支持对BNB、AWQ、GPTQ、AQLM、HQQ、EETQ量化模型进行训练。
|
| 11 |
+
- RLHF训练:支持纯文本大模型和多模态大模型的DPO、GRPO、RM、PPO、KTO、CPO、SimPO、ORPO等人类对齐训练方法。
|
| 12 |
+
- 🍓 多模态训练:支持对图像、视频和语音不同模态模型进行训练,支持VQA、Caption、OCR、Grounding任务的训练。
|
| 13 |
+
- 界面训练:以界面的方式提供训练、推理、评测、量化的能力,完成大模型的全链路。
|
| 14 |
+
- 插件化与拓展:支持自定义模型和数据集拓展,支持对loss、metric、trainer、loss-scale、callback、optimizer等组件进行自定义。
|
| 15 |
+
- 🍉 工具箱能力:除了对大模型和多模态大模型的训练支持外,还支持其推理、评测、量化和部署全流程。
|
| 16 |
+
- 推理加速:支持PyTorch、vLLM、LmDeploy推理加速引擎,并提供OpenAI接口,为推理、部署和评测模块提供加速。
|
| 17 |
+
- 模型评测:以EvalScope作为评测后端,支持100+评测数据集对纯文本和多模态模型进行评测。
|
| 18 |
+
- 模型量化:支持AWQ、GPTQ和BNB的量化导出,导出的模型支持使用vLLM/LmDeploy推理加速,并支持继续训练。
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
## 安装
|
| 22 |
+
|
| 23 |
+
ms-swift的安装请参考[安装文档](./SWIFT安装.md)。
|
| 24 |
+
|
| 25 |
+
## 使用样例
|
| 26 |
+
|
| 27 |
+
10分钟在单卡3090上对Qwen2.5-7B-Instruct进行自我认知微调:
|
| 28 |
+
```shell
|
| 29 |
+
# 22GB
|
| 30 |
+
CUDA_VISIBLE_DEVICES=0 \
|
| 31 |
+
swift sft \
|
| 32 |
+
--model Qwen/Qwen2.5-7B-Instruct \
|
| 33 |
+
--train_type lora \
|
| 34 |
+
--dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \
|
| 35 |
+
'AI-ModelScope/alpaca-gpt4-data-en#500' \
|
| 36 |
+
'swift/self-cognition#500' \
|
| 37 |
+
--torch_dtype bfloat16 \
|
| 38 |
+
--num_train_epochs 1 \
|
| 39 |
+
--per_device_train_batch_size 1 \
|
| 40 |
+
--per_device_eval_batch_size 1 \
|
| 41 |
+
--learning_rate 1e-4 \
|
| 42 |
+
--lora_rank 8 \
|
| 43 |
+
--lora_alpha 32 \
|
| 44 |
+
--target_modules all-linear \
|
| 45 |
+
--gradient_accumulation_steps 16 \
|
| 46 |
+
--eval_steps 50 \
|
| 47 |
+
--save_steps 50 \
|
| 48 |
+
--save_total_limit 2 \
|
| 49 |
+
--logging_steps 5 \
|
| 50 |
+
--max_length 2048 \
|
| 51 |
+
--output_dir output \
|
| 52 |
+
--system 'You are a helpful assistant.' \
|
| 53 |
+
--warmup_ratio 0.05 \
|
| 54 |
+
--dataloader_num_workers 4 \
|
| 55 |
+
--model_author swift \
|
| 56 |
+
--model_name swift-robot
|
| 57 |
+
```
|
| 58 |
+
|
| 59 |
+
小贴士:
|
| 60 |
+
- 如果要使用自定义数据集进行训练,你可以参考[这里](../Customization/自定义数据集.md)组织数据集格式,并指定`--dataset <dataset_path>`。
|
| 61 |
+
- `--model_author`和`--model_name`参数只有当数据集中包含`swift/self-cognition`时才生效。
|
| 62 |
+
- 如果要使用其他模型进行训练,你只需要修改`--model <model_id/model_path>`即可。
|
| 63 |
+
- 默认使用ModelScope进行模型和数据集的下载。如果要使用HuggingFace,指定`--use_hf true`即可。
|
| 64 |
+
|
| 65 |
+
训练完成后,使用以下命令对训练后的权重进行推理:
|
| 66 |
+
- 这里的`--adapters`需要替换成训练生成的last checkpoint文件夹。由于adapters文件夹中包含了训练的参数文件`args.json`,因此不需要额外指定`--model`,`--system`,swift会自动读取这些参数。如果要关闭此行为,可以设置`--load_args false`。
|
| 67 |
+
|
| 68 |
+
```shell
|
| 69 |
+
# 使用交互式命令行进行推理
|
| 70 |
+
CUDA_VISIBLE_DEVICES=0 \
|
| 71 |
+
swift infer \
|
| 72 |
+
--adapters output/vx-xxx/checkpoint-xxx \
|
| 73 |
+
--stream true \
|
| 74 |
+
--temperature 0 \
|
| 75 |
+
--max_new_tokens 2048
|
| 76 |
+
|
| 77 |
+
# merge-lora并使用vLLM进行推理加速
|
| 78 |
+
CUDA_VISIBLE_DEVICES=0 \
|
| 79 |
+
swift infer \
|
| 80 |
+
--adapters output/vx-xxx/checkpoint-xxx \
|
| 81 |
+
--stream true \
|
| 82 |
+
--merge_lora true \
|
| 83 |
+
--infer_backend vllm \
|
| 84 |
+
--max_model_len 8192 \
|
| 85 |
+
--temperature 0 \
|
| 86 |
+
--max_new_tokens 2048
|
| 87 |
+
```
|
| 88 |
+
|
| 89 |
+
最后,使用以下命令将模型推送到ModelScope:
|
| 90 |
+
```shell
|
| 91 |
+
CUDA_VISIBLE_DEVICES=0 \
|
| 92 |
+
swift export \
|
| 93 |
+
--adapters output/vx-xxx/checkpoint-xxx \
|
| 94 |
+
--push_to_hub true \
|
| 95 |
+
--hub_model_id '<your-model-id>' \
|
| 96 |
+
--hub_token '<your-sdk-token>' \
|
| 97 |
+
--use_hf false
|
| 98 |
+
```
|
| 99 |
+
|
| 100 |
+
## 了解更多
|
| 101 |
+
|
| 102 |
+
- 更多Shell脚本:[https://github.com/modelscope/ms-swift/tree/main/examples](https://github.com/modelscope/ms-swift/tree/main/examples)
|
| 103 |
+
- 使用Python:[https://github.com/modelscope/ms-swift/blob/main/examples/notebook/qwen2_5-self-cognition/self-cognition-sft.ipynb](https://github.com/modelscope/ms-swift/blob/main/examples/notebook/qwen2_5-self-cognition/self-cognition-sft.ipynb)
|