开源基础软件大时代,与国产深度学习框架一起乘风破浪

article/2025/1/14 20:41:36

深度学习框架是当前人工智能领域业界公认的最重要的基础设施软件,也被称作AI领域的操作系统,上承算法和应用,下接硬件芯片。深度学习框架技术栈覆盖理论算法、编译器、分布式系统、异构计算等硬核技术。

OneFlow 是世界范围内唯一一款由初创企业开源的通用深度学习框架,由国内创业团队一流科技研发,是深度学习框架事实工业标准的最有力竞争者之一。

本期 “开源软件开发” 课程介绍国产开源深度学习框架OneFlow的开源历程,希望对深度学习框架感兴趣的朋友可以参与OneFlow社区,与优秀的国产开源项目共同成长。

GitHub - Oneflow-Inc/oneflow: OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient. - GitHub - Oneflow-Inc/oneflow: OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.https://github.com/Oneflow-Inc/oneflow/

1、为什么研发OneFlow深度学习框架?

软件平台不仅要解决眼前的需求,更要面向未来的需求。现有的软件平台技术方案大同小异,对于单设备或多设备数据并行这种简单场景的支持已经非常优秀,但从BERT模型开始,GPT-2、GPT-3等超大模型成为常见现象或者具有复杂拓扑结构的神经网络时,易用性和效率都大打折扣,有这种需求的工业级应用只好使用定制化解决方案(譬如英伟达的Megatron),而无法使用通用软件平台实现。

从BERT模型开始,GPT-2、GPT-3等超大模型不断出现,当超过千亿级别特征数量的模型成为常见现象时,硬件水平发展导致内存墙逼近算力的天花板。受限于物理定律,单一设备的算力及内存容量对持续提高芯片的集成越来越困难,难以满足大模型规模扩大的需要。

本质上,设备之间互联带宽远低于设备内访存带宽,面临和传统CPU 上内存墙(Memory Wall)类似的难题,而分布式则是近两年框架领域的核心问题。

OneFlow最早探索这方面的技术路径,并且开创的一些关键技术已经产生了国际影响力。我们在分布式上的杀手锏是通过技术创新解决深度学习框架的效率和编程易用性问题,有了这样的解决方案,让算法工程师等AI应用开发者既能享受软件的灵活和便利,又能享有专用硬件的高效性。

我们坚信,通用的解决方案是技术收敛的方向,只有通用的解决方案才可能成长为Hadoop那样的事实工业标准。

随着AI成为通用技术、更加普惠化,未来的商业机会可能将出现在基础设施层,因为AI Infra的壁垒足够大,而且越往底层标准化程度越高。

2、为什么用创业的方式研发框架?

创业是社会资源组织和分配的一种优秀机制,能最大化这项事业的成功率。首先,社会会赋予创业团队做这件事所需要的资源(资金和人才)、灵活和敏捷,在大公司,未必是最适合做这项事业的人或志同道合的人来承担这样的项目。

其次,在创业团队内部做到最公平的利益分配才能最大激发成员的主观能动性,鼓励创新和承担风险,需要具有聪明材质和热情的人才持久的投入,没有合理的利益分配机制是难以保证的。

3、为什么选择开源OneFlow?

开源代表一种更先进的生产方式,是软件分发效率最高的手段,打破了传统软件销售模式的信息不对称,是一种公平、公正的筛选机制。由于市场和技术的双向选择,开源已经成为了基础软件研发的主流,并且将会成为未来的大多数软件研发的首选模式。

4、为何不担心技术秘密的泄漏?

首先,开源是希望更多人使用和贡献OneFlow,开源软件被最多人使用就成功了,有利于快速构建开源生态,确立事实工业标准的位置,从而实现商业目标,保密反而不利于实现这个目的。

其次,基于Apache 2.0协议,只要给予我们相应的credit,欢迎任一项目使用OneFlow的代码。此外,公开的“秘密”不是秘密,在深度学习框架这种基础软件领域,只是简单复制OneFlow的一些想法远远不够,如果自己没有拥有足够大的创新优势,顶多只是一个跟随者,无益于赢得用户的认可,这种项目不会走远。

5、开源2年,OneFlow做到了什么程度?

