UForm 项目介绍
项目概述
UForm 是一个多模态人工智能库,旨在理解和生成内容。它具有便携性,能够在各种设备上从服务器到智能手机运行。UForm 的微小嵌入模型可以帮助用户跨多种语言理解和搜索视觉和文本内容。另一方面,UForm 的生成模型对话和聊天的应用场景,以及快速的图像描述和视觉问答(VQA)功能,使其非常高效。
主要特征
- 微小嵌入:使用64维的嵌入使搜索速度极快。
- 高吞吐量:由于模型体积小,推理速度比竞品快2-4倍。
- 可移植性:模型支持ONNX,方便在任何平台上部署。
- 量化感知:可以将嵌入从
f32
降转为i8
,而几乎不损失召回率。 - 多语言支持:在20多种语言中的召回率表现良好,得益于均衡的数据集训练。
模型概况
UForm 提供两类模型:嵌入模型和生成模型。
嵌入模型
这些模型主要用于文本与图像内容的嵌入,可以方便地进行内容搜索和匹配。具体模型包括:
uform3-image-text-english-large
:包含365百万参数,适用于英语。uform3-image-text-english-base
:包含143百万参数,同样适用于英语。uform3-image-text-multilingual-base
:支持21种语言,具有206百万参数。
生成模型
这些模型主要用于对话生成、图像字幕生成和视觉问答,具备强大的生成能力。包括:
uform-gen2-dpo
和uform-gen2-qwen-500m
:每个拥有1.2十亿参数,适合聊天、图像字幕和VQA。uform-gen
:拥有1.5十亿参数,专注于图像字幕和VQA。
快速入门示例
对嵌入模型进行操作非常简单。首先,通过 pip install uform
安装包,然后加载模型:
from uform import get_model, Modality
processors, models = get_model('unum-cloud/uform3-image-text-english-small')
model_text = models[Modality.TEXT_ENCODER]
model_image = models[Modality.IMAGE_ENCODER]
processor_text = processors[Modality.TEXT_ENCODER]
processor_image = processors[Modality.IMAGE_ENCODER]
随后,通过载入的模块可以对图像和文本进行嵌入,以便于后续处理和分析。
量化和压缩技术
UForm 也支持多种精简模型表示的方法,通过降维和量化技术减少计算和存储资源需求。常用的做法包括从 f32
切换为 f16
,以及使用 i8
和单比特表示以提高搜索速度和减少空间复杂度。
其他技术细节
UForm 支持多种执行提供者,可以与ONNX、CoreML和PyTorch无缝集成。此外,它还提供命令行工具uform-chat
,让用户可以在CLI中提供类似聊天的体验。
通过以上丰富的功能和强大的性能,UForm 在多模态AI领域提供了一种全面且可扩展的解决方案,适合开发者和研究人员利用这一技术实现先进的内容理解和生成能力。