2024-09-02 13:54信息 • 发布者: 数据分析与数据可视化

买前必看:

购买全新和二手显卡,我个人建议都要拍摄完整的开箱视频,一镜到底那种,拍清楚快递盒子四周外观(正面没有人之前拆开过),拍清楚显卡外观和显卡背面印有的SN码和型号信息(重点外观看起来有没有各种使用痕迹)

非刚需不建议买显卡:

买新台式电脑,可选CPU自带显卡的

如果你现在还有旧电脑用,建议先继续凑合用

如果你实在着急用显卡,尽量买全新未拆封支持个人送保的显卡品牌(二手显存6G及以上的10、20、30、

正常导致模型训练中断,甚至影响模型训练结果出现较大偏差的现象也屡见不鲜。这对于数据科学家来说,是无法承受之痛。

过去好多数据科学家为了解决这一问题,在训练程序启动之后不断登录到GPU主机上,一次一次的运行nvidia-smi。这种做法的问题在于无法及时发现问题;同时也浪费了数据科学家大量的时间。

本文将介绍如何利用阿里云容器服务的机器学习解决方案在几分钟内轻松设置GPU资源使用率显存使用率温度的报警机制,达到对于一些GPU潜在问题的先知先觉,避免不必要损失的目的。

配置GPU资源监控报警

首先创建GPU容器集群,这里我们就可以得到一个GPU集群,请留意集群名称

登录到云监控页面,根据集群名找到对应的集群,并且点击节点监控

跳到容器集群节点的列表页,选择集群下的任意一个节点,点击监控图表

这里可看到节点级别资源监控,其中包括GPU的使用率,显存使用率和温度。其中GPU的温度是反映GPU卡工作状态的重要指标,当GPU的温度高到一定程度的时候,会导致GPU hang等潜在的严重问题。如果能够提前洞察这一潜在问题,并且报警给相应的数据科学家,从而提前主动做一些checkpoint的保存,就可以提高训练的有效性,避免硬件问题造成的训练时间浪费的问题。这里可以通过点击报警按钮快速配置

当报警设置页面弹出后,首先配置关联资源,将实例列表下拉选择全选将集群中所有的机器添加到报警监控中。

设置报警规则,这里使用的监控维度是GPU温度,要求5分钟的平均值大于等于70摄氏度时报警;同时设置报警条件,这里是5分钟内连续5次超过阈值就报警。

设置报警通知,请先按照文档创建云监控的报警联系人和联系组GPU监控,并且添加钉钉机器人

选择GPU监控组作为通知对象,并且选择默认的通知方式和内容

创建模型训练环境,运行neural-style模型训练

为了测试报警功能,这里我们运行一个可以触发报警条件的neural-style模型训练应用。具体来说:

登录到容器服务解决方案,在 模型训练 中点击 创建

这样,就可以看到一个表单。首先通过下拉框选择刚才创建的集群名称,点击训练框架 ,这时可以看到一系列深度学习框架的列表,其中包括TensorFlow, Keras和MXNet的不同版本, 还可以指定python2和python3的版本,这里我选择自定义镜像,并且配置其他选项,点击确定

以下为具体配置:

  • 训练框架: 自定义镜像

  • 镜像地址: registry.cn-beijing.aliyuncs.com/cheyang/neural-style:latest

  • GPU数量: 1

  • 数据卷名: 不使用数据卷

  • 执行命令: python neural_style.py --iterations 50000 --content /neural-style/examples/1-content.jpg --styles /neural-style/examples/1-style.jpg --output /neural-style/output.jpg

接收报警信息

稍等片刻我们就可以看到在钉钉机器人报警GPU温度过高,并且可以精确指明温度过高的GPU卡号为/dev/nivdia0,所在机器的实例id为i-wz9b6v2187e05zslh3xv,以及高温温度为75摄氏度

通过报警中的http链接,还可以通过报警历史看到具体的监控细节:

总结

不论在传统的DevOps还是现在火爆的AIOps中,系统资源的监控和报警都扮演着非常重要的角色,特别是GPU维度的监控对于一次完整并且结果可靠的深度学习训练有着重要的意义,基于容器服务的机器学习解决方案帮助您从**不知不觉** 到 先知先觉 ,端到端的掌控深度学习模型训练的整个生命周期。