上万张照片怎么找?百度网盘:你只管说,我们帮你找
机器之心原创
作者:张倩
「没有 xx 的结果,请尝试新搜索词。」有多少人在使用手机自带的相册搜索功能时收到了这样的反馈?
如今,大部分人的相册里都有上千张图,平时也懒得整理,需要用某张图时就按照时间段,去某个分类里找一下。而手机自带的「搜索」功能由于效果太差,往往被人嫌弃。比如你搜「小狗」能搜出很多图,但搜「幼年期小狗」、「樱花树下的狗」就没有结果。在人类已经能和 AI 流畅对话的今天,这样的搜图体验是落后于时代的。
但如果你有把照片存入网盘的习惯,这件事就变得容易很多。它不仅能帮你找到「幼年期小狗」、「樱花树下的狗」,还能找到你和小狗在某个时间、地点的合影。
这是百度网盘 2022 年上线的「高级图搜」功能,能够理解包含时间、地点、人物、事件等诸多要素的组合搜索语句。只要在网盘输入「高级图片搜索」,点击「立即体验」,就可以在主页搜索框里,直接用各种复杂指令搜图了。
今年,他们甚至还上线了视频搜索功能,打破了传统?机或?盘相册只能搜索照?的限制,帮你迅速、精准地找到自己想找的视频。
值得注意的是,这些搜索结果几乎都是在一秒钟的时间内给出的,查找效率极高。
这背后既离不开功能强大的 AI 大模型、海量计算调度,也离不开细致的工程努力。这篇文章将逐一科普。
存在相册里的照片、视频
为何总是搜不到?
很多尝试用手机自带搜索功能搜索照片、视频的同学都会纳闷,为什么搜索语句稍微复杂一点,手机就看不懂了呢?搜出来的东西依然是包含某个关键词的所有照片,或者直接显示搜不到。
要回答这个问题,我们先来看一张图:
假设你是一个给图片打标签的人,你会给这张图片打上什么样的标签?「猫」、「橘猫」、「动物」都是可能的答案。但如果扩展一下角度,你还可以给它打上「春天」、「户外」这些代表时间、环境的标签,旁边还有「小草」、「土壤」和「积雪」。以此类推,你很难用有限的标签来概括一张图片蕴含的所有信息。但是,当前大部分手机都是依靠这些标签来完成搜索,所以搜出的内容很难精准匹配。
百度网盘是怎么「搜」的?
为了克服「标签搜索」无法全面描述图片内容和特征的局限,百度网盘用「基于向量的语义搜索」取代了「标签搜索」。
这种搜索方式的机制如下图所示:首先,网盘中的所有照片会被编码为一组特征向量(可以理解为一组数值序列,序列中的每个元素代表图片的某种特征或属性)。在搜索时,你输入的文本信息也会被转换为一组特征向量。接下来,这两组向量会被映射到同一语义向量空间进行比较:图片向量和文本向量之间的距离越近,图片和文本的相似度就越高,该图片就越可能是你想找的那张。
与基于标签的方式相比,这种基于向量的语义搜索大大提升了搜索的灵活度,因为你不需要再考虑想搜的图到底被打上了什么标签,想起什么线索就输入什么线索,就像日常说话一样。由于向量可以全面地描述图片的内容和特征,(比如它不仅表示出了「狗」,还表示出了「幼年的狗」),因此搜索结果更加准确和全面。
此外,借助这种方式,可以搜索的内容也非常广,人物、风景、动物、地标建筑等都能搜到。这是因为,百度网盘采用了自研的融合了场景图知识的多模态预训练文心?CV 大模型 VIMER-ViLP,来解决语义匹配问题。这种技术使用了海量网络数据进行训练,从而可以理解和识别广泛的图片内容。
不过,语义向量也有自己的能力边界,比如无法精准地判断时间、地点、人物等信息,需要用其他方式补充搜索。
时间和地点信息可以从照片自身携带的原信息中提取,其中包含的经纬度可以被转换成实际的街道名、场所名称。人物信息可以通过智能分类聚合出来,然后打上标签。最后,这些信息的搜索可以用范围查询或者关键词查询来实现。
通过这样的组合搜索,你就得到了想要的结果。为了让照片(而不是文档)排在搜索结果前面,技术人员还增加了对用户搜索意图的理解。如果识别出来是用户想要找的照片,系统会把照片的返回结果放在最上面,解决照片位置靠后的问题。
相比之下,视频的搜索要更难一些,算力消耗也大得多,因此百度网盘采用了搜索封面图的策略(因为视频的封面图往往比较有代表性),把视频转换成图片来做搜索,在成本和搜索准确性方面达到一种平衡。
怎么把搜索速度提上去?
「我一输入完,它啪一下就把结果返回来了,很快啊!」这是很多人使用百度网盘搜图时的共同感受。这背后其实涉及三个方面的优化。
一是充分利用「云上算力大、本地设备延时小」的特点,让云端服务器和你的手机各自承担自己擅长的任务:云端服务器对网盘中的图片进行向量计算,然后通过一个实时数据同步通道,将计算结果下发到你的手机,在手机本地建立索引,向量检索在手机本地完成。
这种做法好处非常明显:首先,将算力需求较大的向量计算工作放到云端可以弥补个人设备算力不足的问题,让搜图功能在各种机型上都能充分施展;其次,向量检索在手机本地完成避免了数据在你的设备和服务器之间公网传输的延时,保证了搜索的效率。
百度网盘端 + 云向量检索流程:1. 请求云端计算文本 Query 的特征向量和 LSH(Locality-Sensitive Hashing,局部敏感哈希)编码;2. 计算文本和图片 LSH 编码相等的维数,找到相等维数超过阈值的图片子集;3. 在候选的图片子集中,计算图片向量与文本向量的相似度,按照相似度,从高到低返回。
二是尽可能压缩本地索引大小,进一步减少你的设备需要承载的计算量,减少电量消耗和手机发烫的情况。在对索引进行了大量的压缩后,即使图片规模达到 10 万,向量检索速度也可以达到毫秒级别,最终返回结果的延时能控制在秒级别。
三是开发一套异构算力调度系统。这套系统能够统一管理 CPU、GPU 等异构资源的调度,充分利用闲置资源,从而尽可能快地覆盖更多搜索人群。
长期以来,由于图片、视频搜索成本太高,效率太低,很多相册 APP 并没有把这种功能开放给用户。但通过以上这些举措,百度网盘很好地平衡了成本和效率,因此开创性地将其开放了出来,在保证搜索体验的前提下也能控制好成本。
网盘≠网络硬盘
网盘是一个诞生已经接近二十年的产品类型,百度网盘也已经走过了 11 个年头,但很长一段时间以来,人们只是把网盘当成一种存储工具来用,形成了「网盘 = 网络硬盘」的刻板印象。随着一些智能化功能的出现,这种印象正在被打破,百度网盘就是最好的例子。
除了以上提到的文本搜图外,百度网盘其实还支持「OCR 识图」和「以图搜图」,并且能自动关联百科信息甚至全网信息,极大地扩展了信息检索的维度,让你能够更深入地了解图片背后的故事,这远远超出了一个传统存储工具所能做的事情。
基于这些功能,百度网盘的应用场景得以不断扩展,比如为朋友圈文案配图片:
在体验这些功能时,你能深刻地体会到百度网盘多年以来积累的优势:它支持多端同时关联同一账号,形成了一个天然的全端数据中心,把你近十年来用不同设备记录的生活片段构建成了一个个人影像馆、图书馆,然后在你搜索时不经意地将其中一些展示出来,让你恍然大悟:「原来我还有这么一张照片、这么一段记忆」。
生活之外,也有越来越多的人将百度网盘当成一个生产力工具,借助它提供的搜图等功能管理视觉素材以及发票等多模态文件。据统计,图搜功能在百度网盘和一刻相册(百度网盘团队出品的云相册 App)已经覆盖千万级用户,一年累计图片搜索服务超过 2.5 亿次。
更值得一提的是,在图片、视频量如此巨大的情况下,百度网盘始终将用户的数据安全与隐私保护放在首位。以存储安全为例,百度网盘依托百度云计算(阳泉)中心,数据可靠性高达 99.9999999999%(12 个 9),极大提升了用户数据稳定性和可靠性。同时,也持续通过三项 ISO 安全认证的年度审核,全方位保障每位用户的数据安全。
究其根本,这些应用场景的集中爆发是因为百度网盘正在有意识地参与到一场变革中,也就是今年 AI 大模型所带来的人机交互方式的变革。在这场变革中,人们正在越来越多地用自然语言跟计算机交互,以文搜图只是其中的一种表现。
在今年 5 月份的「万象大会」上,百度网盘还推出了基于文心大模型的「云一朵」智能助理,把文件和视频的快速搜索、知识总结、文档翻译、智能创作都变成了「一句话的事」,未来还将实现多模态创作,并通过 IoT 设备实现网盘内容的万物互联。
具体来说,「云一朵」可以做的事情非常多。一是个人知识管理:它可以把你存在网盘里的所有内容转变为可以用自然语言查找的数据库,满足智能搜索、总结、问答、互动等需求。
二是多模态创作:它可以用网盘内的图片生成视频、将视频提炼成文本等。
三是通过 IoT 设备将网盘的内容在多类智能硬件上互联互通,比如用网盘的语音转写、视频转音频等能力赋能智能音箱、阅读器、听力机、词典笔等硬件,打破之前各类硬件工具使用时的割裂感,让网盘带来的智能体验无处不在。
当然,这种交互方式对于算力和大模型的能力都有着很高的要求。不过,这也正是百度网盘的优势所在:丰富的云端资源让他们可以采用足够强大的自研 AI 大模型,获取足够丰富的语义特征。此外,自研的大模型在迭代方面也更加灵活高效。
可以看到,在百度网盘不断进行智能化升级的今天,这一曾被打上「网络硬盘」烙印的工具正在朝着「第二大脑」的方向逐渐演变。基于大模型的处理能力,它正在帮助更多人构建与数字世界的连接,成为一款真正的生产力工具。