SwiftSemanticSearch
运行在 iPhone/iPad/Mac 上的端侧多模态语义搜索 demo,通过 UForm+USearch 在本地完成图文向量化和检索
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
运行在 iPhone/iPad/Mac 上的端侧多模态语义搜索 demo,通过 UForm+USearch 在本地完成图文向量化和检索
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有想过,有一天可以在手机上直接对着相机说「找一张柯基照片」,然后 AI 就能在本地相册里精准捞出所有相关图片——不需要联网、不需要把数据上传到云端?SwiftSemanticSearch 正在让这件事变成现实。

图1:文字搜图——对着相机说「Dog」,App 即时返回语义相关图片
传统的多模态搜索几乎都依赖云端服务器,带来两个天然瓶颈:
隐私风险:医疗影像、商业文档等敏感内容存在泄露风险。2024 年多起 AI 图像搜索隐私泄露事件已经证明,云端处理并非总是安全的选择。
延迟问题:在弱网或离线环境下,这类应用几乎不可用。以 Apple 为例,其设备搭载的 Neural Engine(ANE)拥有出色的本地推理能力,但长期被闲置。
SwiftSemanticSearch 代表了一种新兴技术范式:端侧 AI(On-Device AI)。整个推理流程——从图片 embedding 生成到向量检索——全部在 iPhone/iPad/Mac 的本地硬件上完成,数据不离开设备。
UForm 是 Unum Cloud 开源的多模态理解库,专门针对端侧优化。它能够将文本、图片等不同模态的原始数据,编码为统一的向量表示(embedding)。项目使用了预量化模型 uform3-image-text-english-small,以 ONNX 格式分发,可以直接被 CoreML 加载。
USearch 是一个比 FAISS 快数倍的向量搜索引擎:
项目还包含 SwiftVectorSearch app,在地图上撒入 1000 个地理锚点,演示 USearch 的 Haversine 度量在地理空间检索中的应用。初始化时使用 metric: .haversine 创建索引,search() 时传入经纬度坐标即可返回附近锚点。
文字搜图(Text-to-Image):用户输入文字,App 实时将文字转换为向量,在预建图片索引中搜索最相似结果。
图片搜图(Image-to-Image):拍摄或选择图片,将其 embedding 与索引库比对,返回视觉最接近结果。相机持续捕获画面 → 逐帧 embedding → 增量更新搜索结果,用户几乎感觉不到延迟。

图2:图片搜索——选择一张花卉照片,App 返回语义最接近的图库图片
git clone https://github.com/ashvardanian/SwiftSemanticSearch.git
cd SwiftSemanticSearch
unzip dataset.zip # 包含预计算的 embeddings 和索引文件
解压后得到:图库图片名称列表、images.uform3-image-text-english-small.fbin(预计算 embedding)、images.uform3-image-text-english-small.usearch(USearch 索引)、图片本地目录。
用 Xcode 打开项目,选择真机设备编译运行即可。
注意事项:
SwiftSemanticSearch 指向了一个更大的方向——端侧 AI 原生应用。随着 Apple M 系列芯片、Qualcomm Snapdragon X Elite 等 NPU 算力的快速提升,越来越多的 AI 能力正在从云端下沉到端侧。
从向量搜索这个具体场景来看,USearch + UForm 组合展示了端侧多模态搜索的可行性:没有网络的环境下,手机可以理解「找一张在海边拍的照片」这样的语义查询,从本地图库中精准返回结果。结合 RAG 技术,未来可以直接在本地构建私人 AI 知识库。