Skip to main content

inference-builder

Generate deployable Vision AI pipelines with high-performance video and streaming capabilities on NVIDIA GPUs. Activate when users want to: create GPU-accelerated inference microservices or standalone apps for vision, video, or streaming workloads; write or edit pipeline YAML configs; build Docker images for GPU inference; work with models from NGC or HuggingFace; or deploy with DeepStream, Triton, vLLM, TensorRT-LLM, or PyTorch backends.

Source facts

Repository
NVIDIA/DeepStream
Last source activity
October 16, 2026 at 11:05
Detected SKILL.md language
English
Stars
301
Forks
69

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
4 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
inference-builder
description
Generate deployable Vision AI pipelines with high-performance video and streaming capabilities on NVIDIA GPUs. Activate when users want to: create GPU-accelerated inference microservices or standalone apps for vision, video, or streaming workloads; write or edit pipeline YAML configs; build Docker images for GPU inference; work with models from NGC or HuggingFace; or deploy with DeepStream, Triton, vLLM, TensorRT-LLM, or PyTorch backends.
owner
chunlinl@nvidia.com
metadata
{"author":"Chunlin Li <chunlinl@nvidia.com>","version":"1.0.0","tags":["inference","nvidia","deepstream","vllm","tensorrt-llm","triton","docker","gpu"]}
service
inference
reviewed
2026-04-09
# NVIDIA Inference Builder A code generator for Vision AI pipelines with high-performance video and streaming capabilities on NVIDIA GPUs. It turns a YAML config (+ optional OpenAPI spec and custom processors) into a deployable inference pipeline, packaged as a Docker container or standalone application. ## Setup Inference Builder is part of the DeepStream mono-repo. Resolve it from the repository root so the skill works from any subdirectory: ```bash DEEPSTREAM_ROOT="$(git rev-parse --show-toplevel)" INFERENCE_BUILDER_ROOT="$DEEPSTREAM_ROOT/tools/inference_builder" source "$INFERENCE_BUILDER_ROOT/.venv/bin/activate" python "$INFERENCE_BUILDER_ROOT/builder/main.py" --help ``` ### First-time venv setup ```bash cd "$INFERENCE_BUILDER_ROOT" python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ### Getting current CLI usage Always run with `--help` for authoritative flags — do NOT rely on memorized syntax: ```bash python "$INFERENCE_BUILDER_ROOT/builder/main.py" --help ``` All paths below are relative to `tools/inference_builder/` unless stated otherwise. ## Key Directories | Path | What lives there | |------|-----------------| | `builder/samples/` | Working examples for every backend — read `builder/samples/README.md` for the full index, then start from the closest matching example | | `schemas/config.schema.json` | Main config schema — all fields, data types, and validation rules | | `schemas/README.md` | Comprehensive reference: backends, parameters, data types, preprocessors, responders, routing | | `schemas/backends/` | Per-backend schemas and parameter definitions | | `templates/backend/` | Jinja templates for each inference backend | | `templates/responder/` | Jinja templates for server endpoint handlers | | `lib/` | Shared runtime libraries included in generated pipelines | | `builder/tests/` | Integration test framework (see `run_tests.sh --help`) | ## Instructions 1. **Browse samples & schemas** — find the closest match in `builder/samples/`; consult `schemas/config.schema.json` and `schemas/backends/` for field reference 2. **Write YAML config** — validate against the schema; consult `schemas/README.md` for data types, preprocessors, responders, and routing. Prefer choices that keep the hot path on GPU and skip avoidable GPU↔CPU round-trips; prefer GPU acceleration across the whole pipeline — decode/ encode, scale & color convert, batch, preprocess, infer, track, and overlay 3. **Generate pipeline** — `python builder/main.py <config.yaml> [options]` 4. **Prepare model repository** — download models from NGC/HuggingFace into the model_repo directory 5. **Generate nvinfer config** (DeepStream only) — check if the downloaded model already includes runtime config files (nvdsinfer_config.yaml, nvdspreprocess_config.yaml); if not, generate them and place alongside the model. Skip this step entirely for non-DeepStream backends 6. **Select platform & build Docker image** — read `doc/platform-guide.md` to choose the correct base image and Dockerfile for the target hardware (x86_64, Jetson/Tegra, DGX Spark); then build the image 7. **Run & test** — run the container with the model repository mounted; for serverless pipelines the container runs to completion; for HTTP servers (fastapi/triton/nim) send test requests to verify. If GPU resources are available, perform an end-to-end smoke test against the running container to validate the full pipeline on real hardware ## Non-Obvious Knowledge - If the user's model request is ambiguous (e.g., unclear model variant, version, precision, or source), always ask for clarification before proceeding — do not guess. - Before using any model, gather as much information as possible about it: version, architecture, input/output shapes, precision, and expected preprocessing. Cross-check this information against the pipeline YAML config and any runtime config (e.g., nvdsinfer_config.yaml) to ensure consistency — mismatches in input dims, scale factors, or label files are common sources of silent failures. - Config YAML supports runtime env-var substitution: `$ENV_VAR|default_value` (auto-typed based on the default). - Server type `serverless` does NOT need an OpenAPI spec or server definition. - Custom processor class `name` attribute must exactly match the processor name in the YAML config. - Default to bridge networking plus explicit `-p` port mappings. Recommend Docker host-network or host-IPC modes only when the deployment explicitly needs host namespace sharing, and call out the security tradeoff before opting in. - Before running containers, check `nvidia-smi` for free GPU memory. If GPUs are occupied or low on memory, select a free GPU with `--gpus device=N` or ask the user to free resources — OOM failures can be silent or misleading. - Key runtime env vars: `HTTP_PORT` (default 8000), `LOG_LEVEL` (default INFO), `DEBUG` (0/1), `N_CODEC_INSTANCES` (parallel video decoders), `MAX_BATCH_SIZE` (live stream frame batching). - DeepStream backends require a separate `nvdsinfer_config.yaml` in the model directory. - When writing new configs, the required top-level fields are only `name`, `model_repo`, and `models` — everything else is optional. ## Examples - "Generate an inference-builder YAML config for a DeepStream detection service that reads RTSP, uses Triton, and exposes a FastAPI endpoint." - "Adapt the dummy sample into a serverless image-inference pipeline and show the Docker build and run commands."
View on GitHub