Skip to content

Commit 20e4db4

Browse files
committed
Merge branch 'main' into release/2.0
2 parents af23bf0 + db7ad12 commit 20e4db4

File tree

178 files changed

+4642
-10819
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+4642
-10819
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,7 @@ The complete list of supported models and datasets can be found at [Supported Mo
477477
| WizardLM2 | [WizardLM2 series models](https://github.com/nlpxucan/WizardLM) | English | 7B-8x22B<br>including quantized versions | chat model<br>MoE model |
478478
| Atom | [Atom](https://github.com/LlamaFamily/Llama-Chinese) | Chinese | 7B| base model<br>chat model|
479479
| Chinese-LLaMA-Alpaca-2 | [Chinese-LLaMA-Alpaca-2](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2) | Chinese | 1.3B-13B| base model<br>chat model<br>long text model |
480+
| Chinese-LLaMA-Alpaca-3 | [Chinese-LLaMA-Alpaca-3](https://github.com/ymcui/Chinese-LLaMA-Alpaca-3) | Chinese | 8B| base model<br>chat model|
480481
| ModelScope-Agent | [ModelScope Agent series models](https://github.com/modelscope/modelscope-agent) | Chinese | 7B-14B| agent model |
481482

482483
#### MLLMs

README_CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,7 @@ CUDA_VISIBLE_DEVICES=0 swift deploy \
475475
| WizardLM2 | [WizardLM2系列模型](https://github.com/nlpxucan/WizardLM) | 多语种 | 7B-8x22B<br>包含量化版本 | chat模型<br>MoE模型 |
476476
| Atom | [Atom](https://github.com/LlamaFamily/Llama-Chinese) | 中文 | 7B| base模型<br>chat模型|
477477
| Chinese-LLaMA-Alpaca-2 | [Chinese-LLaMA-Alpaca-2](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2) | 中文 | 1.3B-13B| base模型<br>chat模型<br>长文本模型 |
478+
| Chinese-LLaMA-Alpaca-3 | [Chinese-LLaMA-Alpaca-3](https://github.com/ymcui/Chinese-LLaMA-Alpaca-3) | 中文 | 8B| base模型<br>chat模型|
478479
| ModelScope-Agent | [ModelScope Agent系列](https://github.com/modelscope/modelscope-agent) | 中文 | 7B-14B| agent模型 |
479480

480481

docs/source/LLM/LLM微调文档.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import torch
4949

5050
from swift.llm import (
5151
DatasetName, InferArguments, ModelType, SftArguments,
52-
infer_main, sft_main, app_ui_main, merge_lora
52+
infer_main, sft_main, app_ui_main
5353
)
5454

5555
model_type = ModelType.qwen_7b_chat
@@ -182,10 +182,10 @@ CUDA_VISIBLE_DEVICES=0 swift export \
182182
对微调后模型进行量化可以查看[LLM量化文档](LLM量化文档.md#微调后模型)
183183

184184
## 推理
185-
如果你要使用VLLM进行推理加速, 可以查看[VLLM推理加速与部署](VLLM推理加速与部署.md调后的模型)
185+
如果你要使用VLLM进行推理加速, 可以查看[VLLM推理加速与部署](VLLM推理加速与部署.md#微调后的模型)
186186

187187
### 原始模型
188-
**单样本推理**可以查看[LLM推理文档](LLM推理文档.md推理)
188+
**单样本推理**可以查看[LLM推理文档](LLM推理文档.md#推理)
189189

190190
使用**数据集**评估:
191191
```bash
@@ -271,10 +271,10 @@ CUDA_VISIBLE_DEVICES=0 swift infer --ckpt_dir 'xxx/vx-xxx/checkpoint-xxx-merged'
271271
```
272272

273273
## Web-UI
274-
如果你要使用VLLM进行部署并提供**API**接口, 可以查看[VLLM推理加速与部署](VLLM推理加速与部署.md署)
274+
如果你要使用VLLM进行部署并提供**API**接口, 可以查看[VLLM推理加速与部署](VLLM推理加速与部署.md#部署)
275275

276276
### 原始模型
277-
使用原始模型的web-ui可以查看[LLM推理文档](LLM推理文档.mdWeb-UI)
277+
使用原始模型的web-ui可以查看[LLM推理文档](LLM推理文档.md#Web-UI)
278278

279279
### 微调后模型
280280
```bash

docs/source/LLM/LLM推理文档.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ CUDA_VISIBLE_DEVICES=0 swift infer --model_type yi-6b-chat
396396
```
397397

398398
### 微调后模型
399-
如果你要使用微调后模型进行推理, 可以查看[LLM微调文档](LLM微调文档.md调后模型)
399+
如果你要使用微调后模型进行推理, 可以查看[LLM微调文档](LLM微调文档.md#微调后模型)
400400

401401

402402
## Web-UI
@@ -446,4 +446,4 @@ app_ui_main(app_ui_args)
446446
```
447447

448448
### 微调后模型
449-
使用微调后模型的web-ui可以查看[LLM微调文档](LLM微调文档.md调后模型-1)
449+
使用微调后模型的web-ui可以查看[LLM微调文档](LLM微调文档.md#微调后模型)

docs/source/LLM/LLM量化文档.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@ pip install -r requirements/llm.txt -U
3838
# 如果出现量化的时候OOM, 可以适度降低`--quant_n_samples`(默认256)和`--quant_seqlen`(默认2048).
3939
# gptq-int4量化 (使用A100大约需要20分钟, 显存占用: 7GB)
4040

41-
# awq: 使用`ms-bench-mini`作为量化数据集
41+
# awq: 使用`alpaca-zh alpaca-en sharegpt-gpt4-mini`作为量化数据集
4242
CUDA_VISIBLE_DEVICES=0 swift export \
4343
--model_type qwen1half-7b-chat --quant_bits 4 \
44-
--dataset ms-bench-mini --quant_method awq
44+
--dataset alpaca-zh alpaca-en sharegpt-gpt4-mini --quant_method awq
4545

46-
# gptq: 使用`ms-bench-mini`作为量化数据集
46+
# gptq: 使用`alpaca-zh alpaca-en sharegpt-gpt4-mini`作为量化数据集
4747
# gptq量化请先查看此issue: https://github.com/AutoGPTQ/AutoGPTQ/issues/439
4848
OMP_NUM_THREADS=14 CUDA_VISIBLE_DEVICES=0 swift export \
4949
--model_type qwen1half-7b-chat --quant_bits 4 \
50-
--dataset ms-bench-mini --quant_method gptq
50+
--dataset alpaca-zh alpaca-en sharegpt-gpt4-mini --quant_method gptq
5151

5252
# awq: 使用自定义量化数据集 (`--custom_val_dataset_path`参数不进行使用)
5353
# gptq同理
@@ -167,11 +167,11 @@ CUDA_VISIBLE_DEVICES=0 swift infer --model_type qwen1half-7b-chat
167167

168168
**Merge-LoRA & 量化**
169169
```shell
170-
# 使用`ms-bench-mini`作为量化数据集
170+
# 使用`alpaca-zh alpaca-en sharegpt-gpt4-mini`作为量化数据集
171171
CUDA_VISIBLE_DEVICES=0 swift export \
172172
--ckpt_dir 'output/qwen1half-4b-chat/vx-xxx/checkpoint-xxx' \
173173
--merge_lora true --quant_bits 4 \
174-
--dataset ms-bench-mini --quant_method awq
174+
--dataset alpaca-zh alpaca-en sharegpt-gpt4-mini --quant_method awq
175175

176176
# 使用微调时使用的数据集作为量化数据集
177177
CUDA_VISIBLE_DEVICES=0 swift export \

docs/source/LLM/Qwen1.5全流程最佳实践.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -178,16 +178,16 @@ CUDA_VISIBLE_DEVICES=0 swift app-ui \
178178

179179
使用python:
180180
```python
181-
# Experimental environment: A100
182-
# 26GB GPU memory
181+
# Experimental environment: 3090
182+
# 24GB GPU memory
183183
import os
184184
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
185185

186186
from swift.llm import DatasetName, ModelType, SftArguments, sft_main
187187

188188
sft_args = SftArguments(
189189
model_type=ModelType.qwen1half_7b_chat,
190-
dataset=[DatasetName.ms_bench_mini],
190+
dataset=[DatasetName.alpaca_zh, DatasetName.alpaca_en],
191191
train_dataset_sample=1000,
192192
logging_steps=5,
193193
max_length=2048,
@@ -208,11 +208,11 @@ print(f'best_model_checkpoint: {best_model_checkpoint}')
208208
使用模型并行:
209209
```shell
210210
# Experimental environment: 2 * 3090
211-
# 2 * 19GB GPU memory
211+
# 2 * 18GB GPU memory
212212
CUDA_VISIBLE_DEVICES=0,1 \
213213
swift sft \
214214
--model_type qwen1half-7b-chat \
215-
--dataset ms-bench-mini \
215+
--dataset alpaca-zh alpaca-en \
216216
--train_dataset_sample 1000 \
217217
--logging_steps 5 \
218218
--max_length 2048 \
@@ -225,15 +225,15 @@ swift sft \
225225
--model_author 魔搭 ModelScope \
226226
```
227227

228-
使用**zero3**进行分布式训练的脚本:
228+
使用**zero2**进行分布式训练的脚本:
229229
```shell
230230
# Experimental environment: 4 * 3090
231231
# 4 * 24GB GPU memory
232232
CUDA_VISIBLE_DEVICES=0,1,2,3 \
233233
NPROC_PER_NODE=4 \
234234
swift sft \
235235
--model_type qwen1half-7b-chat \
236-
--dataset ms-bench-mini \
236+
--dataset alpaca-zh alpaca-en \
237237
--train_dataset_sample 1000 \
238238
--logging_steps 5 \
239239
--max_length 2048 \
@@ -244,7 +244,7 @@ swift sft \
244244
--self_cognition_sample 500 \
245245
--model_name 小黄 'Xiao Huang' \
246246
--model_author 魔搭 ModelScope \
247-
--deepspeed default-zero3 \
247+
--deepspeed default-zero2 \
248248
```
249249

250250
如果你想要使用**界面的方式进行训练**, 可以输入以下命令, 并填入相应的值:
@@ -484,7 +484,7 @@ CUDA_VISIBLE_DEVICES=0,1,2,3 \
484484
NPROC_PER_NODE=4 \
485485
swift sft \
486486
--model_type qwen1half-72b-chat \
487-
--dataset ms-bench-mini \
487+
--dataset alpaca-zh alpaca-en \
488488
--train_dataset_sample 1000 \
489489
--logging_steps 5 \
490490
--max_length 4096 \

docs/source/LLM/VLLM推理加速与部署.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,6 @@ from swift.llm import (
186186
ModelType, get_vllm_engine, get_default_template_type,
187187
get_template, inference_vllm
188188
)
189-
from swift.tuners import Swift
190189

191190
ckpt_dir = 'vx-xxx/checkpoint-100-merged'
192191
model_type = ModelType.qwen_7b_chat
@@ -240,7 +239,7 @@ CUDA_VISIBLE_DEVICES=0 swift app-ui --ckpt_dir 'xxx/vx-xxx/checkpoint-xxx-merged
240239
## 部署
241240
swift使用VLLM作为推理后端, 并兼容openai的API样式.
242241

243-
服务端的部署命令行参数可以参考: [deploy命令行参数](命令行参数.md#deploy-命令行参数).
242+
服务端的部署命令行参数可以参考: [deploy命令行参数](命令行参数.md#deploy-参数).
244243

245244
客户端的openai的API参数可以参考: https://platform.openai.com/docs/api-reference/introduction.
246245

docs/source/LLM/命令行参数.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
- `--disable_tqdm`: 是否不启用tqdm, 这在`nohup`启动脚本时很有用. 默认为`False`, 即为启动tqdm.
8686
- `--lazy_tokenize`: 如果设置为False, 则在`trainer.train()`之前提前对所有文本进行预处理. 如果设置为True, 则延迟对文本进行编码, 减少预处理的等待并减少内存占用, 这在处理大数据集时很有用. 默认为`None`, 即我们会根据template的类型进行智能选择, LLM的模型通常设置为False, 多模态的模型通常设置为True(避免图片和音频加载导致过多的内存占用).
8787
- `--preprocess_num_proc`: 在对数据集预处理时(对文本进行tokenize), 使用多进程. 默认为`1`. 与`lazy_tokenize`命令行参数一样, 用于解决预处理速度慢的问题. 但该策略无法减少内存占用, 所以如果当数据集巨大时, 建议使用`lazy_tokenize`. 推荐设置的值: 4, 8. 请注意: 当使用qwen-audio时, 该参数会强制设置为1, 因为qwen-audio的预处理函数中使用了torch的多进程, 会造成不兼容问题.
88-
- `--use_flash_attn`: 是否使用flash attn, 默认为`None`. 安装flash_attn的步骤可以查看[https://github.com/Dao-AILab/flash-attention](https://github.com/Dao-AILab/flash-attention). 支持flash_attn的模型可以查看[LLM支持的模型](支持的模型和数据集.md型).
88+
- `--use_flash_attn`: 是否使用flash attn, 默认为`None`. 安装flash_attn的步骤可以查看[https://github.com/Dao-AILab/flash-attention](https://github.com/Dao-AILab/flash-attention). 支持flash_attn的模型可以查看[LLM支持的模型](支持的模型和数据集.md#模型).
8989
- `--ignore_args_error`: 是否忽略命令行传参错误抛出的Error, 默认为`False`. 如果需要拷贝代码到notebook中运行, 需要设置成True.
9090
- `--check_model_is_latest`: 检查模型是否是最新, 默认为`True`. 如果你需要断网进行训练, 请将该参数设置为`False`.
9191
- `--logging_dir`: 默认为`None`. 即设置为`f'{self.output_dir}/runs'`, 表示tensorboard文件存储路径.
@@ -189,7 +189,7 @@ dpo参数继承了sft参数, 除此之外增加了以下参数:
189189
- `--model_revision`: 默认值为`None`. 具体的参数介绍可以在`sft.sh命令行参数`中查看. 如果`model_id_or_path`为None或者是本地的模型目录, 则该参数失效.
190190
- `--sft_type`: 默认值为`'lora'`, 具体的参数介绍可以在`sft.sh命令行参数`中查看.
191191
- `--template_type`: 默认值为`'AUTO'`, 具体的参数介绍可以在`sft.sh命令行参数`中查看.
192-
- `--infer_backend`: 你可以选择'AUTO', 'vllm', 'pt'. 默认使用'AUTO', 进行智能选择, 即如果没有传入`ckpt_dir`或使用全参数微调, 并且安装了vllm且模型支持vllm则使用vllm引擎, 否则使用原生torch进行推理. vllm环境准备可以参考[VLLM推理加速与部署](VLLM推理加速与部署.md境准备), vllm支持的模型可以查看[支持的模型](支持的模型和数据集.md型).
192+
- `--infer_backend`: 你可以选择'AUTO', 'vllm', 'pt'. 默认使用'AUTO', 进行智能选择, 即如果没有传入`ckpt_dir`或使用全参数微调, 并且安装了vllm且模型支持vllm则使用vllm引擎, 否则使用原生torch进行推理. vllm环境准备可以参考[VLLM推理加速与部署](VLLM推理加速与部署.md#环境准备), vllm支持的模型可以查看[支持的模型](支持的模型和数据集.md#模型).
193193
- `--ckpt_dir`: 必填项, 值为SFT阶段保存的checkpoint路径, e.g. `'/path/to/your/vx-xxx/checkpoint-xxx'`.
194194
- `--load_args_from_ckpt_dir`: 是否从`ckpt_dir``sft_args.json`文件中读取模型配置信息. 默认是`True`.
195195
- `--load_dataset_config`: 该参数只有在`--load_args_from_ckpt_dir true`时才生效. 即是否从`ckpt_dir``sft_args.json`文件中读取数据集相关的配置信息. 默认为`False`.
@@ -241,7 +241,7 @@ export参数继承了infer参数, 除此之外增加了以下参数:
241241
- `--merge_lora`: 默认为`False`. 该参数已在InferArguments中定义, 不属于新增参数. 是否将lora权重merge到基模型中, 并保存完整的权重. 权重会保存在`ckpt_dir`的同级目录中, e.g. `'/path/to/your/vx-xxx/checkpoint-xxx-merged'`目录下.
242242
- `--quant_bits`: 量化的bits数. 默认为`0`, 即不进行量化. 如果你设置了`--quant_method awq`, 你可以设置为`4`进行4bits量化. 如果你设置了`--quant_method gptq`, 你可以设置为`2`,`3`,`4`,`8`进行对应bits的量化. 如果对原始模型进行量化, 权重会保存在`f'{args.model_type}-{args.quant_method}-int{args.quant_bits}'`目录中. 如果对微调后模型进行量化, 权重会保存在`ckpt_dir`的同级目录中, e.g. `f'/path/to/your/vx-xxx/checkpoint-xxx-{args.quant_method}-int{args.quant_bits}'`目录下.
243243
- `--quant_method`: 量化方法, 默认为`'awq'`. 你可以选择为'awq', 'gptq'.
244-
- `--dataset`: 该参数已在InferArguments中定义, 在export时含义为量化数据集. 默认为`[]`. 推荐设置为`--dataset ms-bench-mini`. 该数据集含多语言的内容(中文为主)且质量很高, 量化中文模型具有很好的效果. 你也可以设置`--dataset pileval`, 使用autoawq默认量化数据集, 该数据集的语言为英文. 更多细节: 包括如何自定义量化数据集, 可以参考[LLM量化文档](LLM量化文档.md).
244+
- `--dataset`: 该参数已在InferArguments中定义, 在export时含义为量化数据集. 默认为`[]`. 更多细节: 包括如何自定义量化数据集, 可以参考[LLM量化文档](LLM量化文档.md).
245245
- `--quant_n_samples`: 量化参数, 默认为`256`. 当设置为`--quant_method awq`时, 如果出现量化的时候OOM, 可以适度降低`--quant_n_samples``--quant_seqlen`. `--quant_method gptq`通常不会出现量化OOM.
246246
- `--quant_seqlen`: 量化参数, 默认为`2048`.
247247
- `--quant_device_map`: 默认为`'cpu'`, 节约显存. 你可以指定为'cuda:0', 'auto', 'cpu'等, 表示量化时模型导入的设备.

0 commit comments

Comments
 (0)