UForm
轻量级多模态AI库,64-768维图文embedding + 小型生成模型,支持Python/JS/Swift,比OpenAI CLIP快2-4倍
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
轻量级多模态AI库,64-768维图文embedding + 小型生成模型,支持Python/JS/Swift,比OpenAI CLIP快2-4倍
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
试想一个场景:你在咖啡馆里用手机拍下一张外文菜单,想知道点什么好吃;或者你在开发一款图片搜索引擎,希望它能理解「暖色调的冬日雪景」这样的模糊描述,而不只是文件名标签。如果这些需求以前需要调用笨重的云端API、等待数秒响应、还要付账单,那么 UForm 正在改变这一切——它让你在自己的设备上,几毫秒内搞定这一切。

图1:UForm 品牌标识
UForm 由 Unum Cloud 团队开发,核心作者包括 Ash Vardanian(向量数据库 USearch 作者)、Mikhail Kim 和 Vladimir Orshulevich。项目始于 2023 年 2 月,诞生于一个朴素的观察:当时开源多模态模型要么大到无法在消费级硬件运行,要么精度不够。团队的目标是打造一套「口袋级」多模态 AI 工具,既能跑在服务器集群,也能跑在手机和边缘设备上。
UForm 不是一个孤立的模型,而是一个完整的开发生态,涵盖 embedding(向量化)和 generative(生成式)两大方向,支持 Python、JavaScript、Swift 三种语言,背后模型托管在 HuggingFace。Apache-2.0 许可证允许商业免费使用,这也是它受到开发者青睐的重要原因。
UForm 的 embedding 模型采用 Matryoshka 表示学习(Matryoshka Representation Learning, MRL) 技术,核心思想来自 2022 年的 NeurIPS 论文:训练时让一个高维向量天然包含多个嵌套的子向量,每一层子向量都可以独立用于检索,只需截取前 N 维即可。
这意味着你可以:
全部来自同一个训练好的模型,无需重新训练或蒸馏。这种弹性让 UForm 非常适合与向量数据库(如 USearch、Qdrant、Milvus)配合使用。
主力 embedding 模型系列:
| 模型 | 参数量 | 语言 | 架构 |
|---|---|---|---|
| uform3-image-text-english-large | 365M | 1(英文) | 12层 BERT + ViT-L/14 |
| uform3-image-text-english-base | 143M | 1(英文) | 4层 BERT + ViT-B/16 |
| uform3-image-text-english-small | 79M | 1(英文) | 4层 BERT + ViT-S/16 |
| uform3-image-text-multilingual-base | 206M | 21种语言 | 12层 BERT + ViT-B/16 |
多语言版本覆盖中文、日语、韩语、法语、德语、西班牙语等 21 种语言,对非英文场景的召回率与英文相当,这一点在开源 CLIP 类模型中较为少见。
UForm 的生成式模型不走「越大越好」的路线,而是追求 小参数 + 高效率。最新一代 uform-gen2-dpo 仅 1.2B 参数,采用 Qwen1.5-0.5B 作为文本解码器、ViT-H/14 作为视觉编码器,在图像描述(Image Captioning)和视觉问答(VQA)任务上可与更大模型一战,且推理速度 2-4 倍更快。
更早的 uform-gen(1.5B 参数,基于 LLaMA-1.3B + ViT-B/16)虽然参数量稍大,但因使用了 LLaMA 架构,在某些生态集成场景下更方便。生成式模型通过 HuggingFace Transformers 加载,支持标准的 generate() 接口,与现有 AI 应用无缝对接。

图2:UForm 生成式模型对话预览(来自官方 GitHub)
CLIP 类的开源多模态模型长期存在「英语霸权」问题:英文召回率远高于其他语言。UForm 的多语言 embedding 模型专门针对 21 种语言的图文配对数据进行了平衡训练,在中文、日语、韩语等非拉丁语系的召回率上显著优于原始 OpenCLIP。这一特性使它在跨境电商、多语言内容搜索、国际化产品等场景中有独特价值。
UForm 的代码仓库采用 monorepo 结构,根目录下分设 python/、javascript/、swift/ 三个子包:
get_model() 接口自动从 HuggingFace 下载模型,按需加载不同模态组件。@xenova/transformers 和 ONNXRuntime-Node/Web,可在浏览器(ONNXRuntime-Web)或 Node.js 环境中运行 embedding,适合前端多模态搜索场景。swift-transformers 库,可将多模态能力嵌入 Apple 原生应用。核心依赖非常轻量:Python SDK 仅需 huggingface_hub、tokenizers、pillow、simsimd、numpy。PyTorch、Transformers 等重量级依赖均为可选安装(pip install uform[torch])。simsimd 是团队自研的 SIMD 加速库,专门针对 embedding 相似度计算优化。
命令行工具 uform-chat(通过 pip install uform 自动安装)提供了本地对话界面,无需写代码即可体验生成式模型能力。
UForm 突出的一点是端侧部署能力。Embedding 模型原生支持 ONNX 导出,配合 ONNXRuntime 或 CoreML,可以部署到:
量化策略方面,项目文档详细描述了从 f32 到 f16 到 i8 到 b1 的逐级降级路径及其对召回率的影响,帮助开发者根据硬件条件做取舍。
根据项目 BENCHMARKS.md 中的评测数据,UForm 在多个图文理解基准上表现优异:
安装(Python):
pip install uform # 基础版(NumPy CPU)
pip install uform[torch] # PyTorch GPU 加速版
pip install uform[onnx] # ONNX CPU 版
pip install uform[onnx-gpu] # ONNX GPU(TensorRT)版
Embedding 快速上手:
from uform import get_model, Modality
# 默认 bfloat16 精度,自动选择最优设备
processors, models = get_model('unum-cloud/uform3-image-text-english-small', device='cuda')
text_data = processors[Modality.TEXT_ENCODER]('a cozy coffee shop')
image_data = processors[Modality.IMAGE_ENCODER](Image.open('photo.jpg'))
text_emb = models[Modality.TEXT_ENCODER].encode(text_data)
image_emb = models[Modality.IMAGE_ENCODER].encode(image_data)
局限性:
UForm 的出现代表了一个趋势:开源多模态 AI 的轻量化落地。在 UForm 之前,在自有硬件上实现图文语义搜索通常需要部署笨重的 OpenCLIP 或昂贵的商业 API。UForm 用 Matryoshka 表示学习 + 小型 Transformer 组合,证明了「小模型 + 好训练」可以在很多实际场景中替代「大模型」。
从 Stars 增长曲线看,UForm 在 2023-2024 年间稳步积累,2025 年随着多模态 AI 应用爆发而加速增长,目前已是 HuggingFace 上最受欢迎的图文 embedding 库之一。它与同门项目 USearch(向量数据库)形成了「模型 + 检索」的完整闭环,这也是 Unum Cloud 团队的核心产品战略。
如果你正在构建:
UForm 值得放进你的技术选型清单。