【AI大红包】Facebook发布张量理解库,几分钟自动生成ML代码

简介: Facebook今天宣布发布Tensor Comprehensions,能够自动将数学符号快速转换成高性能机器学习代码,将原本几天乃至几周的过程缩短为几分钟,大幅提高生产力。

Facebook AI Research(FAIR)今天宣布发布Tensor Comprehensions,这是一个C++库和数学语言,旨在帮助弥合研究人员和工程师在从事机器学习任务时,在沟通上的差距;研究人员习惯使用数学运算,而工程师则专注在不同的硬件后端运行大规模ML模型的实际需求。

相比其他库,Tensor Comprehensions 的主要不同是对Just-In-Time编译有独特的研究,能够自动按需生成机器学习社区需要的高性能代码。

只需几分钟生成高性能CPU/GPU代码,生产力实现数量级提高

要创建新的高性能机器学习(ML)层,典型的工作流程一般包含两个阶段,时间往往需要好几天乃至数周:

1、首先,一位研究人员在numpy级别的抽象中编写了一个新的层,并将其与像PyTorch这样的深度学习库链接起来,然后在小规模实验中对其进行测试。想法得到验证后,相关的代码,性能需要加快一个数量级才能运行大规模实验。

2、接下来,一位工程师为GPU和CPU编写高效代码,而这又需要:

  • 这名工程师需要是高性能计算的专家,这方面人才数量有限
  • 这名工程师需要获取上下文,制定策略,编写和调试代码
  • 将代码移到后端需要进行一些枯燥但必须完成的任务,例如反复进行参数检查和添加Boilerplate集成代码

因此,在过去的几年中,深度学习社区在很大程度上都依靠CuBLAS,MKL和CuDNN等高性能库来获得GPU和CPU上的高性能代码。不使用这些库提供的原语来进行试验,需要极高的工程水平,这对不少研究人员都构成了很大的挑战。

如果有套件能够将上述过程从几周缩短为几分钟,我们预期,将这样一个套件开源将具有重大实用价值。有了Tensor Comprehensions,我们的愿景是让研究人员用数学符号写出他们的想法,这个符号自动被我们的系统编译和调整,结果就是具有良好性能的专用代码。

在这次发布的版本中,我们将提供:

  • 表达一系列不同机器学习概念的数学符号
  • 用于这一数学符号的基于Halide IR的C++前端
  • 基于Integer Set Library(ISL)的多面体Just-in-Time(JIT)编译器
  • 基于进化搜索的多线程、多GPU自动调节器

使用高级语法编写网络层,无需明确如何运行

最近在高性能图像处理领域很受欢迎的一门语言是Halide。Halide使用类似的高级函数语法来描述图像处理流水线,然后在单独的代码块中,明确将其调度(schedule)到硬件上,详细指定运算如何平铺、矢量化、并行和融合。这对于拥有架构专业知识的人来说,是一种非常高效的语言,但对于大多数机器学习从业者却很难使用。目前有很多研究积极关注Halide的自动调度(Automatic scheduling),但对于在GPU上运行的ML代码,还没有很好的解决方案。

b32ffa09fa8c1a6464c2ec29c0cbc0b073c3f999

Tensor Comprehensions使用Halide编译器作为库。在Halide的中间表示(IR)和分析工具的基础上,将其与多面体编译技术相结合,使用者可以用类似的高级语法编写网络层,而无需明确它将如何运行。我们还成功使语言更加简洁,无需指定减法(reduction)的循环边界。

eb2b5f74835abe463e8cdbbdb14647307f4a997f

Tensor Comprehensions使用Halide和Polyhedral Compilation 技术,自动合成CUDA内核。这种转换会为通用算子融合、快速本地内存、快速减法和JIT类型特化进行优化。由于没有或者没有去优化内存管理,我们的流程可以轻松高效地集成到任何ML框架和任何允许调用C++函数的语言中。

ecfa425d89ed9b11d6228a75f95a2bf18c99a6f4

与传统的编译器技术和库的方法相反,多面编译(Polyhedral Compilation)让Tensor Comprehensions为每个新网络按需调度单个张量元素的计算。

