中国领先的IT技术网站
|
|

Facebook发布Faiss开源资源库 精度换取效率将成机器学习发展方向 ?

Facebook发布Faiss开源资源库,FAIR所采取的略微牺牲精度以提升效率的策略已经为最新一代机器学习所广泛接受,在未来,精度换取效率将成机器学习发展方向 ?

作者:核子可乐译来源:51CTO|2017-03-10 06:48

沙龙活动 | 去哪儿、陌陌、ThoughtWorks在自动化运维中的实践!10.28不见不散!


【51CTO.com快译】在机器学习领域,聚类与相似性搜索等用于实现数据集内亲和性的方法通常较难实现。如果大家希望对多达1亿张图片进行内容比较并找出其中哪些内容相似,这无疑将成为一项极为复杂的任务。事实上,其中最困难的部分在于如何跨多处理器实现规模扩展。

Facebook发布Faiss开源资源库 精度换取效率将成机器学习发展方向 ?

Facebook旗下的AI研究事业部(简称FAIR)最近发布了一套名为Faiss的揭底性解决方案。这是一套开源资源库,通过C++编写并与Python绑定,可用于对海量数据集——例如静态图像或者视频——进行相似内容搜索。

其同时亦代表着一类不断增长的机器学习解决方案,即探索利用更好的方法将算法并发运行在大规模多GPU环境之下。

用于大海捞针的磁石

在2月底发布的论文当中,FAIR对这一项目的内容与目标进行了描述。其研发难题并不仅仅在于如何在GPU之上运行相似性搜索或者“k-选定”算法,而是如何在多个GPU之间高效实现并发运行,同时处理体积远超内存容量的数据集(例如TB级别视频)。

Faiss的优势并非搜索数据本身,而是采取压缩性质的表达形式,即通过牺牲有限的一部分精度水平实现数量级甚至更为可观的存储效率提升。大家可以将其与MP3进行类比:MP3虽然属于“有损”压缩格式,但对于大多数听众而言,其效果已经完全可以接受。同样的,Faiss采用所谓PQ(即产物量化)编码机制以在多个GPU之间对工作负载进行高效拆分。

论文中提到的一项示例涉及对雅虎Flickr Creative Commons的1亿套数据集进行搜索,其中包含1亿张图片。Faiss提取了两幅图像——一朵红花与一朵黄花——并以此为依据在其之间找到一系列类似的图像。在一组包含四块英伟达Titan X GPU的硬件支持之下,1亿张图片的相似度搜索过程共耗时35分钟。

FAIR宣称Faiss的速度“达到此前业界最先进GPU的8.5倍”,且提供了数项基准测试以支持其结论。FAIR指出,在与两块原有GPU进行k-选定算法速度比较时,Faiss算法不仅速度更快而且能够更充分地发挥GPU的最大可用存储器带宽。

FAIR同时介绍称,Faiss的另一大优势在于搜索的端到端时间——即构建数据PQ版本所需要的时间加上实际运行搜索所需要的时间。竞争性解决方案需要数天时间才能构建起一套测试用PQ图像数据,而Faiss在“大约半天”时间内即可建立起“高质量”图像。

加快脚步

FAIR所采取的略微牺牲精度以提升效率的策略已经为最新一代机器学习所广泛接受。

相当一部分此类加速方案不仅适用于英伟达Titan这样的高端硬件,同时亦可支持低端硬件——例如智能手机中的GPU。谷歌的TensorFlow深度学习系统最近即经过升级,旨在利用智能手机级别的GPU执行图像认知处理。

以精度换取效率这一算法实践的另一大长期优势在于能够将工作负载分配给本地设备(快速但不精确)与远程后端(更准确但对处理能力要求更高)。如果拥有网络连接,则本地设备负责进行分类,而后端则凭借更强大的处理资源进行深入识别。

Faiss项目带来的重要启示在于:在探索如何利用高并发硬件充分实现机器学习功能方面,我们仍有大量工作需要守恒。

原文标题:Facebook's new machine learning framework emphasizes efficiency over accuracy

原文作者:Serdar Yegulalp

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

了解更多热点新闻,请关注51CTO《科技新闻早报》栏目!

【编辑推荐】

  1. 他从谷歌和Facebook学到八大生活经验
  2. 初识Facebook的强大Android图片加载的框架:Fresco
  3. Facebook移动架构:Android Flux架构详解
  4. 19岁成为Facebook产品经理的故事
  5. 如何用 Python 和 Flask 建立部署一个 Facebook Messenger 机器人
  6. 当巨头都加码人工智能时,Facebook却逆势减速了
【责任编辑:wangxueyan TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

热门职位+更多

读 书 +更多

Linux环境下C编程指南

本书系统地介绍了在Linux平台下用C语言进行程序开发的过程,通过列举大量的程序实例,使读者很快掌握在Linux平台下进行C程序开发的方法和技...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Python最火的编程语言