首页 > 其他分享 >超越 PyTorch 和 TensorFlow,这个国产框架有点东西

超越 PyTorch 和 TensorFlow,这个国产框架有点东西

时间:2023-05-04 22:08:56浏览次数:64  
标签:袁进辉 OneFlow 框架 国产 学习 PyTorch 深度 TensorFlow 开源


By 超神经


内容概要:都已经有这么多深度学习框架了,为什么还要搞个 OneFlow?在机器学习领域,袁进辉看的比 90% 的人都长远。 


关键词:开源   深度学习框架   OneFlow



在深度学习领域,PyTorch、TensorFlow 等主流框架,毫无疑问占据绝大部分市场份额,就连百度这样级别的公司,也是花费了大量人力物力,堪堪将 PaddlePaddle 推入主流。


在这样资源主导、肉食者谋的竞争环境下 ,一家国产深度学习框架的创业公司 OneFlow 出现了。


它以处理大规模模型见长,甚至今年将全部源码和实验对比数据,在 GitHub 进行了开源。


质疑不可避免的出现了:OneFlow 这种擅长解决大模型训练的新架构有必要吗?深度学习框架的效率有那么重要吗?创业公司有可能在竞争中脱颖而出么?


我们借着 CosCon 20' 开源年会的机会,采访了一流科技 CEO 袁进辉,了解到了他和一流科技的工程师们,1300 多个日日夜夜、数十万行代码背后的故事。


 光环再多,创业也得一步一个脚印


2016 年 11 月,袁进辉在清华附近的一栋写字楼里,写下了 OneFlow 的第一版设计理念。此时的袁进辉刚刚从工作了近 4 年的微软亚洲研究院(MSRA)离职。


「MSRA 前员工」并不是袁进辉身上唯一的 tag,2003 年从西安电子科技大学本科毕业后,他被保送到清华大学计算机系继续直博学习,师从中国科学院院士、中国 AI 学科奠基人之一张钹教授。


超越 PyTorch 和 TensorFlow,这个国产框架有点东西_开发者

2016 年 12 月,袁进辉在微博发布零号员工工位照片

正式宣布创业开始


2008 年袁进辉从清华大学毕业后,先后加入网易、360 搜索。他开发的鹰眼系统,被中国国家队作为日常训练辅助系统。除此之外,他在 MSRA 工作期间,专注于大规模机器学习平台,还研发出了当时世界上最快的主题模型训练算法和系统 LightLDA,被应用于微软在线广告系统。


LightLDA 于 2014 年面世,仅仅两年之后,独具慧眼的袁进辉就又萌生了一个大胆地猜想:随着业务需求和场景的丰富,能高效处理大模型训练的分布式深度学习框架,必然成为继 Hadoop、Spark 之后,数据智能时代基础设施的核心。


但是当时主流的深度学习框架都是由 Google、Amazon、Facebook 等大厂牵头开发的,即使是国内情况也类似。这由于开发深度学习框架不光需要雄厚的研发成本,更重要的是能耐得住寂寞,做好打持久战的准备,因此尚没有初创企业敢在该领域试水。


已有的深度学习框架都已经打的如火如荼了,一家初创企业,又搞出来一个新框架,会有用户买单吗?行动派袁进辉不但敢想,他还敢干。


敲下 OneFlow 第一行代码的时候,他还没想清楚详细地实现策略,更谈不上完善的业务逻辑。他的想法很简单,又很复杂,要做一款「开发者爱用」的产品。


 一群天才+21 个月,OneFlow 初版上线


2017 年 1 月,袁进辉成立一流科技,召集了 30 多位工程师,开启了 OneFlow 的正式「团战」。尽管大家对困难已经做了充分预估,但是随着开发的逐渐深入,涌现的重重困难还是出乎的团队的意料。


深度学习框架的技术非常复杂,况且 OneFlow 采用了一个全新的技术架构,没有先例可以参考,光是把技术设想跑通,就花了快两年时间。


超越 PyTorch 和 TensorFlow,这个国产框架有点东西_开发者_02

从成立时一个孤独的工位,到如今精干的团队

强壮了这支国产深度学习框架的队伍


2018 年秋天,一流科技的发展进入了最艰难的阶段。产品研发迟迟不能定型,一些员工的耐心跟信心消耗殆尽,加上公司下轮融资一波三折,团队的士气和信心面临极大挑战。


在创业圈有个「18 个月魔咒」的说法,意思是一年半没看到希望,没有正反馈,创业团队的心态就会发生变化,失去耐心。袁进辉意识到,不能再等了,必须要尽早在真实场景去使用 OneFlow,让大家看到 OneFlow 的创新的确是有价值的, 从而形成正反馈。


2018 年 9 月,在经历了长达 1 年 9 个月的研发后,袁进辉和团队推出了 OneFlow 闭源版。当时 OneFlow 还没有开源,也存在大大小小的问题,但产品正式发布了,总算是给团队成员吃了个定心丸。


 专注大规模训练,效率秒杀同类框架