在CUDA层面,Tensor Comprehensions结合了affine loop transformations,fusion/fission和自动并行处理,同时确保数据在存储器层次结构中正确移动。

图中的数字表示最初计算张量元素的顺序,箭头表示它们之间的依赖关系。在这个例子中,数字旋转对应loop interchange,深度算子融合就发生在这个过程中。

性能媲美乃至超越Caffe2+cuBLAS

为了推动搜索过程,我们还提供了一个集成的多线程、多GPU自动调谐库(autotuning library),它使用Evolutionary Search来生成和评估数千种实现方案,并从中选择性能最佳的方案。只需调用Tensor Comprehension的tune函数,你就能实时地看着性能提高,到你满意时停止即可。最好的策略是通过protobuf序列化,立即就可重用,或在离线情况下。

50d63e2bab7786ed5cf7b2ddedc99d198277bead

在性能方面,尽管我们还有很多需要改进的地方,但在某些情况下,Tensor Comprehensions 已经可以媲美甚至超越当前整合了手动调整库的ML框架。这主要通过将代码生成策略适应特定问题大小的能力来实现的。下面的条形图展示了将Tensor Comprehensions自动生成的内核与Caffe2和ATen(使用CuDNN)相比较时的结果。更多信息,请参阅论文(见文末链接)。

随着我们扩大至更多硬件后端,Tensor Comprehensions将补充硬件制造商(如NVIDIA和Intel)编写的速度很快的库,并将与CUDNN,MKL或NNPack等库一起使用。

未来计划

这次发布的版本将让研究人员和程序员用与他们在论文中使用的数学语言来编写网络层,并简明地传达他们程序的意图。同时,研究人员还能在几分钟之内将他们的数学符号转化成能够快速实施的代码。随着工具链的不断增长,我们预计可用性和性能将会增加,并使整个社区受益。

我们将在稍后发布PyTorch的Tensor Comprehensions集成。

我们感谢与框架团队的频繁交流和反馈,并期待着将这一令人兴奋的新技术带入你最喜爱的ML框架。

FAIR致力于开放科学并与机器学习社区合作,进一步推动AI研究。Tensor Comprehensions(已经在Apache 2.0协议下发布)已经是Facebook,Inria,苏黎世联邦理工学院和麻省理工学院的合作项目。目前工作还处于早期阶段,我们很高兴能够尽早分享,并期望通过社区的反馈来改进它。


原文发布时间为:2018-02-15

