社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  aigc

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

新一代智能化应用 • 5 月前 • 450 次点击  


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


 

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