2018 年 11 月,幸运之神降临到一流科技。Google 推出了最强自然语言模型 BERT,开启了 NLP 新时代。这验证了袁进辉的预测,擅长处理大规模训练的新架构,是必须且必要的。


很快,一流科技的工程师就基于 OneFlow 支持了 BERT-Large 的分布式训练,这也是当时唯一一个支持分布式 BERT-Large 训练的框架,性能和处理速度远超已有的开源框架。 


超越 PyTorch 和 TensorFlow,这个国产框架有点东西_初创企业_03

OneFlow 异构分布式流式系统架构图


OneFlow 「一战成名」,这也为一流科技积累第一批头部互联网企业用户提供了契机。令人倍感意外的是,当时的袁进辉因为「仍对产品不满意」,所以选择了一条格外低调的路。


从 2018 年 9 月闭源版本发布,到 2020 年 7 月正式开源,袁进辉又用了 22 个月来打磨 OneFlow。他和团队一边持续优化经典模型,一边解决原来没预计到的问题,在袁进辉看来,哪怕是产品文档没做好,他都不会轻易把 OneFlow 推到台面上。


2020 年 7 月 31 日,OneFlow 正式在 GitHub 开源。这个以训练大规模模型著称的开源框架,第二次站到聚光灯下,完美诠释了四个字--效率为王。


超越 PyTorch 和 TensorFlow,这个国产框架有点东西_深度学习_04

深度学习框架版图几乎由美国企业主导

超越 PyTorch 和 TensorFlow,这个国产框架有点东西_初创企业_05

国内开源的深度学习框架版图中

只有 OneFlow 是由初创企业研发并开源


训练速度更快、GPU 利用率更高、多机加速比更高、运维成本更低、用户上手难度更低,五个强大优势让 OneFlow 能快速适应各个场景,并进行快速延展。袁进辉和团队对 OneFlow 的性能追求和优化,达到了极致。

 

近期,OneFlow 发布了 v0.2.0 版本,更新的性能优化多达 17 个,使得 CNN 和 BERT 的自动混合精度训练速度大幅提升。


开发团队还建立了一个名为 DLPerf 的开源项目,将实验环境、实验数据、可复现算法完全开源,测评了在相同的物理环境上(4台 V100 16G x8的机器),OneFlow 和其他几个主流框架在 ResNet50-v1.5 和 BERT-base 模型上的吞吐率及加速比。


超越 PyTorch 和 TensorFlow,这个国产框架有点东西_深度学习_06

7 个框架在 ResNet50-v1.5 模型上的吞吐率对比


结果证明 OneFlow 在单机单卡、多机多卡下的吞吐率都明显领先其他框架,成为在主流旗舰显卡(V100 16G)上训练 ResNet50-v1.5 和 BERT-base 模型最快的框架,OneFlow ResNet50-v1.5 AMP 单卡比 NVIDIA 深度优化过的 PyTorch 快 80%, 比 TensorFlow 2.3 快 35%。


具体评测报告可访问以下链接:

https://github.com/Oneflow-Inc/DLPerf


 直面质疑,做赛道的「少数派」


事实上,OneFlow 从诞生至今,受到的质疑并不在少数,「上车晚且生存空间狭小」是最主流的声音,对此袁进辉表现出了超乎寻常的坦然。


超越 PyTorch 和 TensorFlow,这个国产框架有点东西_深度学习_07

上不少从业者早期都对 OneFlow 持质疑态度


在他看来,深度学习框架本就是一个新生事物,技术和产业都在中早期,不存在上车早晚的问题。在技术收敛之前,性能高、易用性强、符合用户使用价值的产品,就会受到用户的青睐。


至于生存空间小一说,更是子虚乌有。开源让小公司和大公司的产品有机会公平竞技,优秀的新生框架挑战权威的框架,正是开源精神的内核之一。


质疑声并没有阻碍 OneFlow 的发展,相反,袁进辉和团队加快了 OneFlow 的升级和完善进程,更新优化性能、梳理开发者文档、收集社区反馈……这些努力和坚持,为 OneFlow 吸引了更多用户,其中不乏最初的「怀疑论者」。


超越 PyTorch 和 TensorFlow,这个国产框架有点东西_深度学习_08

OneFlow 开源后,吸引了众多铁粉


在 COSCon'20 中国开源年会上,袁进辉做了题为《深度学习训练系统演进》的分享,向所有开发者介绍了 OneFlow 下一步的开发规划,除了坚持效率为王、继续性能优化外,开发团队还在努力降低用户的学习成本和迁移成本。目前 PyTorch 用户迁移到 OneFlow 的成本已经相当低了,因为二者的用户接口几乎一样,已训练好的模型转换成 OneFlow 的成本也足够低。




点击播放袁进辉在 COSCon'20 的完整分享


