NVIDIA Ingest:解锁企业文档处理的新境界

282 阅读5分钟

NVIDIA Ingest:解锁企业文档处理的新境界

在当今数据驱动的世界中,企业每天都要处理大量的非结构化文档,如PDF、Word和PowerPoint文件。这些文档中蕴含着宝贵的信息,但如何高效地提取和利用这些信息却是一个巨大的挑战。NVIDIA Ingest应运而生,它是一个专为处理复杂、混乱的非结构化文档而设计的微服务集合,能够将这些文档解析为元数据和文本,并嵌入到检索系统中,为企业提供强大的数据处理能力。

什么是NVIDIA Ingest?

NVIDIA Ingest是一个可扩展的、性能导向的文档内容和元数据提取微服务。它支持解析PDF、Word和PowerPoint文档,并利用NVIDIA NIM微服务来查找、上下文化和提取文本、表格、图表和图像,供下游生成式应用使用。

核心功能

  • 多模态数据提取:NVIDIA Ingest能够并行处理文档,将其拆分为页面,并对内容进行分类(如表格、图表、图像、文本),提取为离散内容,并通过光学字符识别(OCR)进一步上下文化,生成定义良好的JSON模式。
  • 嵌入计算:NVIDIA Ingest还可以选择性地管理提取内容的嵌入计算,并将其存储到向量数据库(如Milvus)中。
  • 多种提取方法:支持多种文档类型的提取方法,以平衡吞吐量和准确性之间的权衡。例如,对于PDF文档,支持通过pdfium、Unstructured.io和Adobe内容提取服务进行提取。
  • 前后处理操作:支持各种前后处理操作,包括文本拆分和分块、转换和过滤、嵌入生成以及图像卸载到存储。

应用场景

NVIDIA Ingest的应用场景非常广泛,尤其是在需要处理大量非结构化文档的企业环境中。以下是一些典型的应用场景:

  1. 企业知识管理:企业内部的文档通常包含大量的知识资产,NVIDIA Ingest可以帮助企业将这些文档中的信息提取出来,构建知识库,方便员工检索和使用。
  2. 法律文档分析:法律行业需要处理大量的合同、法规和案例文档,NVIDIA Ingest可以快速提取关键信息,帮助律师和法务人员提高工作效率。
  3. 金融数据分析:金融行业需要处理大量的报告、财务报表和市场分析文档,NVIDIA Ingest可以提取其中的关键数据,帮助分析师进行数据分析和决策。
  4. 医疗文档处理:医疗行业需要处理大量的病历、研究报告和临床试验文档,NVIDIA Ingest可以提取其中的关键信息,帮助医生和研究人员进行数据分析和研究。

如何使用NVIDIA Ingest?

硬件和软件要求

在开始使用NVIDIA Ingest之前,您需要确保您的硬件和软件环境满足以下要求:

硬件要求
GPU系列内存最小GPU数量
H100SXM或PCIe80GB2
A100SXM或PCIe80GB2
软件要求
  • Linux操作系统(推荐Ubuntu 22.04或更高版本)
  • Docker
  • Docker Compose
  • CUDA Toolkit(NVIDIA驱动>=535,CUDA>=12.2)
  • NVIDIA Container Toolkit

快速开始

要开始使用NVIDIA Ingest,您需要执行以下几个步骤:

  1. 启动NIM微服务:使用提供的docker-compose.yaml文件启动所有需要的服务。
  2. 安装Python依赖:在Python环境中安装NVIDIA Ingest客户端依赖。
  3. 提交提取任务:通过Python或nv-ingest-cli工具提交文档提取任务。
  4. 检查和消费结果:提取完成后,检查并消费提取的结果。
示例代码

以下是一个使用Python提交提取任务的示例代码:

import logging, time
from nv_ingest_client.client import NvIngestClient
from nv_ingest_client.primitives import JobSpec
from nv_ingest_client.primitives.tasks import ExtractTask
from nv_ingest_client.util.file_processing.extract import extract_file_content

logger = logging.getLogger("nv_ingest_client")

file_name = "data/multimodal_test.pdf"
file_content, file_type = extract_file_content(file_name)

job_spec = JobSpec(
  document_type=file_type,
  payload=file_content,
  source_id=file_name,
  source_name=file_name,
  extended_options=
    {
      "tracing_options":
      {
        "trace": True,
        "ts_send": time.time_ns()
      }
    }
)

extract_task = ExtractTask(
  document_type=file_type,
  extract_text=True,
  extract_images=True,
  extract_tables=True
)

job_spec.add_task(extract_task)

client = NvIngestClient(
  message_client_hostname="localhost",
  message_client_port=7670
)
job_id = client.add_job(job_spec)
client.submit_job(job_id, "morpheus_task_queue")
result = client.fetch_job_result(job_id, timeout=60)
print(f"Got {len(result)} results")

同类项目对比

NVIDIA Ingest在文档处理和提取领域具有显著的优势,但市场上也有一些其他类似的项目,如Apache Tika和Docparser。以下是这些项目的功能和特点对比:

  • Apache Tika:Apache Tika是一个开源的文档内容提取工具,支持多种文档格式的解析和元数据提取。与NVIDIA Ingest相比,Tika的功能较为基础,缺乏对多模态数据(如图像、表格、图表)的深度提取和上下文化处理。
  • Docparser:Docparser是一个商业化的文档解析工具,专注于从PDF和Word文档中提取结构化数据。它提供了可视化的规则编辑器,用户可以通过拖放操作定义提取规则。然而,Docparser的灵活性和扩展性不如NVIDIA Ingest,尤其是在处理复杂文档和大规模数据时。

总的来说,NVIDIA Ingest凭借其强大的多模态数据提取能力和高性能的并行处理能力,在企业文档处理领域具有明显的竞争优势。无论是处理复杂的PDF文档,还是提取多模态数据,NVIDIA Ingest都能为企业提供高效、可靠的解决方案。


通过NVIDIA Ingest,企业可以轻松应对海量非结构化文档的挑战,快速提取关键信息,提升数据处理效率。无论是构建知识库、分析法律文档,还是处理金融数据,NVIDIA Ingest都能为您提供强大的支持。立即体验NVIDIA Ingest,解锁企业文档处理的新境界!

本文使用 markdown.com.cn 排版