OneFlow分布式深度学习框架是基于对人工智能技术和应用发展需求的领先数年的前瞻性思考,针对超大规模训练、分布式、异构等带来的挑战,采用全新的“静态编译+流式系统”架构,突破了自动并行、静态调度、去中心化和全链路异步流式执行四大关键核心技术和一系列创新性难题,不仅能够大幅提升硬件资源利用率,而且能够简单方便地实现基于异构集群训练任务的大规模分布式扩展,将系统整体性能提升到极致。

2017年-2020年3月,历时5年研发后,OneFlow正式开源。从训练效率角度看,OneFlow 的优势可以概括为“人有我优”和“人无我有”。对于参数量不大的CNN 和 BERT等模型, OneFlow 仍会有百分之十以上的性能提升,而对于GPT-3等超大参数量模型, 现有主流深度学习框架只有经过深度定制才能满足这种大模型训练的需求,OneFlow 的运行效率有数量级的优势。

2021年8月,OneFlow v0.5.0版本发布,重点从优化编译、API接口等层面攻关易用性体验,同时持续优化分布式性能,从全局视角打破了深度学习框架易用性和高效性不可兼得的桎梏,继续保持业界技术领先地位。

2022年7月,OneFlow v0.8.0版本发布,过去一年,我们对OneFlow易用性进行持续攻关,那些在PyTorch等框架已被证明的优秀设计思路,OneFlow基于一个效率更高的动态执行引擎实现了编程API完全兼容PyTorch。不仅如此,通过支持Google的一系列编译器(XLA和IREE等)、NVIDIA的TensorRT和Intel的OpenVINO等编译器,以及手工实现了比其它框架更快的一批CUDA算子,在单卡效率上也首屈一指。

2022年第四季度,OneFlow v1.0.0即将发布,敬请期待......

目前,OneFlow引领并代表了新一代深度学习框架的技术演进和产品迭代方向,获得国内外上下游企业的高度认可和关注,以及国内外同行和友商的研究和追随,这在国产开源基础软件领域是罕见的。

6、开源后最大的挑战是什么?

如何让每一位像你一样的AI开发者对OneFlow感兴趣并使用OneFlow。

7、OneFlow的贡献者从何而来?

一方面来自开源项目的发起人、核心开发者,另一方面来自对开源项目感兴趣的开发者和用户。

作为一个早期的硬核开源项目,能为OneFlow提交代码PR的开发者,技术水平相对较高,但对于还不熟悉开源的开发者和用户,我们通过知识分享类的视频、技术文章,可以让他们快速了解OneFlow的相应知识。当然,除了参与研发工作,使用OneFlow、参与社区互动讨论、向他人推荐OneFlow,都是OneFlow社区的贡献者。

8、如何参与 OneFlow 项目?

可能有些没参与过开源项目的朋友,会误以为只有为项目贡献代码才算参与开源项目。其实参与开源项目的入口很广,除了贡献代码外,OneFlow 社区中提交的每一个 issue,报告的每一个 bug,甚至每一次提问,都是开源项目的贡献者。

OneFlow 布道师 @不想吃糖liao 已经针对在校同学的需求以及 OneFlow 项目的特点,制作了一些系列视频教程,可以帮助同学加速了解和参与 OneFlow 开源项目:不想吃糖liao的个人空间_哔哩哔哩_Bilibili

其中包括 Git/GitHub 系列,手把手教你怎么提交 issue、PR,也有讲解现代C++的《C++“新”语法》系列,可以将C++学习融入到OneFlow的具体代码中。此外还有CUDA、CPython等系列,它们都提炼自实际的工作需求,相信不会让你失望。

只需要一台电脑,欢迎下载、安装 OneFlow,用来复现案例:OneFlow -- 全新一代深度学习框架 - OneFlow

只需一个GitHub账号,欢迎在GitHub提issue、PR,或者仅仅只是加入OneFlow社区交流,讨论AI相关技术内容,与社区开发者一起成长。

以下是OneFlow实习生接触开源项目后的感受:


刘馨蔓(多伦多大学研一学生):来到 OneFlow 之后,我了解到开源的精神和意义,也熟悉了开源项目的工作流程,能和全世界各地的开发者们共同为一个项目做贡献还是很快乐。——

