查看原文
其他

95%PyTorch库都会中招的bug!特斯拉AI总监都没能幸免

喜欢就关注我们吧!

01
英伟达颠覆CPU!长发黄仁勋杀入英特尔地盘,ARM架构CPU性能高10倍

英伟达凡尔赛一号玩家黄仁勋来了!他带着自家ARM架构CPU从加速器辅路杀进了CPU三环主路,战火直接烧到了英特尔后院,帕特·基辛格同志要小心了!

今年,「GPU大哥」英伟达居然「不讲武德」,发布一个基于Arm架构的新数据中心CPU Nvidia Grace,它将直接挑战英特尔在服务器和数据中心计算领域的主导地位。
随着英伟达进军CPU领域,且能大大超越Intel和AMD的处理器,英特尔和AMD或将在这一技术领域输掉竞争? 先来看看英伟达的CPU有多强。
这款名为Grace的CPU使用了节能 Arm 核心—— Neoverse,为系统训练大型人工智能模型提供了巨大的性能飞跃。 具体讲,基于Grace的系统与NVIDIA GPU紧密结合,性能将比目前最先进的NVIDIA DGX系统(在x86 CPU上运行)高出10倍。 它能够满足世界上最先进应用的计算需求,包括自然语言处理、推荐系统和人工智能超级计算,这些应用分析需要超快计算性能和大容量内存中的巨大数据集。 Grace还是一款高度专用型处理器,主要面向大型数据密集型HPC和AI应用。新一代NLP模型的训练会有超过一万亿的参数。

这款CPU的基本性能是第四代Nvidia NVLink互连技术,该技术在Grace和Nvidia图形处理单元之间提供每秒900 GB的连接,使总带宽比目前领先的服务器高出30倍。 英伟达表示,新产品将于2023年初上市。

信息来源:新智元
02CPU 比 GPU 训练神经网络快十几倍,英特尔:别用矩阵运算了
神经网络训练通常是 GPU 大显身手的领域,然而莱斯大学和英特尔等机构对 GPU 的地位发起了挑战。
在深度学习与神经网络领域,研究人员通常离不开 GPU。得益于 GPU 极高内存带宽和较多核心数,研究人员可以更快地获得模型训练的结果。与此同时,CPU 受限于自身较少的核心数,计算运行需要较长的时间,因而不适用于深度学习模型以及神经网络的训练。

但近日,莱斯大学、蚂蚁集团和英特尔等机构的研究者发表了一篇论文,表明了在消费级 CPU 上运行的 AI 软件,其训练深度神经网络的速度是 GPU 的 15 倍。这篇论文已被 MLSys 2021 会议接收。

论文链接:https://proceedings.mlsys.org/paper/2021/file/3636638817772e42b59d74cff571fbb3-Paper.pdf
Shrivastava 领导的实验室在 2019 年做到了这一点,将 DNN 训练转换为可以用哈希表解决的搜索问题。他们设计的亚线性深度学习引擎(sub-linear deep learning engine, SLIDE)是专门为运行在消费级 CPU 上而设计的,Shrivastava 和英特尔的合作伙伴在 MLSys 2020 会议上就公布了该技术。他们表示,该技术可以超越基于 GPU 的训练。

信息来源:Python视界
03飞桨分布式训练又推新品,4D混合并行可训千亿级AI模型


最近,飞桨提出了4D混合并行策略,以训练千亿级稠密参数模型。


近几年,深度学习领域的开发者们对模型效果的追求愈演愈烈,各大榜单纪录不断刷新,而这个现象的背后都有着 “大规模训练” 的身影。在数据和参数规模增长的过程中,常规的单机训练由于硬件资源的限制渐渐显得捉襟见肘,而分布式训练则成为了广大开发者的必然选择。



历经搜索推荐业务磨炼

最成熟万亿稀疏参数模型训练技术一骑绝尘

搜索推荐场景经常面临数据量大、特征维度高且稀疏化的问题。而分布式训练的参数服务器模式采用了一种将模型参数中心化管理的方式来实现模型参数的分布式存储和更新,该模式有两个角色 Server 与 Worker:Worker 用于执行模型的前向与反向计算;Server 负责从各个 Worker 收集汇总梯度并更新参数,因此对于存储超大规模模型参数的训练场景十分友好,常被用于训练拥有海量稀疏参数的搜索推荐领域模型。



从传统纯CPU参数服务器

到纯GPU参数服务器

传统的纯 CPU 参数服务器,由高性能异步训练 Worker、高效通信策略和高性能 Server 组成。通常可以使用的 CPU 数量较多,训练中能够充分展示 CPU 多核的吞吐量优势。在异步训练模式下训练简单模型可以极大提升数据吞吐量,整体训练速度非常出色。



从传统纯GPU参数服务器

到异构参数服务器

