对于目前国内采用国产化算力,如基于华为昇腾服务器部署的大模型,其精度表现是否和英伟达平台的模型表现一致,这是目前很多国有企业都想了解的问题。华为的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目录生成测试结果的报告。

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