108 lines
2.7 KiB
Markdown
108 lines
2.7 KiB
Markdown
# Benchmark Chart — AI 模型基准测试对比图生成器
|
||
|
||
一键生成类似 Qwen/Gemma 官方风格的 AI 模型基准测试对比图。
|
||
|
||
## 效果预览
|
||
|
||

|
||
|
||
## 功能特性
|
||
|
||
- 12 个基准测试自动排列为 3×4(或自定义行列)网格
|
||
- **分组柱状图**:MoE(混合专家)和 Dense(稠密)模型分组对比
|
||
- 虚线分隔 + 组标签,一目了然
|
||
- 最高分自动标注
|
||
- 底部统一图例,颜色可自定义
|
||
- 薄荷绿背景,现代扁平风格
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
# 安装依赖
|
||
pip install matplotlib
|
||
|
||
# 用示例数据生成
|
||
python benchmark_chart.py -c sample_data.py -o output.png
|
||
|
||
# 自定义配置
|
||
python benchmark_chart.py -c my_data.py -o result.png --dpi 200 --width 28 --height 18
|
||
```
|
||
|
||
## 数据格式
|
||
|
||
支持 `.py` / `.json` / `.yaml` 三种配置格式。推荐 `.py`,可以用变量减少重复:
|
||
|
||
```python
|
||
# my_data.py
|
||
TITLE = "My Model Comparison"
|
||
|
||
COLORS = {
|
||
"model_a": "#5B2D8E",
|
||
"model_b": "#06B6D4",
|
||
}
|
||
|
||
BENCHMARKS = [
|
||
{
|
||
"title": "Benchmark Name",
|
||
"subtitle": "Short Description",
|
||
"models": [
|
||
{
|
||
"name": "Full Model Name", # 图例显示
|
||
"short_label": "Short", # 柱子下方标签
|
||
"group": "moe", # "moe" 或 "dense"
|
||
"score": 85.5, # 分数
|
||
"color_key": "model_a", # 对应 COLORS 中的 key
|
||
},
|
||
# ... 更多模型
|
||
],
|
||
},
|
||
# ... 更多基准测试
|
||
]
|
||
```
|
||
|
||
### 配置项说明
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| `TITLE` | 总标题(顶部居中) |
|
||
| `COLORS` | `{color_key: hex颜色}` 映射 |
|
||
| `BG_COLOR` | 背景色(默认 `#E8F5E9`) |
|
||
| `BAR_WIDTH` | 柱子宽度(默认 `0.55`) |
|
||
| `NCOLS` | 每行列数(默认 `4`) |
|
||
| `BENCHMARKS` | 基准测试列表 |
|
||
|
||
每个 benchmark 中每个 model 的字段:
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| `name` | 完整名称(图例) |
|
||
| `short_label` | 短标签(柱下方,支持 `\n` 换行) |
|
||
| `group` | `"moe"` 或 `"dense"` |
|
||
| `score` | 数值 |
|
||
| `color_key` | 颜色映射 key |
|
||
|
||
## 命令行参数
|
||
|
||
```
|
||
-c, --config 数据配置文件路径(必需)
|
||
-o, --output 输出图片路径(默认 benchmark_chart.png)
|
||
--dpi 分辨率(默认 200)
|
||
--width 图片宽度,英寸(默认 24)
|
||
--height 图片高度,英寸(默认 16)
|
||
```
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
benchmark-chart/
|
||
├── benchmark_chart.py # 主脚本
|
||
├── sample_data.py # 示例数据
|
||
├── output.png # 生成结果
|
||
└── README.md
|
||
```
|
||
|
||
## 依赖
|
||
|
||
- Python 3.8+
|
||
- matplotlib
|
||
- (可选) PyYAML — 如果用 `.yaml` 配置
|