Skip to content

[TRTLLM-15820][feat] Enable multi-LoRA on Nemotron 3.5 Super VL - #19151

Draft
eopXD wants to merge 1 commit into
NVIDIA:mainfrom
eopXD:user/yuehtingc/nemotron35-vl-multi-lora
Draft

eopXD wants to merge 1 commit into
NVIDIA:mainfrom
eopXD:user/yuehtingc/nemotron35-vl-multi-lora

Conversation

@eopXD

@eopXD eopXD commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Description

Enable multi-LoRA on Nemotron 3.5 Super VL.

Working combination: 2×B200, TP2, nemotron_3.5_super_nvfp4_experts_no_fp8_kv:

  cuda_graph_config=None,
  enable_block_reuse=False, max_batch_size=8, max_seq_len=16384,
  3 adapters ranks 8/16/32, lora_alpha=2r, std=0.2,
  srun --mpi=pmix --ntasks=2 under trtllm-llmapi-launch

Test Coverage

The one test that fails without the source change: test_vl_wrapper_exposes_lora_config (tests/unittest/_torch/modules/tests_lora_modules/test_nemotron35_vl_lora_adapter.py:232) — on base, NemotronH_Nano_VL_V2.lora_config() raises AttributeError.

The CPU tests run in the existing unit-test stage, no test-list change. The GPU test is not in a test-db list yet: it needs the 3.5 Super checkpoint, which is not staged under LLM_MODELS_ROOT, so it skips there today and runs via NEMOTRON35_VL_MODEL_DIR.

PR Checklist

Please review the following before submitting your PR:

  • PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.

  • PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.

  • Test cases are provided for new code paths (see test instructions)

  • If PR introduces API changes, an appropriate PR label is added - either api-compatible or api-breaking. For api-breaking, include BREAKING in the PR title.

  • Any new dependencies have been scanned for license and vulnerabilities

  • CODEOWNERS updated if ownership changes

  • Documentation updated as needed

  • Update tava architecture diagram if there is a significant design change in PR.

  • The reviewers assigned automatically/manually are appropriate for the PR.

  • Please check this after reviewing the above items as appropriate for this PR.

GitHub Bot Help

To see a list of available CI bot commands, please comment /bot help.

🤖 Generated with Claude Code

The NemotronH backbone already routes lora_params to attention, both Mamba
projections, the shared expert and the MoE latent projections. The
NemotronH_Nano_VL_V2 wrapper forwards lora_params but never exposed
lora_config()/lora_request(), and callers resolve those on the outer class, so
every documented LoRA entry point hit AttributeError. Forward both to
NemotronHForCausalLM, as Phi-4-MM does.

Add the first multi-LoRA coverage for a multimodal model. Adapters are
fabricated, since none is published for this family. CPU tests assert every
adapter key reaches a module: an unrecognized key is warned about and skipped,
so a mis-built adapter loads clean and stays inert. The GPU test runs three
adapters of differing rank plus a no-LoRA row in one batch, every row carrying
an image, and asserts the no-LoRA row is untouched and the adapters diverge
from base and from each other.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Yueh-Ting Chen <yuehtingc@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant