据官方消息,清华大学计算机系图形实验室宣布开源一个全新的深度学习框架:Jittor,中文名计图。
Jittor 是一个采用元算子表达神经网络计算单元、完全基于动态编译(Just-in-Time)的深度学习框架。[1]
据介绍,Jittor 内部使用创新的元算子和统一计算图的深度学习框架。和 Numpy 相比,元算子在保证易用性的同时,能够实现更复杂、更高效的操作。而统一计算图则是融合了静态计算图和动态计算图的诸多优点,在易于使用的同时,提供高性能的优化。基于元算子开发的深度学习模型,可以被计图实时自动优化并且运行 CPU、GPU 等指定的硬件上。
Jittor 特性
Jittor 是基于易用、可定制、实现与优化分离、即时的理念设计的。用户只需要数行代码,就可定义新的算子和模型,且所有的代码都是即时编译运行。
在 Jittor 上,多个元算子之间可以相互融合,成为更加复杂的算子,进一步构成神经网络和深度学习应用。
支持计算任意高阶导数。元算子在 Jittor 上反向传播后仍然是元算子,因此,在深度学习开发过程中,你不用算子的反向传播而重复开发。同时,还可以使用统一的优化策略。
使用 Jittor 内置的元算子编译器,用户可以直接将通过元算子编写的 Python 代码动态编译成更高效的 C++ 代码。
Jittor 能够自动优化动态编译的代码。其内置的优化编译遍(complier pass)兼容 LLVM,可以根据设备进行自动优化,生成的底层算子对计算设备非常友好。
Jittor 统一管理 GPU 和 CPU 的内存。当深度学习耗尽 GPU 内存资源时,将用 CPU 内存弥补。
Jittor 同时提供同步接口和异步接口,用户可以同时享受同步接口的易用性和异步接口的高效性。
使用辅助转换脚本,PyTorch 代码可以直接转换成 Jittor 模型。在参数保存和数据传输上,Jittor 使用和 PyTorch 一样的 Numpy+pickle 协议,二者的模型可以相互加载和调用。
性能超越 Pytorch
虽然这是清华大学第一次发布开源机器学习框架,但与国际主流平台相比,Jittor 豪不逊色。 目前 ResNet、VGG、SSD、DeepLab、LSGAN 等多个网络模型已经在 Jittor 平台实现,可供用户使用。与同类型框架相比,Jittor 在收敛精度一致情况下,推理速度取得了 10%-50% 的性能提升 。
目前,Jittor 得到了国家自然科学基金项目、北京信息科学与技术国家研究中心团队项目和清华-腾讯联合实验室项目的资助和支持。
【 雷锋网注:图片来源:Pixabay 所有者:Gerd Altmann 】
开源超级玩家
开源,特别是人工智能领域的开源,逐渐成为综合实力的象征。清华在这方面有着独到的优势。
首先,是在人工智能领域的学术传承。2019 年,清华人工智能研究院动作频频,在张钹院士的带领下,4 月成立听觉智能研究中心,由郑方教授担任主任,5 月成立基础理论研究中心,朱军任主任,在基础算法、AI 框架、AI 应用、数据资源等方面早已布好基础。
第一代院士打好基础,第二代老师形成了中坚力量。此次惊艳推出的计图(Jittor),牵头人就是清华大学计算机系的胡事民教授,1969 年生人,正属于中坚,而开发团队的主体,正是他带领的图形学实验室的一批博士生。今天出世的计图更不免让人想到当年的清华毕业生贾扬清,他在加州大学伯克利分校攻读博士期间创建了 Caffe 项目。
清华大学自然语言处理实验室(THUNLP)也有一个知名的开源项目,叫 OpenNRE。[2] 这是一个在自然语言处理里进行关系提取的开源框架,可以用于扩展知识图谱,是推荐系统、搜索引擎、问题解答这些应用的基础和关键技术。
实验室由孙茂松教授领衔,带出了一批骨干老师,以及本硕博的尖子。THUNLP 在 GitHub 上得到的 star,已经跟全球最强的斯坦福 NLP 小组的 star 差不多了。
由此带出的第三代学生梯队也人才济济。清华姚班自不必说,去年以本科人才培养著名的姚期智教授又开设智班,重点培养人工智能领域的后备军。
姚班毕业,目前在 MIT 就读的博士生胡渊鸣,设计、实现了 Taichi 编程语言及其优化编译器,后生可畏。[3]
另外,清华和企业以实验室形式的合作,硕果累累,吸引了像张亚勤、沈向洋这样的大师级科学家加入。
比如,清华和微软研究院合作了 Convlab 开源端到端对话系统 [4],和美团合作了视频动作分析的开源数据集 COIN [5]。
去年,清华-伯克利深圳学院更是成立了“RISC-V 国际开源实验室”,直接将图灵奖得主、最早提出“精简指令集”(RISC)体系的大卫·帕特森(David Patterson)引入,抓住了开源和源创的源头,有可能在芯片领域形成新的开源 CPU 生态体系,打造国家重器。
引用来源:
[1] Jittor
官网:https://cg.cs.tsinghua.edu.cn/jittor/
github:https://github.com/Jittor/Jittor
[2] OpenNRE , https://github.com/thunlp/OpenNRE
[3] Taichi , https://github.com/yuanming-hu/difftaichi
[4] Convlab , https://convlab.github.io/
[5] COIN , https://coin-dataset.github.io/