在纯 GPU 的参数服务器下,所有的训练都在 GPU 中,当模型中部分网络层比较复杂的时候,GPU 利用率很难被打满,而 GPU 机器中 CPU 与 GPU 的硬件配比是固定的,无法灵活调整。针对这种情况,有两种解决方案:
  • 定制化 GPU 机型,调整机器内 CPU 与 GPU 的硬件配比。

  • 混布 CPU 和 GPU 机器节点,来调整机器间的硬件配比。



4D 混合并行策略支持

文心ERNIE千亿语言模型训练

当前飞桨集合通信模式已经可以支持文心 ERNIE 千亿语言模型的训练能力,其 Sharding-DP 策略更是在近期助力文心 ERNIE 的多项任务分数刷新 GLUE 榜单。而这个 Sharding-DP 策略正是飞桨集合通信模式为了训练 ERNIE 这样的大规模复杂模型所支持的多种并行策略中的一种。



写在最后

如今飞桨已经开始研究下一代分布式技术,来同时兼容超大规模稠密参数和稀疏参数模型的训练。相信在实际产业应用这个核心驱动力推动下,飞桨分布式训练必将成为星辰大海上的那颗北极星,为广大开发者们指引航向。

信息来源:飞桨PaddlePaddle

04AI一键去纹身,几秒钟让你看见明星「真面目」

深度学习去纹身的应用,看起来有不小的应用潜力。

有些时候,我们需要把一些人身上的纹身覆盖掉,以避免引人效仿。有的时候人们只是单纯地好奇,想知道一些大明星如果没有纹身会是什么样子。来自印度的机器学习研究者 Vijish Madhavan 最近开源的一个机器学习工具 SkinDeep 满足了我们的需求。


该项目的作者 Vijish Madhavan 在看完加拿大歌手贾斯汀 · 比伯的 MV《Anyone》后,萌生了做这个项目的计划。贾斯汀 · 比伯在化妆师的帮助下花了好几个小时的时间才把他的一身纹身覆盖掉。
MV 视频的效果非常完美,因为制作视频输出是非常困难的,因此项目作者选择图像来处理。该项目的起点是深度学习能否胜任这项工作,与 photoshop 相比又如何?

项目地址:https://github.com/vijishmadhavan/SkinDeep
与专业图像处理软件 photoshop 相比,效果也不错:
看起来 SkinDeep 的效果还不错,但如果纹身是彩色的,还会有一些残留的痕迹。

信息来源:机器之心

0595%PyTorch库都会中招的bug!特斯拉AI总监都没能幸免

到底是怎样的一个bug,能让95%的Pytorch库中招,就连特斯拉AI总监深受困扰?还别说,这个bug虽小,但有够“狡猾”的。这就是最近Reddit上热议的一个话题,是一位网友在使用再平常不过的Pytorch+Numpy组合时发现。最主要的是,在代码能够跑通的情况下,它甚至还会影响模型的准确率!事情的起因是一位网友发现,在PyTorch中用NumPy来生成随机数时,受到数据预处理的限制,会多进程并行加载数据,但最后每个进程返回的随机数却是相同的。他还举出例子证实了自己的说法:如下是一个示例数据集,它会返回三个元素的随机向量。这里采用的批量大小分别为2,工作进程为4个。然后神奇的事情发生了:每个进程返回的随机数都是一样的。这个结果会着实让人有点一头雾水,就好像数学应用题求小明走一段路程需要花费多少时间,而你却算出来了负数。发现了问题后,这位网友还在GitHub上下载了超过10万个PyTorch库,用同样的方法产生随机数。结果更加令人震惊:居然有超过95%的库都受到这个问题的困扰!这其中不乏PyTorch的官方教程和OpenAI的代码,连特斯拉AI总监Karpathy也承认自己“被坑过”!但有一说一,这个bug想要解决也不难:只需要在每个epoch都重新设置seed,或者用python内置的随机数生成器就可以避免这个问题。


这到底是不是一个bug?

在Reddit上有人认为:这不是一个bug。
虽然这个问题非常常见,但它并不算是一个bug,而是一个在调试时不可以忽略的点。
就是这个观点,激起了千层浪花,许多人都认为他忽略了问题的关键所在。
这不是产生伪随机数的问题,也不是numpy的问题,问题的核心是在于PyTorch中的DataLoader的实现
也有用户补充说,如果 95% 以上的用户使用时出现错误,那么代码就是错的。
顺便一提,这提供了Karpathy定律的另一个例子:即使你搞砸了一些非常基本代码,“neural nets want to work”。

信息来源:量子位


yyds!用深度学习框架玩明日方舟,高端!

2021-04-17

为什么Python是机器学习的最佳选择?

2021-04-18

Edge浏览器提供性能模式,专为高性能用户设计

2021-04-19



觉得不错,请点个在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存