0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

国产框架超越 PyTorch 和 TensorFlow?

人工智能与大数据技术 来源:中国网科学 作者:HyperAI超神经 2021-04-09 15:11 次阅读

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ce11a668-989f-11eb-8b86-12bb97331649.png

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

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

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

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

ce2f9e70-989f-11eb-8b86-12bb97331649.png

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

ce69eb84-989f-11eb-8b86-12bb97331649.png

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

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

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

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

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

cf9ae314-989f-11eb-8b86-12bb97331649.png

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

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

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

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

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

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

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

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

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

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

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 框架
    +关注

    关注

    0

    文章

    398

    浏览量

    17398
  • 开源
    +关注

    关注

    3

    文章

    3213

    浏览量

    42298
  • pytorch
    +关注

    关注

    2

    文章

    802

    浏览量

    13110
  • OneFlow
    +关注

    关注

    0

    文章

    9

    浏览量

    8786

原文标题:超越 PyTorch 和 TensorFlow,这个国产框架有点东西

文章出处:【微信号:TheBigData1024,微信公众号:人工智能与大数据技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    pytorch和python的关系是什么

    PyTorch已经成为了一个非常受欢迎的框架。本文将介绍PyTorch和Python之间的关系,以及它们在深度学习领域的应用。 Python简介 Python是一种高级、解释型、通用的编程语言,由Guido van Rossu
    的头像 发表于 08-01 15:27 1479次阅读

    PyTorch深度学习开发环境搭建指南

    PyTorch作为一种流行的深度学习框架,其开发环境的搭建对于深度学习研究者和开发者来说至关重要。在Windows操作系统上搭建PyTorch环境,需要综合考虑多个方面,包括软件安装、环境配置以及版本兼容性等。以下是一个详细的
    的头像 发表于 07-16 18:29 690次阅读

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google开发的一个开源深度学习框架,它允许开发者方便地构建、训练和部署各种复杂的机器学习模型。TensorFlow凭借其高效的计算性能、灵活的架构以及丰富的工具和库,在学
    的头像 发表于 07-12 16:38 524次阅读

    基于PyTorch的卷积核实例应用

    在深度学习和计算机视觉领域,卷积操作是一种至关重要的技术,尤其在图像处理和特征提取方面发挥着核心作用。PyTorch作为当前最流行的深度学习框架之一,提供了强大的张量操作功能和灵活的API,使得实现
    的头像 发表于 07-11 15:19 348次阅读

    pytorch如何训练自己的数据

    本文将详细介绍如何使用PyTorch框架来训练自己的数据。我们将从数据准备、模型构建、训练过程、评估和测试等方面进行讲解。 环境搭建 首先,我们需要安装PyTorch。可以通过访问PyTorc
    的头像 发表于 07-11 10:04 416次阅读

    pytorch中有神经网络模型吗

    当然,PyTorch是一个广泛使用的深度学习框架,它提供了许多预训练的神经网络模型。 PyTorch中的神经网络模型 1. 引言 深度学习是一种基于人工神经网络的机器学习技术,它在图像识别、自然语言
    的头像 发表于 07-11 09:59 596次阅读

    tensorflowpytorch哪个更简单?

    PyTorch更简单。选择TensorFlow还是PyTorch取决于您的具体需求和偏好。如果您需要一个易于使用、灵活且具有强大社区支持的框架Py
    的头像 发表于 07-05 09:45 697次阅读

    tensorflowpytorch哪个好

    tensorflowpytorch都是非常不错的强大的框架TensorFlow还是PyTorch哪个更好取决于您的具体需求,以下是关于这
    的头像 发表于 07-05 09:42 602次阅读

    keras模型转tensorflow session

    和训练深度学习模型。Keras是基于TensorFlow、Theano或CNTK等底层计算框架构建的。TensorFlow是一个开源的机器学习框架,由Google Brain团队开发。
    的头像 发表于 07-05 09:36 433次阅读

    PyTorch的特性和使用方法

    使用Python重新写了很多内容,使其更加灵活易用。它不仅是一个拥有自动求导功能的深度神经网络框架,还可以看作是一个加入了GPU支持的NumPy。PyTorch支持动态图,允许在运行时构建计算图,这使得模型开发和调试过程更加直观和方便。
    的头像 发表于 07-02 14:27 445次阅读

    TensorFlowPyTorch深度学习框架的比较与选择

    深度学习作为人工智能领域的一个重要分支,在过去十年中取得了显著的进展。在构建和训练深度学习模型的过程中,深度学习框架扮演着至关重要的角色。TensorFlowPyTorch是目前最受欢迎的两大深度
    的头像 发表于 07-02 14:04 834次阅读

    使用PyTorch构建神经网络

    PyTorch是一个流行的深度学习框架,它以其简洁的API和强大的灵活性在学术界和工业界得到了广泛应用。在本文中,我们将深入探讨如何使用PyTorch构建神经网络,包括从基础概念到高级特性的全面解析。本文旨在为读者提供一个完整的
    的头像 发表于 07-02 11:31 616次阅读

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlowTensorFlow是一个开源的机器学习框架
    的头像 发表于 03-01 16:25 763次阅读

    中国人工智能框架的三个行业趋势

    由于历史和使用习惯的原因,TensorFlowPyTorch 在中国的知名度也领先于其他人工智能框架,分别排在前两位。
    发表于 01-29 14:41 420次阅读
    中国人工智能<b class='flag-5'>框架</b>的三个行业趋势

    XLA和PyTorch的链接代码示例

    XLA (Accelerated Linear Algebra)是一个开源的机器学习编译器,对PyTorchTensorflow、JAX等多个深度学习框架都有支持。最初XLA实际上是跟
    的头像 发表于 11-17 10:54 651次阅读