上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

逻辑踏云人
• 阅读 813

一个高精度AI模型离不开大量的优质数据集,这些数据集往往由标注结果文件和海量的图片组成。在数据量比较大的情况下,模型训练周期也会相应加长。那么有什么加快训练速度的好方法呢?

壕气的老板第一时间想到的通常是提升算力,增加资源。

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

如果足够有钱的话,基本不需要再继续看其他解决方案了。

但大多数情况下,面对昂贵的算力资源,我们不可能无限增加的。那在花了大价钱买到了有限资源的情况下,我们还可以通过什么方式加快模型训练,提高资源利用率呢?

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

本文将为大家介绍的就是 iGear 高性能缓存加速方案,我们先看一张简单的AI工作全流程服务示意图。

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

采集的数据通过 iGear 数据中台的筛选预处理、iGear 标注平台的标注后会形成优质训练数据集,这些数据集会流转到 iGear 训练平台来训练算法模型。
iGear 训练平台基于 Kubernetes 集群完成异构计算资源调度。在这个架构体系中计算和存储是分离的,数据集会放在远端的对象存储集群中,当运行模型训练任务时就需要访问远程存储来获取数据集,带来较高的网络 I/O 开销,也会造成数据集管理不便的问题。

本文提出的 iGear 高性能缓存加速方案要做的就是:

1.如何降低 I/O 开销,提高训练效率和 GPU 利用率?

2.如何管理数据集,提高用户易用性和便利性?

缓存方案概述

前文已经提及,数据集是存储在远端的对象存储集群中的。
为了提高数据集的易用性,常用方案是用 fuse 方式挂载给到训练任务,方便用户以普通文件目录的方式识别并使用数据集。
这种方式虽然满足了易用性,但高 I/O 的开销使得用户必须手动或者用脚本的方式将数据集提前同步到计算节点,这会增加用户在训练过程中的心智负担。
针对上述问题,我们对训练数据集做了优化,当用户开始准备训练时,通过 JuiceFS 实现数据集缓存引擎,为用户提供数据集缓存和预热功能,这既可以降低对远端对象存储的访问,又可以减少用户操作。充分利用计算集群本地存储来缓存数据集,通过两级缓存(训练节点的系统缓存+训练节点的磁盘缓存),加速模型训练速度,一定程度上也能提高 GPU 的利用率。

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

JuiceFS 是一款开源的面向云环境设计的高性能共享文件系统,在数据组织管理和访问性能上进行了大量针对性的优化,社区版本也有非常好的文档支撑,这里就不赘述了。

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

缓存方案测试

测试方案

我们之前使用的方案是使用 fuse 的方式直接挂载对象存储系统,将 S3 的 bucket 通过挂载的方式挂载到本地,提供访问远端对象存储数据的能力。优化后的高性能缓存加速方案,后端也是基于对象存储,只是在此基础之上提供了缓存、预热等功能,优化了存储的性能。
基于此我们做了以下两组对比实验,两组实验都是基于同一套对象存储,且其它条件保持一致。

  1. 开启或关闭高性能缓存加速的性能对比

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

  1. 使用高性能缓存加速方案和使用 fuse 挂载的性能对比

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

测试方式

在服务器物理机环境下,我们使用 PyTorch /examples 仓库中提供的 ResNet50 v1.5 进行模型训练,对其进行单机单卡、单机多卡的结果复现,同时对比执行过程花费的时长。

测试环境

硬件:Tesla V100-SXM2-32GB
驱动:Nvidia 450.80.02
操作系统:Ubuntu 20.04.1 LTS
测试工具:PyTorch ResNet50 v1.5提供的脚本
数据集:ImageNet

实验一:开启高性能缓存加速 VS 关闭高性能缓存加速

ResNet50 v1.5 batch_size = 128, worker=8

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

从上图可以看出,在没有缓存的情况下,训练任务处理的图片数并没有随着算力的增加而明显变化,说明已经到了 I/O 瓶颈阶段。而使用缓存后,随着算力的增加,处理的图片数也相应增加。
这证明使用缓存加速后,大大降低了 I/O 开销,同等算力情况下,训练速度也有了很大提升,其中单机 1 卡的训练速度提升了 22.3%,单机 4 卡的速度提升了 218%,单机8卡的速度提升了 230%

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

从模型训练时间角度来看,训练时间从未使用缓存加速的 1381 min 降低到 565 min,只用了原来 1/3 的时间就完成了模型训练。

第一组实验对比了数据集缓存前后的性能差异,验证了使用高性能缓存方案来加速 iGear 训练任务的必要性。

实验二:高性能缓存加速 VS fuse挂载

当前较为通用的方案是采用 fuse 的方式来挂载远端的对象存储到本地,提供用户对数据集的访问请求。为了对比目前普通 fuse 挂载的方案和高性能缓存加速的优化方案,我们设计了第二组实验:

