NeotericLab

来源与复现边界

上游

文件映射

发布文件 来源/改动
src/reward_tolerant.py 历史实际使用的 reward 函数,逐字节保留
data/rl/*.parquet 历史实际数据,逐字节保留
scripts/run_grpo_base.sh 历史基础脚本,与固定 verl revision 一致
scripts/train.sh 基于实际 launcher;保留训练参数,改成可移植路径,console 默认日志,环境安装移到 setup
archive/launch_char_count.original.sanitized.sh 原 launcher,仅替换内网 tracking URI 和个人目录
archive/create_dataset.original.py 历史下载的数据生成器,无修改
scripts/create_dataset.py 公开适配:增加 seed/输入检查,移除 verl import,修正文档中与实现不符的词源描述
archive/uv.lock、archive/verl-pyproject.toml 固定 verl revision 的依赖文件快照
archive/training.sanitized.log 包含 135M 与 Qwen 轮次;移除 ANSI 颜色、替换 IPv4/个人路径,保留换行及 CR
results/metrics.csv 既有 Qwen 轮次提取结果,发布时用新脚本逐字段复核
docs/conversation-excerpt.md 用户可见对话选段,去掉交错的数学任务段落、隐藏思考、工具正文和私人路径
scripts/extract_metrics.py、scripts/plot_metrics.py、tests/ 本次为开源整理新增的审计与可视化工具

SHA256SUMS 记录发布文件的字节摘要(不含自身和 Git 元数据)。

不能保证的复现部分

历史数据生成未设 random seed,因此复现历史数据应直接使用附带 parquet。训练配置中的 seed=42 并不能倒推出数据生成 seed。GPU/Ray/vLLM 的运行也不保证位级确定性。

历史容器镜像已删除,锁文件描述 Python 依赖,不等价于完整 OS/驱动镜像。原 launcher 在 frozen sync 后另装 MLflow 3.17.2,未保存该步骤之后的完整 pip freeze。重装仍需系统级 CUDA/编译依赖,未在本次整理中执行完整 GPU 环境安装。

默认关闭远程 MLflow,仅改变记录目的地;数据、模型和训练超参数按历史配置准备。任何新增 checkpoint 保存、生成新数据或更换环境都应作为新的运行记录,不能把旧的 54.4% 贴在新实验上。

数据交叉检查

逐题复算确认所有标签等于实际字符出现次数。按完整 prompt 文本去重,训练集有 8493 个唯一问题,验证集有 994 个唯一问题,二者交集为 62 个问题。生成器未强制跨 split 去重;公开数据保留历史原貌。