# DataAnalysis ## 概述 将大模型推理测试生成的excel数据文件,按照特定方式生成柱状图进行比较 配置文件data_config.json示例说明: ``` { "filter": { "并发数": [], "模型": [] }, "dist_cols": ["模型", "卡数"], "group_cols": [["并发数"], ["输入长度(tokens)", "输出长度(tokens)"]], "key_cols": ["卡类型", "vLLM版本", "V0/V1 Engine"], "metric_cols": ["平均首字延时TTFT(ms)", "平均生成时间TPOT(ms)", "生成吞吐量(tokens/s)", "总吞吐量(tokens/s)"], "files": [ { "file": "t.xlsx", "sheets": [], "column_mapping": { }, "column_replace": { } } ] } filter: 过滤条件,不设置或者为空则不过滤, 主要用于复杂大表时只选择关注的数据 dist_cols: 选择输出文件的条件,例如["模型", "卡类型", "卡数"]则将相同的模型、卡类型和卡数的所有数据生成以个文件 group_cols: 可以进行最多2重分组,每层一个图,第2层以不同柱状显示数据。如果命令行参数指定合并,则所有合成一个图,分组之间间隔开 key_cols: 分组内的键值 metric_cols: 度量列,不设置缺省上述4个,会将所有非数值格式转换为0 files: 指定文件信息, 可以使用多个文件(可以参考sample.json) file: 文件名 sheets: 可以指定处理的sheet,不指定则遍历所有 column_mapping: 列名重映射,用于处理多个文件时表头信息略有差异的情况, 其他字段以重映射后的名字为准 column_replace: 数据替换,用于处理不同文件命名规则不一致的情形, 过滤数据内容以替换后的为准 参考配置说明: ``` ## 使用方法 ``` python3 plot_comparison.py --help usage: plot_comparison.py [-h] [--配置 配置] [--输出目录 输出目录] [--合并分组] 绘制模型性能对比图表 options: -h, --help show this help message and exit --配置 配置, -f 配置 数据配置文件路径 --输出目录 输出目录, -d 输出目录 输出图表目录 --合并分组, -m 将第一层分组合并到一张图中 ``` ## ToDo: 1、对度量列的数据,如果非数值类型,会直接设置为默认0,如果看柱状图发现异常可能是数据原因 2、如果根据条件筛选出来的有多组数据,目前是计算的平均值,需要注意避免因此得出错误的结论 3、目前仅内置了几组color_palette,如果出现重复或者想改配色,直接修改代码 ##