2026-07-08 08:57:50 +00:00

263 lines
6.9 KiB
Python

# Copyright (c) Alibaba, Inc. and its affiliates.
from dotenv import dotenv_values
env = dotenv_values('.env')
import os
import unittest
from evalscope.constants import EvalType, JudgeStrategy
from evalscope.run import run_task
from evalscope.utils.logger import get_logger
os.environ['EVALSCOPE_LOG_LEVEL'] = 'DEBUG'
logger = get_logger()
datasets=[
'iquiz',
'ifeval',
'mmlu',
'mmlu_pro',
'musr',
'process_bench',
'race',
# 'trivia_qa',
'cmmlu',
'humaneval',
'gsm8k',
'bbh',
'competition_math',
'math_500',
'aime24',
'gpqa_diamond',
'arc',
'ceval',
'hellaswag',
'general_mcq',
'general_qa',
'super_gpqa',
# 'live_code_bench',
'mmlu_redux',
'simple_qa',
'chinese_simpleqa',
'alpaca_eval',
'arena_hard',
'maritime_bench',
'drop',
'winogrande',
'tool_bench',
'frames',
'docmath',
'needle_haystack',
# 'bfcl_v3',
'hle',
'tau_bench',
'chartqa',
]
# Reverse the datasets list to ensure the order is from most recent to oldest
datasets.reverse()
dataset_args={
'mmlu': {
'subset_list': ['elementary_mathematics', 'high_school_european_history', 'nutrition'],
'few_shot_num': 0
},
'mmlu_pro': {
'subset_list': ['math', 'health'],
'few_shot_num': 4
},
'ceval': {
'subset_list': [
'computer_network', 'operating_system', 'computer_architecture'
],
'few_shot_num': 0
},
'cmmlu': {
'subset_list': ['elementary_chinese'],
'few_shot_num': 0
},
'bbh': {
'subset_list': ['word_sorting', 'movie_recommendation'],
},
'gpqa_diamond': {
'few_shot_num': 0,
},
'competition_math': {
'subset_list': ['Level 1']
},
'math_500': {
'subset_list': ['Level 1']
},
'process_bench': {
'subset_list': ['gsm8k'],
},
'musr': {
'subset_list': ['murder_mysteries']
},
'general_mcq': {
'local_path': 'custom_eval/text/mcq', # 自定义数据集路径
'subset_list': [
'example' # 评测数据集名称,上述 *_dev.csv 中的 *
],
},
'general_qa': {
'local_path': 'custom_eval/text/qa', # 自定义数据集路径
'subset_list': [
'example', # 评测数据集名称,上述 *_dev.csv 中的 *
# 'test'
]
},
'super_gpqa': {
'subset_list': ['Philosophy', 'Education'],
'few_shot_num': 0
},
'live_code_bench': {
'subset_list': ['v4_v5'],
'extra_params': {
'start_date': '2024-12-01',
'end_date': '2025-01-01'
},
},
'chinese_simpleqa': {
'subset_list': ['中华文化']
},
'mmlu_redux':{
'subset_list': ['abstract_algebra']
},
'docmath':{
'subset_list': ['simpshort_testmini']
},
'bfcl_v3':{
'subset_list': ['simple', 'multiple']
},
'hle': {
'subset_list': ['Math', 'Other'],
},
'tau_bench': {
'extra_params': {
'user_model': 'qwen-plus',
'api_key': env.get('DASHSCOPE_API_KEY'),
'api_base': 'https://dashscope.aliyuncs.com/compatible-mode/v1',
},
'subset_list': ['airline'],
},
}
class TestRun(unittest.TestCase):
def test_benchmarks(self):
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='qwen3-max',
api_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
api_key= env.get('DASHSCOPE_API_KEY'),
eval_type=EvalType.OPENAI_API,
datasets=datasets,
dataset_args=dataset_args,
eval_batch_size=1,
limit=1,
stream=True,
generation_config={
'temperature': 0,
'n': 1,
'max_tokens': 4096,
},
judge_strategy=JudgeStrategy.AUTO,
judge_model_args={
'model_id': 'qwen2.5-72b-instruct',
'api_url': 'https://dashscope.aliyuncs.com/compatible-mode/v1',
'api_key': env.get('DASHSCOPE_API_KEY'),
}
)
run_task(task_cfg=task_cfg)
def test_vlm_benchmark(self):
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='qwen-vl-plus',
api_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
api_key= env.get('DASHSCOPE_API_KEY'),
eval_type=EvalType.OPENAI_API,
datasets=[
'mmmu',
'math_vista',
],
dataset_args={
'mmmu': {
'subset_list': ['Accounting']
},
'math_vista': {
'subset_list': ['default']
}
},
eval_batch_size=1,
limit=1,
stream=True,
generation_config={
'temperature': 0,
'n': 1,
'max_tokens': 4096,
'image_height': 512,
'image_width': 512,
'image_num': 2,
},
judge_strategy=JudgeStrategy.AUTO,
judge_model_args={
'model_id': 'qwen2.5-72b-instruct',
'api_url': 'https://dashscope.aliyuncs.com/compatible-mode/v1',
'api_key': env.get('DASHSCOPE_API_KEY'),
}
)
run_task(task_cfg=task_cfg)
def test_ci_lite(self):
from evalscope.config import TaskConfig
api_key = env.get('DASHSCOPE_API_KEY')
task_cfg = TaskConfig(
model='qwen-plus',
api_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
api_key=api_key,
eval_type=EvalType.OPENAI_API if api_key else EvalType.MOCK_LLM,
datasets=[
'general_mcq',
'iquiz',
],
dataset_args={
'general_mcq': {
'local_path': 'custom_eval/text/mcq',
'subset_list': [
'example'
],
},
'general_qa': {
'local_path': 'custom_eval/text/qa',
'subset_list': [
'example'
]
}
},
eval_batch_size=1,
limit=1,
stream=True,
generation_config={
'temperature': 0,
'n': 1,
'max_tokens': 4096,
},
judge_strategy=JudgeStrategy.AUTO,
judge_model_args={
'model_id': 'qwen2.5-72b-instruct',
'api_url': 'https://dashscope.aliyuncs.com/compatible-mode/v1',
'api_key': env.get('DASHSCOPE_API_KEY'),
}
)
run_task(task_cfg=task_cfg)