GPT-OSS模型在NPU上推理【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer概述本样例基于Transformers库的GPT-OSS模型在 Atlas A2系列产品 实现了单机单batch推理其中GPT-OSS-120B模型可以采用8卡部署GPT-OSS-20B模型可以在单device上进行部署。本样例采用的详细优化点介绍可参见基于Atlas A2系列产品的GPT-OSS模型推理性能优化实践。下面详细介绍GPT-OSS的推理样例在NPU上的执行步骤。支持的产品型号Atlas A2 系列产品环境准备安装CANN软件包。本样例的编译执行依赖CANN开发套件包cann-toolkit与CANN二进制算子包cann-kernels支持的CANN软件版本为CANN 8.5.0。请从软件包下载地址下载Ascend-cann-toolkit_${version}_linux-${arch}.run与Ascend-cann-A3-ops_version_linux-arch.run软件包并参考CANN安装文档进行安装。${version}表示CANN包版本号如8.5.0。${arch}表示CPU架构如aarch64、x86_64。安装Ascend Extension for PyTorchtorch_npu。Ascend Extension for PyTorchtorch_npu为支撑PyTorch框架运行在NPU上的适配插件。 请从软件包下载地址下载torch_npu-2.8.0.post2-cp311-cp311-manylinux_2_28_${arch}.whl安装包参考torch_npu安装文档进行安装。下载项目源码并安装依赖的python库。# 下载项目源码以master分支为例 git clone https://gitcode.com/cann/cann-recipes-infer.git # 安装依赖的python库 cd cann-recipes-infer/models/gpt_oss pip3 install -r requirements.txt配置样例运行所需环境信息。修改executor/scripts/set_env.sh脚本中的如下字段cann_path: CANN软件包安装路径例如/usr/local/Ascend/ascend-toolkit/latest。说明HCCL相关配置如HCCL_SOCKET_IFNAME、HCCL_OP_EXPANSION_MODE可以参考集合通信文档并在executor/scripts/function.sh中自定义配置。权重准备本样例对GPT-OSS开源模型的原始权重进行了切分与调整GPT-OSS提供了两个原始权重GPT-OSS-20B权重GPT-OSS-120B权重开发者可以根据模型任务进行选择并将原始权重下载至本地路径例如/data/models/gpt-oss-20b-bf16。注意原始权重为mxfp4格式本推理脚本仅支持bf16格式可参考官方代码自行转换。推理执行配置推理执行需要加载的权重文件以及YAML文件。修改YAML文件中的model_path参数。在models/gpt_oss/config目录下已提供了较优性能的YAML样例供您参考您可以根据权重的不同选择对应的YAML文件本文以gpt_oss_20b.yaml文件为例修改其中的model_path参数将其设置为权重准备阶段准备好的权重文件存储路径例如/data/models/gpt-oss-20b-bf16。修改models/gpt_oss/infer.sh脚本中YAML参数。将YAML设置为config文件夹下YAML文件名称例如gpt_oss_20b.yaml。准备输入prompt。使用内置prompt。本样例已在dataset/default_prompt.json中内置了输入prompt若您直接使用内置prompt本步骤可直接跳过。当然您也可以在dataset/default_prompt.json文件中自定义prompt输入。使用长序列prompt。本样例默认使用内置prompt若您需要使用长序列prompt需要执行以下操作修改YAML文件中的dataset参数将其修改为dataset: LongBench使用LongBench数据集作为长序列prompt。若您的机器无法联网需要您从huggingface手动下载数据集至dataset/LongBench目录下LongBench文件夹需手工创建目录中包含LongBench.py和data目录并需要在LongBench.py中修改数据集加载路径若您的机器可正常联网样例执行过程中会自动在线读取LongBench数据集您无需手工下载。说明使用LongBench数据集时默认执行文本摘要任务可在cann-recipes-infer/executor/utils/data_utils.py的build_dataset_input函数里修改默认的system prompt。执行推理脚本。cd models/gpt_oss bash infer.sh需要注意目前仅支持prompt的batch_size为1。默认使用eager单算子模式推理。对于20b模型提供单device推理对于120b模型提供8卡推理仅支持tp切分。YAML文件中默认设置enable_online_split_weight: True模型权重会在加载过程中在线切分到各个设备上无需离线切分。【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考