本文作者:文强

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【AI大红包】Facebook发布张量理解库,几分钟自动生成ML代码

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
13天前
|
人工智能 自然语言处理 Java
效率飙升!3 款免费 AI 神器,让代码编写快到飞起
在快节奏的软件开发中,效率至关重要。本文推荐三款免费AI工具助力开发者:ChatCode基于自然语言生成高质量代码框架;CodeChecker实时检查语法与风格问题,提升代码规范性;飞算JavaAI通过一键生成完整工程代码,大幅缩短开发周期。这些工具从不同角度优化开发流程,让开发者事半功倍。
|
13天前
|
人工智能 缓存 NoSQL
告别繁琐:AI 工具 1 天搞定秒杀系统,代码全公开
秒杀系统是电商领域吸引流量和促进销售的重要工具,但传统开发面临高并发、库存超卖、缓存击穿等问题,耗时耗力。如今,AI工具如飞算JavaAI可自动生成高质量Java代码,例如Redis + Lua分布式锁,解决高并发下的锁问题,大幅提升QPS并优化响应时间。通过AI生成代码,不仅能有效应对缓存击穿和库存超卖等挑战,还显著缩短开发周期至1天,为高并发系统开发带来革命性变化。
|
27天前
|
SQL 人工智能 算法
TDengine 发布时序数据分析 AI 智能体 TDgpt,核心代码开源
2025 年 3 月 26 日,涛思数据通过线上直播形式正式发布了其新一代时序数据分析 AI 智能体——TDgpt,并同步开源其核心代码(GitHub 地址:https://github.com/taosdata/TDengine)。这一创新功能作为 TDengine 3.3.6.0 的重要组成部分,标志着时序数据库在原生集成 AI 能力方面迈出了关键一步。
64 0
|
19天前
|
人工智能 自然语言处理 前端开发
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
DeepSite是基于DeepSeek-V3模型的在线开发工具,无需配置环境即可通过自然语言描述快速生成游戏、网页和应用代码,并支持实时预览效果,显著降低开发门槛。
330 93
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
|
22天前
|
人工智能 物联网 Android开发
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
65 23
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
用AI精准定位问题代码,调试时间直接砍半!LocAgent:斯坦福开源代码调试神器,多跳推理锁定问题代码
LocAgent是由斯坦福大学、耶鲁大学等顶尖机构联合开发的代码定位框架,通过将代码库转化为图结构并利用大语言模型的多跳推理能力,实现精准的问题代码定位。
101 1
用AI精准定位问题代码,调试时间直接砍半!LocAgent:斯坦福开源代码调试神器,多跳推理锁定问题代码
|
1月前
|
人工智能 自然语言处理 搜索推荐
【2025.3.12】Linkreate wordpress AI智能插件-新增自动获取搜索引擎下拉关键词,网站SEO必备,自动生成文章、配图,24小时自动发布
Linkreate WordPressAI插件是一款强大的内容生成与优化工具,支持自动化文章生成、SEO优化、长尾关键词生成及管理。具备多语言支持、搜索引擎下拉关键词获取、内容采集、定时任务自动化等功能。同时集成多种AI服务(如DeepSeek、OpenAI等),提供前端AI客服窗口和媒体生成功能,包括文章图片与视频生成。官网下载地址:https://idc.xymww.com/,更多功能等待探索。
【2025.3.12】Linkreate wordpress AI智能插件-新增自动获取搜索引擎下拉关键词,网站SEO必备,自动生成文章、配图,24小时自动发布
|
5天前
|
人工智能 自然语言处理 测试技术
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
Codex CLI是OpenAI推出的轻量级AI编程智能体,基于自然语言指令帮助开发者高效生成代码、执行文件操作和进行版本控制,支持代码生成、重构、测试及数据库迁移等功能。
74 0
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
|
1月前
|
人工智能 自然语言处理 前端开发
【2025.3.08更新】Linkreate wordpress AI智能插件|自动生成SEO文章/图片/视频+长尾词优化 内置DeepSeek多模型支持与API扩展
Linkreate WordPress AI插件提供强大的自动化文章生成、SEO优化、关键词管理和内容采集功能。它能根据关键词自动生成高质量文章,支持多语言和批量生成,内置长尾关键词生成工具,并可定时自动发布文章。插件还集成了多种AI服务,支持前端AI客服窗口及媒体生成,帮助用户高效管理网站内容,提升SEO效果。
【2025.3.08更新】Linkreate wordpress AI智能插件|自动生成SEO文章/图片/视频+长尾词优化 内置DeepSeek多模型支持与API扩展
|
1月前
|
人工智能 自然语言处理 搜索推荐
Linkreate WordPress AI插件 智能化自动生成原创图文文章,从关键词获取、文章生成、文章配图生成、SEO优化、自动推送到各搜索引擎,实现全智能化生成原创图文文章,无需人工干涉
Linkreate WordPress AI插件是一款功能强大的自动化内容生成工具,支持智能图文生成、SEO优化及多语言处理。其核心亮点包括:自动化生成高质量文章、精准标签与摘要、批量生成长尾关键词、定时任务管理以及自动推送至搜索引擎。此外,还提供内容采集、API集成、前端AI客服窗口等功能,支持图片和视频生成,实现网站24小时智能化更新,无需人工干预,大幅提升运营效率。
Linkreate WordPress AI插件 智能化自动生成原创图文文章,从关键词获取、文章生成、文章配图生成、SEO优化、自动推送到各搜索引擎,实现全智能化生成原创图文文章,无需人工干涉

热门文章

最新文章