# 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,与现有工作对齐 |