NIM LLM 1.x to NIM LLM and VLM 2.0 Migration Guide#
NIM LLM and VLM 2.0 uses a new architecture in which each container image bundles one open-source inference engine, vLLM or SGLang, in place of the 1.x multi-backend design. As a result, it differs significantly from NIM LLM 1.x. This guide highlights the main areas that require changes during migration and links to the relevant 2.0 documentation for full details.
Migration Checklist#
Use the following checklist to review the main migration tasks.
General#
Start with these high-level changes:
Update the image tag to
2.1.4.Review the new architecture, including which inference engine (vLLM or SGLang) your image bundles.
CLI#
Review the CLI changes that affect deployment and startup behavior:
There are minor changes and additions to the CLI. Refer to CLI Reference for more details on the new CLI.
Notably, the
nim-runCLI command is replaced with the newnim-servecommand.
Configuration#
Review configuration changes before you update deployment manifests or startup commands:
Migrate to the new configuration system. Refer to Advanced Configuration for details.
Audit environment variables against the 2.0 environment variable reference. Many 1.x variables have been removed. Use the canonical
NIM_*variables where they exist. For everything else, pass the bundled engine’s native arguments (vLLM or SGLang, depending on the image) throughnim-serve. Backend-specific flags must match the engine in your image.Configure the inference engine by passing its CLI arguments directly to
nim-serve. Refer to thenim-servesection of CLI Reference for an example. For a full description of the available configuration options, refer to the vLLM engine arguments or the SGLang server arguments, depending on your image.
API and Inference Requests#
Update client integrations to match the new request and response structure:
Review the new API Reference and migrate clients to the OpenAI-compatible request and response structure exposed by the bundled engine.
Notably, the
nvextextension object in the request body is removed. Move sampling parameters fromnvextto top-level request fields.For extension sampling fields beyond the OpenAI schema, refer to the vLLM sampling parameters or SGLang sampling parameters. Both backends accept
min_tokensin OpenAI-compatible Chat Completions and Completions requests. SGLang maps this field tomin_new_tokensinternally.
Tool Calling#
Review tool calling changes if your deployment uses function or tool invocation:
Configure tool calling with arguments supported by the backend in your image. Refer to Tool Calling and MCP Integration for setup and backend differences.
Models and Profiles#
Review model selection and profile behavior before you migrate existing deployments:
Replace the
NIM_MODEL_NAMEenvironment variable withNIM_MODEL_PATHto configure the model to download and serve. Refer to Model Download and Model-Free NIM for additional details.Automatic profile selection now uses model memory estimation heuristics to choose a suitable profile. Refer to Model Profiles and Selection for details.
LoRA Support#
Review these changes if you deploy LoRA adapters:
Convert LoRA adapters to Hugging Face PEFT format. NeMo-format adapters are no longer supported.
Refer to Fine-Tuning with LoRA for details on configuring NIM for LoRA.
Observability and Logging#
Update logging and metrics collection to match the 2.0 runtime:
Update dashboards and alerts to use the bundled engine’s native Prometheus metrics:
vllm:*for vLLM orsglang:*for SGLang. Metric names differ between engines. Refer to Logging and Observability.Use
NIM_LOG_LEVELandNIM_JSONL_LOGGINGfor logging configuration.Refer to Logging and Observability — Metrics for more details.