Py学习  »  aigc

大模型基准评测与性能压测EvalScope(12)—AIGC文生图评测

新一代智能化应用 • 2 月前 • 369 次点击  


~~关注我,一起成长~~


 

EvalScope 是一个功能强大的大模型评测与性能基准测试平台,旨在为用户提供全面、高效的模型性能评估解决方案。其“性能压测”专注于对大模型推理服务进行压力测试,帮助用户精准衡量模型在高并发场景下的响应能力、吞吐量、延迟等关键性能指标。通过“快速开始”指南,用户可迅速搭建压测环境,仅需简单配置即可发起测试任务,适用于各类生产与开发场景。

EvalScope框架支持多种文生图模型的评测,包括Stable Diffusion、Flux等。用户可以通过EvalScope框架对这些模型进行评测,获取模型在不同任务上的性能指标。

一、支持的评测数据集

可参阅本公众号文章《大模型基准评测与性能压测EvalScope(6)—支持的数据集》

二、支持的评测指标

EvalScope框架支持多种评测指标,用户可以根据需求选择合适的指标进行评测。以下是支持的评测指标:

三、安装依赖

用户可以通过以下命令安装相关依赖:

pip install evalscope[aigc] -U

四、Benchmark

用户可以通过以下命令配置文生图模型的评测任务。

下面展示使用modelscope的Stable Diffusion XL模型在tifa160上使用默认指标进行评测的示例代码:




    
from evalscope import TaskConfig, run_task
from evalscope.constants import ModelTask

task_cfg = TaskConfig(
    model='stabilityai/stable-diffusion-xl-base-1.0',  # model id on modelscope
    model_task=ModelTask.IMAGE_GENERATION,  # must be IMAGE_GENERATION
    model_args={
        'pipeline_cls': 'DiffusionPipeline',
        'use_safetensors': True,
        'variant': 'fp16',
        'torch_dtype': 'torch.float16',
    },
    datasets=[
        'tifa160',
        'genai_bench',
        'evalmuse',
        'hpdv2',
    ],
    limit=5,
    generation_config={
        'height': 1024,
        'width': 1024,
        'num_inference_steps': 50,
        'guidance_scale': 9.0,
    }
)

# 运行评测任务
run_task(task_cfg=task_cfg)

3.1 参数说明

基本参数请参考:参数说明。

需要注意的参数如下:

  • • model: 模型ID,支持本地模型和modelscope model id。
  • • model_task: 模型任务类型,必须为image_generation。
  • • model_args: 模型加载参数,支持传入模型加载参数,包括:
    • • pipeline_cls: diffusers中的用于加载模型Pipeline类,默认为DiffusionPipeline。下面的其余参数均为该Pipeline的参数,请参考diffusers文档。
    • • use_safetensors: 是否使用安全张量。
    • • variant: 模型变体。
  • • generation_config: 生成参数,支持传入模型生成参数,具体支持的参数参考对应的Pipeline类,一般包括:
    • • height: 生成图像的高度。
    • • width: 生成图像的宽度。
    • • num_inference_steps: 生成图像的推理步数。
    • • guidance_scale: 生成图像的引导比例。

3.2 输出结果

评测完成后,EvalScope将输出评测结果,包括模型ID、数据集、指标、子集、数量和得分等信息。以下是输出结果的示例:

五、自定义评测

当前文生图模型的开发流程日益复杂,部分开发者需依赖ComfyUI等可视化工作流工具进行多模块组合生成,或通过API接口调用云端模型服务(如Stable Diffusion WebUI、商业API平台)。针对这类场景,EvalScope支持“无模型介入”的评测模式 ,仅需用户提供生成图片的prompt文本列表 与对应图像存储路径 ,即可直接启动评测流程,无需本地下载模型权重或执行推理计算。

用户可以通过以下命令配置自定义prompts来进行评测任务。

5.1 自定义数据集评测

提供如下格式的jsonl文件:

{"id": 1, "prompt": "A beautiful sunset over the mountains", "image_path": "/path/to/generated/image1.jpg"}
{"id": 2, "prompt": "A futuristic city skyline", "image_path": "/path/to/generated/image2.jpg"}

id: 评测数据的唯一标识符。

prompt: 生成图像的提示文本。

image_path: 生成图像的路径。

5.1.1 配置评测任务

下面展示了使用自定义评测数据集的示例代码,展示了所有指标的使用:

备注

使用自定义评测任务不需要传递model参数,model_id用来指定模型名称。只需配置对应模型生成的image_path即可。

指标计算模型会在任务初始化时全部加载,可能会导致内存显存较大,请求根据实际情况调整需要计算的指标或分多个任务进行计算。

运行如下代码:

from evalscope import TaskConfig, run_task

task_cfg = TaskConfig(
    model_id='T2I-Model',
    model_task='image_generation',  # must be 'image_generation'
    datasets=[
        'general_t2i'
    ],
    dataset_args={
        'general_t2i': {
            'metric_list': [
                'PickScore',
                'CLIPScore',
                'HPSv2Score',
                'BLIPv2Score',
                'ImageRewardScore',
                'VQAScore',
                'FGA_BLIP2Score',
                'MPS',
                ],
            'dataset_id': 'custom_eval/multimodal/t2i/example.jsonl',
        }
    }
)

run_task(task_cfg=task_cfg)

输出结果
输出结果如下:

5.2 自定义benchmark评测

如果想用自定义的模型来进行benchmark评测,可从modelscope下载对应benchmark的jsonl文件,例如eval_muse_format.jsonl,将模型生成的图像路径替换为对应的image_path,如下所示:




    
{"id":"EvalMuse_1","prompt":"cartoon die cut sticker of hotdog with white border on gray background","tags":["cartoon (attribute)","die cut sticker (object)","hotdog (food)","white (object)","border (object)","gray (color)","background (attribute)"], "image_path":"/path/to/generated/image1.jpg"}
{"id":"EvalMuse_2","prompt":"Fiat 124","tags":["Fiat 124 (object)"], "image_path":"/path/to/generated/image2.jpg"}

5.2.1 配置评测任务

配置对应的评测任务,运行如下代码即可:

from evalscope import TaskConfig, run_task

task_cfg = TaskConfig(
    model_id='T2I-Model',
    model_task='image_generation',  # must be 'image_generation'
    datasets=[
        'evalmuse',
    ],
    dataset_args={
        'evalmuse': {
            'dataset_id': 'custom_eval/multimodal/t2i/example.jsonl',
        }
    }
)

run_task(task_cfg=task_cfg)

六、可视化

EvalScope框架支持对评测结果进行可视化,用户可以通过以下命令生成可视化报告:

evalscope app

详情参阅本公众号文章《大模型基准评测与性能压测EvalScope(4)—可视化》。

 




回顾
1、大模型训练与推理硬件配置指南
2、Ollama新版功能:AI思维链控制
3、最全的Ollama使用详解
4、大模型训练与微调之LLaMA Factory(11)-参数详解
5、大模型服务之vLLM-构建OpenAI兼容服务器基础

长按图片,识别二维码,关注我!

~~关注我,一起成长~~


喜欢的话右下角点个【赞👍🏻】和【❤️推荐】吧

你的每个【点赞】和【推荐

我都当做鼓励❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/187521