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的应用场景非常广泛,尤其是在需要处理大量非结构化文档的企业环境中。以下是一些典型的应用场景:
- 企业知识管理:企业内部的文档通常包含大量的知识资产,NVIDIA Ingest可以帮助企业将这些文档中的信息提取出来,构建知识库,方便员工检索和使用。
- 法律文档分析:法律行业需要处理大量的合同、法规和案例文档,NVIDIA Ingest可以快速提取关键信息,帮助律师和法务人员提高工作效率。
- 金融数据分析:金融行业需要处理大量的报告、财务报表和市场分析文档,NVIDIA Ingest可以提取其中的关键数据,帮助分析师进行数据分析和决策。
- 医疗文档处理:医疗行业需要处理大量的病历、研究报告和临床试验文档,NVIDIA Ingest可以提取其中的关键信息,帮助医生和研究人员进行数据分析和研究。
如何使用NVIDIA Ingest?
硬件和软件要求
在开始使用NVIDIA Ingest之前,您需要确保您的硬件和软件环境满足以下要求:
硬件要求
| GPU | 系列 | 内存 | 最小GPU数量 |
|---|---|---|---|
| H100 | SXM或PCIe | 80GB | 2 |
| A100 | SXM或PCIe | 80GB | 2 |
软件要求
- Linux操作系统(推荐Ubuntu 22.04或更高版本)
- Docker
- Docker Compose
- CUDA Toolkit(NVIDIA驱动>=535,CUDA>=12.2)
- NVIDIA Container Toolkit
快速开始
要开始使用NVIDIA Ingest,您需要执行以下几个步骤:
- 启动NIM微服务:使用提供的
docker-compose.yaml文件启动所有需要的服务。 - 安装Python依赖:在Python环境中安装NVIDIA Ingest客户端依赖。
- 提交提取任务:通过Python或
nv-ingest-cli工具提交文档提取任务。 - 检查和消费结果:提取完成后,检查并消费提取的结果。
示例代码
以下是一个使用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 排版