技术:旷视开源深度学习框架「天元」!孙剑:COCO三连冠背后的秘密武器( 二 )


从这个角度来看 , 旷视开源天元既是为技术共同体贡献一份力量 , 也是其引入开放性创新、打造Brain++ 生产力平台、角逐产业智能时代的战略所向 。
唐文斌认为 , 就任何一个产业来说 , 只有引起标准化、规模化的连锁反应才能迎来真正繁荣 。
这就是天元的设计理念 , 直接反映在框架设计的特性和能力中 。
天元框架的四大特性 天元是旷视Brain++的核心组件之一 , 主要功能:帮助开发者用户借助友好的编程接口 , 进行大规模深度学习模型训练和部署 。
根据旷视给出的官方总结 , 天元具备训练推理一体化 , 动静合一 , 兼容并包和灵活高效四个特点 , 使其在于其他主流深度学习框架对比中 , 不落下风 。
技术:旷视开源深度学习框架「天元」!孙剑:COCO三连冠背后的秘密武器
本文插图
所谓训练推理一体化 , 指的是通过天元训练得到的模型和产物 , 可以直接进行用于产品的推理、封装 。 在部署时 , 它还能帮助开发者自动删除冗余代码 , 实现模型自动优化 。
而动静合一 , 是指天元集成了“静态图性能高、占用资源少且易于部署”、“动态图简单灵活、方便调试且易于上手”的优点 。
在充分利用动态图模型训练优势时 , 开发者可以通过天元动静态一键转换功能 , 以静态图的形式完成生产和部署;此外 , 天元还支持动静态的混合编程 , 灵活性更强 。
在发布会上 , 旷视研究院高级技术总监田忠博给出了一个例子 。
技术:旷视开源深度学习框架「天元」!孙剑:COCO三连冠背后的秘密武器
本文插图
他说:“在使用天元动态图能力的时候 , 大概可以在一个32Batch左右进行计算 , 如果把它转换到静态图的情况下 , 它就可以支持到64Batch的水平 。 ”
但这不是全部 。
他还介绍称:“如果大家希望在这种情况下 , 训练更大的Batch , 训练更大的模型 , 完全可以采用亚线性的自动内存优化技术 , 天元可以在几乎无降低计算速度前提下 , 达到256Batch训练能力 。 ”
技术:旷视开源深度学习框架「天元」!孙剑:COCO三连冠背后的秘密武器
本文插图
而且 , 随着你的模型变大、变深 , 它的效果越好 。
田忠博透露 , 旷视内部有一些评测上 , 可以实现某些大模型20倍以上的内存节省 , 速度几乎不变 。
兼容并包 , 则体现在天元的易用性上 , 其具备Pythonic的API——习惯用Python进行传统机器学习的开发者 , 学习成本更低、易于上手 。 而且 , 天元还支持PyTorch Module功能 , 可以直接导入模型 , 迁移成本低且极大方便模型复现 。
灵活高效 , 专指天元具备很强的多平台多设备适应能力 , 能通过类似汇编和指令重排等技术 , 使得天元内置算子能够在推理或生产环境中充分利用多核优势 , 灵活调用设备的计算力 , 尤其适用于大模型算法训练 。
那么问题来了 , 天元有如此能力与特性 , 关键秘诀是什么?
架构设计 。
天元框架的整体架构 从架构上来看 , 天元具体分为计算接口、图表示、优化与编译、运行时管理和计算内核五层 。
技术:旷视开源深度学习框架「天元」!孙剑:COCO三连冠背后的秘密武器
本文插图
在顶层的计算接口上 , 天元配置C++和Python接口 , 用以解决框架学习接口各异 , 模型难以复现的问题;
在图表示层 , 天元内置动静态转换功能 , 支持开发者混合使用动态图和静态图模式进行编程;
在优化与编译层 , 天元构建核心计算图支持用户高效交互 , 进一步优化和编译API表达的计算 , 具体包括自动求导器、图优化和图编译功能;
运行时设备管理中 , 天元配置计算调度和内存管理两个模块 , 通过计算调度模块将设备抽象为执行流 , 并通过调度器实现智能调度 。