模型配置说明
AISBench Benchmark 支持两类模型后端:
⚠️ 注意: 不能同时指定两种后端。
服务化推理后端
AISBench Benchmark 支持多种服务化推理后端,包括 vLLM、SGLang、Triton、MindIE、TGI 等。这些后端通过暴露的 HTTP API 接口接收推理请求并返回结果。(目前不支持 HTTPS 接口)
以在 GPU 上部署的 vLLM 推理服务为例,您可以参考 vLLM 官方文档 启动服务。
不同服务化后端对应的模型配置如下:
模型配置名称 |
简介 |
使用前提 |
支持的测评模式 |
接口类型 |
支持的数据集 Prompt 格式 |
配置文件路径 |
|---|---|---|---|---|---|---|
|
通过 vLLM 兼容 OpenAI 的 API 访问推理服务,接口为 |
基于 vLLM 版本支持 |
生成式测评、PPL模式测评 |
文本接口 |
字符串格式 |
|
|
流式访问 vLLM 推理服务,接口为 |
基于 vLLM 版本支持 |
生成式测评 |
流式接口 |
字符串格式 |
|
|
通过 vLLM 兼容 OpenAI 的 API 访问推理服务,接口为 |
基于 vLLM 版本支持 |
生成式测评、PPL模式测评 |
文本接口 |
字符串格式、对话格式、多模态格式 |
|
|
流式访问 vLLM 推理服务,接口为 |
基于 vLLM 版本支持 |
生成式测评 |
流式接口 |
字符串格式、对话格式、多模态格式 |
|
|
多轮对话场景的流式访问 vLLM 推理服务,接口为 |
基于 vLLM 版本支持 |
生成式测评 |
流式接口 |
对话格式 |
|
|
function call精度测评场景访问 vLLM 推理服务的API ,接口为 |
基于 vLLM 版本支持 |
生成式测评 |
文本接口 |
对话格式 |
|
|
通过 vLLM 兼容 API 访问推理服务,接口为 |
基于 vLLM 版本支持 |
生成式测评 |
文本接口 |
字符串格式、多模态格式 |
|
|
通过 MindIE 流式 API 访问推理服务,接口为 |
基于 MindIE 版本支持 |
生成式测评 |
流式接口 |
字符串格式、多模态格式 |
|
|
通过 Triton API 访问推理服务,接口为 |
启动支持 Triton API 的推理服务 |
生成式测评 |
文本接口 |
字符串格式、多模态格式 |
|
|
通过 Triton 流式 API 访问推理服务,接口为 |
启动支持 Triton API 的推理服务 |
生成式测评 |
流式接口 |
字符串格式、多模态格式 |
|
|
通过 TGI API 访问推理服务,接口为 |
启动支持 TGI API 的推理服务 |
生成式测评 |
文本接口 |
字符串格式、多模态格式 |
|
|
通过 TGI 流式 API 访问推理服务,接口为 |
启动支持 TGI API 的推理服务 |
生成式测评 |
流式接口 |
字符串格式、多模态格式 |
服务化推理后端配置参数说明
服务化推理后端配置文件采用Python语法格式配置,示例如下:
from ais_bench.benchmark.models import VLLMCustomAPI
models = [
dict(
attr="service",
type=VLLMCustomAPI,
abbr='vllm-api-general',
path="", # 指定模型序列化词表文件绝对路径(精度测试场景一般不需要配置)
model="", # 指定服务端已加载模型名称,依据实际VLLM推理服务拉取的模型名称配置(配置成空字符串会自动获取)
stream=False, # 是否为流式接口
request_rate = 0, # 请求发送频率,每1/request_rate秒发送1个请求给服务端,小于0.1则一次性发送所有请求
use_timestamp=False, # 是否按数据集中 timestamp 调度请求,适用于含 timestamp 的数据集(如 Mooncake Trace)
retry = 2, # 每个请求最大重试次数
api_key="", # 自定义API key,默认是空字符串
host_ip = "localhost", # 指定推理服务的IP
host_port = 8080, # 指定推理服务的端口
url="", # 自定义访问推理服务的URL路径(当base url不是http://host_ip:host_port的组合时需要配置)
max_out_len = 512, # 推理服务输出的token的最大数量
batch_size=1, # 请求发送的最大并发数
trust_remote_code=False, # tokenizer是否信任远程代码,默认False;
generation_kwargs = dict( # 模型推理参数,参考VLLM文档配置,AISBench评测工具不做处理,在发送的请求中附带
temperature = 0.01,
ignore_eos=False,
)
)
]
服务化推理后端可配置参数说明如下:
参数名称 |
参数类型 |
配置说明 |
|---|---|---|
|
String |
推理后端类型标识,固定为 |
|
Python Class |
API 类型类名,由系统自动关联,用户无需手动配置,参考 服务化推理后端 |
|
String |
服务化任务的唯一标识,用于区分不同任务,英文字符与短横线组合,例如: |
|
String |
Tokenizer 路径,通常与模型路径相同,使用 |
|
String |
服务端可访问的模型名称,必须与服务化部署时指定的名称一致 |
|
String |
仅适用于 Triton 服务,拼接为 endpoint 的 URI |
|
Boolean |
API模型推理接口类型,默认为False,表示非流式接口,当为True时表示流式接口(具体请参考🔗服务化推理后端) |
|
Float |
请求发送速率(单位:秒),每隔 |
|
Boolean |
是否按数据集中 timestamp 调度请求。为 True 且数据集中包含 timestamp 时,按 timestamp 发送请求,此时 request_rate 与 traffic_cfg 不参与调度;为 False 时按 request_rate/traffic_cfg 调度。默认 False。适用于含 timestamp 的数据集(如 Mooncake Trace)。 |
|
Dict |
请求发送速率波动控制参数(具体使用说明请参考 🔗 请求速率(RPS)分布控制及可视化说明),不填写此项默认不启用该功能。 |
|
Int |
连接服务端失败后的最大重试次数。合法范围:[0, 1000] |
|
String |
自定义API key,默认是空字符串。仅支持 |
|
String |
服务端 IP 地址,支持合法 IPv4 或 IPv6,例如: |
|
Int |
服务端端口号,应与服务化部署指定的端口一致 |
|
String |
自定义访问推理服务的URL路径(当base url不是http/https://host_ip:host_port的组合时需要配置,配置后host_ip和host_port将被忽略) ,例如当 |
|
Int |
推理响应的最大输出长度,实际长度可能受服务端限制。合法范围:(0, 131072] |
|
Int |
请求的并发批处理大小。合法范围:(0, 64000] |
|
Boolean |
tokenizer是否信任远程代码,默认False; |
|
Dict |
推理生成参数配置,依赖具体的服务化后端和接口类型。注意:当前不支持 |
|
Bool |
控制函数调用信息的提取方式。当设置为True时,系统从API响应的 |
|
Dict |
模型输出结果的后处理配置。用于对原始模型输出进行格式化、清理或转换,以满足特定评估任务的要求 |
注意事项:
request_rate受硬件性能影响,可通过增加 📚 WORKERS_NUM 提高并发能力。request_rate功能可能被traffic_cfg项覆盖,具体原因请参考 🔗 请求速率(RPS)分布控制及可视化说明中的参数解读章节。当数据集含 timestamp 且模型配置中 use_timestamp 为 True 时,请求按 timestamp 发送,request_rate 与 traffic_cfg 将被忽略。
batch_size设置过大可能导致 CPU 占用过高,请根据硬件条件合理配置。服务化推理评测 API 默认使用的服务地址为
localhost:8080。实际使用时需根据实际部署修改为服务化后端的 IP 和端口。当使用 IPv6 字面量(如
::1、2001:db8::1)作为host_ip时,工具会在生成的访问 URL 中自动为其添加方括号(例如http://[2001:db8::1]:8080/),无需在配置中手动编写方括号。
本地模型后端
模型配置名称 |
简介 |
使用前提 |
支持的prompt格式(字符串格式或对话格式) |
对应源码配置文件路径 |
|---|---|---|---|---|
|
HuggingFace Base 模型后端 |
已安装评测工具基础依赖,需在配置文件中指定 HuggingFace 模型权重路径(当前不支持自动下载) |
字符串格式 |
|
|
HuggingFace Chat 模型后端 |
已安装评测工具基础依赖,需在配置文件中指定 HuggingFace 模型权重路径(当前不支持自动下载) |
对话格式 |
|
|
HuggingFace Chat QwenVL模型后端 |
已安装评测工具基础依赖,需在配置文件中指定 HuggingFace 模型权重路径(当前不支持自动下载) |
对话格式 |
|
|
vllm Chat QwenVL离线推理模型后端 |
已安装评测工具基础依赖,需在配置文件中指定模型模型权重路径(当前不支持自动下载) |
对话格式 |
本地huggingface模型后端配置参数说明
本地huggingface模型后端配置文件采用Python语法格式配置,示例如下:
from ais_bench.benchmark.models import HuggingFacewithChatTemplate
models = [
dict(
attr="local", # 后端类型标识
type=HuggingFacewithChatTemplate, # 模型类型
abbr='hf-chat-model', # 唯一标识
path='THUDM/chatglm-6b', # 模型权重路径
tokenizer_path='THUDM/chatglm-6b', # Tokenizer 路径
model_kwargs=dict( # 模型加载参数
device_map="auto",
trust_remote_code=True
),
max_out_len=512, # 最大输出长度
batch_size=1, # 请求并发数
generation_kwargs=dict( # 生成参数
temperature=0.5,
top_k=10,
top_p=0.95,
seed=None,
repetition_penalty=1.03,
)
)
]
本地huggingface模型推理后端可配置参数说明如下:
参数名称 |
参数类型 |
说明与配置 |
|---|---|---|
|
String |
后端类型标识,固定为 |
|
Python Class |
模型类名称,由系统自动关联,用户无需手动配置 |
|
String |
本地任务的唯一标识,用于区分多任务。建议使用英文与短横线组合,如: |
|
String |
模型权重路径,需为本地可访问路径。使用 |
|
String |
Tokenizer 路径,通常与模型路径一致。使用 |
|
Dict |
Tokenizer 加载参数,参考 🔗 PreTrainedTokenizerBase 文档 |
|
Dict |
模型加载参数,参考 🔗 AutoModel 配置 |
|
Dict |
推理生成参数,参考 🔗 Text Generation 文档 |
|
Dict |
运行配置,包含 |
|
Int |
推理生成的最大输出 Token 数量,合法范围:(0, 131072] |
|
Int |
推理请求的批处理大小,合法范围:(0, 64000] |
|
Int |
最大输入序列长度,合法范围:(0, 131072] |
|
Bool |
是否启用批量 padding。设置为 |
本地vllm离线推理模型后端配置参数说明
本地vllm离线推理模型后端配置文件采用Python语法格式配置,示例如下:
from ais_bench.benchmark.models import VLLMOfflineVLModel
models = [
dict(
attr="local", # 后端类型标识
type=VLLMOfflineVLModel, # 模型类型
abbr='vllm-offline-vl-model', # 唯一标识
path = "", # 模型权重路径
model_kwargs=dict( # 模型初始化参数, 可参考 https://docs.vllm.com.cn/en/latest/serving/engine_args.html#
max_num_seqs=5,
max_model_len=32768,
limit_mm_per_prompt={"image": 24},
tensor_parallel_size=1,
gpu_memory_utilization=0.9,
),
sample_kwargs=dict( # 模型推理采样参数, 可参考 https://docs.vllm.ai/en/v0.6.5/dev/sampling_params.html
temperature=0.0,
stop_token_ids=None
),
vision_kwargs=dict( # 多模态输入参数,可参考 https://docs.vllm.ai/en/v0.7.3/getting_started/examples/vision_language.html
min_pixels=1280 * 28 * 28,
max_pixels=16384 * 28 * 28,
),
max_out_len=512, # 最大输出长度
batch_size=1, # 请求并发数
)
]
本地vllm离线推理模型后端可配置参数说明如下:
参数名称 |
参数类型 |
说明与配置 |
|---|---|---|
|
String |
后端类型标识,固定为 |
|
Python Class |
模型类名称,由系统自动关联,用户无需手动配置 |
|
String |
本地任务的唯一标识,用于区分多任务。建议使用英文与短横线组合,如: |
|
String |
模型权重路径,需为本地可访问路径。使用 |
|
Dict |
模型加载参数,参考 🔗 LLM 模型配置 |
|
Dict |
模型推理采样参数,参考 🔗 sample parameter配置 |
|
Dict |
多模态输入参数,参考 🔗 多模态推理举例 |
|
Int |
推理生成的最大输出 Token 数量,合法范围:(0, 131072] |
|
Int |
推理请求的批处理大小,合法范围:(0, 64000] |