HUAWEI · PANGU 92B · 昇腾 910C

睡了一觉
训练跑通了

周二晚上 8 点 18,手机上给 Codex 发了句"继续",
就去睡了。凌晨 1 点 37,token 耗尽,任务完成。

20:18 → 01:37 · AI 自主运行 5h19m · 15 个文件
01 / VERIFICATION
核心链路全通
// AI 自主运行 5 小时 19 分,20 次迭代,0 人工干预
5h19m
AI 自主运行
20
拉起训练次数
15
改动文件数
0
人工干预
# 核心验证链路
vLLM 启动 → completion → task 分发
→ trajectory → reward
→ 训练数据 → actor 更新

✓ 全部通过
[✓] VERIFICATION · ALL_PASSED
20:18 → 01:37 · 睡觉时跑完
大集群→单机

大集群 → 单机

02 / BACKGROUND
任务背景
🧠

模型

Pangu 92B,8层剪层
layer 0-1 Dense,layer 2-7 MoE

💻

硬件

昇腾 910C,2 die/卡,8 卡 = 16 die

⚙️

并行

Rollout: TP=8, DP=2, EP=16
Actor: TP=4, PP=4

📁

改动

15 个文件,全链路改造

03 / TIMELINE
发生了什么
从任务下达到 token 耗尽,
真实时间线。
6/9 周一 11:30
领导布置任务
Pangu 92B 减层,16die 黑盒 E2E
6/9 周一下午
Codex 辅助改动
建立上下文,部分文件已修改
6/10 周二下午
终端断开,任务停滞
开发环境切换
6/10 20:18
手机发了句"继续"
然后就去睡觉了
6/11 01:37
Token 耗尽,任务完成
AI 自主运行 5h19m
睡觉

手机上说了句"继续"

然后就去睡了。

04 / MOBILE SYNC
在家就能
训练大模型
// 手机 → 公司特区电脑 → 远程开发机
codex · mobile-sync
$ 手机 ──▶ 特区电脑 ──▶ 远程开发机
├── 📱 家里(发指令)
├── 🏢 公司(Codex 运行)
└── ☁️ 集群(昇腾 910C)
移动端和电脑端干同样的活
睡觉时 AI 在干活,节省注意力时间
自主循环

自主循环

改 bug → 验证 → 读日志 → 再改 bug

05 / MOBILE IS UNDERRATED
被低估的移动端
📱

手机远程调度

SSH 隧道 + 长程运行
手机向内网开发机发指令

🔄

自主迭代

改 bug → 验证 → 读日志
→ 发现问题 → 再改,20 次循环

🧠

上下文延续

只说了一句"继续"
AI 自动理解任务目标

06 / CHALLENGES
配置迁移难点
不是算法问题,
全是配置通路问题。
🔗
mbridge 命名
单数 vs 复数,映射不匹配
🔢
FP16 精度
loss scale 未初始化
📏
Token 超限
余量 2048 不够
🌐
代理干扰
Ray worker 内网走代理
🧩
Reward 格式
按字符拆分,需 JSON 解析
Trajectory
不处理 None 轮次
07 / CORE FIXES
核心改动
三个最关键的问题,
不修就跑不起来。
P0

mbridge 映射兼容

MTP 禁用后,Megatron 用 final_layernorm,
映射表只有 final_layernorms.0
Codex 加了一行判断自动替换。

P0

FP16 精度配置

添加 fp16: true,初始化 grad_scale_func,
注释掉不兼容的 precision_aware_optimizer

P0

Token 长度余量

余量从 2048 改为 16384,
避免 prompt+response 超限。

08 / ALL FIXES
全部改动
20 次迭代,15 个文件。
它看到的它怎么修的
final_layernorms.0 映射报错MTP 禁用时自动替换
FP16 训练 loss 异常初始化 grad_scale_func
Prompt length exceeds余量 2048 → 16384
speculative_config 报错加 is_mtp_enabled 检查
No valid rounds过滤 None 轮次
Reward 按字符拆分改 JSON 解析
trajectory 不支持多轮重构 + 180s 超时
Ray worker 内网走代理清理 proxy 环境变量
optimizer 不兼容 FP16注释掉相关参数
n_parallel_agents=256改成 1
09 / VALIDATION
验证结果

vLLM 启动

DP0/DP1 正常启动

Task 分发

dispatch_task_list completed

Reward 执行

真实 pytest 参数,不再按字符拆分

Actor 更新

train after update actor

早上验证

第二天打开电脑

核心链路,全通。

10 / ROUND 2
不止跑了一次
第一次跑通之后,我又跑了第二次。
这一次,问题更复杂,时间更长,AI 自主迭代了五六十轮。
7.5h
第二次自主运行
50-60
迭代轮次
50-60
生成日志
FP16
精度训练
🔥

FP16 精度切换

从 BF16 切到 FP16,loss scale 初始化、梯度裁剪全要重配

🔄

五六十轮迭代

比第一次多 3 倍,AI 自主读日志→定位→修复→重跑

📋

五六十份日志

每轮训练产出完整日志,AI 逐份分析,不遗漏

🧠

更复杂的问题

精度兼容、通信拓扑、参数解析……全是配置通路问题

第一次 5 小时跑通,第二次 7.5 小时跑深。AI 在进化。
10 / COMPARE
效率对比(两次运行)

❌ 传统方式

耗时2-3 小时
人工全程投入
验证改 1 个跑 1 轮
时间受限工时

✅ Codex 自主调试

第1次5h19m · 20轮
第2次7.5h · 50-60轮
人工1-2 小时
时间睡觉时在跑
真正价值不是"快",是异步--睡觉时 AI 在跑。
11 / VALUE
推广价值
1-2h
单次节省 / 人
10-20h
团队 10 人月节省
120-240h
年化节省工时
最适合的场景
⭐⭐⭐⭐⭐
多节点并行迁移
本次已验证
⭐⭐⭐⭐⭐
配置迁移 / 适配
环境变量、参数调整
⭐⭐⭐⭐
日志分析 + 修复
读日志→定位→修复闭环
⭐⭐⭐
大规模代码重构
多文件协同改动
睡了一觉,
训练跑通了

给 AI 布了个任务,然后去睡觉。
第一次 5 小时跑通,第二次 7.5 小时跑深。
15 个文件改好了,五六十轮迭代跑完了,核心链路全通。

基于真实复盘 · 盘古大模型 · Pangu 92B · 16die · 昇腾 910C · 两次长程验证

孙博阳 · 基础大模型部·系统工程实验室 · 2026.06
openPangu 2.0 · 余承东 HDC 2026