端侧 AI 语义搜图实战:从向量化到多模态检索
端侧 AI 语义搜图实战:从向量化到多模态检索
"帮我找那张在海边看日落的照片。“这句话一旦能从嘴里说出来,图库就自己翻出目标,用户和相册之间那层"文件名加文件夹"的隔阂就被拆掉了。据公开报道,HarmonyOS 7 的 CoreVisionKit 把这类语义搜图做成端侧 AI 能力之后,讨论的焦点立刻从"能不能搜"变成了"怎么在手机里搜”。
云相册做语义搜索做了好几年,识别准确率早就够用。真正难的是把它塞进一台手机:模型不能太大,推理不能太慢,还得扛住电池和发热。端侧和云端,同一套检索逻辑,两种完全不同的活法。这篇文章把原理拆开讲,再从工程角度说清楚端侧部署的取舍,最后给一段流程级实现示例。
我会按"事件、原理、挑战、实现、对比"的顺序走。读完你不仅知道语义搜图是怎么回事,还知道它凭什么能跑进你的手机里。
事件引入:语义搜图从云端走到端侧
据公开报道,HarmonyOS 7 的 CoreVisionKit 提供端侧 AI 能力,其中语义搜图支持用户用自然语言描述画面内容,在本地图库中检索图片,处理过程在设备端完成,无需上传云端。具体支持的语言范围、检索精度与硬件门槛,以官方文档为准。
单看技术含量,这条新闻不算惊艳,多模态检索在云端早已成熟。真正值得读的信号是"端侧"两个字。它带来三个变化:① 数据不出设备,隐私顾虑直接清零;② 没有网络也能搜,离线场景天然可用;③ 延迟从"绕一圈云端"压缩成一次本地推理。三个变化叠在一起,语义搜图才从"云端功能"变成"系统能力"。
原理拆解:一张图怎么变成一串数字
语义搜图的核心,是把图像和文本塞进同一个数学空间,让"猫"和"一张猫的照片"在空间里靠得很近。这依赖两个关键设计。
双塔模型(Two-Tower)。 CLIP 这类架构给这套玩法定了型。一个图像编码器负责把图片变成向量,一个文本编码器负责把文字变成向量,两个塔各自独立,最终输出到同一套坐标体系里。图片侧常用卷积网络或视觉 Transformer,文本侧用 Transformer,中间靠对比学习把两边对齐。
对比学习(Contrastive Learning)。 训练时把"猫的照片"和"猫"这个描述配成正样本,把随机组合配成负样本。模型要学会让正样本在向量空间里靠近、负样本远离。这个目标简单粗暴,效果却出奇地好。因为语义相似被直接翻译成了向量距离近,检索问题就变成了向量空间里的邻居搜索问题。
对齐之后,图库里每张图提前算好向量存进索引。用户输入一句描述,文本塔出一个查询向量,系统在索引里找最近的 K 个邻居,返回对应图片。整条链路用伪代码表达,大概是下面这个样子:
# 离线阶段:为图库构建向量索引
for img in photo_library:
vec = image_encoder(img) # 图像塔 → 图像向量
index.add(vec, img.id)
# 在线阶段:文本查询 → 相似度检索
query_vec = text_encoder("海边看日落") # 文本塔 → 查询向量
results = index.search(query_vec, top_k=20) # ANN 近似最近邻
return [photo_library[id] for id in results]
伪代码里的 search 不是暴力遍历。十万张照片挨个算余弦相似度,手机扛不住,所以工程上用的是近似最近邻(ANN)索引,常见的有 HNSW、IVF 这类算法。它们牺牲一点点召回率,把检索复杂度从全量扫描降到图导航式查找,端侧才跑得动。
端侧部署的挑战
原理说穿了不难,难在"在手机里跑起来"。一张约束表,比十段论述更直观:
| 约束维度 | 云端的做法 | 端侧的处境 |
|---|---|---|
| 算力 | GPU 集群随便调 | 手机 SoC,NPU 算力有限还要分时共享 |
| 内存 | 权重常驻服务器内存 | 权重要常驻 App 内存,百 MB 级别就伤不起 |
| 模型体积 | 不敏感 | 目标通常压到几十 MB 量级 |
| 功耗发热 | 无关紧要 | 一次全量建索引,可能让手机发烫掉电 |
| 隐私 | 数据上云,靠协议兜底 | 数据不出设备,是卖点也是约束 |
| 更新频率 | 模型随时迭代 | 只能随系统或 App 版本走,周期长 |
这张表推导出一个现实结论:端侧模型的能力上限不取决于算法,取决于压缩和蒸馏做到什么程度。图像塔往往比文本塔更重,因为要理解画面里繁杂的视觉信息,所以压缩通常优先打在图像编码器上。
实现路径:图像、向量、索引、检索
给一条完整可走的实现路径,每个环节都标注要做的决策。
第一步,向量化。 选一个多模态模型,把图库里的图片全部过一遍图像塔,产出向量。端侧建议用量化到 INT8 或更低精度的版本,用一点精度损失换体积和速度,这笔交易在相册场景里通常划算。
增量插入这件事,HNSW 和 IVF 的底子完全不同,选型前得先看清差异。
HNSW:天生适合增量。 HNSW 的本质是多层跳表式的图结构,新向量插入时只需从顶层出发做一次贪心搜索,找到它在各层的邻居并连边,就能挂进图里。整个过程是局部的,不涉及全局重建,插入成本低、即时生效。代价是图结构会随插入逐渐偏离最优形态,插入多了之后召回率会缓慢下滑,需要定期做一次重连或重建来"回血"。对端侧相册这种"每天加几张、偶尔删几张"的节奏,HNSW 的增量体验最顺滑。
IVF:增量要打折扣。 IVF 先把向量空间划分成若干聚类(倒排桶),查询时只搜最近的几个桶。它的增量插入本身不复杂——新向量算一下属于哪个桶,塞进去就行——但问题出在聚类中心上:聚类中心是离线训练出来的,新数据不断涌入后,桶的划分会逐渐失真,召回率随之下降。要恢复质量就得重新聚类,而重聚类意味着所有向量重新分配桶,本质上接近一次全量重建。所以 IVF 更适合"数据批量到达、定期整体重建"的场景,比如每天夜间统一更新一次索引。
| 维度 | HNSW | IVF |
|---|---|---|
| 增量插入 | 局部连边,即时生效 | 塞入桶内,但聚类中心会失真 |
| 插入后质量 | 缓慢下滑,需定期重连 | 随数据漂移下降,需重聚类 |
| 重建成本 | 低,局部重连即可 | 高,接近全量重建 |
| 查询延迟 | 图导航,稳定 | 桶内扫描,受桶大小影响 |
| 内存占用 | 较高,需存图结构 | 较低,桶结构更紧凑 |
| 端侧适配 | 适合动态图库 | 适合批量更新场景 |
落到端侧图库,推荐的做法是以 HNSW 为主、定期重连兜底:平时新照片进来走增量插入,体验零感知;攒到一定规模或系统空闲时,做一次局部重连或整体重建,把召回率拉回高位。如果图库更新有明显的批次节奏(比如每天同步一次云端相册),IVF 配合夜间重建也是合理选择。无论选哪种,都要把"删除"考虑进去——相册会删照片,索引需要支持标记删除或定期清理,否则死向量会持续占用内存、拖慢查询。
第二步,建索引。 把向量送进 ANN 索引。图库是动态的,用户天天拍新照片,所以索引必须支持增量插入,而不是每次全量重建。这一点直接决定了图库变化时的流畅度,也决定了首次启动要不要让用户干等。
第三步,查询。 用户输入自然语言,文本塔产出查询向量,走一遍 ANN 检索,拿到 Top-K 候选。查询延迟大部分耗在这一步,模型推理和索引查找各自占一半。
第四步,重排序。 候选里补一次精排,按余弦相似度或模型打分重新排序,再返回结果。不少实现还会过滤低分项,避免"看起来像但其实不对"的误召回。这一步看着小,对体验的影响却很大。
整个流程的时间大头在第一步和第二步的首次构建。为了不让用户等,端侧方案通常把全量建索引挪到空闲时段或插电时做,平时只做增量。这是一个很典型的工程取舍:把离线成本藏起来,换在线体验的顺滑。
端侧与云端的取舍
同一个语义搜图,端侧和云端各有各的账本。摆在一张表里,选择逻辑就清楚了:
| 对比项 | 端侧方案 | 云端方案 |
|---|---|---|
| 隐私 | 数据不出设备 | 照片需上传,依赖隐私协议 |
| 离线可用 | 完全可用 | 断网即失效 |
| 检索延迟 | 本地推理,毫秒级 | 加一次网络往返,受网络质量影响 |
| 召回质量 | 受模型体积限制 | 可用最大的模型,质量上限高 |
| 部署成本 | 压缩、蒸馏、端侧适配 | 服务器集群与带宽成本 |
| 迭代速度 | 随系统版本走 | 云端随时更新 |
结论不复杂:对质量敏感的冷门场景,云端余地更大;对隐私敏感、追求即时响应的日常场景,端侧是更好的默认选择。很多产品的真实形态是端云协同,端侧先粗筛,云端再精排,两头都占。
对开发者的意义
端侧 AI 语义搜图走到系统层面,对开发者是实打实的机会,三个方向值得盯。
能力借力。 如果系统提供了 CoreVisionKit 这类端侧能力,自己搭建多模态管线的成本就能省下来,重点该放在业务适配而不是重复造轮子。官方能力的支持范围、性能指标和授权方式,以官方文档为准。
离线体验是新的竞争维度。 当别人家的应用还在"正在连接"转圈,你的应用断网状态下也能本地检索,这本身就是差异化。把离线做到位,等于在弱网环境下拿走了别人的用户。
数据在端侧的资产管理。 向量索引是一种新的资产形态。图库、文档、音频都能向量化,未来端侧会沉淀出越来越丰富的个人语义库。谁先把检索体验做好,谁就占住了入口。
结论
从向量化到索引到检索,端侧语义搜图的原理链并不长,但每一步都被"设备资源有限"这根绳子勒着。据公开报道,HarmonyOS 7 把这类能力做成系统级端侧 AI,意味着多模态检索开始从云端特权走向设备标配。对开发者来说,看懂原理只是入门,真正的功夫在压缩、增量索引、功耗调度这些工程细节上,它们是端侧 AI 能不能落地的分水岭。
更多推荐

所有评论(0)