HyperAgents实验结果可视化完整指南:5个脚本快速绘制进度曲线与archive演化图
【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgents
HyperAgents 是一个自指自我改进的智能体系统,其analysis模块提供了一套开箱即用的实验结果可视化工具:一条命令就能画出训练进度曲线、多方法对比图、显著性检验报告,以及把整个 agent 演化历史渲染成"家谱树"的 archive 演化图。本文面向新手,手把手讲清 analysis/ 目录下 5 个绘图脚本的用法、输出文件与关键参数,帮助你在跑完实验后快速产出论文级图表。
一分钟了解 analysis 模块
HyperAgents 的运行入口是 generate_loop.py,每次实验会在outputs/下生成一个带时间戳的运行目录(如outputs/generate_20251217_160752_316659),核心数据存放在其中的archive.jsonl(记录每一代 agent 及其父代关系)。analysis模块的所有脚本都围绕这份数据做绘图:
| 脚本 | 作用 | 典型输出 |
|---|---|---|
| analysis/plot_progress.py | 单实验进度曲线(最佳 agent / 存档平均 / 最佳谱系) | progress_plot_*.png+progress_info_*.txt |
| analysis/visualize_archive.py | 把 agent 演化树渲染成按分数着色的图 | archive_graph_*.png |
| analysis/plot_comparison.py | 多实验、多方法随迭代次数的对比曲线 | analysis/outputs/comparison_*.png |
| analysis/plot_testevals.py | 最终测试成绩柱状图(含基线横线) | analysis/outputs/testeval_*_barplot.png |
| analysis/analysis_utils.py | 共享工具:bootstrap 置信区间、成对显著性检验 | significance_*.txt报告 |
图:HyperAgents 支持的 balrog 多游戏域中 NetHack(NLE)环境使用的瓦片图集,来自 domains/balrog/environments/nle/。可视化脚本分析的数据正是来自这些任务环境的评测分数。
💡 所有脚本依赖 utils/gl_utils.py 中的
load_archive_data、get_saved_score、get_parent_genid等函数读取存档与分数,以及 utils/domain_utils.py 判断各域支持的 split(train/val)与评分类型(agent/ensemble/max)。
绘制进度曲线:plot_progress.py 一键上手
想快速回答"我的实验跑得怎么样",用 analysis/plot_progress.py。它会遍历archive.jsonl中的每一代,画出三条曲线:
- Best Agent:截至当前迭代的最优分数(累计最大值);
- Average of Archive:存档中所有有效 agent 的分数均值;
- Lineage to Final Best Agent:从初始节点沿父代链回溯到最终最佳 agent 的演化谱系。
用法示例(单域 / 多域聚合):
# 单域:在 paper_review 域上画 train split 的进度图 python analysis/plot_progress.py --domains paper_review --path ./outputs/generate_20251217_160752_316659 # 多域:把多个域的分数取平均后聚合绘制,并额外保存 SVG python analysis/plot_progress.py --domains paper_review genesis_go2walking \ --path ./outputs/generate_xxx --svg参数小贴士:
--domains:传一个域走单域模式;传多个域自动切换为"together"聚合模式(任一域分数缺失则记为无效);--color:可选blue/green/orange三套配色;--check_ensemble:若域支持集成评测,会自动补画ensemble与max类型曲线。
输出文件保存在运行目录内:progress_plot_{域}_{split}_{类型}.png,并附带一份progress_info_*.txt,里面记录了总迭代数、每代最佳分数和最佳谱系的 genid 及补丁文件,方便交叉核对。
可视化 agent 演化树:visualize_archive.py 实战
想看"agent 是怎么一代代进化出来的",用 analysis/visualize_archive.py。它把每个 genid 当作节点、父子关系当作边,构建有向图后用 graphviz 布局,并按分数着色(橙→黄→绿渐变),分数最高的节点会画成菱形标记 🎯。
# 单域演化图 python analysis/visualize_archive.py --domains paper_review --path ./outputs/generate_xxx # 多域聚合 + 显示 valid_parent 边框(红/绿)+ 保存 SVG python analysis/visualize_archive.py --domains paper_review genesis_go2walking \ --path ./outputs/generate_xxx --together --plot_borders --svg常用参数:
--trunc_its N:只画前 N 个节点,图太大时快速"减负";--together:多域分数取平均,画在一张图上;--plot_borders:根据元数据里的valid_parent给节点画红/绿边框,方便定位异常谱系。
输出为运行目录下的archive_graph_{域}_{split}_{类型}.png(300 dpi,可加--svg导出矢量版)。
多方法横向对比:plot_comparison.py 与显著性检验
论文级对比图由 analysis/plot_comparison.py 生成。它的工作流是:
- 读取 plot_comparison.py 中
domains_paths_data里配置的若干组实验路径(如DGM、DGM-HA、DGM-HA w/o self-improve等); - 对每条运行曲线做插值并对齐到统一网格;
- 用 analysis/analysis_utils.py 中的
compute_bootstrap_ci计算中位数与 95% bootstrap 置信区间(也可关闭 bootstrap 改用均值±标准差); - 用
save_significance_tests输出成对 t 检验 / Wilcoxon / Mann-Whitney 显著性报告到analysis/outputs/significance_*.txt。
修改实验路径后直接运行即可:
python analysis/plot_comparison.py产物包括analysis/outputs/comparison_{组名}_{域}.png以及analysis/outputs/pdfs/下的 PDF/SVG 透明底版本,可直接插入论文。方法配色由METHODS_TO_COLORS统一管理,保证多图之间颜色一致。
最终成绩柱状图:plot_testevals.py 快速产出
实验收尾时,用 analysis/plot_testevals.py 把每个方法的最终测试分数画成柱状图,并把SFT、Representative Baseline、Default Reward Function等静态基线画成黑色虚线横条作参照。支持--top_n控制每个运行取前几名 agent 的成绩,同样会顺带生成testevals_significance_*.txt显著性报告。
# 每个方法只取每轮最佳 1 个 agent 的成绩 python analysis/plot_testevals.py --top_n 1📌 数据目前直接写在该脚本的
data列表里,复现自己的实验时替换/追加对应分数即可;各域的 y 轴上限由DOMAIN_YLIM控制。
常见输出文件速查与 FAQ
- 图在哪?单实验图(进度图、演化树)写在
--path指定的运行目录内;多实验对比图统一落在analysis/outputs/; - 某条曲线缺失?通常是
archive.jsonl中该代 agent 在对应域编译/运行失败,分数为None会被排除在均值外; - 显著性报告怎么读?报告中
p < 0.05 / 0.01 / 0.001分别标注******;bootstrap 模式下自动选用非参数检验(Wilcoxon / Mann-Whitney),均值模式下选用配对/独立 t 检验; - 想做迁移实验的选点分析?可参考 analysis/transfer_utils.py,它按
max_score/growth等策略为迁移实验挑选候选节点,并生成对应的评测命令。
跑完generate_loop.py后,按"进度曲线 → 演化树 → 对比图 → 柱状图"的顺序使用analysis模块,你就能用 4 条命令完成从单实验体检到论文级图表的完整可视化流程。更多项目背景与安装说明见 README.md。
【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgents
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考