GLM-4.5-Air EvalScope 智商情商评测与并发压测实战从 vLLM 部署到性能基准测试【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm导读本文基于开源大模型食用指南self-llm仓库中 models/GLM-4.5-Air 系列教程以 GLM-4.5-Air 为例完整讲解如何使用魔搭社区ModelScope官方评测框架 EvalScope 完成两条评测链路一是在 IQuiz 数据集上对模型进行智商IQ/情商EQ能力评测二是借助evalscope perf对已部署服务进行并发性能压测。读完本文你将掌握 EvalScope 的命令行与 Python 两种调用方式、关键参数语义以及吞吐量、首 token 时延TTFT等核心性能指标的正确解读方法可直接迁移到任意 OpenAI 兼容 API 服务的评测场景。大模型评测是什么大语言模型评测是指对大语言模型LLM在多种任务和场景下的性能进行全面评估的过程。评测的目的是衡量模型的通用能力、特定领域表现、效率、鲁棒性、安全性等多方面性能以便优化模型设计、指导技术选型和推动模型在实际应用中的部署。评测的主要内容包括以下几个方面通用能力评估模型在语言理解、生成、推理等方面的基础能力。特定领域表现针对特定任务如数学推理、代码生成、情感分析等的性能评估。效率与资源消耗包括模型的训练和推理时间、计算资源需求等。鲁棒性与可靠性评估模型在面对噪声、对抗攻击或输入扰动时的稳定性。伦理与安全性检测模型是否会产生有害内容、是否存在偏见或歧视。EvalScope一站式模型评测与压测框架EvalScope 是魔搭社区官方推出的模型评测与性能基准测试框架内置多个常用测试基准和评测指标如 MMLU、CMMLU、C-Eval、GSM8K、ARC、HellaSwag、TruthfulQA、MATH 和 HumanEval 等支持多种类型的模型评测包括 LLM、多模态 LLM、embedding 模型和 reranker 模型。EvalScope 还适用于多种评测场景如端到端 RAG 评测、竞技场模式和模型推理性能压测evalscope perf等。此外通过 ms-swift 训练框架的无缝集成可一键发起评测实现了模型训练到评测的全链路支持——这与仓库中 GLM-4.5-Air 的 LoRA 微调教程 形成了训练 → 评测 → 压测的完整闭环。在评测调用方式上EvalScope 支持两类典型模式原生native模式本地加载模型权重直接评测无需额外部署服务服务service模式先通过 vLLM 等框架把模型部署为 OpenAI 兼容 API 服务再让 EvalScope 以 API 客户端的方式发起评测本文即采用该模式。环境准备基础环境本文基础环境如下与仓库中 GLM-4.5-Air 系列教程保持一致---------------- ubuntu 22.04 python 3.10 Cuda 12.4 PyTorch 2.7.1 ----------------安装 EvalScope通过 pip 安装 EvalScope默认安装 Native backend可根据需要追加安装其他 backend 依赖pip install evalscope # 安装 Native backend (默认) # 额外选项 pip install evalscope[opencompass] # 安装 OpenCompass backend pip install evalscope[vlmeval] # 安装 VLMEvalKit backend pip install evalscope[rag] # 安装 RAGEval backend pip install evalscope[perf] # 安装 模型压测模块 依赖 pip install evalscope[all] # 安装所有 backends (Native, OpenCompass, VLMEvalKit, RAGEval)注意本文并发压测部分使用evalscope perf命令若你的环境中尚未包含该模块请务必安装evalscope[perf]或直接安装evalscope[all]。GLM-4.5-Air 模型的获取方式同样遵循仓库 01-GLM-4.5-Air-vLLM 部署调用 中的做法使用 modelscope 的snapshot_download下载模型权重到本地目录例如/model/ModelScope/ZhipuAI/GLM-4.5-Air同时需要pip install vllm0.10.0用于后续的服务部署。智商情商评测基于 IQuiz 数据集下面我们以智商情商评测为例对 GLM-4.5-Air 模型进行评测。我们将使用 EvalScope 模型评测框架在IQuiz 数据集上进行评测。这个数据集中收集了40 道 IQ 测试和80 道 EQ 测试选择题其中包括一些经典问题数字 9.8 和 9.11 哪个大单词 strawberry 和 blueberry 中一共有多少个 r刘雨正在休假突然被要求开车送领导去机场他正为休假计划的泡汤而懊恼因此在送领导时刹车踩得比较用力。在车上领导突然说小刘啊这不愧是有着悠久历史的西安我这坐车有一种回到古代坐马车的感觉。 领导是什么意思可以看到IQ 题侧重数值比较、字符计数等逻辑推理EQ 题则侧重话外音、潜台词等人际情境理解。读者可以先用这 120 道题自测一遍再对比 GLM-4.5-Air 的作答表现。步骤一使用 vLLM 创建 OpenAI 兼容服务这里我们参照仓库中第一节 vLLM 部署模型 的环节使用 vLLM 创建兼容 OpenAI API 接口的服务器然后使用 EvalScope 进行评测。当然接入其他 OpenAI 兼容 API 服务也是可以的。在终端输入以下命令即可用 vLLM 部署 GLM-4.5-Air 模型vllm serve /model/ModelScope/ZhipuAI/GLM-4.5-Air \ --tensor-parallel-size 4 \ --tool-call-parser glm4_moe \ --reasoning-parser glm4_moe \ --enable-auto-tool-choice \ --served-model-name glm-4.5-air关键参数说明--tensor-parallel-size 4使用 4 张 GPU 进行张量并行推理对应作者在 4 卡 H20 上的部署环境--tool-call-parser glm4_moe/--reasoning-parser glm4_moe指定 GLM 系列的工具调用解析器与推理内容解析器用于正确解析think.../think思考内容与工具调用格式--enable-auto-tool-choice启用自动工具选择能力--served-model-name glm-4.5-air指定对外暴露的模型名称后续 EvalScope 评测与压测请求中使用的模型名即为此值。服务默认在http://localhost:8000启动同时提供/v1/completions文本补全与/v1/chat/completions对话补全两类端点两者均可作为 EvalScope 的目标接口。步骤二执行评测评测有两种执行方式直接使用evalscope eval命令行或编写 Python 脚本调用TaskConfig。方式一evalscope eval 命令行evalscope eval \ --model glm-4.5-air \ --api-url http://localhost:8000/v1 \ --api-key EMPTY \ --eval-type service \ --eval-batch-size 16 \ --datasets iquiz \ --work-dir outputs/glm-4.5-air参数含义--model指定要评测的模型名称必须与 vLLM 的--served-model-name保持一致--api-url模型服务地址这里指向本地 vLLM 服务的/v1根路径--api-keyAPI 密钥本地服务可用任意占位符如EMPTY--eval-type service指定评测类型为服务模式通过 API 远程评测--eval-batch-size 16评测请求的批大小--datasets iquiz指定使用的数据集--work-dir评测结果输出目录。方式二Python TaskConfig 脚本新建eval_api.py文件并输入以下代码# 导入执行任务的函数和任务配置类 from evalscope.run import run_task from evalscope.config import TaskConfig # 配置任务参数 task_cfg TaskConfig( modelglm-4.5-air, # 指定使用的模型 api_urlhttp://localhost:8000/v1/chat/completions, # 指定API端点这里使用的是ollama默认的api接口 api_keysk-xxxxxxx, # API密钥需替换为实际密钥ollama 的api_key eval_typeservice, # 指定评估类型为服务模式 datasets[iquiz], # 指定使用的数据集(这个测试集可以快速测试模型的智商和情商) generation_config{ # 文本生成配置 max_tokens: 4096, # 最大令牌数 max_new_tokens: 4096, # 最大新生成令牌数 temperature: 1.0, # 温度参数这里设置为1.0模型的输出随机性较大所以可能会有些实验误差 }, work_diroutputs/glm-4.5-air, # 输出目录 ) # 执行任务 run_task(task_cfgtask_cfg)新建一个 bash 窗口在终端中执行python eval_api.py命令即可。提示api_url既可以是/v1根路径命令行方式也可以是完整的/v1/chat/completions端点Python 方式EvalScope 会自动拼接。若想得到更稳定、更精确的评测结果可以适当调低generation_config中的temperature如 0.20.6降低生成随机性带来的实验误差。评测结果解读等待约 3 分钟评测即可完成控制台输出的结果如下图所示从评测结果截图可以看到EvalScope 以AverageAccuracy平均准确率作为统一指标按子集输出分数模型数据集子集样本数得分glm-4.5-airiquizIQ智商400.725glm-4.5-airiquizEQ情商800.825glm-4.5-airiquizOVERALL整体1200.7917可以看到 GLM-4.5-Air 在情商类题目上的表现0.825明显优于智商类题目0.725。评测完成后报告会以文件形式写入--work-dir指定的输出目录如outputs/glm-4.5-air便于后续归档与多次实验对比。并发压测evalscope perf能力评测解决的是模型答得好不好的问题而并发压测解决的是服务撑不撑得住的问题。在生产环境上线前我们需要知道模型服务在指定并发下的吞吐量与时延表现evalscope perf正是为此设计。启动 vLLM 服务与评测环节相同首先用 vLLM 部署 GLM-4.5-Air 到兼容 OpenAI API 接口的服务器上显式指定端口 8000vllm serve /model/ModelScope/ZhipuAI/GLM-4.5-Air \ --tensor-parallel-size 4 \ --tool-call-parser glm4_moe \ --reasoning-parser glm4_moe \ --enable-auto-tool-choice \ --served-model-name glm-4.5-air \ --port 8000evalscope perf 压测命令注作者在 4 卡 H20 上部署 GLM-4.5-Air 模型并发测试时使用 5、10、15、20 个线程。MODELglm-4.5-air NUMBER100 PARALLEL20 evalscope perf \ --url http://localhost:8000/v1/chat/completions \ --parallel ${PARALLEL} \ --model ${MODEL} \ --number ${NUMBER} \ --api openai \ --dataset openqa \ --stream \ --swanlab-api-key your-swanlab-api-key \ --name ${MODEL}-number${NUMBER}-parallel${PARALLEL}参数详解参数含义本文示例值--url指定模型服务的 API 接口地址这里是本地部署的 vLLM 服务地址http://localhost:8000/v1/chat/completions--parallel指定并发请求的线程数20 个线程--model指定要评测的模型名称glm-4.5-air--number指定每个线程要发送的请求数量100 个请求--api指定评测使用的 API 类型openai--dataset指定评测使用的数据集openqa--stream指定是否使用流式输出开启true--swanlab-api-key指定 SwanLab 的 API 密钥需要替换为实际的 API 密钥your-swanlab-api-key--name指定评测任务的名称用于区分不同并发档位的实验结果glm-4.5-air-number100-parallel20实战要点通过调整PARALLEL变量如 5、10、15、20可以横向对比不同并发压力下的服务表现配合--name参数为每次压测命名避免结果混淆--swanlab-api-key用于把压测指标上传至 SwanLab 可视化面板方便生成吞吐量、时延曲线图不配置该参数时指标同样会打印在终端并保存到本地。压测结果解读并发测试完成后的结果如下图所示以截图所示的 5 并发PARALLEL5、NUMBER100压测档位为例EvalScope 会输出两类关键信息整体统计Overall Statistics请求量总请求 100 个成功 100 个失败 0 个吞吐量输出 token 吞吐量约 222.98 tok/s总 token 吞吐量约 226.12 tok/s请求吞吐量约 0.1283 req/s时延平均端到端时延约 38.3 秒平均首 token 时延TTFT仅约 0.043 秒平均每输出 token 耗时约 0.022 秒请求体量平均每个请求输入约 24.43 个 token输出约 1738.19 个 token——说明评测请求以长文本生成为主这也解释了单个请求端到端时延偏高的原因。百分位统计PercentilesEvalScope 会按 10%、25%、50%、66%、75%、80%、90%、95%、98%、99% 等多个百分位输出TTFT首 token 时间、ITLtoken 间延迟、TPOT单 token 输出时间、Latency总延迟以及输入/输出 token 数与吞吐量分布。例如 10% 分位的 TTFT 为 0.037 秒、Latency 为 27.23 秒。相比平均值百分位指标更能反映长尾延迟风险是判断服务稳定性的重要依据。通过多档位并发5/10/15/20的对比可以观察吞吐量是否随并发线性增长、延迟是否出现拐点从而为服务的资源配置与限流策略提供数据支撑。总结模型评测的工程意义模型评测对于验证和优化大模型至关重要。通过评测我们可以全面了解模型的性能、能力边界及潜在问题确保其在实际应用中的表现符合预期并推动持续改进。此外评测还能检测模型的公平性和安全性提升用户体验并为不同模型间的对比分析提供客观依据。结合本文实战一条完整的 GLM-4.5-Air 上线前验证链路可以归纳为模型获取与部署参考 01-GLM-4.5-Air-vLLM 部署调用用 vLLM 将模型部署为 OpenAI 兼容 API 服务能力评测用evalscope eval在 IQuiz 等数据集上验证智商/情商等任务能力并发压测用evalscope perf以多档位并发验证服务吞吐量与延迟表现迭代优化结合 LoRA 微调教程 针对评测暴露的短板定向微调再回到步骤 2 复测形成评测—优化—再评测的闭环。整个流程仅需一条vllm serve命令和两条evalscope命令即可完成从部署、能力验证到性能摸底的全过程这套方法论同样适用于仓库中其他模型的评测与压测场景如 Hunyuan-A13B-Instruct EvalScope 并发测试 等。【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调全参数/Lora、部署国内外开源大模型LLM/多模态大模型MLLM教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考