# AI Infra 训练平台建设方案

## 1. 愿景与目标

### 1.1 愿景

构建一套**端到端的智能化AI训练平台**，将分散的训练框架、资源调度、监控运维、数据管理能力整合为统一的标准化流水线，让大模型训练算法团队**专注于模型创新而非基础设施运维**，同时与现有运维智能体深度协同，实现训练任务的智能化运维闭环。

### 1.2 核心目标

| 目标维度 | 描述 |
|---------|------|
| **效率提升** | 训练任务从准备到启动时间缩短 70%，故障恢复时间缩短 50% |
| **标准化** | 建立统一的训练流程规范，消除"人人一套环境"的混乱局面 |
| **可观测性** | 全链路监控覆盖，训练状态、资源利用、异常事件一目了然 |
| **智能运维** | 与运维智能体对接，实现断训自动分析、故障智能诊断 |


---

## 2. 整体架构概览

```
┌─────────────────────────────────────────────────────────────────────┐
│                        用户交互层                                    │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐                  │
│  │  Web 前端   │  │   CLI 工具   │  │  API 接口   │                  │
│  │ (任务提交)   │  │ (高级用户)   │  │ (自动化集成) │                  │
│  └─────────────┘  └─────────────┘  └─────────────┘                  │
└─────────────────────────────────────────────────────────────────────┘
                                │
┌─────────────────────────────────────────────────────────────────────┐
│                        平台服务层                                    │
│  ┌───────────────┐  ┌───────────────┐  ┌───────────────┐            │
│  │   任务调度     │  │   数据管理     │  │   模型管理     │            │
│  │  (SkyPilot)   │  │(schema/dataset)│  │  (版本/产物)   │            │
│  └───────────────┘  └───────────────┘  └───────────────┘            │
│  ┌───────────────┐  ┌───────────────┐  ┌───────────────┐            │
│  │   镜像管理     │  │   指标追踪     │  │   日志中心     │            │
│  │(Local Registry)│ │   (W&B)       │  │  (集中采集)    │            │
│  └───────────────┘  └───────────────┘  └───────────────┘            │
└─────────────────────────────────────────────────────────────────────┘
                                │
┌─────────────────────────────────────────────────────────────────────┐
│                        智能运维层                                    │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │                    运维智能体对接                             │    │
│  │  • 断训自动分析    • 故障根因定位    • 资源利用率优化建议      │    │
│  └─────────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────────┘
                                │
┌─────────────────────────────────────────────────────────────────────┐
│                        基础设施层                                    │
│  ┌───────────────┐  ┌───────────────┐  ┌───────────────┐            │
│  │  Kubernetes   │  │   GPU 集群     │  │  分布式存储    │            │
│  │   (容器编排)   │  │ H20/A6000/H100│  │ (JuiceFS)     │            │
│  └───────────────┘  └───────────────┘  └───────────────┘            │
└─────────────────────────────────────────────────────────────────────┘
```

---

## 3. 用户故事

### 3.1 算法工程师视角

> **作为**一名算法工程师，  
> **我希望**通过简单的界面配置就能提交一个多节点 RLHF 训练任务，  
> **以便于**我可以专注于模型和数据本身，而不是花大量时间在环境配置和资源协调上。

**验收标准：**
- [ ] 在 Web 界面上选择数据集、模型、训练配置
- [ ] 一键提交后，系统自动完成资源分配、镜像拉取、任务启动
- [ ] 实时查看训练进度曲线和关键指标

---

> **作为**一名算法工程师，  
> **我希望**训练中断时能快速定位问题原因，  
> **以便于**减少排查时间，尽快恢复训练。

**验收标准：**
- [ ] 系统自动检测训练中断事件
- [ ] 智能体自动分析中断原因（OOM、网络故障、硬件异常等）
- [ ] 提供可操作的恢复建议

---

> **作为**一名算法工程师，  
> **我希望**启动一个 Notebook 环境调试代码.
> **以便于**小规模试跑训练，测试训练数据集、调整模型参数

**验收标准：**
- [ ] Notebook容器启动速度
- [ ] 开发容器内置依赖包完善度，按照新包

---

### 3.2 团队负责人视角

> **作为**团队负责人，  
> **我希望**能够看到所有训练任务的整体资源利用情况，  
> **以便于**合理规划算力资源，识别资源浪费。

**验收标准：**
- [ ] 仪表盘展示各集群 GPU 利用率趋势
- [ ] 任务队列可视化，等待/运行/完成状态一目了然
- [ ] 资源使用报表按项目/用户统计

---

### 3.3 运维工程师视角

> **作为**运维工程师，  
> **我希望**训练任务的监控数据能自动接入现有运维系统，  
> **以便于**统一管理，减少割裂的监控工具。

**验收标准：**
- [ ] 训练任务指标自动推送到运维智能体
- [ ] 异常告警自动触发智能体分析流程
- [ ] 与现有运维系统数据互通

---

## 4. 里程碑规划

### 里程碑总览

```
    M1                 M2                 M3                 M4
    │                  │                  │                  │
────●──────────────────●──────────────────●──────────────────●────────▶
    │                  │                  │                  │
 基础设施就绪        训练流水线上线      监控运维闭环        智能化运维
```

---

### M1: 基础设施就绪

**目标：** 完成底层平台搭建，具备运行训练任务的基础能力

| 交付物 | 说明 |
|-------|------|
| K8S 集群 | H20 集群上部署 Kubernetes，支持 GPU 调度 |
| 本地 Registry | 内网镜像仓库，解决镜像拉取问题 |
| JuiceFS/MinIO | 分布式存储，数据集和模型 checkpoint 持久化 |
| 基础镜像 | veRL 训练镜像，预置常用依赖 |

