
ascend-test 是专为昇腾硬件打造的模型测试框架,用于验证镜像交付的正确性,并为用户/开发者提供极简的模型运行体验。
框架已集成 sglang、vllm、torch原生、mindie-sd等多种推理引擎,内置 30+ 大模型推理模型及少量训练模型,覆盖主流场景,开箱即用。
当前支持的模型清单请参考:Ascend-SACT/ascend-test/reports/total-report.md
- 功能优化:优化了 apply_patch 功能,支持处理多个 software_patches 并优化补丁路径查找
- 文档完善:更新了模型适配文档、技能文档和模型下载说明
- 昇腾A2服务器
docker pull swr.cn-north-4.myhuaweicloud.com/ascend-sact/ascend-a2-ubuntu:latest- 昇腾A3服务器
docker pull swr.cn-north-4.myhuaweicloud.com/ascend-sact/ascend-a3-ubuntu:latestdocker run -it --rm --name ascend-model \
--privileged \
--network host \
--device /dev/davinci_manager \
--device /dev/davinci0 \
--device /dev/davinci1 \
--device /dev/davinci2 \
--device /dev/davinci3 \
--device /dev/davinci4 \
--device /dev/davinci5 \
--device /dev/davinci6 \
--device /dev/davinci7 \
--device /dev/hisi_hdc \
--device /dev/devmm_svm \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
-v /usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64 \
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
-v /data:/data \
swr.cn-north-4.myhuaweicloud.com/ascend-sact/{image_name}:{tag} \
bash关注/workspace/ascend-test/examples/global_config.json下的文件配置
- models, 替换为当前模型的下载全局路径(以Qwen3.5-0.8B为例,如果本地模型路径是:/workspace/public/models/Qwen/Qwen3.5-0.8B,则当前配置文件中models路径配置为/workspace/public/models,Qwen/Qwen3.5-0.8B为ModelScope的模型ID坐标)
- outputs,替换为模型的输出路径(例如,文生视频的输出文件全局路径)
上述两个变量同时可以通过环境变量覆盖GLOBALMODELS和GLOBAL_OUTPUS替代
export GLOBAL_MODELS=xxxxx export GLOBAL_OUTPUS= xxxx
# 查看引擎支持的模型
run -e vllm
run -e torch
run -e sglang执行 run -e torch 命令的示例输出:
============================================================
引擎: torch
============================================================
支持的模型数: 2
支持的模型列表:
1. mova-360p-8-npu-inference
2. mova-720p-8-npu-inference
============================================================
# 运行VLLM引擎下的MiMo-VL-7B-RL-2508模型(按名称)
run -e vllm MiMo-VL-7B-RL-2508
# 运行Torch引擎下的第一个模型(按序号)
run -e torch 1
# 运行SGLang引擎下的Wan2.1-T2V-1.3B-Diffusers模型(按名称)
run -e sglang Wan2.1-T2V-1.3B-Diffusers# 批量运行Torch引擎下的所有模型
run -e torch -b
# 批量运行VLLM引擎下的所有模型
run -e vllm -b
# 跨引擎批量测试
run -m torch vllm sglang对于 VLLM 和 SGLang 引擎,支持以API Server服务化的方式启动:
# 以服务端模式启动sglang引擎并指定模型(按序号)
run -e sglang -s 1
# 以服务端模式启动VLLM引擎并指定模型(按名称)
run -e vllm -s qwen3-32b服务端模式启动后,会在指定端口提供API服务:
- VLLM引擎: 默认端口 8000
- SGLang引擎: 默认端口 30000
启动后可以通过 HTTP 请求访问相应的 API 接口,例如:
# 测试VLLM服务
curl http://localhost:8000/v1/models
# 测试SGLang服务
curl http://localhost:30000/v1/models在开发和测试阶段,可以使用快速验证模式加快测试速度:
# 启用快速验证模式运行单个模型(按名称)
run -e vllm MiMo-VL-7B-RL-2508 -f
# 启用快速验证模式运行单个模型(按序号)
run -e torch 1 -f
# 启用快速验证模式批量运行
run -e torch -b -f项目采用了基于 Runner 基类的继承架构:
- Base Runner:定义了通用的运行逻辑和接口
- Engine-specific Runners:针对不同引擎的具体实现
每个运行器负责:
- 加载和管理模型配置
- 执行模型测试
- 收集和报告测试结果
- 清理资源
- 全局配置:
examples/global_config.json中定义模型路径和输出路径 - 引擎配置:每个引擎有独立的配置目录,包含具体模型模型的配置
- 模型配置:每个模型模型有详细的配置,包括模型名称、脚本路径等
- 模型验证:验证模型的可用性和兼容性
- 快速验证模式:使用 dummy 模型和减少推理步骤以加快测试速度
- 验证结果收集:记录验证过程中的成功和失败情况
- Markdown 报告:生成详细的测试报告,包括执行时间、成功/失败状态等
- 验证摘要:汇总验证结果,提供通过率统计
ascend-test/
├── ascend/ # 核心代码目录
│ ├── config/ # 配置相关
│ ├── reporter/ # 报告生成
│ ├── runner/ # 引擎运行器
│ ├── dummy_params.py # 快速验证模式参数
│ ├── globals.py # 全局变量
│ ├── model_metadata.py # 模型元数据
│ └── validator.py # 验证逻辑
├── bash/ # Bash 脚本
├── config/ # 配置文件
├── docs/ # 文档
├── examples/ # 示例配置
│ ├── sglang/ # SGLang 引擎示例
│ ├── torch/ # Torch 引擎示例
│ ├── vllm/ # VLLM 引擎示例
│ ├── mindie-sd/ # MindIE 稳定扩散引擎示例
│ ├── mindie-llm/ # MindIE LLM 引擎示例
│ ├── mindspeed-mm/ # MindSpeed 多模态引擎示例
│ └── global_config.json # 全局配置
├── prompt/ # 提示词
├── reports/ # 测试报告
├── test/ # 测试代码
├── tools/ # 工具脚本
├── main.py # 主入口
└── pyproject.toml # 项目配置
ascend-test 项目支持以下 CI/CD 流程:
可以集成到 CI 流程中,定期验证模型的可用性和性能:
# 在CI中运行快速验证
run -e vllm -b -f
run -e torch -b -f
run -e sglang -b -f在镜像构建完成后,可以使用 ascend-test 验证镜像的正确性:
# 验证镜像中的模型运行情况
docker run -it --privileged --network host <new-image> \
bash -c "cd /workspace/ascend-test && run -e vllm -c MiMo-VL-7B-RL-2508 -f"开发者可以通过以下步骤添加新模型:
- 明确引擎选择:根据模型类型选择合适的引擎(torch、vllm、sglang等)
- 创建配置文件:在对应引擎的配置目录下创建配置文件
- 提供封装脚本:参考已有的样例,提供封装的运行脚本
- 测试验证:使用快速验证模式测试新模型
开发者可以通过以下步骤添加新引擎:
- 创建运行器:创建继承自
Runner基类的引擎实现 - 注册引擎:在
main.py中注册新引擎 - 添加配置:在
examples目录下添加引擎配置 - 测试验证:测试新引擎的功能和性能
项目提供了补丁管理功能,用于适配模型和引擎:
- apply_patch.py:根据 meta.json 配置自动应用补丁
- download_patch.py:下载所需的补丁文件
- 模型补丁映射:通过 model_patch_mapping.json 管理模型与补丁的对应关系
最新优化:
- 支持处理多个 software_patches
- 优化补丁路径查找逻辑
- 提供更灵活的补丁管理机制
我们欢迎社区贡献!如果您有兴趣为项目做出贡献,请:
- Fork 仓库
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
本项目采用 Apache 2.0 许可证。详见 LICENSE 文件。
如有问题或建议,请通过以下方式联系我们:
- GitHub Issues: Submit Issue
- Email: [lileliao@foxmail.com]
享受在昇腾硬件上运行模型的乐趣! 🎉