Skip to content

Latest commit

 

History

History
239 lines (134 loc) · 7.9 KB

Yuan2_inference_guide_cn.md

File metadata and controls

239 lines (134 loc) · 7.9 KB

源2.0-102B 模型


本脚本为102B模型的快速使用指引,主要包括ckpt转换以及推理服务使用

🔘 步骤 1

首先需要转换ckpt,我们提供的102B的模型文件是32路流水并行-1路张量并行(32pp,1tp)的模型文件,为了提高推理效率,需要将32路流水并行的模型文件转换为8路张量并行的模型文件(适用于80GB GPU),转换流程是:

(32路流水-1路张量)->(32路流水-8路张量)->(1路流水-8路张量)

我们提供了自动转换脚本,可以依次执行完转换流程,使用方式如下:

A. 查看以下脚本:


vim examples/ckpt_partitions_102B.sh 

B. 修改环境变量:

  • 变量 1 LOAD_CHECKPOINT_PATH,原始32路流水并行的模型文件路径,需要路径下面包含‘latest_checkpointed_iteration.txt’这个文件(文件在开源的模型文件中)
  LOAD_CHECKPOINT_PATH=/mnt/102B  # 变量1设置示例
  • 变量 2 SAVE_SPLITED_CHECKPOINT_PATH,表示转换产生的中间文件路径,主要作用于(32路流水-1路张量)->(32路流水-8路张量)产生的结果文件,等脚本完成转换之后可以删除该文件
  SAVE_SPLITED_CHECKPOINT_PATH=./ckpt-102B-mid # 变量2设置示例
  • 变量 3 SAVE_CHECKPOINT_PATH,表示最终产生的8路张量并行的ckpt,主要作用于(32路流水-8路张量)->(1路流水-8路张量)产生的结果文件
  SAVE_CHECKPOINT_PATH=./ckpt-102B-8tp # 变量3设置示例

如果在megatron主目录下面运行脚本,可以不修改TOKENIZER_MODEL_PATH=./tokenizer(因为github主目录下面包含tokenizer),否则需要指定tokenizer路径

C. 执行以下脚本:

bash examples/ckpt_partitions_102B.sh

在上述步骤完成后,会在 SAVE_CHECKPOINT_PATH 指定的目录下面生成一个8路张量并行的ckpt,可以用于推理服务。

🔘 步骤 2

A. 修改环境变量:

启动推理服务,需要在脚本 examples/run_inference_server_102B.sh 中修改环境变量CHECKPOINT_PATH:

vim examples/run_inference_server_102B.sh

修改环境变量 CHECKPOINT_PATH🔘 步骤 1SAVE_CHECKPOINT_PATH 指定的路径,例如:

SAVE_CHECKPOINT_PATH=./ckpt-102B-8tp

需要指定 examples/run_inference_server_102B.sh 中 CHECKPOINT_PATH,例如:

CHECKPOINT_PATH=./ckpt-102B-8tp

B. 启动推理服务:

[注意]
程序默认的端口号为 8000 ,如果 8000 被占用,需要修改 examples/run_inference_server_102B.sh 中的环境变量 PORT 为实际使用的端口号

bash examples/run_inference_server_102B.sh

等待程序完成cpkt的加载并出现如下信息后,可以执行下一步调用推理服务:

successfully loaded checkpoint from ./ckpt-102B-8tp at iteration 1
Serving Flask app 'megatron.text_generation_server'
Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Running on all addresses (0.0.0.0)
Running on http://127.0.0.1:8000
Running on http://127.0.0.1:8000

C. 调用推理服务:

在相同docker中调用推理服务:

[注意]
程序默认的端口号为 8000 ,如果 8000 被占用,请在 tools/start_inference_server_api.py 中替换request_url="http://127.0.0.1:8000/yuan" 的实际端口;

python tools/start_inference_server_api.py

运行成功后,会返回推理结果;

源2.0-51B 模型


本脚本为51B模型的快速使用指引,主要包括ckpt转换以及推理服务使用

🔘 步骤 1

首先需要转换ckpt,我们提供的51B的模型文件是16路流水并行-1路张量并行(16pp,1tp)的模型文件,为了提高推理效率,需要将16路流水并行的模型文件转换为4路张量并行的模型文件(适用于80GB GPU),转换流程是:

(16路流水-1路张量)->(16路流水-4路张量)->(1路流水-4路张量)

我们提供了自动转换脚本,可以依次执行完转换流程,使用方式如下:

A. 查看以下脚本:


vim examples/ckpt_partitions_51B.sh

B. 修改环境变量:

  • 变量 1 LOAD_CHECKPOINT_PATH,原始16路流水并行的模型文件路径,需要路径下面包含latest_checkpointed_iteration.txt这个文件(这个文件会在开源的模型文件中)
  LOAD_CHECKPOINT_PATH=/mnt/51B # 变量1设置示例
  • 变量 2 SAVE_SPLITED_CHECKPOINT_PATH,表示转换产生的中间文件路径,主要作用于(16路流水-1路张量)->(16路流水-4路张量)产生的结果文件,等脚本完成转换之后可以删除该文件
  SAVE_SPLITED_CHECKPOINT_PATH=./ckpt-51B-mid # 变量2设置示例
  • 变量 3 SAVE_CHECKPOINT_PATH,表示最终产生的4路张量并行的ckpt,主要作用于(16路流水-4路张量)->(1路流水-4路张量)产生的结果文件
  SAVE_CHECKPOINT_PATH=./ckpt-51B-4tp # 变量3设置示例

如果在megatron主目录下面运行脚本,可以不修改TOKENIZER_MODEL_PATH=./tokenizer(因为github主目录下面包含tokenizer),否则需要指定tokenizer路径

C. 执行以下脚本:

bash examples/ckpt_partitions_51B.sh

在上述步骤完成后,会在 SAVE_CHECKPOINT_PATH 指定的目录下面生成一个4路张量并行的ckpt,可以用于推理服务。

🔘 步骤 2

A. 修改环境变量:

启动推理服务,需要在脚本 examples/run_inference_server_51B.sh 中修改环境变量CHECKPOINT_PATH:

vim examples/run_inference_server_51B.sh

修改环境变量 CHECKPOINT_PATH🔘 步骤 1SAVE_CHECKPOINT_PATH 指定的路径,例如:

SAVE_CHECKPOINT_PATH=./ckpt-51B-4tp

需要指定 examples/run_inference_server_51B.sh 中 CHECKPOINT_PATH,例如:

CHECKPOINT_PATH=./ckpt-51B-4tp

B. 启动推理服务:

[注意]
程序默认的端口号为 8000 ,如果 8000 被占用,需要修改 examples/run_inference_server_51B.sh 中的环境变量 PORT 为实际使用的端口号

bash examples/run_inference_server_51B.sh

等待程序完成cpkt的加载并出现如下信息后,可以执行下一步调用推理服务:

successfully loaded checkpoint from ./ckpt-51B-4tp at iteration 1
Serving Flask app 'megatron.text_generation_server'
Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Running on all addresses (0.0.0.0)
Running on http://127.0.0.1:8000
Running on http://127.0.0.1:8000

C. 调用推理服务:

在相同docker中调用推理服务:

[注意]
程序默认的端口号为 8000 ,如果 8000 被占用,请在 tools/start_inference_server_api.py 中替换request_url="http://127.0.0.1:8000/yuan" 的实际端口;

python tools/start_inference_server_api.py

运行成功后,会返回推理结果;