argus-cluster/doc/hl_design.md

13 KiB
Raw Blame History

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