YAYI 2训练集群监控:Prometheus配置实践指南
YAYI 2训练集群监控Prometheus配置实践指南【免费下载链接】YAYI2YAYI 2 是中科闻歌研发的新一代开源大语言模型采用了超过 2 万亿 Tokens 的高质量、多语言语料进行预训练。(Repo for YaYi 2 Chinese LLMs)项目地址: https://gitcode.com/gh_mirrors/ya/YAYI2YAYI 2是中科闻歌研发的新一代开源大语言模型采用超过2.65万亿Tokens的高质量多语言语料进行预训练在中文大模型领域表现出色。在大规模分布式训练过程中如何有效监控训练集群的健康状态和性能指标成为关键挑战。本文将详细介绍如何为YAYI 2训练集群配置Prometheus监控系统实现全方位的训练过程监控与优化。为什么需要训练集群监控 当您在16台或更多A100 GPU上运行YAYI 2全参数微调时训练过程可能持续数天甚至数周。没有合适的监控系统您将面临以下问题GPU利用率不透明无法实时了解GPU资源使用情况训练进度难追踪损失曲线、学习率变化无法可视化故障排查困难当训练中断时难以定位问题根源资源浪费无法优化资源配置导致计算资源闲置YAYI 2训练数据基础与监控关联在深入Prometheus配置之前了解YAYI 2的训练数据特点对监控指标设计至关重要YAYI 2的数据来源包括互联网数据49.6%、人工整理数据19%和领域特定数据31.4%。这种数据多样性意味着训练过程中需要监控数据加载速度、预处理效率等指标。从原始语料到最终训练数据的处理流程展示了数据清洗的重要性。监控系统需要跟踪数据处理各阶段的效率和资源消耗。Prometheus监控架构设计核心监控组件为YAYI 2训练集群构建完整的监控体系需要以下组件Prometheus Server指标收集与存储中心Node Exporter节点级系统指标收集NVIDIA DCGM ExporterGPU监控专用组件Grafana数据可视化仪表板Alertmanager告警管理安装与配置步骤1. 安装Prometheus# 下载Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz tar xvf prometheus-2.47.0.linux-amd64.tar.gz cd prometheus-2.47.0.linux-amd64 # 创建配置文件 cat prometheus.yml EOF global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: prometheus static_configs: - targets: [localhost:9090] - job_name: node static_configs: - targets: [node1:9100, node2:9100, node3:9100] - job_name: gpu static_configs: - targets: [node1:9400, node2:9400, node3:9400] - job_name: yayi-training static_configs: - targets: [training-node:8000] EOF2. 配置Node Exporter在每个训练节点上安装Node Exporter# 下载并安装 wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz tar xvf node_exporter-1.6.1.linux-amd64.tar.gz cd node_exporter-1.6.1.linux-amd64 # 创建systemd服务 sudo cat /etc/systemd/system/node_exporter.service EOF [Unit] DescriptionNode Exporter Afternetwork.target [Service] Userprometheus ExecStart/usr/local/bin/node_exporter [Install] WantedBymulti-user.target EOF3. 配置NVIDIA DCGM Exporter对于GPU监控这是最关键的部分# 安装DCGM Exporter docker run -d --gpus all --rm -p 9400:9400 nvcr.io/nvidia/k8s/dcgm-exporter:3.1.8-3.1.5 # 或者使用Helm安装Kubernetes环境 helm install dcgm-exporter prometheus-community/prometheus-dcgm-exporterYAYI 2训练特定监控指标关键性能指标KPIs基于YAYI 2的训练特性您需要关注以下核心指标GPU相关指标DCGM_FI_DEV_GPU_UTILGPU利用率百分比DCGM_FI_DEV_MEM_COPY_UTIL内存复制利用率DCGM_FI_DEV_POWER_USAGEGPU功耗瓦特DCGM_FI_DEV_GPU_TEMPGPU温度训练过程指标yayi_training_loss训练损失值yayi_learning_rate当前学习率yayi_gradient_norm梯度范数yayi_tokens_processed已处理的Token数量系统资源指标node_memory_MemFree_bytes可用内存node_cpu_seconds_totalCPU使用时间node_disk_io_time_seconds_total磁盘I/O时间集成YAYI 2训练脚本修改YAYI 2的训练脚本以暴露Prometheus指标。在training/trainer_yayi2.py中添加指标导出功能from prometheus_client import Counter, Gauge, start_http_server # 初始化指标 TRAINING_LOSS Gauge(yayi_training_loss, Current training loss) LEARNING_RATE Gauge(yayi_learning_rate, Current learning rate) TOKENS_PROCESSED Counter(yayi_tokens_processed, Total tokens processed) def train(): # 启动Prometheus HTTP服务器 start_http_server(8000) for epoch in range(num_epochs): for batch in dataloader: # 训练逻辑... loss compute_loss(batch) # 更新指标 TRAINING_LOSS.set(loss.item()) LEARNING_RATE.set(scheduler.get_last_lr()[0]) TOKENS_PROCESSED.inc(batch[input_ids].shape[0] * batch[input_ids].shape[1])Grafana仪表板配置创建YAYI 2训练监控仪表板GPU监控面板每节点GPU利用率热图GPU内存使用趋势GPU温度监控训练进度面板损失曲线可视化学习率变化趋势吞吐量Tokens/秒监控系统资源面板CPU/内存使用率网络I/O流量磁盘使用情况示例查询语句# GPU利用率查询 DCGM_FI_DEV_GPU_UTIL{instance~node.*} # 训练损失查询 yayi_training_loss{jobyayi-training} # 数据吞吐量计算 rate(yayi_tokens_processed[5m])告警规则配置在prometheus.yml中添加告警规则rule_files: - alerts.yml # alerts.yml内容 groups: - name: yayi_training_alerts rules: - alert: HighGPUTemperature expr: DCGM_FI_DEV_GPU_TEMP 85 for: 5m labels: severity: warning annotations: summary: GPU温度过高 description: {{ $labels.instance }}的GPU温度达到{{ $value }}°C - alert: TrainingLossSpike expr: abs(delta(yayi_training_loss[5m])) 0.5 for: 2m labels: severity: critical annotations: summary: 训练损失异常波动 description: 训练损失在5分钟内变化超过0.5 - alert: LowGPUUtilization expr: avg_over_time(DCGM_FI_DEV_GPU_UTIL[10m]) 30 for: 15m labels: severity: warning annotations: summary: GPU利用率过低 description: {{ $labels.instance }}的GPU平均利用率低于30%最佳实践与优化建议1. 监控数据保留策略# prometheus.yml中添加 storage: tsdb: retention: 30d # 保留30天数据2. 资源优化配置为Prometheus分配足够内存建议16GB使用SSD存储提高查询性能配置合适的抓取间隔训练密集期可缩短至5秒3. 集成YAYI 2训练日志通过Loki收集训练日志与Prometheus指标关联分析# promtail配置示例 scrape_configs: - job_name: yayi_logs static_configs: - targets: - localhost labels: job: yayi-training __path__: /var/log/yayi/*.log故障排查与性能调优常见问题解决方案GPU利用率低检查数据加载瓶颈验证batch size配置检查config/deepspeed.json中的优化器设置训练损失不稳定监控梯度范数变化调整学习率策略检查数据预处理质量内存泄漏检测监控节点内存使用趋势设置内存使用告警阈值定期重启长时间运行的训练进程总结为YAYI 2训练集群配置完善的Prometheus监控系统不仅能实时掌握训练状态还能提前发现潜在问题优化资源利用率。通过本文介绍的配置实践您可以✅ 实时监控GPU利用率和温度 ✅ 追踪训练损失和学习率变化✅ 设置智能告警及时发现问题 ✅ 可视化训练进度和系统资源 ✅ 优化训练性能和成本效益记住良好的监控是高效训练的基础。开始配置您的YAYI 2训练监控系统让大规模模型训练更加可控、高效提示在实际部署前请根据您的集群规模调整Prometheus资源配置并测试告警规则的有效性。【免费下载链接】YAYI2YAYI 2 是中科闻歌研发的新一代开源大语言模型采用了超过 2 万亿 Tokens 的高质量、多语言语料进行预训练。(Repo for YaYi 2 Chinese LLMs)项目地址: https://gitcode.com/gh_mirrors/ya/YAYI2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考