科学计算拥抱 AI:HPC 工作流引入代理模型
场景:CFD 求解一个工况要 2 小时,而设计优化需要扫描 2,000 个参数组合——纯 HPC 路径要跑 4,000 小时。这是"智算×超算互相促进"最典型的切面:HPC 负责生成高质量数据,AI 负责把昂贵求解变成廉价预测。
1. 场景与痛点
传统科学计算工作流(仿真驱动设计)长这样:
参数空间 ──> 逐一提交仿真作业(Slurm 排队+求解)──> 收集结果 ──> 人工分析 ──> 下一轮参数三个致命瓶颈:
| 瓶颈 | 表现 | 代价 |
|---|---|---|
| 单次求解昂贵 | CFD/结构/多物理场单工况 小时~天级 | 参数扫描基本不可行 |
| 排队放大成本 | 共享集群 + 大作业排队,实际墙钟时间翻倍 | 迭代周期以周计 |
| 维度诅咒 | 参数每多一个维度,扫描量指数上涨 | 设计空间只能局部探索 |
代理模型(Surrogate Model) 的解法:用 AI 模型学习"输入参数 → 仿真结果"的映射,把每次评估从 2 小时降到毫秒级,让千次扫描变成一次模型推理:
HPC 采样仿真(生成训练数据)──> 训练代理模型 ──> 代理模型高速评估(千次扫描/秒级)──> 关键点回 HPC 验证2. 整体架构
生产级"AI 加速仿真"工作流,四个子系统:
┌─────────────────────────────────────────────────────────────┐
│ ① 数据管道(HPC 侧) │
│ 参数采样 → Slurm 批量仿真 → 结果抽取 → 数据版本化 → 特征化 │
├─────────────────────────────────────────────────────────────┤
│ ② 模型训练(智算侧) │
│ 训练/验证集划分 → 模型选型 → 误差监控 → 不确定性估计 │
├─────────────────────────────────────────────────────────────┤
│ ③ 推理服务 │
│ 模型封装为服务/库 → 嵌入优化循环 → 关键点回 HPC 复算验证 │
├─────────────────────────────────────────────────────────────┤
│ ④ 闭环迭代 │
│ 代理误差超阈值 → 主动采样补点 → 增量训练 → 更新部署 │
└─────────────────────────────────────────────────────────────┘关键设计原则:代理模型不是"替代求解器",而是优化循环中的高速过滤器——粗筛参数空间,只把少数有希望的候选送回昂贵求解器精算。
3. 关键实现
3.1 采样策略:HPC 数据不是越多越好
代理模型质量的上限由采样决定。三类主流策略:
| 策略 | 原理 | 适用场景 |
|---|---|---|
| 拉丁超立方 (LHS) | 每个维度分层均匀采样 | 参数空间未知,打底 |
| 空间填充 (Sobol/Hammersley) | 低差异序列,覆盖更均匀 | 中小维度 (≤20) |
| 主动学习 (Active Learning) | 先训一版,用不确定性挑"模型最没把握的点"补采 | 仿真昂贵,预算受限 |
工程要点:主动学习通常能把达到同等精度的采样量减少 50%~70%,但需要"训练→推理→挑点→补仿真"循环能自动化——这正是 Slurm 批处理脚本 + 调度 API 可以串联起来的。
3.2 模型选型:从回归到神经算子
| 模型 | 能力边界 | 数据需求 | 典型场景 |
|---|---|---|---|
| 高斯过程 (GP) | 小数据+自带不确定性 | 百级 | 低维设计优化 |
| 随机森林/XGBoost | 中数据,特征表格化 | 千级 | 标量指标预测(寿命、效率) |
| 深度神经网络 (DNN) | 大数据,非线性强 | 万级 | 复杂响应面 |
| 神经算子 (FNO/DeepONet) | 函数到函数,含空间结构 | 万级+ | 场量预测(流场、温度场) |
一个常见误区:把"预测一个标量"(如总阻力系数)和"预测整个场"(如流场分布)混为一谈。标量回归用表格型模型即可;场预测必须用神经算子或带空间结构的网络——后者的工程复杂度高一个量级。理论细节见 14 章 · AI-CFD。
3.3 误差控制:代理模型必须"知道自己不知道"
科学计算不能容忍幻觉。生产化必须带三道防线:
- 留出验证集:采样数据的 20% 永不进训练,报告 RMSE/相对误差;
- 不确定性估计:GP 给置信区间;DNN 用 ensemble(多个模型投票)或 MC-Dropout 近似;
- 回验机制:代理预测的关键决策点(优化最优点、危险工况)必须回 HPC 复算,误差超阈值触发补采样。
4. 踩坑与调优(实战经验)
外推失效是最隐蔽的坑:代理模型在训练数据分布内很准,一旦优化器把参数推到采样边界外,预测可能完全失真。对策:约束优化范围 = 采样范围,并把"回验"设为硬性流程。
仿真噪声被模型"记住":同一参数重跑仿真,结果也有数值噪声。训练时不要追求训练集 100% 拟合——把噪声当 aleatoric 不确定性,用早停控制过拟合。
数据版本化别用文件夹:2000 次仿真 = 2000 个结果文件,迭代三轮后必然混乱。用带元数据(参数、求解器版本、网格规模)的版本化存储(如 DVC),否则"换了一版数据模型反而变差"将无法追溯。
HPC 与智算的资源错峰:采样仿真吃 CPU/GPU 计算节点,训练吃 GPU。错峰调度(仿真用夜间空闲节点、训练用白天 GPU 池)能显著摊薄成本——调度设计参考 06 章 · 调度与云原生 与 07 章 · Slurm 异构调度。
5. 效果量化与复盘
一套标准复盘口径(假设某 CFD 设计优化场景):
| 指标 | 纯 HPC | HPC+代理模型 |
|---|---|---|
| 单次评估耗时 | ~2 小时 | ~10 毫秒 |
| 扫描 2000 组参数 | ~4000 小时(排队后更长) | 分钟级推理 + 数十次回验 |
| 达到同等设计精度的总仿真次数 | 2000 | 200~400(主动采样+回验) |
| 迭代周期 | 数周 | 2~3 天 |
口径说明:以上为工程经验量级,用于建立"数量级直觉";实际收益取决于维度数、单次求解成本与所需精度,建议用自家场景跑通最小闭环后按同表复盘。
复盘结论:代理模型把"扫描-优化"类工作流从"周级"推进到"天级",代价是增加一个模型训练与维护环节——只有当单次仿真足够贵、扫描量足够大时,才值得引入;否则直接枚举反而更省事。
工程启示
- "智算×超算互相促进"最务实的切入点:HPC 造数据,AI 做加速,HPC 再验证——三个环节环环相扣,这正是 AI-HPC 智算超算平台的核心理念。
- 代理模型是 Software Factory 里"一题一软件"方法论的技术底座:每个科学问题都能封装成"采样→训练→服务→回验"的软件闭环。
- 下一步可读:完整全链路案例见 电池寿命预测:从科学问题到软件交付。