使用 EvalScope 进行大模型性能测试:实战教程

随着大模型在各个领域的广泛应用,如何评估模型的性能成为了一个关键问题。EvalScope 是魔塔社区推荐的一款大模型性能测试工具,能够帮助开发者快速、准确地评估模型的运行效率和效果。在本文中,我们将以一个实际的代码示例为基础,详细讲解如何使用 EvalScope 对大模型进行性能测试。

一、什么是 EvalScope?

EvalScope 是一款专为大语言模型(LLM)设计的性能测试工具。它支持多种评估场景,如并发请求测试、生成效果评估等。无论是研究人员还是开发者,都可以通过 EvalScope 快速了解模型在不同配置下的性能表现。

EvalScope 的主要优势包括:

  1. 1. 灵活配置:支持多种参数设置,适配不同的测试需求。

  2. 2. 易用性强:提供简单易懂的接口,快速上手。

  3. 3. 支持多种数据集:不仅支持自定义数据集,还可以直接生成随机数据用于测试。


二、实战案例:使用 EvalScope 测试大模型

下面,我们将通过一个示例代码,讲解如何使用 EvalScope 对 Qwen2.5-72b-Instruct 模型进行性能测试。

1. 配置测试参数

首先,我们需要定义测试任务的配置参数。以下是一个完整的参数配置代码:

  1. task_cfg = Arguments(

  2.     parallel=[1, 10, 50, 100, 200, 300, 400, 500],  # 请求并发数

  3.     number=[1, 10, 20, 100, 200, 300, 400, 500],   # 每个并发请求的数量

  4.     model='Qwen2.5-72b-Instruct',                   # 模型名称

  5.     url='http://xxxxx.com/api/xxxx/v1/chat/completions',  # 大模型接口地址

  6.     api_key="ZDYxNWQ2Y"             # API 密钥

  7.     

  8. )

参数详解:
  • • parallel 和 number:分别代表并发请求数和每个并发请求的数量。通过调整这两个参数,可以模拟不同的负载场景。

  • • model:指定测试的模型名称。

  • • url 和 api_key:对应模型服务的接口地址和访问密钥。

  • • dataset:选择使用的数据集,这里我们选择随机数据(random)。

  • • min_tokens/max_tokens:控制生成文本的长度。

  • • stream:是否启用流式输出模式。

2. 执行性能测试

定义好配置后,我们调用 run_perf_benchmark 函数来运行性能测试:

  1. results = run_perf_benchmark(task_cfg)

  2. print(results)

run_perf_benchmark 是 EvalScope 的核心函数,用于执行性能测试,并返回测试结果。结果通常包含以下几个重要指标:

  • • 吞吐量(Throughput):单位时间内处理的请求数量。

  • • 延迟(Latency):每个请求的平均响应时间。

  • • 成功率(Success Rate):请求成功的比例。

3. 查看测试结果

运行上述代码后,EvalScope 会输出一系列性能指标,例如:


  1. 2025-06-03 20:20:55,706 - evalscope - INFO - 

  2. Percentile results:

  3. +-------------+----------+---------+----------+-------------+--------------+---------------+----------------+---------------+

  4. | Percentiles | TTFT (s) | ITL (s) | TPOT (s) | Latency (s) | Input tokens | Output tokens | Output (tok/s) | Total (tok/s) |

  5. +-------------+----------+---------+----------+-------------+--------------+---------------+----------------+---------------+

  6. |     10%     | 15.1141  | 0.0882  |  0.1049  |  262.4325   |     2007     |     2000      |     3.8448     |    7.7841     |

  7. |     25%     | 31.1864  | 0.0934  |  0.1087  |  264.1612   |     2062     |     2000      |     3.8609     |    7.9151     |

  8. |     50%     | 55.4061  | 0.1001  |  0.1154  |  267.4154   |     2094     |     2000      |     7.4793     |    14.7673    |

  9. |     66%     | 278.7469 | 0.1047  |  0.1193  |  517.0088   |     2108     |     2000      |     7.5327     |    15.3588    |

  10. |     75%     | 288.3666 | 0.1075  |  0.122   |  518.0238   |     2115     |     2000      |     7.5716     |    15.4634    |

  11. |     80%     | 294.7443 |  0.109  |  0.1235  |  518.9852   |     2120     |     2000      |     7.5892     |    15.5148    |

  12. |     90%     | 308.0031 | 0.1125  |  0.1258  |  520.2213   |     2286     |     2000      |     7.6231     |    15.6416    |

  13. |     95%     | 311.3684 | 0.1158  |  0.1274  |  520.9045   |     2412     |     2000      |     7.6404     |    15.7481    |

  14. |     98%     | 313.7558 | 0.1267  |  0.1298  |  521.3258   |     2516     |     2000      |     7.6503     |    16.5007    |

  15. |     99%     | 314.6385 | 0.1411  |  0.1305  |  521.5658   |     2560     |     2000      |     7.6545     |    16.711     |

  16. +-------------+----------+---------+----------+-------------+--------------+---------------+----------------+---------------+

  17. 2025-06-03 20:20:55,707 - evalscope - INFO - Save the summary to: ./outputs\xxxxxx

-收集测试数据进行汇总

结果解读:

  • • Throughput(吞吐量):表示每秒处理了 1500 个请求。

  • • Latency(延迟):p50 表示中位数延迟为 120 毫秒,p90 表示 90% 的请求延迟小于 150 毫秒,p99 表示最慢的 1% 请求延迟为 200 毫秒。

  • • Success Rate(成功率):98.5% 的请求成功返回结果。


三、优化建议

通过性能测试结果,我们可以针对模型服务进行优化。例如:

  1. 1. 提升吞吐量:增加服务器资源或优化并发处理逻辑。

  2. 2. 降低延迟:减少模型推理时间或优化网络传输效率。

  3. 3. 提高成功率:检查接口稳定性,优化异常处理机制。


四、总结

EvalScope 是一款功能强大且易用的大模型性能测试工具,通过本文的实战案例,我们了解了如何配置参数、执行测试以及解读结果。无论是研究模型性能瓶颈,还是优化生产环境中的模型服务,EvalScope 都是一个不可或缺的工具。

如果你对 EvalScope 感兴趣,可以访问官方文档获取更多信息:EvalScope 官方文档。

希望本文能帮助大家更好地掌握大模型性能测试的方法。如果你在使用过程中有任何问题,

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

Logo

更多推荐