NVIDIANVIDIA-Certified Professional: Agentic AI2026-106.3 Build extract, transform, and load (ETL) pipelines to integrate enterprise or client data sources.
Choose document extraction paths by modality
Completed by the knowledge check
Learning objective
Extract text, tables, charts, and images from enterprise documents.
Core idea
For an enterprise retrieval assistant, extraction determines which facts become searchable. A successful file upload does not establish that a scanned paragraph, a table’s column headings, a chart’s axes, or an image’s meaning survived. Choose an extraction path for the content you need, then inspect its output before embedding it.
NeMo Retriever Library classifies document regions and extracts them into structured outputs. It supports text, tables, charts, and images through different processing stages. Treat those stages as separate engineering choices: text extraction, optical character recognition (OCR), layout detection, table reconstruction, and optional image captioning have different costs and failure modes.
This lesson decides what leaves the document. See 6.3.2 for when documents enter the pipeline and 6.3.3 for retaining their identity and permissions. Retrieval strategy and vector indexing belong to 6.1 and 6.2.
How it works
Choose a text path from the page
The NeMo Retriever multimodal extraction documentation describes pdfium as the usual PDF extraction path. Native text extraction works on a PDF’s text layer; scanned or mixed pages can need OCR or hybrid extraction. The documented method options include pdfium, pdfium_hybrid, ocr, and nemotron_parse.
Decide from representative pages, not the .pdf suffix. A file may contain searchable prose on one page and a scanned appendix on another. If extracted text is empty where the page visibly contains words, inspect the text layer and test an OCR-capable path. Repeating native extraction on the same image-only page does not supply the missing text.
The library’s method="nemotron_parse" path requires the nemotron-parse extra, installed as nemo-retriever[nemotron-parse]. That is a library dependency boundary. The RAG Blueprint separately configures PDF extraction with APP_NVINGEST_PDFEXTRACTMETHOD; its value nemotron_parse selects its Nemotron Parse integration. Keep the Blueprint environment setting and the library method distinct when reproducing a pipeline.
Preserve table relationships
A table is a structured region, not merely a sequence of words. NeMo Retriever detects tables as page elements and processes them through the configured extraction models. The multimodal documentation describes Markdown-oriented outputs where configured; availability depends on the pipeline and model configuration.
Inspect whether a value remains associated with its row label, column heading, unit, and relevant caption. A maintenance interval of “500” without “hours” and the correct equipment class is a retrieval defect even when OCR transcribes every digit. Preserve the table representation through the transformation into retrieval content, rather than flattening all cells into an unlabeled paragraph.
Use the output’s page and region coordinates to inspect a questionable table against the original page. The library’s canonical metadata includes content_metadata.page_number and table bounding-box fields such as table_metadata.table_location. Pair table_location with table_location_max_dimensions so the coordinates retain their scale. Keep that pairing when your transformation normalizes extracted regions.
Keep charts distinguishable from pictures
The library documentation enables extract_charts by default and disables extract_infographics by default. Chart and infographic regions use layout detection and OCR. That distinction matters if downstream retrieval filters specifically for chart content.
The method="nemotron_parse" path does not emit chart or infographic modality rows, even with extract_charts=True or extract_infographics=True. Chart-heavy regions can appear as Picture or other non-chart modalities. For chart detection and modality-specific retrieval, choose the default pdfium layout path with page-elements detection and OCR. Enabling an extraction flag cannot create a semantic class absent from the chosen path.
Chart-classified PDF regions also stay on the layout/OCR path rather than entering the Omni caption stage. Do not assume that enabling image captioning repairs a missing chart series label or explains every plotted trend. Inspect the actual chart output and its connection to the source region. For infographic descriptions, enable image captioning and set caption_infographics=True.
Extract images before describing them
The library documents ExtractParams(extract_images=True) for image extraction and the optional .caption() stage for natural-language descriptions. A crop and its caption serve different purposes: the crop preserves visual content; the caption makes a model-generated description available for text retrieval.
Local Hugging Face captioning defaults to nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning-BF16, approximately 62 GiB of BF16 weights; the library reserves 0.95 of a dedicated GPU’s memory for this local vLLM profile, whose minimum is met by an 80 GB H100 dedicated to captioning. Hosted captioning instead defaults to nvidia/nemotron-3-nano-omni-30b-a3b-reasoning at the NVIDIA API endpoint, trading that local GPU reservation for endpoint processing.
Captioning non-image documents automatically enables image deduplication. The documented behavior removes duplicate image content and crops overlapping table, chart, or infographic regions at an intersection over union of 0.45 or greater. The intent is to retain the structured region instead of captioning an overlapping raw crop. --no-dedup disables both content-hash and bounding-box deduplication and can increase caption requests, latency, and model cost.
If a picture appears absent, inspect deduplication before assuming extraction failed. The CLI’s --dry-run exposes the effective deduplication configuration. Disable deduplication only when retaining those crops is a deliberate requirement, and measure the resulting caption workload.
Key distinctions and trade-offs
Compare the required output before choosing the processing stage:
| Content | Deciding condition | Mechanism | Cost or failure to inspect |
|---|---|---|---|
| Text | Native text versus scanned words | method, including pdfium_hybrid or ocr | OCR work; empty or disordered text |
| Tables | Answers depend on cell relationships | Table detection and structured output | Structure reconstruction; detached units or headings |
| Charts | Retrieval needs chart modality rows | Default pdfium layout path and extract_charts | Layout/OCR work; unsupported modality on the Parse path |
| Images | Answers need visual descriptions | extract_images=True, optional .caption() | Additional inference; duplicate or overlapping crops |
Measure pages per second together with the prevalence of tables, charts, and OCR pages. The extraction documentation warns that bytes per second hides document complexity: a compact PDF with dense tables can require more processing than a large file containing simple images. GPU planning based only on upload size misprices the extraction workload.
Architecture / decision scenario
An industrial equipment manufacturer is building a technician assistant from 12,000 manual pages. Its acceptance set contains searchable prose, scanned inspection notes, specification tables, performance charts, and assembly photographs. The delivery target is a six-hour initial ingestion window on its existing extraction deployment. These are project requirements, not NVIDIA performance guarantees.
A developer proposes running every document through nemotron_parse and enabling image captions. That simplifies the configuration but fails the assistant’s explicit chart-modality retrieval requirement. The ingestion lead instead tests the default layout path for chart-bearing manuals, OCR-capable extraction for scanned notes, and table outputs that retain units and headings. For photograph descriptions, the lead chooses hosted captioning because no dedicated local captioning GPU is available and the project permits processing these manuals at the NVIDIA API endpoint.
The team measures 900 pages per hour for a representative complex-document mix and 3,000 for native-text pages. At the slower rate, processing all 12,000 pages takes about 13.3 hours and misses the window. The measured corpus contains 1,800 complex pages and 10,200 native-text pages. Processing those groups at their respective measured rates takes about 5.4 hours, leaving 36 minutes in the window. The lead limits captioning to documents whose questions need it and validates that the measured rates include that work. Before approving that choice, the team verifies all four modalities in the acceptance set; faster prose extraction cannot compensate for missing charts or corrupted table relationships.
Common exam traps
- Treating extracted text as proof that tables and images are usable.
- Choosing OCR from a filename rather than the page’s content.
- Expecting
extract_charts=Trueto produce chart rows withmethod="nemotron_parse". - Assuming image captioning applies to chart-classified PDF regions.
- Disabling deduplication without accounting for additional caption inference.
- Sizing extraction from file bytes while ignoring layout complexity.
What to remember
Select the extraction path by the modality the answer needs. Preserve table relationships and source locations, test chart support on the selected path, and enable image captions only when their retrieval value justifies their cost. Inspect representative outputs before embedding them.
Knowledge check
A team extracts equipment manuals with method="nemotron_parse" and extract_charts=True. Its retrieval service must filter on chart modality rows, but none appear in the output; chart pages come back as Picture regions. Which change meets the chart-filter requirement?
.caption() stage for the chart-bearing manualsextract_infographics=True beside extract_charts=Truepdfium layout pathpdfium layout path, with page-elements detection and OCR, is the one that classifies chart regions. A caption adds a model-generated description to a picture, not the chart modality the filter needs, and deduplication decides which crops survive, not how a region is classified.A contract PDF has a text layer on its first 40 pages and a scanned appendix. Native pdfium extraction returns empty text for the appendix pages, although they visibly contain typed clauses that the assistant must quote. What should the ingestion engineer do next?
pdfium_hybrid or ocr extraction on the appendix pagespdfium extraction on the appendix pagesocr extraction.caption() stage for the appendix page imagesAfter enabling captioning in a command-line ingest of PDF reports, an engineer finds that several photographs overlapping table regions produced no caption rows. The team has no requirement to keep raw crops that overlap structured regions. What should the engineer do first?
--no-dedup for these reports--dry-runmethod="nemotron_parse" extractioncaption_infographics=True for these reports0.45 or more so that the structured region is kept instead. --dry-run shows that resolved plan, so the missing captions can be explained before extraction is suspected. --no-dedup keeps those crops at the price of more caption requests, latency and model cost, which the stem gives no reason to pay.A team must size GPUs for a nightly extraction window across two corpora: 40 GB of image-heavy brochures with little text, and 4 GB of financial filings dense with tables and charts. Which planning measure should drive the estimate?
A maintenance assistant retrieves a table containing a service interval of “500”. The extracted digits are correct, but the indexed passage omits the column heading and unit. Which change addresses the defect before embedding?