客观讲,OneFlow 在完备性和易用性上,与 TensorFlow 和 PyTorch 相比还有差距。但是,OneFlow 的特色是效率高、扩展性好以及分布式特别容易使用,非常适合大规模人脸识别、大规模广告推荐系统、以及类似 GPT-3 这种模型参数巨大的模型训练场景。


采访的最后袁进辉老师也毫不掩饰对人才的渴望,他表示 OneFlow 正在招聘机器学习工程师以及深度学习工程师,非常欢迎有识之士加入这个朝气勃勃、渴望胜利的团队。



—— 完 ——





超越 PyTorch 和 TensorFlow,这个国产框架有点东西_初创企业_09

标签:袁进辉,OneFlow,框架,国产,学习,PyTorch,深度,TensorFlow,开源
From: https://blog.51cto.com/u_16060192/6244536

相关文章

  • 4款支持私有部署的国产办公软件,安全又好用
    我们每天工作接触最多的就是电脑,但不少在政府、国企、大企业出于安全性考虑采用内网环境办公,无法使用基于Saas部署的办公软件,影响工作效率。废话不多说,下面分享四款支持私有部署的国产办公软件,支持内网环境使用,安全又实用。 一、石墨文档  石墨文档是一款基于云端的国产......
  • windows 配置 cuda pytorch
    1.进入 https://pytorch.org,依次选择 PyTorchBuild->YourOS->Package->Language->ComputePlatform,然后会生成安装命令或下载链接,执行或下载安装即可如果没有GPU,ComputePlatform选CPU即可  对于CUDA版本,可以执行cmd命令查看本地显卡支持的版本:nvidia-smi......
  • 【2023 · CANN训练营第一季】昇腾AI入门Pytorch
    昇腾AI全栈架构华为AI全栈全场景解决方案为4层,分别为芯片层、芯片使能层、AI框架层和应用使能层。芯片基于统一、可扩展架构的系列化AIIP和芯片,为上层加速提供硬件基础。芯片产品:昇腾310和昇腾910的独立芯片,Nano-Tiny-Lite的非独立芯片。Ascend层,一切集成电路的核心,主要作用......
  • pytorch模型降低计算成本和计算量
    下面是如何使用PyTorch降低计算成本和计算量的一些方法:压缩模型:使用模型压缩技术,如剪枝、量化和哈希等方法,来减小模型的大小和复杂度,从而降低计算量和运行成本。分布式训练:使用多台机器进行分布式训练,可以将模型训练时间大大缩短,提高训练效率,同时还可以降低成本。硬件加......
  • 【pytorch】为什么 ToTensor 后紧接 Normalize 操作?
    学习pytorch的transforms一节中产生疑问:ToTensor操作中图像数据满足[0,255]条件会进行线性归一化,映射到[0,1]。在ToTensor操作后一般紧接着Nomalize操作,又进行了一次标准差归一化。既然已经归一化了一次,为什么还要再来一次?以下是我在网络上找到的一些答案:数据如果......
  • 【pytorch】土堆pytorch教程学习(四)Transforms 的使用
    transforms在工具包torchvision下,用来对图像进行预处理:数据中心化、数据标准化、缩放、裁剪、旋转、翻转、填充、噪声添加、灰度变换、线性变换、仿射变换、亮度/饱和度/对比度变换等。transforms本质就是一个python文件,相当于一个工具箱,里面包含诸如Resize、ToTensor、Nor......
  • 医学图像的深度学习的完整代码示例:使用Pytorch对MRI脑扫描的图像进行分割
    图像分割是医学图像分析中最重要的任务之一,在许多临床应用中往往是第一步也是最关键的一步。在脑MRI分析中,图像分割通常用于测量和可视化解剖结构,分析大脑变化,描绘病理区域以及手术计划和图像引导干预,分割是大多数形态学分析的先决条件。本文我们将介绍如何使用QuickNAT对人脑的......
  • 代码笔记27 numpy和pytorch中的多维数组切片
    原来还可以用数组切数组,我算是长见识了。不多说了,直接上代码应该可以明白importnumpyasnpxyz=np.arange(36).reshape(3,4,3)B,N,C=xyz.shapefarthest=np.random.randint(0,N,size=B)#torch.randint(0,N,(B,),dtype=torch.long)#初始时随机选择一点(B......
  • 【pytorch】土堆pytorch教程学习(三)TensorBoard的使用
    TensorBoard是TensorFlow的可视化工具包,提供机器学习实验所需的可视化功能和工具:跟踪和可视化损失及准确率等指标可视化模型图(操作和层)查看权重、偏差或其他张量随时间变化的直方图将嵌入投射到较低的维度空间显示图片、文字和音频数据剖析TensorFlow程序安装Tenso......
  • 关于pytorch包的测试问题
    pytorch的官方github项目有个文件专门用于测试torch是否安装成功,例如:https://github.com/pytorch/pytorch/blob/v1.11.0/test/test_torch.py但是我们平时测试一个pip包是否安装成功,都是直接import来测试,这样的测试方式显然是不够全面,上面的测试方法就是对很多个方法来测试。但是......