UForm

GitHub
1.2k 79 简单 1 次阅读 2天前Apache-2.0语言模型图像插件其他开发框架
AI 解读 由 AI 自动生成,仅供参考

UForm 是一款轻量级的多模态人工智能库,专为高效理解与生成跨语言文本、图像及未来视频内容而设计。它旨在解决传统多模态模型体积庞大、推理速度慢且难以在移动端部署的痛点,让开发者能在资源受限的设备上也能轻松运行高性能 AI。

无论是需要构建快速检索系统的后端工程师,还是希望集成图像描述、视觉问答功能的移动应用开发者,UForm 都是理想选择。其核心亮点在于提供了“套娃式”微小嵌入模型,支持从 64 到 768 维度的灵活调整,搜索速度极快;同时拥有参数量小但功能强大的生成模型,不仅能进行多轮对话,还能快速完成图片配文。

相比 OpenAI CLIP 和 LLaVA 等主流方案,UForm 的推理速度提升了 2 至 5 倍,且原生支持 ONNX、CoreML 和 PyTorch 等多种格式,可无缝部署于服务器、浏览器甚至智能手机。此外,它还具备量化感知能力,能在几乎不损失精度的前提下将数据压缩至整数格式,并支持超过 20 种语言的均衡处理。凭借小巧灵活的架构,UForm 让多模态 AI 真正变得触手可及。

使用场景

一家跨境电商公司的技术团队正在构建一个支持全球 20 多种语言的移动端图片搜索功能,让用户能直接拍照查找商品。

没有 UForm 时

  • 响应延迟高:依赖大型多模态模型(如 CLIP 或 LLaVA),在用户手机端推理速度慢,导致搜索结果需等待数秒,严重影响购物体验。
  • 部署成本昂贵:为了维持可接受的响应速度,必须将计算压力转移到云端 GPU 集群,服务器运维和流量成本居高不下。
  • 多语言支持弱:现有模型主要针对英语优化,处理德语、日语等小语种商品描述时,图文匹配准确率大幅下降。
  • 带宽消耗大:模型参数量巨大,每次更新或下发模型都需要消耗大量移动数据流量,阻碍了离线功能的实现。

使用 UForm 后

  • 毫秒级响应:利用 UForm 的轻量级架构,推理速度比竞品快 2-5 倍,用户在手机本地即可实现“拍照即搜”的流畅体验。
  • 端侧低成本部署:凭借 ONNX 原生支持和极小的模型体积,UForm 可直接运行在普通智能手机上,大幅削减了云端算力开支。
  • 全球化精准匹配:基于平衡数据集训练的多语言能力,确保在超过 20 种语言环境下,图文检索的召回率依然保持高水平。
  • 极致轻量化:支持从 64 维开始的“套娃式”嵌入和量化技术,显著降低了存储占用和内存消耗,让离线搜索成为可能。

UForm 通过将高性能多模态 AI 压缩至口袋尺寸,成功帮助企业在移动端实现了低成本、低延迟且覆盖全球的智能视觉搜索。

运行环境要求

操作系统
  • 未说明
GPU
  • 可选
  • 支持 CUDA 加速(示例代码中 device='cuda'),也支持 CPU 运行
  • 针对边缘设备或手机优化,无特定显存要求,但大模型推理建议具备现代 GPU 以利用半精度 (bfloat16/f16) 加速
内存

未说明。模型参数量小 (79M-1.5B),旨在低资源环境运行,具体取决于所选模型大小。

依赖
notes该工具主打轻量级和多平台部署,支持 ONNX、CoreML 和 PyTorch 后端,可运行于服务器至智能手机。默认使用 bfloat16 数据类型以获得约 2 倍速度提升。支持将嵌入向量量化为 f16、i8 甚至二值化 (b1) 以节省内存并加速搜索。生成式模型需设置 trust_remote_code=True。部分功能(如 JavaScript/Swift 的生成式模型支持)仍在开发中。
python未说明
uform
torch
transformers
Pillow
requests
numpy
simsimd
usearch
UForm hero image

快速开始

UForm

袖珍型多模态人工智能
用于内容理解和生成


Discord       LinkedIn       Twitter       Blog       GitHub

多模态嵌入,维度从64到768 • 10亿参数的聊天模型
短文本 • 图片 • 🔜 视频片段 • 🔜 长文档
ONNX • CoreML • PyTorch
PythonJavaScriptSwift


UForm 聊天预览

