Nvidia Ingest 是一种新的微服务,旨在处理文档内容并将元数据提取到明确定义的 JSON 模式中。Ingest 能够处理 PDF、Word 和 PowerPoint 文档,并使用光学字符识别技术从表格、图表、图像和文本中提取结构化信息。
要使用 Nvidia Ingest,需要向其提供需要摄取的有效载荷的 JSON 作业描述。然后,你就可以以 JSON 字典的形式检索结果,其中包含提取到的所有对象的元数据、处理注解和时间 / 跟踪信息。
Nvidia 没有提供有关 Ingest 性能的数据,但表示它具有可扩展性,可以使用多种处理方法来提高准确性或增加吞吐量。对于 PDF 文档,Ingest 可以使用 pdfium、Unstructured.io 或 Adobe 的内容提取服务。
例如,借助nv-ingest-cli
(用于与 Nvidia Ingest 交互的命令行工具),你可以使用--task
参数指定如何处理文档,其中包括一个extract_method
选项:
nv-ingest-cli \
... \
--task='extract:{"document_type": "pdf", "extract_method": "pdfium", "extract_text": true, "extract_images": true, "extract_tables": true, "extract_tables_method": "yolox"}' \
...
Nvidia 明确指出,不能使用 Ingest 创建流水线,对有效载荷中的文档执行一系列操作。不过,你可以运行各种预处理或后处理转换,包括文本分割和分块、过滤、嵌入生成和图像卸载。也就是说,在执行同一个 nv-ingest-cli
时,可以使用多个--task
参数。例如,可以使用以下参数添加一个 dedup
(去重)步骤:
nv-ingest-cli \
... \
--task='extract:{...} \
--task='dedup:{"content_type": "image", "filter": true}' \
...
该工具可用于使用--doc
参数指定的单个文档,或通过提供描述批处理有效载荷的 JSON 格式字典,同时用于一组文档。
提取的所有数据都存储在一个输出目录中,每种文档类型(如图像、文本、结构化文档等)一个子目录。每个摄取的文档都会生成一个 JSON 元数据文件,其中包含提取的内容、源元数据(包括源名称、位置、类型等)和内容元数据。内容元数据包括一般内容元数据和特定类型内容元数据。例如,对于图像,可获取图像类型、任何说明文字、位置、大小等;对于文本,可获取摘要、关键词列表、语言等;对于表格,可获取格式、位置、文本内容、任何说明文字或标题等。
Nvidia Ingest 需要大量来自 Nvidia 和开源项目的支持服务,包括 Redis、yolox、用于开放式遥测的 otel-collector、prometheus、grafana 等。为方便部署,它们被打包成一个 Docker Compose 应用程序。它还需要 CUDA 和 Nvidia Container Toolkit 的支持,以及至少两个 H100 或 A100 GPU 和至少 80GM 内存。
https://www.infoq.com/news/2025/01/nvidia-ingest-document-extract/
声明:本文为 InfoQ 翻译,未经许可禁止转载。