Agentic Systems

NeMo Retriever Extraction (nv-ingest)

Vendor-stack study notes — verified against NVIDIA's own pages on the access date shown; product names and versions move fast, re-verify before relying on them.

Accessed/verified: 2026-07-14. Repo: github.com/NVIDIA/nv-ingest (the NeMo Retriever Library, "also known as NVIDIA Ingest"), current release 26.5.0 (2026-05-30) [nv-ingest-github].

What it is. "A scalable, performance-oriented framework for document content and metadata extraction" [nv-ingest-github]; the docs frame it as "a high retrieval accuracy, performant, and scalable framework for content and metadata extraction from various media types" [nv-ingest-docs]. It parallelizes documents into pages, classifies each page's artifacts (text, tables, charts, infographics), extracts them with specialized NIMs, and can carry the result straight through embedding and vector-DB upload — it is the ingestion leg of the RAG blueprint and the "parsing/extraction" box of the enterprise-RAG brief §2.1.

What it handles, and the models underneath

Inputs [nv-ingest-docs]: PDF, DOCX, PPTX, HTML; images (JPEG, PNG, BMP, TIFF, SVG); video (MP4, MOV, MKV, AVI); audio (MP3, WAV); TXT/MD/JSON/SH. Outputs: text, tables (as markdown), charts (descriptions + data), infographics, and audio/video transcripts, all with metadata.

The default pipeline is an ensemble of extraction NIMs (exact ids and weights from the support matrix [nv-ingest-matrix]):

Stage NIM / model Container / size
Page layout detection nemotron-page-elements-v3 nvcr.io/nim/nvidia/nemotron-page-elements-v3, ~0.41 GiB
Table structure nemotron-table-structure-v1 ~0.81 GiB
OCR nemotron-ocr-v1 (Helm, v1.3.0); "Nemotron OCR v2" for local inference, multilingual by default ~0.51 GiB
Multimodal embedding llama-nemotron-embed-vl-1b-v2 (container tag 1.12.0) ~3.1 GiB

Optional [nv-ingest-matrix] [nv-ingest-docs]: nemotron-parse as an alternate model-based PDF extraction path (extract_method="nemotron_parse", separate install); nemotron-3-nano-omni-30b-a3b-reasoning for image captioning; parakeet-1-1b-ctc-en-us for audio; llama-nemotron-rerank-vl-1b-v2 for reranking.

How you'd use it

  • Library mode (self-contained Python, positioned for "small-scale workloads, such as fewer than 100 PDFs" [nv-ingest-github]): the client is a chainable pipeline — .files(...).extract(...).embed(...).vdb_upload(...).ingest() — going from a folder of PDFs to populated vector store in one expression.
  • Services: Docker Compose for a single node; Helm charts for production Kubernetes, with REST endpoints for submission/query [nv-ingest-github] [nv-ingest-docs].
  • Hardware [nv-ingest-matrix]: core pipeline fits one 24GB GPU (A10G or better); the production profile is 256GB RAM / 32 cores / A100-H100-L40S-class GPUs; audio needs its own additional GPU.

When to reach for it vs Tika/Unstructured-style OSS

The OSS menu for this box — Docling, Unstructured — is cataloged in the brief §2.1; those run CPU-cheap anywhere and are the right call for mostly-textual corpora, modest volume, or no-GPU environments. nv-ingest's bet is different: every visually hard artifact (tables, charts, infographics, scanned text) gets a dedicated detection/structure model running GPU-parallel, because — the brief's §2.1 gotcha — most RAG quality loss happens before retrieval, in parsing. Reach for nv-ingest when the corpus is heavy with tables/charts and PDF scans at volume, when you already operate NIMs (it drops into the RAG blueprint natively and shares its embedding NIM), or when ingestion throughput itself is the bottleneck. Skip it when a Tika/Unstructured pass already preserves your documents' structure — a GPU fleet is a high price for text-only parsing.

Interview angle

"nv-ingest — NeMo Retriever extraction — treats parsing as a modeling problem, not a parsing problem: pages are classified and routed to specialized NIMs (nemotron-page-elements-v3 for layout, nemotron-table-structure-v1 for tables, Nemotron OCR), with nemotron_parse as an alternate single-model PDF path, then embedded with llama-nemotron-embed-vl-1b-v2 and pushed to the vector store in one chained call. Versus Unstructured or Tika it trades GPU cost for structure fidelity on tables and charts — which matters because parsing errors poison every downstream retrieval stage."

Sources

nv-ingest-github: {title: "NVIDIA/nv-ingest — NeMo Retriever Library README (26.5.0; library-mode chain API; scale positioning)", url: "https://github.com/NVIDIA/nv-ingest", accessed: "2026-07-14"}
nv-ingest-docs: {title: "NeMo Retriever Extraction Overview — docs.nvidia.com (media types; extracted content; nemotron_parse; deploy modes)", url: "https://docs.nvidia.com/nemo/retriever/extraction/overview/", accessed: "2026-07-14"}
nv-ingest-matrix: {title: "NeMo Retriever Extraction — Prerequisites & Support Matrix (exact NIM ids, container paths, sizes, GPU requirements)", url: "https://docs.nvidia.com/nemo/retriever/extraction/prerequisites-support-matrix/", accessed: "2026-07-14"}