diff --git a/tutorials/source_zh_cn/model_infer/ms_infer/llm_inference_overview.md b/tutorials/source_zh_cn/model_infer/ms_infer/llm_inference_overview.md
index 96ba4bd94b..1e14cb04c5 100644
--- a/tutorials/source_zh_cn/model_infer/ms_infer/llm_inference_overview.md
+++ b/tutorials/source_zh_cn/model_infer/ms_infer/llm_inference_overview.md
@@ -104,7 +104,7 @@ pip install mindspore
pip install mindformers
```
-同时,用户也可以参考官方安装文档来安装自己环境适配的Python包,具体见[MindSpore安装](https://www.mindspore.cn/install)和[MindFormers安装](https://www.mindspore.cn/mindformers/docs/zh-CN/dev/installation.html)。
+同时,用户也可以参考官方安装文档来安装自己环境适配的Python包,具体见[MindSpore安装](https://www.mindspore.cn/install)和[MindFormers安装](https://www.mindspore.cn/mindformers/docs/zh-CN/r1.6.0/installation.html)。
如果用户需要使用模型量化能力提升模型推理性能,还需要安装mindspore_gs包,具体可以参考[MindSpore GoldenStick安装](https://www.mindspore.cn/golden_stick/docs/zh-CN/master/install.html)。
@@ -125,7 +125,7 @@ git clone https://huggingface.co/daryl149/llama-2-7b-hf
python convert_weight.py --torch_ckpt_path "/path/to/huggingface_ckpt/" --mindspore_ckpt_path "/path/to/mindspore_ckpt"
```
-具体转换脚本可以在[convert_weight.py](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/models/llama/convert_weight.py)获取。
+具体转换脚本可以在[convert_weight.py](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/models/llama/convert_weight.py)获取。
详细教程见[大语言模型权重获取和准备](./weight_prepare.md)。
@@ -146,7 +146,7 @@ config = "/path/to/llama2_7b.yaml"
model = AutoModel.from_config(config)
```
-其中,tokenizer.model是从Hugging Face官网下载的权重文件中附带的tokenizer文件,里面记录了tokens的映射表;config是MindFormers的模型配置文件,其中包含了Llama2模型运行的相关参数,样例可以在[predict_llama2_7b.yaml](https://gitee.com/mindspore/mindformers/blob/dev/configs/llama2/predict_llama2_7b.yaml)获取(注意:需要将ckpt权重路径改为实际的权重路径)。更详细的教程可以在[Llama 2](https://gitee.com/mindspore/mindformers/blob/dev/docs/model_cards/llama2.md#-18)获取。
+其中,tokenizer.model是从Hugging Face官网下载的权重文件中附带的tokenizer文件,里面记录了tokens的映射表;config是MindFormers的模型配置文件,其中包含了Llama2模型运行的相关参数,样例可以在[predict_llama2_7b.yaml](https://gitee.com/mindspore/mindformers/blob/r1.6.0/configs/llama2/predict_llama2_7b.yaml)获取(注意:需要将ckpt权重路径改为实际的权重路径)。更详细的教程可以在[Llama 2](https://gitee.com/mindspore/mindformers/blob/dev/docs/model_cards/llama2.md#-18)获取。
此外,如果用户对于模型有自己的特殊需求,或者对深度学习有较深认识,也可以选择自己构建模型,详细教程见[从零构建大语言模型推理网络](./model_dev.md)。
@@ -204,17 +204,17 @@ model = AutoModel.from_config(config)
注意:每轮推理实际都会有一部分后处理,即从token概率分布中选择生成的token,最简单的可以通过argmax计算获取概率最大的token,MindFormers的模型将此处理包含在了generate接口中,如果用户自己构建大语言模型,此部分需要单独实现。
-除了使用MindFormers模型套件提供的模型能力外,用户也可以自己构建前处理和后处理,由于其逻辑比较复杂,用户可以参考MindFormers的相关实现进行实现。具体见[llama_tokenzier.py](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/models/llama/llama_tokenizer.py)和[text_generator.py](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/generation/text_generator.py)。
+除了使用MindFormers模型套件提供的模型能力外,用户也可以自己构建前处理和后处理,由于其逻辑比较复杂,用户可以参考MindFormers的相关实现进行实现。具体见[llama_tokenzier.py](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/models/llama/llama_tokenizer.py)和[text_generator.py](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/generation/text_generator.py)。
### 模型并行
对于模型参数比较多的大语言模型,如Llama2-70B、Qwen2-72B,由于其参数规模通常会超过一张GPU或者NPU的内存容量,因此需要采用多卡并行推理,MindSpore大语言模型推理支持将原始大语言模型切分成N份可并行的子模型,使其能够分别在多卡上并行执行,在实现超大模型推理同时,也利用多卡中更多的资源提升性能。MindFormers模型套件提供的模型脚本天然支持将模型切分成多卡模型执行,用户可以通过以下步骤在多卡上部署模型。
-1. **权重切分**:由于原来的权重文件太大,多卡执行时,需要将整体权重切分成每张卡上的多份权重,分别传给每张卡对应的模型进程。用户可以使用MindFormers模型套件中的脚本来进行权重切分。具体可以参考[权重转换](https://www.mindspore.cn/mindformers/docs/zh-CN/dev/feature/ckpt.html)。
+1. **权重切分**:由于原来的权重文件太大,多卡执行时,需要将整体权重切分成每张卡上的多份权重,分别传给每张卡对应的模型进程。用户可以使用MindFormers模型套件中的脚本来进行权重切分。具体可以参考[权重转换](https://www.mindspore.cn/mindformers/docs/zh-CN/r1.6.0/feature/ckpt.html)。
下面以Llama2-7B大语言模型为例,简单描述一下将模型切分为2卡并行的操作:
- 1. **生成目标并行策略文件**:MindSpore进行切分,需要用户告诉框架切分的方式,这个信息存储在并行切分策略文件中,可以通过[run_mindformer.py](https://gitee.com/mindspore/mindformers/blob/dev/run_mindformer.py)脚本进行生成。打开Llama2-7B模型对应的yaml文件,修改以下配置:
+ 1. **生成目标并行策略文件**:MindSpore进行切分,需要用户告诉框架切分的方式,这个信息存储在并行切分策略文件中,可以通过[run_mindformer.py](https://gitee.com/mindspore/mindformers/blob/r1.6.0/run_mindformer.py)脚本进行生成。打开Llama2-7B模型对应的yaml文件,修改以下配置:
- 将only_save_strategy配置改为True,表示生成并行切分策略文件。
@@ -230,7 +230,7 @@ model = AutoModel.from_config(config)
msrun为MindSpore提供的并行执行工具,input_data参数可以任意传入内容,传入是为了保证模型流程能够正常执行,这段程序执行完,会在output目录下生成strategy目录,即是切分成2卡执行的并行切分策略文件。
- 2. **切分模型权重ckpt文件**:调用转换脚本,切分并生成权重ckpt文件,具体参考[transform_checkpoint.py](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/tools/ckpt_transform/transform_checkpoint.py)。
+ 2. **切分模型权重ckpt文件**:调用转换脚本,切分并生成权重ckpt文件,具体参考[transform_checkpoint.py](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/tools/ckpt_transform/transform_checkpoint.py)。
执行如下命令,利用脚本将权重切分成2卡并行权重:
@@ -276,7 +276,7 @@ model = AutoModel.from_config(config)
- 将parallel_config.model_parallel改为需要的并行卡数,data_parallel在推理场景下通常配置为1,不需要额外配置。
- 具体的网络脚本代码可以参考[llama.py](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/models/llama/llama.py)。
+ 具体的网络脚本代码可以参考[llama.py](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/models/llama/llama.py)。
3. **模型推理**:和单卡推理不同,多卡推理需要同时启动多个进程来并行进行推理,因此在启动模型推理是,相比于直接运行脚本,多卡推理需要一次运行多组相关进程。MindSpore框架为用户提供了msrun的并行运行工具,具体使用方法如下:
diff --git a/tutorials/source_zh_cn/parallel/split_technique.md b/tutorials/source_zh_cn/parallel/split_technique.md
index 10afd730f7..2a1bac3fcb 100644
--- a/tutorials/source_zh_cn/parallel/split_technique.md
+++ b/tutorials/source_zh_cn/parallel/split_technique.md
@@ -32,7 +32,7 @@
## 配置代码样例
-以MindFormers中封装的类[RowParallelLinear](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/experimental/graph/tensor_parallel/layers.py)为例:
+以MindFormers中封装的类[RowParallelLinear](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/experimental/graph/tensor_parallel/layers.py)为例:
@@ -78,7 +78,7 @@ class RowParallelLinear(nn.Cell):
-另一个例子是[CoreAttention](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/experimental/graph/transformer/transformer.py),根据上述原则配置:
+另一个例子是[CoreAttention](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/experimental/graph/transformer/transformer.py),根据上述原则配置:
@@ -117,7 +117,7 @@ class CoreAttention(nn.Cell):
|
-再看[FlashAttention](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/modules/flash_attention.py)的例子:
+再看[FlashAttention](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/modules/flash_attention.py)的例子:
@@ -159,7 +159,7 @@ class FlashAttention(Cell):
|
-若直接使用MindFormers中开源且已经配好策略的类,则外部网络无需对算子再配置shard策略,如[LlamaForCausalLM](https://gitee.com/mindspore/mindformers/blob/dev/mindformers/models/llama/llama.py)。
+若直接使用MindFormers中开源且已经配好策略的类,则外部网络无需对算子再配置shard策略,如[LlamaForCausalLM](https://gitee.com/mindspore/mindformers/blob/r1.6.0/mindformers/models/llama/llama.py)。
|