### 源2.0-102B 模型 ----- **本脚本为102B模型的快速使用指引,主要包括ckpt转换以及推理服务使用** ### 🔘 步骤 1 首先需要转换ckpt,我们提供的102B的模型文件是32路流水并行-1路张量并行(32pp,1tp)的模型文件,为了提高推理效率,需要将32路流水并行的模型文件转换为8路张量并行的模型文件(适用于80GB GPU),转换流程是: > (32路流水-1路张量)->(32路流水-8路张量)->(1路流水-8路张量) 我们提供了自动转换脚本,可以依次执行完转换流程,使用方式如下: **A. 查看以下脚本: ** **** ```sh vim examples/ckpt_partitions_102B.sh ``` **B. 修改环境变量: ** - **变量 1 **:`LOAD_CHECKPOINT_PATH`,原始32路流水并行的模型文件路径,需要路径下面包含‘latest_checkpointed_iteration.txt’这个文件(文件在开源的模型文件中) ```sh LOAD_CHECKPOINT_PATH=/mnt/102B # 变量1设置示例 ``` - **变量 2 **:`SAVE_SPLITED_CHECKPOINT_PATH`,表示转换产生的中间文件路径,主要作用于(32路流水-1路张量)->(32路流水-8路张量)产生的结果文件,等脚本完成转换之后可以删除该文件 ```sh SAVE_SPLITED_CHECKPOINT_PATH=./ckpt-102B-mid # 变量2设置示例 ``` - **变量 3 **:`SAVE_CHECKPOINT_PATH`,表示最终产生的8路张量并行的ckpt,主要作用于(32路流水-8路张量)->(1路流水-8路张量)产生的结果文件 ```sh SAVE_CHECKPOINT_PATH=./ckpt-102B-8tp # 变量3设置示例 ``` 如果在megatron主目录下面运行脚本,可以不修改TOKENIZER_MODEL_PATH=./tokenizer(因为github主目录下面包含tokenizer),否则需要指定tokenizer路径 **C. 执行以下脚本: ** ```sh bash examples/ckpt_partitions_102B.sh ``` 在上述步骤完成后,会在 `SAVE_CHECKPOINT_PATH` 指定的目录下面生成一个8路张量并行的ckpt,可以用于推理服务。 ### 🔘 步骤 2 **A. 修改环境变量: ** 启动推理服务,需要在脚本 examples/run_inference_server_102B.sh 中修改环境变量CHECKPOINT_PATH: ```sh vim examples/run_inference_server_102B.sh ``` 修改环境变量 `CHECKPOINT_PATH` 为 **🔘 步骤 1** 中 `SAVE_CHECKPOINT_PATH` 指定的路径,例如: ```sh SAVE_CHECKPOINT_PATH=./ckpt-102B-8tp ``` 需要指定 examples/run_inference_server_102B.sh 中 `CHECKPOINT_PATH`,例如: ```sh CHECKPOINT_PATH=./ckpt-102B-8tp ``` **B. 启动推理服务: ** > **[注意] ** >
程序默认的端口号为 `8000` ,如果 `8000` 被占用,需要修改 examples/run_inference_server_102B.sh 中的环境变量 `PORT` 为实际使用的端口号 ```sh 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"` 的实际端口; ```sh 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. 查看以下脚本: ** **** ```sh vim examples/ckpt_partitions_51B.sh ``` **B. 修改环境变量: ** - **变量 1 **:`LOAD_CHECKPOINT_PATH`,原始16路流水并行的模型文件路径,需要路径下面包含latest_checkpointed_iteration.txt这个文件(这个文件会在开源的模型文件中) ```sh LOAD_CHECKPOINT_PATH=/mnt/51B # 变量1设置示例 ``` - **变量 2 **:`SAVE_SPLITED_CHECKPOINT_PATH`,表示转换产生的中间文件路径,主要作用于(16路流水-1路张量)->(16路流水-4路张量)产生的结果文件,等脚本完成转换之后可以删除该文件 ```sh SAVE_SPLITED_CHECKPOINT_PATH=./ckpt-51B-mid # 变量2设置示例 ``` - **变量 3 **:`SAVE_CHECKPOINT_PATH`,表示最终产生的4路张量并行的ckpt,主要作用于(16路流水-4路张量)->(1路流水-4路张量)产生的结果文件 ```sh SAVE_CHECKPOINT_PATH=./ckpt-51B-4tp # 变量3设置示例 ``` 如果在megatron主目录下面运行脚本,可以不修改TOKENIZER_MODEL_PATH=./tokenizer(因为github主目录下面包含tokenizer),否则需要指定tokenizer路径 **C. 执行以下脚本: ** ```sh bash examples/ckpt_partitions_51B.sh ``` 在上述步骤完成后,会在 `SAVE_CHECKPOINT_PATH` 指定的目录下面生成一个4路张量并行的ckpt,可以用于推理服务。 ### 🔘 步骤 2 **A. 修改环境变量: ** 启动推理服务,需要在脚本 examples/run_inference_server_51B.sh 中修改环境变量CHECKPOINT_PATH: ```sh vim examples/run_inference_server_51B.sh ``` 修改环境变量 `CHECKPOINT_PATH` 为 **🔘 步骤 1** 中 `SAVE_CHECKPOINT_PATH` 指定的路径,例如: ```sh SAVE_CHECKPOINT_PATH=./ckpt-51B-4tp ``` 需要指定 examples/run_inference_server_51B.sh 中 `CHECKPOINT_PATH`,例如: ```sh CHECKPOINT_PATH=./ckpt-51B-4tp ``` **B. 启动推理服务: ** > **[注意] ** >
程序默认的端口号为 `8000` ,如果 `8000` 被占用,需要修改 examples/run_inference_server_51B.sh 中的环境变量 `PORT` 为实际使用的端口号 ```sh 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"` 的实际端口; ```sh python tools/start_inference_server_api.py ``` 运行成功后,会返回推理结果;