美文网首页
重磅!Facebook 贾扬清发文,Caffe2go 将开源

重磅!Facebook 贾扬清发文,Caffe2go 将开源

作者: 安宇雨 | 来源:发表于2016-12-01 13:30 被阅读202次

    【导读】Caffe作者,Facebook研究科学家贾扬清11月8日在Facebook官方网站上发文,介绍了他在Facebook 最新的机器学习研究成果——Caffe2go。这一款规模更小但训练速度更快、对计算性能要求较低的机器学习框架使得在手机上运行并训练神经网络模型成为可能。Caffe2go已经成为Facebook机器学习的核心技术。贾扬清在文章中写道:我们将会在接下来的几个月内,部分开源这一AI框架。
    贾扬清****:Caffe 作者,现任Facebook研究科学家,曾在Google Brain工作。在AI领域有数年的研究经历。在UC Berkeley获得计算机科学博士学位,在清华大学获得硕士和本科学位。对两款流行的深度学习框架做过贡献:Caffe的作者,TensorFlow的作者之一。
    工作经历:2016年2月从Google离职,加入Facebook,致力于前沿AI研究和平台开发。2013年12月到2016年2月在Google Brain担任研究科学家,致力于前沿的深度学习研究和工程,参与了ImgeNet2014比赛、移动端深度学习、Google下一代AI平台TensorFlow开发、基于深度学习的产品开发和产品咨询等。
    [图片上传中。。。(1)]
    (文,贾扬清/Peter Vajda)随着视频成为越来越流行的社交方式,我们希望为每个人提供最先进的创作工具来表现自己。我们最近开始在 Facebook 应用程序上测试一个新的创意效果相机,可以帮助人们即时把视频转换成艺术作品风格。这种技术被称为“风格转移”(style transfer)。它能从一种绘画风格中提取艺术性特质,例如梵高画的风格,并将其应用到其他图像和视频中。这种诡计在技术上难以实现的原因在于,它通常需要把内容发送到数据中心,然后在大型计算机服务器上进行处理。但现在,我们在移动设备上开发了一个新的深度学习平台,首次实现了实时的捕获、分析,和像素处理——这一最先进的技术只在手上就能实现。这个成熟的深度学习系统叫 Caffe2Go,它的框架现在已经嵌入我们的手机app中。通过把用于处理图像和视频的AI模型压缩100倍,我们能够在iOS和Android设备上高效运行各种深度神经网络。最终,我们能够为一些移动设备提供的AI推断所需时间不及1/20秒,也就是50毫秒——人眨一下眼睛需要1/3秒,也就是300毫秒。
    这个相机中的风格转移工具是两种技术的结合:Caffe2go运行库和风格转移模型。由于我们的AI团队同时研究算法和大规模系统,他们开发的新模型完美实现了这两种追求,使风格转移既质量高又快速。这两种技术的结合能让你在举起手机拍摄视频时,感觉拿着梵高的画笔。
    这项工作开始于三个月前,当时还没有人做这样的研究:将基于AI的风格转移技术视作一个创造性工具,让它在人们的移动设备上实时运行。跨产品、技术和研究团队的一群人参与进这个项目。Facebook AI 研究团队的 Justin Johnson 是有关该技术的一篇基础研究论文的作者,为这个项目做了一些前期研究。我们的应用机器学习团队一直致力于开发一个可以在移动设备上运行的AI平台。相机产品团队对用户的需求非常了解。还有另外许多人也为此作出了贡献,这些团队为在移动设备上运行高度优化的神经网络制作了一流的解决方案。
    Caffe2Go:更轻便,更快
    人工智能已经对计算机科学产生了深远的影响,但它大部分局限于大型数据中心,这些数据中心往往远离实际使用以AI为动力的服务的人。因此,任何标榜能“实时”用AI处理某物的技术仍然受到延迟的影响,因为数据必须发送到数据中心,以在GPU上运行。我们也认为让人们随身带着超级计算机是不切实际的,因此我们试图找到一种方法,让AI能在最无处不在的设备——智能手机上的CPU上工作。
    手机能够实时地看、说、理解,而无需连接到远程服务器,但它们也有局限性。虽然近年来手机的计算能力有了显著的提升,每秒能够执行数十亿次数学运算,但它们仍受到诸如功率、存储器、计算能力等的各种资源限制,需要更聪明的软件设计。因此,对机器学习系统来说,手机既是机会也是挑战。
    我们应对这个挑战的方案是设计一个非常轻量级,而且模块化的框架。为此,我们在开源Caffe2项目之上利用Unix原理。这确保了连接组件的核心框架非常轻量,而且能够附加多个模块——包括专门为移动设备进行的优化。我们使用一个精益算法框架,允许工程师将抽象运算描述为一个有向无环图(DAG),同时确保图中可以执行的这些节点的输入和输出没有被强加限制。这让我们的工程团队能够在不同平台上实现并优化模块,同时能轻松地把这些模块连接起来。当DAG实际运行时,它能利用各种硬件功能最快地实现具现化。
    由于速度是计算密集型移动应用程序的核心,尤其是图像和视频应用,框架设计的轻量能让我们为已定义的运算符执行平台特定的优化。一个著名的例子是Caffe2集成在我们的移动运行库中的名为NNPack的库。利用移动CPU的NEON功能,我们能显著提高移动计算的速度。在 iOS设备上,我们还开始集成加速功能,例如Metal语言。所有这些都是通过模块化设计完成的,无需改变常规模型定义。因此,算法端和运行库端能够安全地彼此依赖,不需要担心任何潜在的不兼容性。
    友好的开发环境
    Caffe2也是我们的第一个具有产业实力的深度学习平台,可以在四个平台上用同样的代码集全速运行:服务器CPU,GPU,iOS和Android。由于模块化设计,框架可以使用相同的语言,但要分别在各个平台上优化。这是一个对开发者隐藏的实现细节,例如,框架可以在手机(iOS和Android)的NNPack和服务器GPU的CUDNN之间选择。因此,开发者可以专业于算法的工作,而不用研究怎样运行卷积。
    开发者还能从最新的设计部署中获益。从开发者的角度看,缩减手机的运行时间是一个难题,因为手机的工具链并不像台式机和服务器那样强大。我们通过压缩神经网络以匹配硬件来解决这一问题。Caffe2go 中一个序列化的网络在手机和服务器上都能实现相同的输出。最终,我们能把主要的工作转移到服务器环境中,模型训练、性能观察、用户体验研究等。如果一切进展顺利,我们仅需要设置一个按钮,就能再转移到手机环境中。


    手机上进行神经网络训练
    图像的质量是非常主观的,并且非常难以衡量,特别是在风格迁移之类的任务上。所以,我们开发了可视化工具,其中包括A/B测试,训练了不同的模型,来保证我们能得到最佳的图像质量结果。我们使用的由FBLearner Flow 支持的大型GPU集群,让我们可以实现这一目标,因为我们可以快速地扫过大范围的超参数,比如模型架构、内容/风格权重和缩减采样,进而发现一个经过良好训练的回馈风格,能够满足我们的性能目标,同时又切实保持并提升了图片的质量。
    还有很多提升质量的方法,比如,采用即时的标准化而不是常用的分批标准化,能够在许多风格上产生有益影响。比如,卷积层中避免零填充(zero padding)进而减少棋盘效应(人工痕迹),或者,在风格或者内容图片上采用不同的预训练和后处理过滤层。
    风格转化技术中实现的速度和质量优化结果在Caffe 2 框架上运行,能够打造一个手机上的实时图像处理系统。
    Caffe2go是Facebook 机器学习产品的核心,将开源
    Caffe2go ,加上研究工具链比如Torch组成了Facebook 机器学习产品的核心。因为其大小、速度和灵活性上的优势,我们正在Facebook 的stack 中全面推广Caffe2go。
    我们也非常乐意与整个研究社区分享我们的软件和设计,这样我们就能更好地学习如何利用不同硬件平台和算法设计的独有特性,这对于跨平台机器学习系统来说尤为重要。我们将会在接下来的几个月内,部分开源这一AI框架。
    随着我们不断进步,你可以想象,可以在(移动)设备上运行的实时AI技术将能帮助这个世界变得更加开放,让人与人之间的联系得以加强,特别是在无障碍和教育等领域。可以拿在手上的智能设备将会持续地改变我们对智能的定义。拥有像Caffe2go这样敏捷、轻便的学习系统,我们一定会带来更多美妙的AI和AR体验,比如,在拍下一个视频后,你可以立即把它转换成梵高的风格。
    原文:code.facebook.com
    编译:新智元

    相关文章

      网友评论

          本文标题:重磅!Facebook 贾扬清发文,Caffe2go 将开源

          本文链接:https://www.haomeiwen.com/subject/gdpxmttx.html