好久不见!OneFlow 1.0全新版本上线
好久不见。今天是 OneFlow 开源的第 1320 天。
与 OneFlow 框架的创作者们一样,过去一年,它也经历了过山车般的命运。好在,即使在下坡潜伏期依然被社区用户关注和使用,作为它的创作者,我们为此感到欣慰——这也是它还在更迭的价值和意义所在。
终于,OneFlow 迎来了一个新的里程碑。距离上一次版本发布一年后,我们很高兴发布全新的 OneFlow v1.0.0 版本。
本次更新共 447 个 commits,包括新特性 80+ 项,功能改进与问题修复共 130+ 项。性能方面,无论是深度学习编译后使用 Graph 模式运行,还是 Eager 模式运行,在典型模型上 OneFlow 相比 PyTorch 都有明显的领先优势。
我们希望,新版本不仅仅是一个数字上的里程碑,更成为用户在模型的生产和应用中的价值高地。
欢迎体验新版本,期待你的反馈。完整更新列表及性能详情请查看:https://github.com/Oneflow-Inc/oneflow/releases/tag/v1.0.0
OneFlow v1.0.0 主要包括以下新增亮点特性、功能和优化:
-
PyTorch兼容性:新接口
compile_from_torch
compile_from_torch
接口在共享参数显存的情况下,将 PyTorch 的 Module 实例转化成 OneFlow 的 Module 实例,支持直接 Eager 运行或者转化为静态图 nn.Graph 并进一步使用 MLIR 编译加速。
该接口仍在快速演进中,目前支持了动态形状编译并在ResNet50、Faster RCNN、Stable Diffusion三个典型模型上做了验证。
接口签名及参数介绍:
compile_from_torch(torch_module: torch.nn.Module, \*, use_graph=True, options={})
* torch_module:需要被转换的 Torch Module 实例。
* use_graph:是否转化为静态图 nn.Graph 并使用 MLIR 编译加速,默认为 True。
* options:
* size: 使用静态图 nn.Graph 后会根据输入的 shape 计算 hash 值缓存相应的 graph ,size 表示静态图缓存的最大容量,超过最大容量会根据 LRU 策略对 graph 进行清理,默认值为 9。
* dynamic:对于动态 shape 的输入第一次会完整编译 graph,之后的对于不同 shape 的输入当 dynamic 为 True 时会启用共享图进行编译加速,dynamic 为 False 时每次都会重新进行编译,默认为 True。
* debug:调试模式和日志级别设置,-1 禁用调试模式,0 输出警告和静态图构建信息,1 额外输出每个子模块的构图信息,2 额外输出每个算子的进度,3 输出更详细的算子信息,默认为 -1。
使用示例:
import torch
from torchvision import models
import oneflow
from oneflow.framework.infer_compiler import compile_from_torch
DEVICE = torch.device("cuda")
WEIGHT = models.ResNet50_Weights.DEFAULT
model = models.resnet50(weights=WEIGHT).to(DEVICE)
compile_model = compile_from_torch(model, options={"dynamic": True})
-
Eager 运行时优化与重构
对 Eager 运行时做了一系列优化与重构,包括统一系统内存池、对接 CUDA 原生接口、优化指令调度机制、引入指令融合机制、优化 Autograd 构图速度、优化 Op 推导过程、解耦 Instruction 与 Stream 等。
用户可以通过一些环境变量设定 Eager 运行时行为:
-
分离编译
-
性能优化
OneFlow compile_from_torch VS PyTorch compile
OneFlow Eager vs PyTorch Eager
-
新增函数式自动微分接口
import oneflow as flow# jacobian exampledef exp_reducer(x):
return x.exp().sum(dim=1)
input = flow.rand(2, 2)
jac_rslt = flow.autograd.functional.jacobian(exp_reducer, input)
# vhp exampledef pow_reducer(x):
return x.pow(3).sum()
input = flow.rand(2, 2)
v = flow.ones(2, 2)
vhp_rslt = flow.autograd.functional.vhp(pow_reducer, input, v)
-
新增Insight模块
-
步骤一:使用 OneFlow Profiler 模块在代码中设置埋点区间。
-
步骤二:运行代码并使用 NVIDIA Nsight Systems 生成 sqlite 后缀文件。
-
步骤三:使用 OneFlow Insight 模块生成 json 文件。
-
步骤四:在网址 chrome://tracing/ 或 edge://tracing/ 中打开 json 文件得到可视化界面。
-
LiBai v0.3.0 版本更新
# full finetune
bash tools/train.sh projects/Llama/train_net.py projects/Llama/configs/llama_sft.py 8
# adapter finetune
bash tools/train.sh projects/Llama/adapter/train_net.py projects/Llama/adapter/adapter_sft.py 8
# inference
bash tools/infer.sh projects/Llama/pipeline.py 8
# eval
python projects/Llama/utils/eval_adapter.py
-
OneFlow Serving功能升级
-
使用 OneFlow Cpp 后端可以在脱离 Python 的环境中部署以达到最高的性能。
-
使用 OneFLow Lite 后端可以实现在端侧设备上的部署。
-
使用 OneFlow Python 后端可以以极小的迁移代价完成复杂模型的部署。
==招贤纳士==
本文分享自微信公众号 - OneFlow(OneFlowTechnology)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里旗下 11 款应用启动鸿蒙原生应用开发
3月14日,阿里旗下多款应用与华为举行鸿蒙合作签约仪式,宣布将基于HarmonyOS NEXT鸿蒙星河版,启动闲鱼、1688、飞猪、饿了么、盒马、菜鸟、点淘、淘宝特价版、大麦、淘票票、灯塔专业版共11款App的鸿蒙原生应用开发。 据了解,此前,钉钉、高德、淘宝、UC浏览器、夸克等app应用已率先启动鸿蒙原生应用的开发。此次合作,更是覆盖电商、新零售、本地生活、旅游服务、文化娱乐等多个领域,极大丰富了鸿蒙生态的应用版图。双方强强联合,将满足用户在全场景下的多元化需求,为用户提供更加流畅、智能、安全的服务体验。 基于鸿蒙系统的生态,上述11款app应用能更好地实现跨设备、跨平台的数据共享和任务协同,提升用户体验,同时获得更精准的服务分发。其次,鸿蒙系统中有元服务和原生应用等多种形态,在合适的时机为用户提供服务,助力应用实现更高的用户转化率,更有效地吸引和留住用户。值得一提的是,鸿蒙系统支持一次开发、多端部署,这意味着开发者只需要编写一次代码,就可以在多个终端设备上部署和运行应用,对于阿里集团这种拥有多个重要应用的公司来说,降低了开发成本和时间,提高开发效率。 据悉,鸿蒙生态已进入第二发展阶...
- 下一篇
华为云张平安:矢志打造中国 AI 算力的沃土
今天,AI 重塑一切,“人工智能+”首次被写入政府报告,AI 产业机遇加速涌现,AI 创新大有可为。 “所有的行业必须拥抱 AI,我们必须要有澎湃的 AI 算力,华为云矢志要将技术扎到根,做 AI 算力的沃土,推动行业智能应用创新,携手伙伴构建核心技术生态,共同加速千行万业的智能化。” 3月15日,在2024华为云&华为终端云创新峰会上,华为公司常务董事、华为云 CEO 张平安表示。 矢志打造中国AI算力的沃土 对中国来说,算力的紧缺和昂贵已成为智能创新的最大制约因素,而云化算力作为一种高效、灵活、可扩展的解决方案,正逐渐成为突破算力瓶颈的更优选择。昇腾云作为中国唯一全栈自主的 AI 云算力底座,为百模千态的发展提供了强劲动力。 昇腾云具备强大、高效、即开即用的智能算力资源,企业用户可以一键接入贵安、乌兰察布和芜湖的三大 AI 算力中心以及30多个分节点,每个数据中心都能提供百 EFLOPS 的强大算力,足以支撑处理万亿参数的大模型,单作业可使用万卡进行计算,并且数据规模可以达到百 PB 级的超大规模训练。 昇腾云还具备高效易用的全栈平台能力。它整合了从云化算力、模型开发、模...
相关文章
文章评论
共有0条评论来说两句吧...