ResNet50 v1.5 batch_size = 128, worker=8

上汽云 x JuiceFS : iGear 用了这个小魔法,模型训练速度提升 300%

从模型训练时间角度来看,fuse 挂载方案训练时间为 1448 min,高性能缓存加速优化方案可将训练时间减少到 565 min,将近 fuse 挂载方案的 1/3

因此,相比于传统直接使用对象存储,我们的高性能存储在训练速度上和训练时间上都有大幅度的提升。

第二组实验对比了不同方案下的模型训练时间,验证了使用高性能缓存方案来加速 iGear 训练任务的重要性。

结论

面对昂贵且有限的算力资源,我们可以通过高性能缓存加速方案去大幅加速 iGear 平台上训练任务的速度,极大地缩短模型训练时间,同时提高了 GPU 资源的利用率。如果算力进一步提升,收益也不仅仅止步于当前的测试环境。

作者:iGear老司机 ,原文链接:https://mp.weixin.qq.com/s/Lh...

如有帮助的话欢迎关注我们项目 Juicedata/JuiceFS 哟! (0ᴗ0✿)

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Python图像读写方法对比
  训练视觉相关的神经网络模型时,总是要用到图像的读写。方法有很多,比如matplotlib、cv2、PIL等。下面比较几种读写方式,旨在选出一个最快的方式,提升训练速度。实验标准  因为训练使用的框架是Pytorch,因此读取的实验标准如下:  1、读取分辨率都为1920x1080的5张图片(png格式一张,jpg格式四张)并保存到数
“深度学习一点也不难!”
“深度学习一点也不难!”通常情况下,机器学习尤其是深度学习的使用往往需要具备相当的有利条件,包括一个大型的数据集,设计有效的模型,而且还需要训练的方法——但现在,利用迁移学习就可以消除掉这些瓶颈。作者|CalebKaiser以下为译文:在
数据堂 数据堂
1年前
大模型数据集:探索新维度,引领AI变革
一、引言在人工智能(AI)的快速发展中,大型预训练模型如GPT、BERT等已经取得了令人瞩目的成果。这些大模型的背后,离不开规模庞大、质量优良的数据集的支撑。本文将从不同的角度来探讨大模型数据集的新维度,以及它们如何引领AI的变革。二、大模型数据集的新维度
数字先锋 | “言”之有“力”,大模型背后的算力“推手”!
在算力调度方面,天翼云通过自研的调度系统,协助思必驰DFM2大模型调度GPU、NPU、CPU等异构算力资源,大规模训练上云1个月,可以完成数十亿规模大模型所有阶段训练和效果评估。在训练能力打造方面,天翼云支持多种模型训练方式,不仅可以提升大模型训练平台的数据量,还大幅缩短了训练周期和交付进度。
高耸入云 高耸入云
1年前
如何做Bert模型的fine-tuning?近屿智能OJAC带你一探究竟
📖更多AI资讯请👉🏾选择合适的预训练模型:从预训练的BERT模型开始,例如Google提供的BERTbase或BERTlarge。这些模型已经在大量文本数据上进行过预训练了,我们如何对BERT模型进行finetuning呢?准备和预处理数据:集针对特
马尚 马尚
1年前
应用深度学习技术破解滑动验证码
要训练一个有效的深度学习模型来破解滑动验证码,首先需要大量的训练数据。这些数据包括滑动验证码的图片和对应的滑块位置。你可以通过爬虫技术从网站上收集这些数据,确保数据覆盖各种类型和难度的验证码。2.模型选择与训练在准备好数据后,接下来是选择合适的深度学习模型
京东云开发者 京东云开发者
5个月前
京东零售基于国产芯片的AI引擎技术
作者:京东零售李杰峰一、前言随着大模型的广泛应用,作为人工智能三大支柱之一的AI算力,已经成为竞争的焦点。从模型训练到推理,算力存在于大模型生命周期的每一环,极大程度地影响着模型在实际业务场景的性能与效果。面对京东海量数据的各种场景,缺乏坚实的算力基础就犹
数据堂 数据堂
2个月前
数据上新 | 全新高质量训练数据集重磅发布
数据堂全新发布多语种大模型预训练数据集、多模态大模型数据集、语音识别与计算机视觉训练数据集,全面助力企业打造更高精度、更强泛化能力的AI模型,轻松应对全球用户多样化的语言与应用场景需求,为智能升级提供坚实数据支撑。
京东云开发者 京东云开发者
1个月前
京东零售基于国产芯片的AI引擎技术
作者:京东零售李杰峰一、前言随着大模型的广泛应用,作为人工智能三大支柱之一的AI算力,已经成为竞争的焦点。从模型训练到推理,算力存在于大模型生命周期的每一环,极大程度地影响着模型在实际业务场景的性能与效果。面对京东海量数据的各种场景,缺乏坚实的算力基础就犹