当前位置: 首页 > 科技观察

Facebook发布Faiss开源资源库,精度换取效率会不会成为机器学习的发展方向?

时间:2023-03-11 21:14:34 科技观察

【.com快言】在机器学习领域,聚类和相似性搜索等方法在数据集内实现亲和力往往难以实现。如果要对多达1亿张图片的内容进行比对,找出其中哪些是相似的,这无疑会成为一项极其复杂的工作。事实上,其中最困难的部分是跨多个处理器进行扩展。Facebook的人工智能研究部门(简称FAIR)最近发布了一组名为Faiss的具有启发性的解决方案。这是一个用C++编写并绑定到Python的开源库,可用于对海量数据集(例如静止图像或视频)执行类似的内容搜索。它还代表了越来越多的机器学习解决方案,探索在大规模多GPU环境中同时运行算法的更好方法。大海捞针的磁铁在2月底发布的一篇论文中,FAIR描述了这个项目的内容和目标。研发的挑战不仅仅是如何在GPU上运行相似性搜索或“k-selection”算法,而是如何在处理远远超过内存容量(例如TB的数据集)的同时,高效地实现多个GPU之间的并发运算。视频)。Faiss的优势不在于搜索数据本身,而是压缩性质的体现,即通过牺牲有限部分的精度级别,使存储效率提升一个数量级甚至更多。你可以将它与MP3进行比较:虽然MP3是一种“有损”压缩格式,但是对于大多数听众来说,它的效果是完全可以接受的。同样,Faiss采用所谓的PQ(乘积量化)编码机制来有效地将工作负载分配给多个GPU。论文中提到的一个例子涉及搜索YahooFlickrCreativeCommons1亿数据集,其中包含1亿张图像。Faiss拍摄了两幅图像——一朵红色的花和一朵黄色的花——并以此为基础找到了它们之间的一系列相似图像。在包括四块NVIDIATitanXGPU在内的一套硬件的支持下,1亿张图片的相似度搜索过程总共耗时35分钟。FAIR声称Faiss“比以前业界最先进的GPU快8.5倍”,并提供了几个基准来支持其结论。FAIR指出,在将k-selection算法与两个原始GPU的速度进行比较时,Faiss算法不仅速度更快,而且可以更充分地利用GPU的最大可用内存带宽。FAIR还表示,Faiss的另一大优势是搜索的端到端时间——即构建PQ版本数据所需的时间加上实际运行搜索所需的时间。竞争解决方案需要几天时间来构建PQ图像数据的测试集,而Faiss能够在“大约半天”内创建“高质量”图像。加快步伐FAIR略微牺牲准确率来提高效率的策略已经被最新一代机器学习广泛接受。相当一部分这样的加速方案不仅适用于NvidiaTitan等高端硬件,也支持低端硬件——比如智能手机中的GPU。谷歌的TensorFlow深度学习系统最近进行了升级,以利用智能手机级GPU进行图像认知处理。以精度换取效率的算法实践的另一个长期好处是能够在本地设备(快速但精度较低)和远程后端(更准确但处理要求更高)之间分配工作负载。如果有网络连接,本地设备负责分类,而后端则利用更强大的处理资源进行深度识别。Faiss项目带来的重要启示是,我们在探索如何用高并发硬件充分实现机器学习功能方面还有很多工作要做。原标题:Facebook的新机器学习框架强调效率高于准确性原作者:SerdarYegulalp