左益豪(北京邮电大学研一学生):在 OneFlow 实习之前,自己只是在单方面的开源使用者,并没有深入参加过其他的开源项目,对开源的了解也甚少,或者可以说从未体会到开源的精神以及工作方式。比如之前在使用 MMDetection 的过程中发现了 bug,由于感觉可能会很麻烦也并没有去提个 PR,只是在本地 fix 后继续用。这是我第一次参与开源项目的开发,体验了从创建分支、开发、提交PR、PR合并这个流程。我的主要工作是和推荐组一起搭建推荐模型库,之前并没有接触过,过去的两个月,我用OneFlow复现了DeepFM,并且了解了DeepCTR。我之前也用过PyTorch,OneFlow的语法设计得和PyTorch很像,有利于工程师快速上手,降低学习成本。对OneFlow最大的感受就是快,尤其是开了并行之后,不愧是至简至快的深度学习框架。

王世杰(华中科技大学研二学生):当然,在校生要提升自己的能力,直接去公司实习,参与真实的项目开发,提升是最快的。我身边参与开源项目的同学不多,不过参与开发像OneFlow这样的项目是一件很酷的事,如果能全职做开源,那简直太幸福了。

欢迎参与其中,与国产开源深度学习框架一起乘风破浪!


GitHub - Oneflow-Inc/oneflow: OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient. - GitHub - Oneflow-Inc/oneflow: OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.https://github.com/Oneflow-Inc/oneflow/

OneFlow 还将出现在CSDN的高校开源软件开发课程中,欢迎参与: CSDN 技术社区 / Intro-OSSD · GitCode

OneFlow框架交流QQ群:331883


http://chatgpt.dhexx.cn/article/adcTdu8u.shtml

相关文章

在浪潮服务器NF8460M4上用u盘安装centos8.5报设置基础软件仓库时出错

2021年12月28日,很久没有安装linux操作系统了。今天在浪潮服务器NF8460M4上用u盘安装centos8.5时,遇到了很多问题。第一次遇到这种报错“设置基础软件仓库时出错”。 centos镜像下载地址:https://mirrors.bfsu.edu.cn/centos/8.5.2111/isos/…

使用U盘安装银河麒麟服务器操作系统V10SP2出现“设置基础软件仓库时出错”报错导致无法继续安装的解决方法

