Repository navigation
[codex] docs: add Nemotron OCR pipeline guide - #2137
Conversation
Signed-off-by: Lawrence Lane <llane@nvidia.com>
Greptile SummaryThis PR adds a new documentation section for the Nemotron OCR synthetic-data pipeline: a concept page covering architecture, schemas, verification settings, QA shapes, and failure semantics, plus a runnable tutorial with CLI and Python API examples. It also adds navigation entries and cross-links from the image curation, synthetic-data, and LLM client pages.
Confidence Score: 5/5Documentation-only change; no executable logic is modified. All documented API names, import paths, CLI argument names, and default values were verified against the actual source files. Previous reviewer comments on merge_output_shards placement, the JsonlSampleWriterStage valid_only default, and the conversation schema shape have all been addressed. No cross-page inconsistencies found. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["HFDatasetImageReaderStage\n(Driver — 1 CPU)"] --> B["OCRNemotronV2Stage\n(Worker — 8 CPU + 1 GPU, batch 32)"]
B --> C{"run_scoring_qa?"}
C -->|No| D["JsonlSampleWriterStage\n(Worker — 2 CPU)"]
C -->|Yes| E["OCRScoringQAStage\n(Worker — 1 CPU, batch 16)\n+ NVInferenceClient"]
E --> F{"missing_text?"}
F -->|Yes| G["Multi-turn QA only\ndense_dump disabled"]
F -->|No| H{"dense_dump_prob\ntriggers?"}
H -->|Yes| I["Single-turn dense dump\n(all valid words)"]
H -->|No| J["Multi-turn QA\n(≤100 pairs, 4 families)"]
G --> D
I --> D
J --> D
D --> K["worker shards\n*_worker*.jsonl"]
K --> L["merge_output_shards()\n(Driver)"]
L --> M["Final JSONL"]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A["HFDatasetImageReaderStage\n(Driver — 1 CPU)"] --> B["OCRNemotronV2Stage\n(Worker — 8 CPU + 1 GPU, batch 32)"]
B --> C{"run_scoring_qa?"}
C -->|No| D["JsonlSampleWriterStage\n(Worker — 2 CPU)"]
C -->|Yes| E["OCRScoringQAStage\n(Worker — 1 CPU, batch 16)\n+ NVInferenceClient"]
E --> F{"missing_text?"}
F -->|Yes| G["Multi-turn QA only\ndense_dump disabled"]
F -->|No| H{"dense_dump_prob\ntriggers?"}
H -->|Yes| I["Single-turn dense dump\n(all valid words)"]
H -->|No| J["Multi-turn QA\n(≤100 pairs, 4 families)"]
G --> D
I --> D
J --> D
D --> K["worker shards\n*_worker*.jsonl"]
K --> L["merge_output_shards()\n(Driver)"]
L --> M["Final JSONL"]
Reviews (10): Last reviewed commit: "Merge branch 'main' into codex/docs-nemo..." | Re-trigger Greptile |
Signed-off-by: Lawrence Lane <llane@nvidia.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
Signed-off-by: Lawrence Lane <llane@nvidia.com>
093a623 to
abe92e4
Compare
Signed-off-by: Lawrence Lane <llane@nvidia.com>
|
🌿 Preview your docs: https://nvidia-preview-codex-docs-nemotron-ocr-pipeline.docs.buildwithfern.com/nemo/curator Here are the markdown pages you've updated: |
|
@abhinavg4 friendly ping on this docs PR for the #2118 release-docs workstream — when you have a moment, could you take a look at the Nemotron OCR pipeline guide? Docs preview: https://nvidia-preview-codex-docs-nemotron-ocr-pipeline.docs.buildwithfern.com/nemo/curator Thanks! |
|
@thomasdhc, since you approved the underlying Nemotron OCR implementation in #1899, could you please review this pipeline guide when you have a moment? Thank you! |
|
/ok to test afb0434 |
* docs: add Nemotron OCR pipeline guide Signed-off-by: Lawrence Lane <llane@nvidia.com> * docs: clarify OCR recovery and writer defaults Signed-off-by: Lawrence Lane <llane@nvidia.com> * docs: clarify OCR conversation schema Signed-off-by: Lawrence Lane <llane@nvidia.com> * docs: punctuate OCR navigation card Signed-off-by: Lawrence Lane <llane@nvidia.com> * docs: distinguish OCR conversation types Signed-off-by: Lawrence Lane <llane@nvidia.com> --------- Signed-off-by: Lawrence Lane <llane@nvidia.com>
Summary
Current API boundary
Issue #2121 names several APIs that were not present in the final merged #1899 implementation. These docs use the actual current names and behavior:
OCRNemotronV2Stage, notNemotronOCRV2StageHFDatasetImageReaderStageandJsonlSampleWriterStage, notHFDatasetImageReader/ResultWriterStageNVInferenceClient, notNVInferenceModelOCRDenseItem, notOCRDenseWordOCRScoringQAStage; there are no standaloneOCRConversationalizeStageorOCRDenseQAStageclassesTarImageReader,ParquetReader, orSkipProcessedStageThe pages call this out directly and document custom
ImageSampleTask[OCRData]input as the extension point instead of publishing non-runnable configuration.Validation
fern check— 0 errors (103 existing warnings)fern docs broken-links— no errors in changed pages; 22 pre-existing API-reference errors elsewherepython -m py_compilefor the tutorial and all documented source modulesgit diff --cached --checkThe repository's Linux-only import guard was bypassed for local CPU unit validation on macOS. The live NemotronOCR-v2 model load requires the documented container and GPU and was not run locally.
Closes #2121