**关键验证点：**
- 能够手动在 K8S 上启动单节点训练任务
- 数据从 JuiceFS 正常读写
- 镜像从本地 Registry 正常拉取
- 引入 Volcano 或 Kueue，并配置 Gang Scheduling 策略，实现All-or-Nothing 的资源分配
- 确认JuiceFS 的本地 SSD 缓存策略，在其中一台机器部署MiniIO单节点，另外两台机器上部署JuiceFS client
- 网络通信支持 RoCE/InfiniBand
- Notebook 交互式开发环境

---

### M2: 训练流水线上线

**目标：** 用户可通过前端提交和管理训练任务

| 交付物 | 说明 |
|-------|------|
| SkyPilot 集成 | 任务调度与资源编排 |
| W&B 本地服务 | 训练指标追踪与可视化 |
| 任务管理前端 | 数据上传、任务提交、进度查看、日志查看 |
| 数据管理模块 | 支持从 HuggingFace 链接或 FTP 导入数据集 |

**关键验证点：**
- 端到端完成一次多节点 SFT 训练
- 通过前端提交任务，查看 W&B 训练曲线
- 训练日志完整保存并可查询
- 多租户、项目制配额管理功能

---

### M3: 监控运维闭环

**目标：** 实现任务全生命周期监控，与运维智能体初步对接

| 交付物 | 说明 |
|-------|------|
| 资源监控 | GPU 利用率、显存、网络带宽实时采集 |
| 日志采集 | 训练日志集中存储，支持检索 |
| 智能体对接 | 断训事件自动推送，触发智能体分析 |
| 告警机制 | 异常状态（OOM、任务卡死等）自动告警 |

**关键验证点：**
- 训练任务异常时，5 分钟内收到告警
- 断训事件自动生成分析报告
- Grafana 仪表盘展示集群整体健康状态
- sidecar方式部署 DCGM Exporter 来获取细粒度指标，自动采集到Prometheus
- 断训时“保留现场”机制，供人工/智能体排查介入

---

### M4: 智能化运维

**目标：** 深度整合运维智能体，实现智能调度与自愈

| 交付物 | 说明 |
|-------|------|
| 故障自愈 | 常见故障自动处理（如重新调度到健康节点） |
| 智能调度 | 基于历史数据优化任务资源分配 |
| 根因分析 | 复杂故障场景的深度分析能力 |
| 容量预测 | 基于任务趋势预测算力需求 |

---

## 5. 约束与风险

### 5.1 已知约束

| 约束项 | 影响 | 应对策略 |
|-------|------|---------|
| **内网环境** | 无法直接访问HF/Dockerhub/Github资源（模型、数据集） | 本地 Registry + 数据导入工具 |
| **算力平台限制** | 现有平台调度能力有限 | 引入 SkyPilot 作为上层调度 |
| **数据持久化** | 需要可靠的分布式存储 | JuiceFS + MinIO 方案 |

### 5.2 潜在风险

| 风险 | 可能性 | 影响 | 缓解措施 |
|-----|-------|------|---------|
| K8S 与现有系统集成复杂 | 中 | 高 | 先在 H20 集群小范围验证 |
| 智能体接口适配工作量大 | 中 | 中 | 早期明确接口规范，持续对齐 |
| 用户习惯迁移阻力 | 低 | 中 | 渐进式推广，保留手动模式 |

---

## 6. 资源与依赖

### 6.1 硬件资源

| 集群 | 配置 | 用途 |
|-----|------|------|
| H20 集群 | 2 节点 × 8 卡 = 16 卡 | 主力训练集群，首期部署目标 |
| A6000 集群 | 2 节点 × 4 卡 = 8 卡 | 开发测试、小规模实验 |
| H100 集群 | 多节点 | 目前仅提供容器方式，不确定能否提供KubeConfig接入，大规模训练 |

### 6.2 外部依赖

| 依赖项 | 状态 | 负责方 |
|-------|------|-------|
| yd运维智能体接口 | 已有基础 |  |
| argus运维系统 | 已有 | 运维团队 |

---

## 7. 成功标准

### 阶段一完成标准（M1 + M2）

- [ ] 算法工程师可通过 Web 界面完成 SFT/RLHF 训练全流程
- [ ] 任务提交到开始训练时间 < 10 分钟
- [ ] 训练指标实时可视化，延迟 < 1 分钟
- [ ] 至少完成 3 个实际项目的验证使用

### 阶段二完成标准（M3 + M4）

- [ ] 断训事件 100% 自动检测并推送智能体
- [ ] 常见故障（OOM、节点失联）自动生成分析报告
- [ ] GPU 整体利用率提升 20%（通过更好的调度）
- [ ] 平均故障恢复时间（MTTR）缩短 50%

---

## 附录：关键技术选型

| 领域 | 选型 | 选型理由 |
|-----|------|---------|
| 容器编排 | Kubernetes | 业界标准，生态成熟 |
| 任务调度 | SkyPilot | 专为 ML 场景设计，支持多集群 |
| 分布式存储 | JuiceFS + MinIO | 兼容 POSIX，适合训练场景 |
| 实验追踪 | W&B (自部署) | 功能完善，团队已有使用经验 |
| 镜像仓库 | Harbor / Registry | 内网环境必需 |
| 训练框架 | veRL / Megatron | 支持 RLHF，与现有工作对齐 |
