Image-Text-to-Text
Transformers
Safetensors
nemotron_parse
text-generation
VLM
OCR
Parse
conversational
custom_code
Eval Results
Instructions to use nvidia/Nemotron-3.5-Parse with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nvidia/Nemotron-3.5-Parse with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="nvidia/Nemotron-3.5-Parse", trust_remote_code=True) messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("nvidia/Nemotron-3.5-Parse", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use nvidia/Nemotron-3.5-Parse with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "nvidia/Nemotron-3.5-Parse" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nvidia/Nemotron-3.5-Parse", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/nvidia/Nemotron-3.5-Parse
- SGLang
How to use nvidia/Nemotron-3.5-Parse with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "nvidia/Nemotron-3.5-Parse" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nvidia/Nemotron-3.5-Parse", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "nvidia/Nemotron-3.5-Parse" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nvidia/Nemotron-3.5-Parse", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use nvidia/Nemotron-3.5-Parse with Docker Model Runner:
docker model run hf.co/nvidia/Nemotron-3.5-Parse
Download reference/validation/inference_benchmarks.json from nvidia/Nemotron-3.5-Parse: direct link, hf CLI and curl.
- Browser
- Download file 11.7 kB
-
https://huggingface.co/nvidia/Nemotron-3.5-Parse/resolve/main/reference/validation/inference_benchmarks.json
- Command line
-
hf download hf://nvidia/Nemotron-3.5-Parse/reference/validation/inference_benchmarks.json
-
curl -L -o inference_benchmarks.json https://huggingface.co/nvidia/Nemotron-3.5-Parse/resolve/main/reference/validation/inference_benchmarks.json
11.7 kB
| { | |
| "status": "verified existing real-model receipts; no new GPU run for timing-only package update", | |
| "pages_per_profile": 2078, | |
| "hardware": "one H100 80GB", | |
| "server_backend": "uni", | |
| "tensor_parallel_size": 1, | |
| "vllm": "0.26.0", | |
| "profile": "FA3, MTP1, max_model_len=16384, max_num_seqs=192, max_num_batched_tokens=16384", | |
| "model_weight_sha256": "81dd7609c589f3694ce75520c25af5010953231358de6aec4d03e8c6aac787e9", | |
| "recommended_quality_preserving_profiles": [ | |
| { | |
| "mode": "single", | |
| "measured_package": "3.5.0.post4", | |
| "source_receipt": "/lustre/fsw/portfolios/nemotron/projects/nemotron_parse_dev/users/rchesler/analysis/general_postprocessor_speed_20261017/full/single_c256/complete.json", | |
| "source_receipt_sha256": "07cd8d23d8e2724d496caf813348db7d8e94c7f65bf01d084206cbd5335ed1be", | |
| "concurrency": 256, | |
| "schedule": "staged", | |
| "pages": 2078, | |
| "complete_pages": 2045, | |
| "inference_seconds": 134.78283468799782, | |
| "inference_pages_per_second": 15.417393504226709, | |
| "complete_inference_pages_per_second": 15.172555205073927, | |
| "original_pipeline_seconds": 137.7506838600093, | |
| "requests": { | |
| "fullpage": 2078, | |
| "detection": 0, | |
| "crop": 0 | |
| }, | |
| "token_limited_responses": { | |
| "fullpage": 33 | |
| }, | |
| "completion_tokens": 2719778, | |
| "extraction_method": "saved fullpage stage wall timer; conservatively includes HTTP executor setup/teardown", | |
| "generation_metrics": { | |
| "mode": "single", | |
| "pages": 2078, | |
| "complete_pages": 2045, | |
| "incomplete_pages": 33, | |
| "concurrency": 256, | |
| "postprocess_workers": 8, | |
| "preprocessing_seconds": 10.932252227998106, | |
| "pipeline_seconds": 137.7506838600093, | |
| "processed_pages_per_second": 15.08522456492333, | |
| "complete_pages_per_second": 14.845661325923103, | |
| "stage_times": { | |
| "fullpage_seconds": 134.78283468799782, | |
| "postprocessing_seconds": 2.9462760030000936 | |
| }, | |
| "requests": { | |
| "fullpage": 2078, | |
| "detection": 0, | |
| "crop": 0 | |
| }, | |
| "token_limited_responses": { | |
| "fullpage": 33 | |
| }, | |
| "completion_tokens": 2719778, | |
| "postprocessing": { | |
| "infer_headers": true, | |
| "render_charts": true, | |
| "split_chart_value_percent": true, | |
| "relocate_chart_captions": true, | |
| "normalize_text": true, | |
| "deduplicate": true | |
| }, | |
| "allow_partial": true, | |
| "timing_excludes": [ | |
| "initial image preparation", | |
| "output serialization", | |
| "server startup", | |
| "warmup requests" | |
| ], | |
| "timing_includes": [ | |
| "all mode inference stages", | |
| "predicted-region crop preparation", | |
| "merge and document rendering" | |
| ], | |
| "keys_sha256": "e2800a56d79085a612e2677e87fabd9735be7d92479cd68ad750ff3b49f67d3a", | |
| "input_pages": 2078, | |
| "output_serialization_seconds": 1.2913870430202223, | |
| "pipeline_plus_serialization_seconds": 139.04207090302953, | |
| "pages_per_second_with_serialization": 14.945116873649235, | |
| "complete": true | |
| } | |
| }, | |
| { | |
| "mode": "double", | |
| "measured_package": "3.5.0.post5", | |
| "source_receipt": "/lustre/fsw/portfolios/nemotron/projects/nemotron_parse_dev/users/rchesler/analysis/general_postprocessor_speed_20261017/accuracy_restored_20261017/full/double/complete.json", | |
| "source_receipt_sha256": "2a1fc5d79989a17b6ccf825b8d9d964ae53ce8aedf7f31407c8191c0aa38f533", | |
| "concurrency": 256, | |
| "schedule": "pipelined", | |
| "pages": 2078, | |
| "complete_pages": 2043, | |
| "inference_seconds": 178.3529313809995, | |
| "inference_pages_per_second": 11.651056048868371, | |
| "complete_inference_pages_per_second": 11.454815932549607, | |
| "original_pipeline_seconds": 178.53091148199746, | |
| "requests": { | |
| "fullpage": 2078, | |
| "detection": 0, | |
| "crop": 2339 | |
| }, | |
| "token_limited_responses": { | |
| "fullpage": 26, | |
| "crop": 9 | |
| }, | |
| "completion_tokens": 3800986, | |
| "extraction_method": "maximum stage end minus minimum stage start on common clock", | |
| "generation_metrics": { | |
| "mode": "double", | |
| "merge_policy": "alternatives", | |
| "schedule": "pipelined", | |
| "peak_inflight_requests": 256, | |
| "request_service_seconds": { | |
| "fullpage": 28709.884806043323, | |
| "crop": 13957.128172721918 | |
| }, | |
| "stage_first_request_seconds": { | |
| "fullpage": 0.0035496869968483225, | |
| "crop": 8.328730886001722 | |
| }, | |
| "overlapping_stage_times": true, | |
| "pages": 2078, | |
| "complete_pages": 2043, | |
| "incomplete_pages": 35, | |
| "concurrency": 256, | |
| "postprocess_workers": 8, | |
| "preprocessing_seconds": 9.697014473000308, | |
| "pipeline_seconds": 178.53091148199746, | |
| "processed_pages_per_second": 11.639440939108965, | |
| "complete_pages_per_second": 11.44339645745891, | |
| "stage_times": { | |
| "fullpage_span_seconds": 175.82064464699943, | |
| "crop_span_seconds": 170.02775018199463 | |
| }, | |
| "requests": { | |
| "fullpage": 2078, | |
| "detection": 0, | |
| "crop": 2339 | |
| }, | |
| "token_limited_responses": { | |
| "fullpage": 26, | |
| "crop": 9 | |
| }, | |
| "completion_tokens": 3800986, | |
| "postprocessing": { | |
| "infer_headers": true, | |
| "render_charts": true, | |
| "split_chart_value_percent": true, | |
| "relocate_chart_captions": true, | |
| "normalize_text": true, | |
| "deduplicate": true | |
| }, | |
| "allow_partial": true, | |
| "timing_excludes": [ | |
| "initial image preparation", | |
| "output serialization", | |
| "server startup", | |
| "warmup requests" | |
| ], | |
| "timing_includes": [ | |
| "all mode inference stages", | |
| "predicted-region crop preparation", | |
| "merge and document rendering" | |
| ], | |
| "keys_sha256": "e2800a56d79085a612e2677e87fabd9735be7d92479cd68ad750ff3b49f67d3a", | |
| "input_pages": 2078, | |
| "vllm_queue": { | |
| "sample_interval_seconds": 0.5, | |
| "samples": 352, | |
| "peak_running": 192.0, | |
| "peak_waiting": 64.0, | |
| "fraction_samples_with_waiting": 0.8977272727272727, | |
| "mean_running": 175.42613636363637 | |
| }, | |
| "output_serialization_seconds": 1.6826819609996164, | |
| "pipeline_plus_serialization_seconds": 180.21359344299708, | |
| "pages_per_second_with_serialization": 11.530761693941178, | |
| "complete": true | |
| } | |
| }, | |
| { | |
| "mode": "triple", | |
| "measured_package": "3.5.0.post5", | |
| "source_receipt": "/lustre/fsw/portfolios/nemotron/projects/nemotron_parse_dev/users/rchesler/analysis/general_postprocessor_speed_20261017/accuracy_restored_20261017/full/triple/complete.json", | |
| "source_receipt_sha256": "08a8671ae3efd29a34241b32990c4f8d539a6e0c62a1b9b88430433abedd3210", | |
| "concurrency": 128, | |
| "schedule": "pipelined", | |
| "pages": 2078, | |
| "complete_pages": 2038, | |
| "inference_seconds": 195.69899474299746, | |
| "inference_pages_per_second": 10.618347849609256, | |
| "complete_inference_pages_per_second": 10.4139523183367, | |
| "original_pipeline_seconds": 195.8028804409987, | |
| "requests": { | |
| "fullpage": 2078, | |
| "detection": 2078, | |
| "crop": 2609 | |
| }, | |
| "token_limited_responses": { | |
| "crop": 22, | |
| "fullpage": 33 | |
| }, | |
| "completion_tokens": 4238196, | |
| "extraction_method": "maximum stage end minus minimum stage start on common clock", | |
| "generation_metrics": { | |
| "mode": "triple", | |
| "merge_policy": "alternatives", | |
| "schedule": "pipelined", | |
| "peak_inflight_requests": 128, | |
| "request_service_seconds": { | |
| "detection": 2116.9487077718077, | |
| "crop": 7074.808867427841, | |
| "fullpage": 14919.450061689073 | |
| }, | |
| "stage_first_request_seconds": { | |
| "detection": 0.0024413679930148646, | |
| "crop": 0.3488499709928874, | |
| "fullpage": 0.0005174870020709932 | |
| }, | |
| "overlapping_stage_times": true, | |
| "pages": 2078, | |
| "complete_pages": 2038, | |
| "incomplete_pages": 40, | |
| "concurrency": 128, | |
| "postprocess_workers": 8, | |
| "preprocessing_seconds": 9.697014473000308, | |
| "pipeline_seconds": 195.8028804409987, | |
| "processed_pages_per_second": 10.612714150679535, | |
| "complete_pages_per_second": 10.408427064044702, | |
| "stage_times": { | |
| "detection_span_seconds": 187.84758807100297, | |
| "crop_span_seconds": 195.35066225900664, | |
| "fullpage_span_seconds": 195.54977705900092 | |
| }, | |
| "requests": { | |
| "fullpage": 2078, | |
| "detection": 2078, | |
| "crop": 2609 | |
| }, | |
| "token_limited_responses": { | |
| "crop": 22, | |
| "fullpage": 33 | |
| }, | |
| "completion_tokens": 4238196, | |
| "postprocessing": { | |
| "infer_headers": true, | |
| "render_charts": true, | |
| "split_chart_value_percent": true, | |
| "relocate_chart_captions": true, | |
| "normalize_text": true, | |
| "deduplicate": true | |
| }, | |
| "allow_partial": true, | |
| "timing_excludes": [ | |
| "initial image preparation", | |
| "output serialization", | |
| "server startup", | |
| "warmup requests" | |
| ], | |
| "timing_includes": [ | |
| "all mode inference stages", | |
| "predicted-region crop preparation", | |
| "merge and document rendering" | |
| ], | |
| "keys_sha256": "e2800a56d79085a612e2677e87fabd9735be7d92479cd68ad750ff3b49f67d3a", | |
| "input_pages": 2078, | |
| "vllm_queue": { | |
| "sample_interval_seconds": 0.5, | |
| "samples": 385, | |
| "peak_running": 128.0, | |
| "peak_waiting": 4.0, | |
| "fraction_samples_with_waiting": 0.0025974025974025974, | |
| "mean_running": 113.85194805194806 | |
| }, | |
| "output_serialization_seconds": 1.8849293050006963, | |
| "pipeline_plus_serialization_seconds": 197.6878097459994, | |
| "pages_per_second_with_serialization": 10.511523207576294, | |
| "complete": true | |
| } | |
| } | |
| ], | |
| "interpretation": [ | |
| "Prepared-page batch throughput, not PDF-to-document end-to-end throughput or one-page latency.", | |
| "Counts all 2078 processed pages; token-limited pages are incomplete and are separately reported.", | |
| "Double/triple use the restored alternatives merge and default chart rules. Single has no crop merge and was measured before that merge-only change.", | |
| "Dependent crop selection, encoding, dispatch, queueing, model image encoding and generation remain on the inference critical path.", | |
| "Initial preparation, startup, warmup and output serialization excluded. Final rendering tail excluded; concurrent rendering contention remains in observed wall time and is not subtracted.", | |
| "Historical fastest observed guarded-merge runs reached 11.8805158572 double and 10.9075689818 triple pages/s. They have lower quality and are not the recommended quality-preserving profiles.", | |
| "These are observed configurations, not a hardware ceiling. Nonzero-temperature generation and scheduler batching cause run-to-run variation.", | |
| "Single stage timer includes executor overhead; this makes its inferred 15.42 pages/s slightly conservative.", | |
| "The post6 change only adds timing counters; no new model generation or fresh score is claimed." | |
| ], | |
| "quality_receipt": "accuracy_restoration.json", | |
| "prior_speed_receipt": "batch_benchmarks.json" | |
| } | |