!229 Update sequence parallism related docs
Merge pull request !229 from 金勇旭/sp_doc
This commit is contained in:
@ -599,6 +599,7 @@ chmod -R 750 path/to/model_weights
|
|||||||
| load_in_4bit | 支持QLoRA微调时使用4bit精度。 | bool | False | 可选 |
|
| load_in_4bit | 支持QLoRA微调时使用4bit精度。 | bool | False | 可选 |
|
||||||
| use_dora | 是否使用DoRA。 | bool | False | 可选 |
|
| use_dora | 是否使用DoRA。 | bool | False | 可选 |
|
||||||
| init_lora_weights | LoRA微调的权重初始化方法。只支持pissa_niter_[num of iters]。 | str | True | 可选 |
|
| init_lora_weights | LoRA微调的权重初始化方法。只支持pissa_niter_[num of iters]。 | str | True | 可选 |
|
||||||
|
| sequence_parallel_size | 处理一个训练数据序列的计算设备的数量。 | int | 1 | 可选 |
|
||||||
| model_id | 模型ID。 | str | - | 可选 |
|
| model_id | 模型ID。 | str | - | 可选 |
|
||||||
| model_name_or_path | 模型本地路径或者hub的repo_id。 | str | - | 可选 |
|
| model_name_or_path | 模型本地路径或者hub的repo_id。 | str | - | 可选 |
|
||||||
| trust_remote_code | 是否信任从远程下载的配置文件。 | bool | False | 可选 |
|
| trust_remote_code | 是否信任从远程下载的配置文件。 | bool | False | 可选 |
|
||||||
|
24
docs/zh/basic_tutorial/train/sequence_parallel.md
Normal file
24
docs/zh/basic_tutorial/train/sequence_parallel.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# 序列并行
|
||||||
|
|
||||||
|
当用户的数据集序列维度增长时,训练内存开销会以 $O$($S^2$) 的速度增长,因此需要针对长序列场景进行特定的优化解决长序列训练场景的需求。`openMind Library`当前支持在`sft`下的Ulysses长序列并行方案,以此解决序列维度扩展问题。
|
||||||
|
|
||||||
|
## Ulysses原理
|
||||||
|
|
||||||
|
Ulysses将各个样本在序列维度上进行切分并分发给各个计算设备,然后在模型的注意力(attention)计算之前,它对已分割的查询(Query)、键(Key)、值(Value)执行all-to-all通讯操作,使得每个计算设备都具备非重叠注意力头的完整序列,此时参与计算的设备可以并行的计算不同的注意力头。在注意力(attention)计算结束后,再次执行all-to-all通讯操作,在注意力头的维度上收集结果,同时在序列维度上进行切分。
|
||||||
|
|
||||||
|
## 配置序列并行
|
||||||
|
|
||||||
|
在yaml文件中配置以下参数:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
sequence_parallel_size: 4
|
||||||
|
```
|
||||||
|
|
||||||
|
- `sequence_parallel_size`为处理一个训练数据序列的计算设备的数量。默认值为1,表示未开启序列并行。
|
||||||
|
|
||||||
|
当开启序列并行时,需要满足以下几点:
|
||||||
|
|
||||||
|
- 计算设备数量`world_size`可以被`sequence_parallel_size`整除。
|
||||||
|
- 模型注意力头数量`num_attention_heads`可以被`sequence_parallel_size`整除。
|
||||||
|
- `max_length`可以被`sequence_parallel_size` * 8整除。
|
||||||
|
- 设置`use_npu_fusion_attention`参数为True。
|
@ -313,6 +313,7 @@ export HUB_WHITE_LIST_PATHS=/home/cache_model
|
|||||||
| load_in_4bit | 支持QLoRA训练时使用4bit精度。 | bool | False | 可选 |
|
| load_in_4bit | 支持QLoRA训练时使用4bit精度。 | bool | False | 可选 |
|
||||||
| use_dora | 是否使用DoRA。 | bool | False | 可选 |
|
| use_dora | 是否使用DoRA。 | bool | False | 可选 |
|
||||||
| init_lora_weights | LoRA权重初始化方法。只支持pissa_niter_[number of iters]。 | str | True | 可选 |
|
| init_lora_weights | LoRA权重初始化方法。只支持pissa_niter_[number of iters]。 | str | True | 可选 |
|
||||||
|
| sequence_parallel_size | 处理一个训练数据序列的计算设备的数量。 | int | 1 | 可选 |
|
||||||
|
|
||||||
LoRA与QLoRA的详细用法请参考[模型量化与导出](./lora_and_merge.md)。
|
LoRA与QLoRA的详细用法请参考[模型量化与导出](./lora_and_merge.md)。
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user