本篇记录 8 月 29 日至 9 月 13 日的研究进展,包含 9 月 16 日补记。文中作业状态与待办以原稿记录时间为准;训练集指标不代表测试集 benchmark 成绩。
list:
-
复现Dr.MAS Qwen3-4B Math实验
-
to-do
一、复现 Dr.MAS

历经磨难后终于在大数据平台中用Dr.MAS优化器训了Qwen3-4B模型,结果显示avg@8(平均正确率)从step1的0.402涨到step814的0.785,而pass@8(至少对一次的题目占比)从0.781提升到0.875,虽然做对的新题没有多很多,但是稳定性提升了(已经会的题的平均正确率几乎翻倍),符合RL finetuning的特征,把概率质量集中到了正确解上。
然后目前只有训练集的stdout,测试集还没有出结果,我在平台上提交了eval作业预计明天才能出结果,这个数据才能直接拿来和论文中跑出来的bench数据进行对比。
-
在跑的过程中,还注意到了episode/avg@8 和 episode/reward/mean 两个端点数值一模一样,之后我让Claude抽查了其中6个步骤,发现数值确实完全相等。
keystep 1 reward/mean=0.402 avg@8=0.402
step 300 reward/mean=0.582 avg@8=0.582
step 450 reward/mean=0.793 avg@8=0.793
step 750 reward/mean=0.707 avg@8=0.707猜测是由于格式合规率valid_action_ratio 一直在 0.987~0.998,无效动作惩罚(coef=0.1)几乎不触发,所以平均 reward 就等于平均正确率
- 用于格式惩罚,对每个格式不合规的动作,在回复最后一个 token 上扣 0.1 的 reward。目的是防止模型输出没法解析的东西。
实测值step 1 是 0.998,step 814 是 0.987。也就是全程 98.7%~99.8% 的输出都合规。
惩罚项的实际量级 = (1 − 0.99) × 0.1 ≈ 0.001,小到在三位小数上都显示不出来。所以 reward/mean和avg@8才会逐步完全相等
- valid_action_ratio从0.998到0.987,轻微下降了 1.1 个百分点。batch 里 32×8 个 rollout,大概多了两三个不合规,猜测模型为了优化正确率,有时会轻微牺牲格式一致性。
-
同时,这个avg@8 平均正确率曲线不单调,在step 450 到了 0.793,中间掉到 0.676,最后 0.785。说明由于batch 只有 32 题导致单步噪声很大。
-
训练集上 pass@8 起点就有 0.781,上升空间较小,因此涨幅小有一部分原因可能是天花板效应导致的。
4B non-sharing的配置还在大数据平台上跑,8B的两个作业还在排队。search的5个训练还没有提交,等最近研究玩平头哥的卡的使用方法后把作业放到上面。
这个阿里云的配额使用起来也有点难度,首先卡不是NVIDIA的,之前按大数据平台那套H100环境准备的自定义镜像(nvidia/cuda:12.4.1 + torch 2.6.0+cu124 + flash-attn 2.7.4.post1)没法直接用。

但环境本身其实是能用的,我提交了两个探针作业实测,官方镜像ppu-training:2.0.0-pytorch2.6.0ray2.55.1sglang0.4.6post1已经带齐了torch 2.6.0、sglang 0.4.6.post1、ray 2.55.1、flash-attn 2.5.6,关键是torch.cuda这套API透明可用(PPU走的是CUDA兼容层,nvidia-smi被shim成PPU-SMI),bf16 matmul跑通,flash_attn_func能import,所以use_remove_padding=True不用关。单卡显存95.6 GiB,比H100-80G还宽裕。缺的只有tensordict,pip装了4秒。公网也通,ModelScope实测40~48 MB/s(3.96 GB的权重分片154秒下完),GitHub clone 3秒。也就是说只要存储解决了,训练环境是现成的。
但是现在有一个报错是告诉我OSS权限不够。我的RAM用户能建Bucket,但往里写对象会报AccessDenied,在DLC建任务的表单里连挂载都配不了,选中Bucket直接报"无效的Bucket",提示要主账号授权,换成其他bucket也一样。工作空间的默认存储又是空的,没有能退而求其次的路径。
然后试了工作空间里唯一的CPFS数据集,结果卡死两小时。那个数据集挂CPFS的/seu/到容器的/mnt/data/,我提交了个探索作业只跑ls、df、touch三条命令,结果pod在01:44:11创建、03:44:12被删除,两个小时卡在环境准备。对照之前不挂任何数据集的探针作业20秒就起来了,所以故障点应该是CPFS挂载。后来查到这个数据集是isVpcMount=false,走的是VSC挂载而不是VPC挂载,猜测是我的作业没拿到VSC授权。
卡住的是应该就是账号权限和存储配置,或许需要管理员给单个Bucket加一个对象读写权限,现在没地方存checkpoint。
9 月 16 日补记

搞明白了PAI平台提交作业的SOP,先把启动脚本(entry point)提交到对应项目的目录下,然后直接在启动命令中用bash启动即可。之前卡在了在自定义数据集的时候需要导入oss配置,然后在选择oss目录的时候总是提示bucket无效。事实上,应该直接用系统提供的智算CPFS来存储数据。
二、to-do
- 继续复现Dr.MAS,使用平头哥芯片把作业跑通,然后就可以部署我剩余的所有作业了(工欲善其事必先利其器 lol)
- 特别抱歉师哥最近事情比较多,一直在搞我学校另外一个为了满足毕业要求修的课题的中期检查工作,还要冲一下9.16截稿的ICASSP会议。同时暑校的课因为是小组共同完成的实训任务所以还不太好摸鱼,需要每天去沙盘实验室出勤,不然还会被老师点名点到,还要浪费一些精力。这两天每天要干的工作实在太多了,进度有点慢实在抱歉,我这两天忙完以后一定会恶补一下落下的进度。