Opencompass对华为昇腾部署的大模型进行测试
摘要:本文探讨了国产昇腾服务器部署大模型的精度测试问题。针对华为Mindie工具测试集有限且不支持vllm-ascend部署的问题,作者选择使用OpenCompass测试工具。由于企业服务器为Arm64架构且无法联网,作者在阿里云搭建Arm64云主机(成本<0.1元/小时),安装Docker并配置Python3.10环境,创建OpenCompass测试镜像。详细说明了测试流程,包括模型API
对于目前国内采用国产化算力,如基于华为昇腾服务器部署的大模型,其精度表现是否和英伟达平台的模型表现一致,这是目前很多国有企业都想了解的问题。华为的Mindie镜像提供了可以用于精度测试的工具benchmark,但是该工具支持的基准测试集较少,另外对于非Mindie部署的大模型测试也无法支持,例如采用vllm-ascend方式部署的模型。为此,我打算采用业界的一些通用的测评工具,如Opencompass,通过调用大模型API接口的方式来进行测试。
Opencompass的安装
因为我所在企业的服务器都是Arm64架构,另外服务器也无法联网,因此我需要先在一个有联网环境的条件下准备一个opencompass的镜像。可以在阿里云上租用一个Arm64架构的云主机,采用抢占式实例的计费方式,这样价格1小时还不到1毛钱。云主机建立好之后,没有docker服务,所以还要先下载安装docker。
运行以下命令,安装一些必要的软件包,允许apt通过HTTPS使用仓库。
apt update
apt install apt-transport-https ca-certificates curl gnupg lsb-release
添加Docker的阿里镜像源GPG密钥,并将Docker的阿里镜像源加到系统的APT源列表中
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
再次更新软件包列表(此时包含了Docker仓库的信息),然后安装Docker及其组件。
apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装完成后,启动Docker服务并配置它在系统启动时自动运行。
systemctl start docker
systemctl enable docker
下载python 3.10 slim的镜像并开启一个容器。
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.10-slim-linuxarm64
docker run -itd --name opencompass --net=host swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.10-slim-linuxarm64 bash
docker exec -it opencompass bash
因为这个容器是基于Debian 13的系统,设置一下国内的镜像源,编辑/etc/apt/sources.list.d/debian.sources文件,内容如下:
# 清华大学 Debian 13 (Trixie) 主软件源
Types: deb deb-src
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# 安全更新仓库(可选配置,请阅读下文说明)
Types: deb deb-src
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
然后安装一些必要的编译工具以及一些常用的工具。
apt update
apt install git cmake build-essential libboost-all-dev
apt install nano vim curl ifconfig
最后就是安装opencompass了
pip install opencompass
安装完成后,退出容器,运行以下命令把容器保存为新的镜像文件。
docker commit -m "opencompass with python 3.10" opencompass opencompass:v1.0
docker save opencompass:v1.0 | gzip > opencompass.tgz
最后把保存的镜像文件下载到本地即可。
下载opencompass用到的一些常用的基准测试集,地址为:https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip
编写测试文件
把镜像上传到企业内部的服务器,然后就可以编写测试文件进行测试了。
建议可以直接在Github上下载opencompass的源码,然后在opencompass的目录下,找到configs/models/qwen3目录,然后新建一个python文件,对qwen3的API接口进行测试。
import os
from opencompass.models import OpenAISDK
api_url = 'http://127.0.0.1:1025/v1' # OpenAI api兼容的API服务Base地址
api_key = 'abc'
models = [
dict(
type=OpenAISDK,
path='qwen3', # 请求服务时的 model name
tokenizer_path='/root/models/Qwen3-0.6B', #Tokenizer文件的存储地址
key=api_key, # API key
openai_api_base=api_url, # 服务地址
rpm_verbose=True, # 是否打印请求速率
query_per_second=0.16, # 服务请求速率
max_out_len=512, # 最大输出长度
max_seq_len=4096, # 最大输入长度
temperature=0.01, # 生成温度
batch_size=16, # 批处理大小
max_workers=8, # 最大服务线程数目
retry=3, # 重试次数
extra_body=dict(
chat_template_kwargs=dict(enable_thinking=False) #设置额外的参数,如是否开启思考模式
)
)
]
opencompass也提供了数据集的打包下载,下载之后把其解压放到opencompass下的data目录。
wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip
unzip OpenCompassData-core-20240207.zip
在opencompass目录下运行以下命令对mmlu基准集进行测试。
python run.py --models qwen3.py --datasets mmlu_gen.py
最后测试完成之后会在opencompass下的outputs目录生成测试结果的报告。
昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐

所有评论(0)