NVIDIA Ingest多模态处理:图像、表格、图表全解析

NVIDIA Ingest多模态处理:图像、表格、图表全解析

【免费下载链接】nv-ingest NVIDIA Ingest is an early access set of microservices for parsing hundreds of thousands of complex, messy unstructured PDFs and other enterprise documents into metadata and text to embed into retrieval systems. 【免费下载链接】nv-ingest 项目地址: https://gitcode.com/GitHub_Trending/nv/nv-ingest

NVIDIA Ingest(又称NeMo Retriever Extraction)是一个高性能的文档内容和元数据提取微服务,专为企业级RAG(检索增强生成)系统设计。它利用NVIDIA NIM(NVIDIA Inference Microservices)技术,能够从复杂的PDF及其他企业文档中提取文本、表格、图表和图像等多模态内容,并将其转换为结构化数据以嵌入检索系统。本文将深入解析其图像、表格和图表的处理能力及实现方式。

多模态处理架构概述

NVIDIA Ingest的核心优势在于其分布式处理架构,能够并行处理大量文档。文档首先被拆分为页面,然后通过分类识别出文本、表格、图表和图像等元素,再通过OCR(光学字符识别)技术将这些元素转换为结构化的JSON格式数据。该架构支持可选的嵌入计算和向量数据库存储(如Milvus),为下游生成式AI应用提供高质量的检索素材。

NVIDIA Ingest处理流程

核心处理流程

  1. 文档拆分:将文档并行分割为独立页面
  2. 元素分类:识别页面中的文本、表格、图表和图像
  3. 内容提取:使用NIM技术提取各类元素内容
  4. OCR处理:将图像中的文字转换为可编辑文本
  5. 结构化输出:统一格式化为JSON schema
  6. 可选步骤:嵌入计算与向量数据库存储

详细架构可参考官方文档:NeMo Retriever Extraction概述

图像提取与处理

NVIDIA Ingest采用yolox-graphic-elements NIM进行图像检测和提取,替代了之前的Cached和Deplot技术。该方案只需单张24GB A10G或更高配置的GPU即可运行,大幅降低了硬件门槛。

图像提取工作流程

  1. 图像检测:使用YOLOX算法识别文档中的图像区域
  2. 质量过滤:自动筛选符合质量要求的图像
  3. OCR处理:提取图像中的文字信息
  4. 元数据生成:记录图像位置、尺寸、页码等上下文信息
  5. 存储管理:可选将处理后的图像存储到指定位置

图像提取示例

图像提取代码示例

ingestor = (
    Ingestor()
    .files("./data/*.pdf")
    .extract(
        document_type="pdf",
        extract_method="nemoretriever_parse"
    )
)

上述代码通过Python客户端API初始化Ingestor对象,指定使用nemoretriever_parse方法提取PDF文件中的图像内容。更多Python示例可参考:Python客户端使用指南

表格提取技术

表格作为结构化数据的重要载体,其准确提取对企业文档处理至关重要。NVIDIA Ingest采用专门的表格识别NIM,能够处理复杂表格结构,包括合并单元格、嵌套表格等特殊情况。

表格提取特点

  • 保留表格原始结构和格式信息
  • 支持跨页表格的自动拼接
  • 提取表格标题和上下文信息
  • 输出CSV和HTML格式的表格数据
  • 生成表格位置和页码等元数据

表格提取实现

表格提取功能主要通过src/nv_ingest_api/internal/extract/table_extractor.py模块实现,该模块利用计算机视觉和深度学习技术识别表格边界、单元格划分和内容提取。测试用例可参考:表格提取测试

图表解析能力

NVIDIA Ingest对图表的处理不仅能够提取图像本身,还能解析图表中的数据和结构信息,为数据分析提供支持。

图表处理类型

  • 柱状图:提取坐标轴、数据系列和数值
  • 折线图:识别趋势线、数据点和标签
  • 饼图:解析各部分比例和标签
  • 流程图:识别流程节点和连接关系
  • 示意图:提取关键元素和说明文字

图表提取优势

  • 保留图表视觉特征和数据关系
  • 生成机器可理解的图表描述
  • 支持复杂多系列图表解析
  • 结合上下文理解图表含义

