eval-scope icon indicating copy to clipboard operation
eval-scope copied to clipboard

如何针对多模态大模型进行测评

Open JosenLiang opened this issue 7 months ago • 8 comments

我在推理服务器上部署了Qwen2.5-VL-7B-Instruct模型,我想对它进行评测,看下性能,但问题是找遍整个官网也找不到相应的Demo,多模态模型不是很常见吗?我在测评的时候怎么把图片传入?

JosenLiang avatar May 19 '25 02:05 JosenLiang

补充一下:我想用evalscope perf命令对多模态模型做性能测试

JosenLiang avatar May 19 '25 03:05 JosenLiang

参考:https://evalscope.readthedocs.io/zh-cn/latest/user_guides/stress_test/parameters.html#id5 目前支持flickr8k这个多模态数据集

Yunnglin avatar May 19 '25 04:05 Yunnglin

但还是出错 Image

JosenLiang avatar May 19 '25 05:05 JosenLiang

@JosenLiang 看报错应该是参数有问题,检查一下参数有没有打错,有没有多余空格等

Yunnglin avatar May 19 '25 06:05 Yunnglin

本页https://evalscope.readthedocs.io/zh-cn/latest/user_guides/stress_test/custom.html 下面的自定义数据集怎么用啊?只看到自定义数据集,没说怎么用?

JosenLiang avatar May 19 '25 09:05 JosenLiang

文档我再更新一下,设置--dataset {注册的数据集名称}即可使用,样例中是--dataset custom

Yunnglin avatar May 19 '25 09:05 Yunnglin

文档我再更新一下,设置--dataset {注册的数据集名称}即可使用,样例中是--dataset custom

我是通过pip安装的evalscope[perf],我现在手写了一个数据集,我怎么把这个数据集注册进去呢?

JosenLiang avatar May 19 '25 10:05 JosenLiang

完整示例如下:

from typing import Dict, Iterator, List

from evalscope.perf.arguments import Arguments
from evalscope.perf.plugin.datasets.base import DatasetPluginBase
from evalscope.perf.plugin.registry import register_dataset


@register_dataset('custom')
class CustomDatasetPlugin(DatasetPluginBase):
    """Read dataset and return prompt.
    """

    def __init__(self, query_parameters: Arguments):
        super().__init__(query_parameters)

    def build_messages(self) -> Iterator[List[Dict]]:
        for item in self.dataset_line_by_line(self.query_parameters.dataset_path):
            prompt = item.strip()
            if len(prompt) > self.query_parameters.min_prompt_length and len(
                    prompt) < self.query_parameters.max_prompt_length:
                if self.query_parameters.apply_chat_template:
                    yield [{'role': 'user', 'content': prompt}]
                else:
                    yield prompt


if __name__ == '__main__':
    from evalscope.perf.arguments import Arguments
    from evalscope.perf.main import run_perf_benchmark

    args = Arguments(
        model='qwen2.5-7b-instruct',
        url='https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions',
        dataset_path='outputs/perf_data.txt',
        api_key='EMPTY',
        dataset='custom',  # 自定义数据集名称
    )

    run_perf_benchmark(args)

Yunnglin avatar May 19 '25 12:05 Yunnglin

感谢你的反馈!我们将关闭此问题。如果您有任何疑问,请随时重新打开它。如果EvalScope对您有所帮助,欢迎给我们点个STAR以示支持,谢谢!

Yunnglin avatar Jun 04 '25 06:06 Yunnglin