欢迎来到 UForm,一个既通用又高效的__多模态__ AI 库。UForm 的小型嵌入模型可以帮助您理解并搜索多种语言的视觉和文本内容。而 UForm 的小型生成模型不仅支持对话和聊天场景,还非常适合快速生成图片标题以及进行视觉问答(VQA)。借助紧凑的__自定义预训练 Transformer 模型__,它可以在从您的服务器集群到智能手机的任何设备上运行。

特性

  • 小型嵌入:64 维的 套娃式 嵌入,可用于极其快速的 搜索
  • 吞吐量:由于模型体积小,推理速度比竞争对手快 2–4 倍
  • 便携性:模型原生支持 ONNX,因此可以轻松部署在任何平台上。
  • 量化感知:将嵌入从 f32 降为 i8 而几乎不损失召回率。
  • 多语言:基于均衡的数据集训练,可在 20 多种语言中实现出色的召回效果。

模型

有关准确性和速度的基准测试,请参阅评估页面

嵌入模型

模型 参数 语言 架构
uform3-image-text-english-large 🆕 3.65 亿 1 12 层 BERT,ViT-L/14
uform3-image-text-english-base 1.43 亿 1 4 层 BERT,ViT-B/16
uform3-image-text-english-small 🆕 7900 万 1 4 层 BERT,ViT-S/16
uform3-image-text-multilingual-base 2.06 亿 21 12 层 BERT,ViT-B/16

生成模型

模型 参数 用途 架构
uform-gen2-dpo 🆕 12 亿 聊天、图片描述、VQA qwen1.5-0.5B,ViT-H/14
uform-gen2-qwen-500m 12 亿 聊天、图片描述、VQA qwen1.5-0.5B,ViT-H/14
uform-gen ⚠️ 15 亿 图片描述、VQA llama-1.3B,ViT-B/16

快速入门示例

嵌入模型

首先,运行 pip install uform。 然后加载模型:

from uform import get_model, Modality

# 默认使用 `dtype='bfloat16'`,可在几乎不损失精度的情况下实现约2倍的加速
processors, models = get_model('unum-cloud/uform3-image-text-english-small', device='cuda')

model_text = models[Modality.TEXT_ENCODER]
model_image = models[Modality.IMAGE_ENCODER]
processor_text = processors[Modality.TEXT_ENCODER]
processor_image = processors[Modality.IMAGE_ENCODER]

嵌入图像:

import requests
from io import BytesIO
from PIL import Image

image_url = 'https://media-cdn.tripadvisor.com/media/photo-s/1b/28/6b/53/lovely-armenia.jpg'
image = Image.open(BytesIO(requests.get(image_url).content))
image_data = processor_image(image)
image_features, image_embedding = model_image.encode(image_data, return_features=True)

嵌入查询:

text = '沐浴在温暖阳光下的城市景观,拥有多种建筑风格,背景中巍峨耸立着一座白雪皑皑的高山'
text_data = processor_text(text)
text_features, text_embedding = model_text.encode(text_data, return_features=True)

更多详情请参阅:

生成式模型

生成式模型原生兼容以下代码:

from transformers import AutoModel, AutoProcessor

model = AutoModel.from_pretrained('unum-cloud/uform-gen2-dpo', trust_remote_code=True)
processor = AutoProcessor.from_pretrained('unum-cloud/uform-gen2-dpo', trust_remote_code=True)

prompt = '问题或指令'
image = Image.open('image.jpg')

inputs = processor(text=[prompt], images=[image], return_tensors='pt')

with torch.inference_mode():
     output = model.generate(
        **inputs,
        do_sample=False,
        use_cache=True,
        max_new_tokens=256,
        eos_token_id=151645,
        pad_token_id=processor.tokenizer.pad_token_id
    )
prompt_len = inputs['input_ids'].shape[1]
decoded_text = processor.batch_decode(output[:, prompt_len:])[0]

更多详情请参阅:

  • Python 文档中的生成式模型部分,位于 python/README.md
  • JavaScript 文档中的生成式模型部分 🔜
  • Swift 文档中的生成式模型部分 🔜

技术细节

降精度、量化、套娃与切片

根据具体应用场景,嵌入向量可以在不显著降低召回率的前提下,降为更小的数值表示形式。在几乎所有情况下,都建议从 f32 切换到 f16,除非您使用的硬件非常老旧且不支持半精度运算。此外,也可以采用线性缩放的方式将数据转换为 i8 格式,不过对于包含数百万条可搜索记录的大规模数据集而言,这种做法可能会对召回率产生明显影响。同样地,对于高维嵌入(如512或768维),一种常见的策略是将其量化为单比特表示,以提升检索速度。

import numpy as np

