视觉数据(从图像到 PDF 再到流媒体视频)呈指数级增长,几乎无法进行手动审查和分析。组织正在努力将这些数据大规模转化为可操作的见解,从而错失机会并增加风险。
为了解决这一挑战,视觉语言模型 (VLM) 应运而生,成为一种强大的工具,将图像和视频的视觉感知与基于文本的推理相结合。与仅处理文本的传统大型语言模型(LLM) 不同,VLM 使您能够构建能够理解复杂多模态数据并对其采取行动的视觉 AI 代理,从而实现实时决策和自动化。
想象一下,有一个智能 AI 代理,它可以分析远程摄像机镜头以检测野火的早期迹象,或扫描商业文档以提取隐藏在图表、表格和图像中的关键信息——所有这些都是自主的。
借助NVIDIA NIM 微服务,构建这些先进的视觉 AI 代理比以往更加轻松高效。NIM 微服务提供灵活的自定义、简化的 API 集成和流畅的部署,使您能够根据自己的独特业务需求创建动态代理。
在本文中,我们将指导您完成使用 NVIDIA NIM 微服务设计和构建智能视觉 AI 代理的过程。我们介绍了可用的不同类型的视觉 AI 模型,分享了四个示例应用程序——流视频警报、结构化文本提取、多模式搜索和小样本分类——并提供了 Jupyter 笔记本来帮助您入门。有关将这些模型付诸实践的更多信息,请参阅存储库。
视觉 AI 模型的类型
为了构建强大的视觉 AI 代理,您可以使用以下核心类型的视觉模型:
可变长度语言
嵌入模型
计算机视觉 (CV) 模型
这些模型是开发智能视觉 AI 代理的基本构建块。虽然 VLM 是每个代理的核心引擎,但 CV 和嵌入模型可以增强其功能,无论是通过提高对象检测等任务的准确性还是解析复杂文档。
在本文中,我们使用视觉 NIM 微服务来访问这些模型。每个视觉 NIM 微服务都可以通过简单的 REST API 轻松集成到您的工作流程中,从而实现对文本、图像和视频的高效模型推理。首先,您可以在m上试用托管预览 API ,而无需本地 GPU。
GIF 展示了 llama-3.2-vision-90b 模型对图像的总结。
图 模型
视觉语言模型
VLM 通过添加视觉功能为语言模型带来了新的维度,使其具有多模式性。这些模型可以处理图像、视频和文本,从而使它们能够解释视觉数据并生成基于文本的输出。VLM 用途广泛,可以针对特定用例进行微调,或根据视觉输入提示执行问答等任务。
NVIDIA 及其合作伙伴提供多种 VLM 作为 NIM 微服务,每种微服务的大小、延迟和功能各不相同(表 1)。
公司 模型 尺寸 描述
英伟达 维拉 40B 基于SigLIP 和Yi构建的强大的通用模型,适用于几乎任何用例。
英伟达 涅瓦河 22B 结合 NVGPT 和 CLIP 的中型模型,提供更大规模多模态模型的功能。
元 骆驼 3.2 90B/11B 第一款具有视觉功能的 Llama 模型有两种尺寸,在一系列视觉语言任务中表现出色,并支持更高分辨率的输入。
微软 phi-3.5-视觉 4.2B 一种小型、快速的模型,擅长 OCR,能够处理多幅图像。
微软 佛罗伦萨-2 0.7亿 一种多任务模型,能够使用简单的文本提示进行字幕、对象检测和分割。
表 1.VLM NIM 微服务
嵌入模型
嵌入模型将输入数据(例如图像或文本)转换为密集且特征丰富的向量,称为嵌入。这些嵌入封装了数据中的基本属性和关系,从而支持相似性搜索或分类等任务。嵌入通常存储在向量数据库中,GPU 加速搜索可以快速检索相关数据。
嵌入模型在创建智能代理方面发挥着至关重要的作用。例如,它们支持检索增强生成(RAG) 工作流,使代理能够从各种数据源中提取相 关信息,并通过情境学习提高准确性。
公司 模型 描述 使用案例
英伟达 奈米相片 生成文本和 英国华侨华人数据 图像嵌入的多模态基础模型 多模态搜索,零样本分类
英伟达 DINOv2 生成高分辨率图像嵌入的视觉基础模型 相似性搜索、小样本分类
表 2.嵌入 NIM 微服务
计算机视觉模型
CV 模型专注于图像分类、对象检测和光学字符识别 (OCR) 等专业任务。这些模型可以通过添加详细的元数据来增强 VLM,从而提高 AI 代理的整体智能。
公司 模型 描述 使用案例
英伟达 接地恐龙 开放词汇对象检测 检测任何事物
英伟达 OCDR网络 光学字符检测与识别 文档解析
英伟达 变革网 检测两幅图像之间的像素级变化 缺陷检测、卫星图像分析
英伟达 零售物体检测 经过预先训练,可检测常见零售商品 预防损失
表 3.计算机视觉 NIM 微服务
使用视觉 NIM 微服务构建视觉 AI 代理
以下是如何应用视觉 NIM 微服务来创建强大的视觉 AI 代理的真实示例。
为了使使用 NVIDIA NIM 微服 基于以上分析,产品团队可 务进行应用程序开发更加容易,我们在 GitHub 上发布了一系列示例。这些示例演示了如何使用 NIM API 构建或将其集成到您的应用程序中。每个示例都包含一个 Jupyter 笔记本教程和演示,即使没有 GPU 也可以轻松启动。
在NVIDIA API 目录上,选择一个模型页面,例如Llama 3.1 405B。选择获取 API 密钥并输入您的企业电子邮件以获取 90 天的NVIDIA AI Enterprise许可证,或者使用您的个人电子邮件通过NVIDIA 开发者计划访问 NIM。
在/NVIDIA/metropolis-nim-workflows GitHub 存储库中,探索 Jupyter 笔记本教程和演示。这些工作流程展示了 Vision NIM 微服务如何与其他组件(如矢量数据库和 LLM)相结合,以构建解决实际问题的强大 AI 代理。使用您的 API 密钥,您可以轻松重新创建本文中展示的工作流程,让您亲身体验 Vision NIM 微服务。
以下是一些示例工作流程:
VLM 流媒体视频警报代理
结构化文本提取代理
使用 NV-DINOv2 代理进行小样本分类
使用 NV-CLIP 代理进行多模式搜索
VLM 流媒体视频警报代理
由于每秒都会产生大量的视频数据,因此不可能手动审查包裹递送、森林火灾或未经授权的访问等关键事件的录像。
此工作流程展示了如何使用 VLM、Python 和 OpenCV 构建 AI 代理,该代理可自动监控实时流中用户定义的事件。检测到事件时会生成警报,从而节省大量手动视频审查时间。得益于 VLM 的灵活性,可以通过更改提示来检测新事件 – 无需为每个新场景构建和训练自定义 CV 模型。
视频 1. 由 NVIDIA NIM 提供支持的视觉 AI 代理
在图 2 中,VLM 在云中运行,而视频流管道在本地运行。此设置使演示可以在几乎任何硬件上运行,并通过 NIM 微服务将繁重的计算卸载到云中。
架构图显示了视频流输入到帧解码和子采样步骤的过程,而用户警报会为 VLM NIM 微服务创建请求。响应被解析并转到叠加层生成和 WebSocket 服务器以发送警报通知。
图 2. 流视频警报代理架构
以下是构建此代理的步骤:
加载和处理视频流:使用 OpenCV 加载视频流或文件、对其进行解码并进行帧子采样。
创建 REST API 端点:使用 FastAPI 创建控制 REST API 端点,用户可以在其中输入自定义提示。
与 VLM API 集成:包装器类通过发送视频帧和用户提示来处理与 VLM API 的交互。它形成 NIM API 请求并解析响应。
视频上的叠加响应: VLM 响应 叠 cg 线索 加到输入视频上,使用 OpenCV 流式传输以供实时查看。
触发警报:通过 WebSocket 服务器发送解析后的响应以与其他服务集成,并根据检测到的事件触发通知。
有关构建由 VLM 提供支持的流视频警报代理的更多信息,请参阅GitHub 上的/NVIDIA/metropolis-nim-workflows笔记本教程和演示。您可以尝试不同的 VLM NIM 微服务,以找到最适合您用例的模型。
有关 VLM 如何使用NVIDIA Jetson和Jetson 平台服务转换边缘应用程序的更多信息,请参阅为边缘开发生成式 AI 驱动的视觉 AI 代理,并探索Jetson 平台服务页面上的其他资源。
结构化文本提取代理
许多商业文档以图像形式存储,而非 PDF 等可搜索格式。这给搜索和处理这些文档带来了巨大挑战,通常需要手动审查、标记和组织。