章节 01
导读 / 主楼:Nomic Embed Multimodal:视觉文档理解的多模态嵌入新方案
基于Qwen2.5-VL的多模态嵌入模型,为图像和文本生成统一的3584维向量表示,在FiftyOne中实现高效的视觉文档检索与分类。
正文
基于Qwen2.5-VL的多模态嵌入模型,为图像和文本生成统一的3584维向量表示,在FiftyOne中实现高效的视觉文档检索与分类。
章节 01
基于Qwen2.5-VL的多模态嵌入模型,为图像和文本生成统一的3584维向量表示,在FiftyOne中实现高效的视觉文档检索与分类。
章节 02
Nomic Embed Multimodal 是由 Nomic AI 开发的多模态嵌入模型系列,专为视觉文档理解任务设计。与传统的多向量架构不同,该项目采用了单向量架构,每个输入(无论是图像还是文本)都被压缩成一个单一的高维向量表示。
章节 03
该项目提供两个版本供用户选择:
| 模型 | 参数量 | 速度 | 质量 | 适用场景 |
|---|---|---|---|---|
| 7B 模型 | 70亿 | 中等 | 优秀 | 生产环境、精度关键型应用 |
| 3B 模型 | 30亿 | 快速 | 良好 | 开发测试、实时应用 |
两个模型都输出 3584维 的嵌入向量,这意味着你可以在它们之间无缝切换而无需重新计算整个数据集。
章节 04
Nomic Embed Multimodal 采用单向量架构,每个输入被压缩成一个3584维的嵌入:
图像或文本 → 处理器 → 模型 → (3584,) 嵌入向量
这种设计带来了多重好处:
章节 05
检索流程:
dataset.compute_embeddings(model, embeddings_field="embeddings")
└─> embed_images()
└─> processor.process_images(imgs)
└─> model(**inputs)
└─> 返回 (batch, 3584) 归一化嵌入
└─> 存储在 FiftyOne 中用于余弦相似度搜索
分类流程:
dataset.apply_model(model, label_field="predictions")
└─> _predict_all()
└─> 获取图像嵌入 (batch, 3584)
└─> 获取类别文本嵌入 (num_classes, 3584)
└─> processor.score() → 余弦相似度
└─> 返回分类 logits
└─> 输出处理器 → 分类标签
章节 06
该项目实现了与 FiftyOne 机器学习数据平台的深度集成,让开发者可以便捷地进行各种视觉文档分析任务。
章节 07
# 注意:transformers 版本需小于 5.0
pip install fiftyone colpali-engine torch pillow peft "transformers<5.0"
章节 08
import fiftyone.zoo as foz
# 注册远程模型源
foz.register_zoo_model_source(
"https://github.com/harpreetsahota204/nomic-embed-multimodal",
overwrite=True
)
# 加载模型(默认7B版本)
model = foz.load_zoo_model("nomic-ai/nomic-embed-multimodal-7b")
# 或选择更快的3B版本
# model = foz.load_zoo_model("nomic-ai/nomic-embed-multimodal-3b")