文章目录 一、复现步骤二、解决方法方法①:配置银河麒麟外网源(仅限于互联网环境)方法②:修改安装引导启动参数 一、复现步骤 操作系统版本:银河麒麟高级服务器操作系统V10SP2-20210524(x86_64&#xff09…

解决 虚拟机安装 centos8 时出现设置基础软件仓库时出错

网上好多给了这两个链接地址,但是从下面的图片可以看到在阿里云的镜像网站中根本就没有相应的文件,因此会出现错误。 https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/ ​ https://mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os/ ​ 通…

做基础软件很悲壮?

这几天中国数据库界出了一件悲伤的事情,南大通用创始人崔维力先生突然因病去世。我和崔先生神交已久,但却未曾谋面,一直希望有机会当面沟通讨教,这一下就成永远的遗憾了。 崔先生的英年早逝(60多岁的年纪而已&#xff…

centos(一)安装及 设置基础软件仓库出错 的问题

1.安装 网上挺多的,这些链接不错: https://blog.csdn.net/m0_48830183/article/details/116211643 我是通过清华的镜像https://mirrors.tuna.tsinghua.edu.cn/centos-vault/8.0.1905/isos/x86_64/ 安装的centos8.0,安装过程中出现了”设置基础…

CentOS 8安装源设置基础软件仓库时出错

问题场景:CentOS 8安装源设置基础软件仓库时出错 在虚拟机安装CentOS环境的时候出现设置软件仓库出错 问题描述: 安装源设置基础软件仓库时出错截图如下: 解决方案: 1.先确认网络是否连接 2.点击安装源,将安装源配…

迎接基础软件创新的春天

作者:叶正盛,玖章算术科技公司CEO。原阿里云资深技术与产品专家(花名:斗佛,来自斗战胜佛的含义),数据库产品管理与解决方案部负责人,技术架构组与产品决策委员会核心成员。帮助阿里云取得中国数据库市场份额…

基础软件国产化闲谈

现代软件是高度国际化的,在互联网上,传播、发布易如反掌。我们天天用着Photoshop P图,用 Apache2 之类的开源产品搭网站,顺便搭一搭MySQL 或者芒果。程序猿用各种IDE及编译器、解释器写程序、做产品,团队从开源网站签出…

什么是基础软件?

人类从农业社会进入到工业社会的标志是:蒸汽机的使用。 从工业社会进入信息化社会的标志是:电脑及手机等移动终端的广泛使用。 进入现代社会的近十年,特别是新冠的后疫情时代,我们每天开始使用的软件,从餐饮到出行、…

用小乌龟git解决冲突之后,再提交,出现自己没用动过的文件

用小乌龟git解决冲突之后,再提交,出现了拉取之后的别人修改的文件,而自己本地并没有动过的文件. 如果直接提交自己修改的文件,不管拉取下来的文件,就会把别人的文件给弄丢. 这时要解决完冲突之后把刚刚拉取下来的别人的文件一起提交,不然会把别人修改的这些文件弄丢. 如果不用…

TortoiseSVN小乌龟GIT之使用教程

写在前面 TortoiseSVN是一款免费的软件版本管理工具,通过这个工具可以更好的管理软件的每次更新,版本回顾,版本对比 一、准备工作 电脑操作系统:window 10,其他的也可以 软件工具: 1、TortoiseSVN-1.10.3.…

gitup,小乌龟git仓库工具的使用

1.安装git软件,安装小乌龟工具,安装小乌龟工具的汉化版,都是下一步式傻瓜安装,汉化安装完成,右键文件夹,设置为中文 2.把需要保存的文件,提交到暂存区,并提交到本地git仓库&#xff…

【git】小乌龟和git冲突

1.安装好小乌龟git后,用小乌龟的pull 从github上pull或者push项目,遇到错误: disconnected no supported authentication methods available(server sent: publickey) 或者是 git did not exit cleanly (exit code 1) 亦或者是 git did not e…

Git 小乌龟的详细使用

1、安装 首先去TorToiseGit官网下载安装,这个很简单,可自行百度。 不喜欢英语版本的小伙伴也可以自行下载一个汉化插件。 2、使用 安装后就可以使用了。 我们可以在自己的云服务上获取 URL 克隆项目代码 右击选择 Git clone / 更换 URL …

win10下乌龟git安装和使用

目录(?)[] 一、安装git for windows 首先下载git for windows客户端http://msysgit.github.io/ 安装过程没什么特别的,不停next就ok了 图太多就不继续了~~安装完之后最好重启一下。 安装完成之后右键如果出现这几个东西,那么git你就安装完成了。 …

git小乌龟的使用

初次使用小乌龟,这里记录一下小乌龟的使用,也分享一下使用教程。这里使用的仓库是coding仓库 博客使用sm图床 小乌龟安装汉化 下载点击这里 小乌龟官网下载点击这里 解压后,先安装msi文件,然后在安装中文包 在此处设置中文 新…

git安装以及git小乌龟使用

一、下载git 打开git官网地址:https://git-scm.com/进行下载 下载完安装,一直next就好,如果愿意就可以改下安装路径,改在d盘。 具体可以参考:git安装教程 二、安装完下载小乌龟以及语言包 下载地址:小乌龟…

git与乌龟壳git

文章目录 Git是什么?集中式vs分布式创建git版本库往仓库添加文件暂存区与工作区移出缓存区的文件修改文件版本回退撤销修改删除文件 详情 Git是什么? 引用廖雪峰的话: Git是目前世界上最先进的分布式版本控制系统(没有之一&…

小乌龟git

一.概念 分布式版本控制系统。诞生于Linux社区,有兴趣可以去了解下git的前世今生。与集中式版本控制有明显区别。集中式:集中管理的服务器,保存所有的修订版本,协同工作的人通过客户端连接服务器,取出最新文件或者提交更新。分布式…

3.4 小乌龟git使用说明

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装二、使用步骤1、设置语言2、添加你的git 用户名和邮箱3、创建git空项目3.1 方法1 本地创建3.2 方法2 远程 clone一个项目 4、项目修改完提交4.1 提交到…