实战应用:多模态内容提取

以下是使用Docker Compose本地部署NIM并进行多模态提取的完整步骤:

1. 启动服务

docker compose --profile nemoretriever-parse up --build

该命令会启动包含nemoretriever-parse NIM的完整服务栈,用于多模态内容提取。

2. 多模态提取Python示例

ingestor = (
    Ingestor()
    .files("./data/report.pdf")
    .extract(
        document_type="pdf",
        extract_method="nemoretriever_parse",
        extract_images=True,
        extract_tables=True,
        extract_charts=True
    )
    .store(
        vector_db="milvus",
        collection_name="enterprise_docs"
    )
)

result = ingestor.execute()
print(result[0].images)    # 提取的图像列表
print(result[0].tables)    # 提取的表格数据
print(result[0].charts)    # 提取的图表信息

3. 输出结果解析

提取结果包含以下关键信息:

  • 图像数据:base64编码的图像内容、尺寸、位置和OCR文本
  • 表格数据:CSV格式内容、HTML格式表格和元数据
  • 图表数据:图像内容、解析出的数据系列和描述文本
  • 文本内容:分块文本和对应的位置信息

完整的输出 schema 定义可参考:提取结果 schema

性能优化与最佳实践

为充分发挥NVIDIA Ingest的多模态处理能力,建议遵循以下最佳实践:

硬件配置

  • 推荐使用NVIDIA A10G或更高性能GPU
  • 内存建议32GB以上,以处理大型文档
  • 存储系统需具备足够IOPS,支持并行文件读写

文档预处理

  • 对于扫描版PDF,建议先进行去噪和增强处理
  • 超大文件建议拆分后处理,每个文件控制在100MB以内
  • 加密文档需提前解密,确保处理流程顺畅

性能调优参数

ingestor = (
    Ingestor()
    .files("./data/*.pdf")
    .extract(
        document_type="pdf",
        extract_method="nemoretriever_parse",
        max_workers=8,          # 并行工作进程数
        batch_size=16,          # 批处理大小
        ocr_quality="medium"    # OCR质量级别
    )
)

监控与调优

NVIDIA Ingest提供Prometheus监控支持,可通过配置文件prometheus.yaml设置监控指标,包括处理速度、成功率、资源利用率等关键参数。

Prometheus监控面板

部署与使用方式

NVIDIA Ingest提供多种部署选项,可根据实际需求选择合适的方式:

本地部署(Docker Compose)

通过Docker Compose可快速部署完整的服务栈,包括依赖的NIM服务:

docker compose --profile nemoretriever-parse up --build

详细部署指南:Docker Compose部署文档

Kubernetes部署

对于企业级生产环境,可使用Helm Chart部署到Kubernetes集群:

helm install nv-ingest ./helm --namespace nv-ingest --create-namespace

Helm部署配置:Helm部署文档

云函数部署

通过NVIDIA Cloud Functions (NVCF)使用云端推理服务,无需管理本地基础设施:

# 在docker-compose.yaml中配置
NEMORETRIEVER_PARSE_HTTP_ENDPOINT=https://integrate.api.nvidia.com/v1/chat/completions

总结与展望

NVIDIA Ingest的多模态处理能力为企业文档解析提供了强大支持,特别是在图像、表格和图表的提取方面表现出色。通过利用NVIDIA NIM技术,它能够高效处理复杂的非结构化文档,为RAG系统和其他生成式AI应用提供高质量的检索增强数据。

随着技术的不断发展,未来NVIDIA Ingest可能会进一步增强以下能力:

  • 更复杂图表类型的解析
  • 数学公式提取与识别
  • 多语言文档处理优化
  • 实时协作编辑支持

如需了解更多细节或参与贡献,可参考:贡献指南

【免费下载链接】nv-ingest NVIDIA Ingest is an early access set of microservices for parsing hundreds of thousands of complex, messy unstructured PDFs and other enterprise documents into metadata and text to embed into retrieval systems. 【免费下载链接】nv-ingest 项目地址: https://gitcode.com/GitHub_Trending/nv/nv-ingest

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值