50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

ImageNet Training in Minutes

  • 2019-11-29
  • 本文字数:995 字

    阅读完需:约 3 分钟

ImageNet Training in Minutes

摘要与介绍


目前,缩短 DNN 的训练时间是一个热点,通用的方法聚焦于开发一种新的训练算法可在保证不损失精确性的前提下增大 batch 的大小,当然这些方法基本都基于数据并行的同步 SGD 进行参数更新。这其中经历了 batch_size 从 1K 到 8K,再增大到 32K 的过程。本文通过 LARS 算法使用 1000 个 cpu 在 11 分钟内完成了 100 个 epoch 的 Imagenet 训练集的训练,模型是 AlexNet,batch 设的是 32K,取的了 58.6%的 accuracy。另外在 resnet50 模型上,通过 64 个 epoch 的训练,在 14 分钟之内取得了 74.9% top-1 test 集的 accuracy 。另外,当 batch_size 大于 16K 时,通过 LARS 算法训练的准确率要高于 Facebook 的一小时训练 imagenet 那篇文章中的结果。如下图:



本文提出的算法使用了两个硬件:Intel Skylake CPU 和 Intel KNL(通用的深度学习加速器)。看到这心凉了,又是硬件在支撑。。。


计算通信比是指模型的计算代价/通信代价,一般计算通信比越高,越容易通过分布式来进行加速。如下表:ResNet50 的计算通信比要高于 AlexNet,所以 ResNet50 的分布式训练加速效果要好。另外大的 batch_size 可以减小通信代价,因为大的 batch 意味着更少轮次的迭代。



本文使用的方法是:LARS + Warmup。


下面具体介绍下 LARS 算法:


标准的 SGD 对于网络的每一层都使用相同的学习率 LR,当学习率很大时,更新的幅度会很大,容易导致发散的情况。这就使得模型在最初阶段对于 weight 的初始化和学习率设置显得十分重要。另外权重与梯度的 L2-norm 比 在不同 weight、layer 见变动很大。



warm-up 方法会在一开始先从小的学习率开始,然后逐步增大到大的学习率。LARS 则会对于每一层使用一个 local 学习率 [公式] :



其中 [公式] 是整体的学习率,[公式]是每一层的学习率,计算方法为:



如果加上 weight decay 参数 [公式] 后,上式可写成:



完整的 LARS 算法为:



实验结果:


这里就贴一个 resnet50 的结果吧,可以看出使用 LARS 算法可以将 batch size 扩展到 32k,另外还可以使用更廉价的芯片进行计算。使用 512 个 Intel KNL 可在 1 个小时内完成训练。512 个 KNL 按照市场价是 120 万美金,远远低于之前 Facebook 的 410 万美金 (32 台 NVIDIA DGX 工作站)。



与其它方法的对比:



参考文献:


https://arxiv.org/pdf/1709.05011.pdf


https://arxiv.org/pdf/1708.03888.pdf


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/81243154


2019-11-29 08:00868

评论

发布
暂无评论
发现更多内容

RadonDB ClickHouse on K8s 2.1.0 发布!

RadonDB

数据库 Kubernetes Clickhouse RadonDB

电商秒杀系统

伏波

架构

北鲲云超算平台如何成为就生命科学云计算领域先行者?

北鲲云

阿里大牛教你如何用Dubbox+SpringBoot+Docker架构,实现双11项目

编程 程序员 springboot

十年数据库专家,呕心力作MySQL技术精粹,薪资直涨3K其实很轻松

数据库 程序员 MySQL 数据库

软件架构治理 之 架构混沌之谜

码猿外

架构 软件架构治理

2021年10月云主机性能评测报告

博睿数据

杂谈——程序人生我的大学

思想者杰克

Bash 脚本简介

码语者

bash Shell

新消费:如何度过从0到1的破局期?

石云升

学习笔记 11月日更 新消费

布局人工智能,银行有的不只是智能客服

CECBC

区块链+农业开启智能化生产时代 解决世界性食品及粮食安全问题

CECBC

如何在实际场景中使用异常检测?阿里云Prometheus智能检测算子来了

阿里巴巴云原生

阿里云 云原生 Prometheus 异常检测

【死磕Java并发】-----深入分析synchronized的实现原理

chenssy

死磕 Java 死磕 Java 并发

科技热点周刊|ClickHouse 融资 2.5 亿美元、个人信息保护法正式实施、Facebook 改名 Meta

青云技术社区

云计算 facebook 云原生

操作系统——计算机硬件简介

思想者杰克

区块链的抽象与演进

CECBC

前后端、多语言、跨云部署,全链路追踪到底有多难?

阿里巴巴中间件

阿里云 云原生 中间件 全链路追踪

杂谈—程序人生第一份工作

思想者杰克

程序人生 新手指南 程序

CRM WebClient UI的浏览器打印实现

汪子熙

JavaScript CRM SAP UI5 JavaScript图表库 11月日更

面试必备!阿里内部Java面试八股文出炉,教科书式完美回答

Sakura

Java 程序员 架构 面试

赋能优秀传统文化,区块链助力讲好中国故事

CECBC

架构课毕业总结

伏波

架构

模块七作业

Geek_fc100d

「架构实战营」

20道阿里面试必问JVM面试专题(文末附送答案及JVM学习文档)

编程 程序员 JVM

不敢想,做个博客竟如此简单!

程序员鱼皮

博客

央行数字货币即将破茧,一场大变局,震撼全球!

CECBC

Eureka 源码之客户端注册

悟空聊架构

Eureka 源码剖析 注册中心 悟空聊架构

pygame 小游戏前的准备工作要做足

梦想橡皮擦

11月日更

端开发技术——5个高效的Flutter开发工具

思想者杰克

SAP CRM和C4C的内容管理(Content Management)

汪子熙

内容 CRM C4C 11月日更

ImageNet Training in Minutes_语言 & 开发_Alex-zhai_InfoQ精选文章