f32_embedding: np.ndarray = model.encode_text(text_data, return_features=False)
f16_embedding: np.ndarray = f32_embedding.astype(np.float16)
i8_embedding: np.ndarray = (f32_embedding * 127).astype(np.int8)
b1_embedding: np.ndarray = np.packbits((f32_embedding > 0).astype(np.uint8))

另一种量化方法是使用“套娃”嵌入,即将嵌入向量切分为多个较小的部分,并以层次化的方式进行检索。

import numpy as np

large_embedding: np.ndarray = model.encode_text(text_data, return_features=False)
small_embedding: np.ndarray = large_embedding[:, :256]
tiny_embedding: np.ndarray = large_embedding[:, :64]

这两种方法均得到 USearch 向量搜索引擎和 SimSIMD 数值计算库的原生支持。当处理小型数据集(最多数百万条记录)并需要低延迟的余弦距离计算时,借助 SimSIMD 库,您可以实现比 PyTorch、NumPy、SciPy 和原生 Python 快 5 至 2500 倍的性能提升report-simsimd

from simsimd import cosine, hamming

distance: float = cosine(f32_embedding, f32_embedding) # 在 Apple M2 CPU 上性能是 SciPy 的 32 倍
distance: float = cosine(f16_embedding, f16_embedding) # 在 Apple M2 CPU 上性能是 SciPy 的 79 倍
distance: float = cosine(i8_embedding, i8_embedding) # 在 Apple M2 CPU 上性能是 SciPy 的 133 倍
distance: float = hamming(b1_embedding, b1_embedding) # 在 Apple M2 CPU 上性能是 SciPy 的 17 倍

类似地,当处理大型数据集(每台服务器可达数十亿条记录)并追求高吞吐量检索时,使用 USearch 可以实现比 FAISS 和其他向量搜索引擎快 100 倍的性能提升report-usearch。以下是几个示例:

from usearch.index import Index

f32_index = Index(ndim=64, metric='cos', dtype='f32') # 用于套娃嵌入
f16_index = Index(ndim=64, metric='cos', dtype='f16') # 用于套娃嵌入
i8_index = Index(ndim=256, metric='cos', dtype='i8') # 用于量化后的嵌入
b1_index = Index(ndim=768, metric='hamming', dtype='b1') # 用于二进制嵌入

紧凑封装

PyTorch 是一个较为庞大的依赖项,尤其是在边缘设备或物联网设备上运行时。通过使用原生 ONNX 运行时,可以显著降低内存占用和部署延迟。

$ conda create -n uform_torch python=3.10 -y
$ conda create -n uform_onnx python=3.10 -y
$ conda activate uform_torch && pip install -e ".[torch]" && conda deactivate
$ conda activate uform_onnx && pip install -e ".[onnx]" && conda deactivate
$ du -sh $(conda info --envs | grep 'uform_torch' | awk '{print $2}')
> 5.2G    ~/conda/envs/uform_torch
$ du -sh $(conda info --envs | grep 'uform_onnx' | awk '{print $2}')
> 461M    ~/conda/envs/uform_onnx

其中大部分体积还可以进一步压缩至仅 100 MB,包括模型和运行时。您可以选择众多受支持的 ONNX 执行提供者,其中包括适用于 Nvidia GPU 的 XNNPACK、CUDA 和 TensorRT,适用于 Intel 的 OpenVINO,适用于 Windows 的 DirectML,适用于 AMD 的 ROCm,适用于 Apple 设备的 CoreML,以及更多即将支持的选项。

命令行中的多模态聊天

生成式模型可以在命令行中用于类聊天的交互体验。 为此,您可以使用 UForm 包中提供的 uform-chat 命令行工具。

$ pip install uform
$ uform-chat --model unum-cloud/uform-gen2-dpo --image=zebra.jpg
$ uform-chat --model unum-cloud/uform-gen2-dpo \
>     --image="https://bit.ly/3tIVg9M" \
>     --device="cuda:0" \
>     --fp16

版本历史

v3.1.42025/10/30
v3.1.32025/09/03
v3.1.22025/06/21
v3.1.12025/01/03
v3.1.02024/12/20
v3.0.32024/10/01
v3.0.22024/04/25
v3.0.12024/04/25
v3.0.02024/04/25
v2.1.12024/04/16
v2.1.02024/04/14
v2.0.22024/03/28
v2.0.12024/03/28
v2.0.02024/03/28
v1.1.12024/02/23
v1.1.02024/02/15
v1.0.32023/12/29
v1.0.22023/12/28
v1.0.02023/12/28
v0.4.82023/10/13

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160.8k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|3天前
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像