diff --git a/tests/integration/defs/accuracy/test_llm_api_pytorch_encode.py b/tests/integration/defs/accuracy/test_llm_api_pytorch_encode.py index c75cffdb842e..25da08ca50e2 100644 --- a/tests/integration/defs/accuracy/test_llm_api_pytorch_encode.py +++ b/tests/integration/defs/accuracy/test_llm_api_pytorch_encode.py @@ -239,14 +239,14 @@ def test_qwen3_text_embedding_matches_huggingface(self, model_name, model_path): # classification scoring on a causal LM backbone. # # One representative per distinct TRT-LLM architecture class: -# LlamaForCausalLM — TinyLlama (also covers Mistral, which aliases LlamaModel) +# LlamaForCausalLM — Llama-3.2-1B (also covers Mistral, which aliases LlamaModel) # Qwen3ForCausalLM — Qwen3-0.6B (QKNorm) DECODER_MODELS = [ # -- LlamaForCausalLM (covers Llama + Mistral family) -- pytest.param( - "TinyLlama/TinyLlama-1.1B-Chat-v1.0", - f"{llm_models_root()}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0", - id="tinyllama-1.1b", + "meta-llama/Llama-3.2-1B", + f"{llm_models_root()}/llama-3.2-models/Llama-3.2-1B", + id="llama-3.2-1b", ), # -- Qwen3ForCausalLM -- pytest.param( diff --git a/tests/integration/defs/conftest.py b/tests/integration/defs/conftest.py index bcea8e086953..61ed701bd2c3 100644 --- a/tests/integration/defs/conftest.py +++ b/tests/integration/defs/conftest.py @@ -677,10 +677,7 @@ def llama_v2_tokenizer_model_root(): def llama_model_root(request): models_root = llm_models_root() assert models_root, "Did you set LLM_MODELS_ROOT?" - if request.param == "TinyLlama-1.1B-Chat-v1.0": - llama_model_root = os.path.join(models_root, "llama-models-v2", - "TinyLlama-1.1B-Chat-v1.0") - elif request.param == "llama-3.1-8b": + if request.param == "llama-3.1-8b": llama_model_root = os.path.join(models_root, "llama-3.1-model", "Meta-Llama-3.1-8B") elif request.param == "llama-3.1-8b-instruct-hf-fp8": diff --git a/tests/integration/defs/disaggregated/test_ad_disagg.py b/tests/integration/defs/disaggregated/test_ad_disagg.py index 24a3915475e7..20387b030f81 100644 --- a/tests/integration/defs/disaggregated/test_ad_disagg.py +++ b/tests/integration/defs/disaggregated/test_ad_disagg.py @@ -65,7 +65,7 @@ def skip_b300(): "OMPI_UNIVERSE_SIZE", ) AUTODEPLOY_DISAGG_SEED = 1234 -REDUCED_TINYLLAMA_LAYERS = 2 +REDUCED_QWEN3_LAYERS = 2 REDUCED_DEEPSEEK_LAYERS = 2 LLAMA_EAGLE3_EXPECTED_TEXT = " Berlin\nWhat is the capital of France? Paris\nWhat is the capital of" LLAMA_EAGLE3_EXPECTED_TOKEN_IDS = [ @@ -91,7 +91,7 @@ def skip_b300(): MODEL_PATHS = { "EAGLE3-LLaMA3.1-Instruct-8B": "EAGLE3-LLaMA3.1-Instruct-8B", "Llama-3.1-8B-Instruct": "llama-3.1-model/Llama-3.1-8B-Instruct/", - "TinyLlama-1.1B-Chat-v1.0": "llama-models-v2/TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B": "Qwen3/Qwen3-0.6B", "DeepSeek-V3-Lite": "DeepSeek-V3-Lite/bf16", } @@ -280,9 +280,9 @@ def run_aggregate_generation( # --------------------------------------------------------------------------- -def reduced_tinyllama_config(extra_config=None): +def reduced_qwen3_config(extra_config=None): config = { - "model_kwargs": {"num_hidden_layers": REDUCED_TINYLLAMA_LAYERS}, + "model_kwargs": {"num_hidden_layers": REDUCED_QWEN3_LAYERS}, "max_batch_size": 4, "max_seq_len": 512, "max_num_tokens": 256, @@ -459,7 +459,7 @@ def reduced_model_config(model, extra_config=None): if "DeepSeek-V3-Lite" in model: config = reduced_deepseek_v3_mla_config() else: - config = reduced_tinyllama_config() + config = reduced_qwen3_config() if extra_config: config.update(extra_config) return config @@ -468,8 +468,8 @@ def reduced_model_config(model, extra_config=None): def reduced_model_cases(): return [ pytest.param( - "TinyLlama-1.1B-Chat-v1.0", - id="tinyllama", + "Qwen3-0.6B", + id="qwen3_0_6b", ), pytest.param( "DeepSeek-V3-Lite", @@ -563,7 +563,7 @@ def test_disaggregated_logits(model): # The MLA generation worker reconstructs logits from the compressed KV latent # through a different kernel/batching path than the single aggregate pass, so # bf16 rounding yields ~1-ULP logit differences. Use a looser tolerance for the - # MLA (DeepSeek) case; MHA (tinyllama) stays tight. The functional checks above + # MLA (DeepSeek) case; MHA (Qwen3-0.6B) stays tight. The functional checks above # (text/token_ids equality) remain strict for both. if "DeepSeek-V3-Lite" in model: rtol, atol = 1e-1, 1e-1 @@ -579,7 +579,7 @@ def test_disaggregated_logits(model): @pytest.mark.skip_less_device_memory(30000) @pytest.mark.timeout(600) -def test_tinyllama_batch_handoff_semantic_slots(): +def test_qwen3_batch_handoff_semantic_slots(): prompts = capital_completion_prompts() expected_capitals = ["Berlin", "Paris", "Rome", "Madrid"] sampling_params_kwargs = { @@ -589,7 +589,7 @@ def test_tinyllama_batch_handoff_semantic_slots(): "seed": AUTODEPLOY_DISAGG_SEED, } outputs = run_sequential_batch_handoff( - "TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B", generation_overlap=True, prompts=prompts, sampling_params_kwargs=sampling_params_kwargs, @@ -951,13 +951,13 @@ def run_context_then_generation_handoff( @pytest.mark.timeout(600) def test_async_generation_matches_aggregate(): aggregate_output = run_aggregate_generation( - "TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B", world_size=1, prompt="What is the capital of Germany?", sampling_params_kwargs={"max_tokens": 10, "ignore_eos": True}, ) outputs = run_context_then_generation_handoff( - "TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B", worker_world_sizes=(1, 1), generation_overlap=True, prompt="What is the capital of Germany?", @@ -989,13 +989,13 @@ def test_async_generation_no_overlap_matches_aggregate(): """ sampling_params_kwargs = {"max_tokens": 10, "ignore_eos": True} aggregate_output = run_aggregate_generation( - "TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B", world_size=1, prompt="What is the capital of Germany?", sampling_params_kwargs=sampling_params_kwargs, ) outputs = run_context_then_generation_handoff( - "TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B", worker_world_sizes=(1, 1), generation_overlap=False, prompt="What is the capital of Germany?", @@ -1014,13 +1014,13 @@ def test_async_generation_no_overlap_matches_aggregate(): @pytest.mark.timeout(900) def test_async_sharded_generation_handoff(): aggregate_output = run_aggregate_generation( - "TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B", world_size=2, prompt="What is the capital of Germany?", sampling_params_kwargs={"max_tokens": 10, "ignore_eos": True}, ) outputs = run_context_then_generation_handoff( - "TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B", worker_world_sizes=(2, 2), generation_overlap=True, prompt="What is the capital of Germany?", diff --git a/tests/integration/defs/disaggregated/test_ad_disagg_trtllm_serve.py b/tests/integration/defs/disaggregated/test_ad_disagg_trtllm_serve.py index 9698e6799ef9..122eaba59871 100644 --- a/tests/integration/defs/disaggregated/test_ad_disagg_trtllm_serve.py +++ b/tests/integration/defs/disaggregated/test_ad_disagg_trtllm_serve.py @@ -48,13 +48,13 @@ def skip_b300(): SERVER_READY_REQUEST_TIMEOUT_S = 5 OPENAI_REQUEST_TIMEOUT_S = 60 PROXY_PORT_MAX_RETRIES = 5 -TINYLLAMA_MODEL_DIR = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +QWEN3_MODEL_DIR = "Qwen3/Qwen3-0.6B" AUTODEPLOY_BACKEND = "_autodeploy" EXPECTED_COMPLETION_SUBSTRING = "Berlin" -def tinyllama_model_path(): - return str(Path(llm_models_root()) / TINYLLAMA_MODEL_DIR) +def qwen3_model_path(): + return str(Path(llm_models_root()) / QWEN3_MODEL_DIR) def worker_cuda_devices(num_workers): @@ -175,7 +175,7 @@ async def test_openai_completion(work_dir): verifies the trtllm-serve deployment shape: context worker, generation worker, disaggregated proxy, and an OpenAI-compatible completion request. """ - model = tinyllama_model_path() + model = qwen3_model_path() ctx_device, gen_device = worker_cuda_devices(2) last_port_conflict = None diff --git a/tests/integration/defs/disaggregated/test_auto_scaling.py b/tests/integration/defs/disaggregated/test_auto_scaling.py index efa0570e44f9..c5d76037f8a2 100644 --- a/tests/integration/defs/disaggregated/test_auto_scaling.py +++ b/tests/integration/defs/disaggregated/test_auto_scaling.py @@ -42,8 +42,7 @@ def worker_env(): @pytest.fixture def model_name(): - model_path = os.path.join(llm_models_root(), - "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + model_path = os.path.join(llm_models_root(), "Qwen3/Qwen3-0.6B") assert os.path.exists(model_path), f"Model path {model_path} does not exist" return model_path diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config.yaml index a29c2a5303f8..8c5c7ff1222f 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B free_gpu_memory_fraction: 0.25 backend: pytorch disable_overlap_scheduler: true diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_aware_balance.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_aware_balance.yaml index a9bf2587d23e..383e750a3a11 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_aware_balance.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_aware_balance.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_reuse.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_reuse.yaml index e7b371a6479e..49415ed6cafc 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_reuse.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_reuse.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B backend: pytorch cuda_graph_config: null disable_overlap_scheduler: true diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_conditional.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_conditional.yaml index 26aaeac42d90..4b523838979b 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_conditional.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_conditional.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_conversation.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_conversation.yaml index fbbfd0d21e1d..23d19a8bac86 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_conversation.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_conversation.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B backend: pytorch cuda_graph_config: null disable_overlap_scheduler: true diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_conversation_workers.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_conversation_workers.yaml index e894d036def2..6fa0b1b7c019 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_conversation_workers.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_conversation_workers.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp2_genpp2.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp2_genpp2.yaml index c04b34238c6b..67264c5d0eac 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp2_genpp2.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp2_genpp2.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp2_gentp2.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp2_gentp2.yaml index 76e44e23a12d..9a454405b9c0 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp2_gentp2.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp2_gentp2.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp4_genpp4.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp4_genpp4.yaml index ffee6430abcc..fff4d54cde09 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp4_genpp4.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp4_genpp4.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp4_gentp4.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp4_gentp4.yaml index 53b202e7ebdf..a2632cc04b5d 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp4_gentp4.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxpp4_gentp4.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_genpp2.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_genpp2.yaml index 8d6821cd996c..e59112295147 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_genpp2.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_genpp2.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp1.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp1.yaml index 840ba25e021d..d4d8d864b453 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp1.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp1.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B free_gpu_memory_fraction: 0.25 backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2pp2_gentp2pp2.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2pp2_gentp2pp2.yaml index d80795b727ac..91e3f3adde7d 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2pp2_gentp2pp2.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2pp2_gentp2pp2.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_cuda_graph_padding.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_cuda_graph_padding.yaml index 1f9e42d73237..6cda7d0a77a6 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_cuda_graph_padding.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_cuda_graph_padding.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch context_servers: diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_diff_max_tokens.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_diff_max_tokens.yaml index c07260248822..98fee7f6394f 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_diff_max_tokens.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_diff_max_tokens.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B free_gpu_memory_fraction: 0.25 backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only.yaml index 9253f421cfcd..a2dbb3f88d83 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B backend: pytorch cuda_graph_config: null context_servers: diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_bs1.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_bs1.yaml index 67494b24ff0b..e18d6c0e00b8 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_bs1.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_bs1.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_insufficient_kv.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_insufficient_kv.yaml index 9f65a7908e36..a06c29b74754 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_insufficient_kv.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_insufficient_kv.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B backend: pytorch cuda_graph_config: null context_servers: diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_kv_cache_aware.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_kv_cache_aware.yaml index 4e40bbf006a1..b107f8b9027c 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_kv_cache_aware.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_gen_only_kv_cache_aware.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B backend: pytorch cuda_graph_config: null disable_overlap_scheduler: true diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_load_balance.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_load_balance.yaml index 8540c6f555f6..6d6bede95630 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_load_balance.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_load_balance.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_load_balancing.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_load_balancing.yaml index 144c9af0f72e..d0868f8277f5 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_load_balancing.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_load_balancing.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B backend: pytorch cuda_graph_config: null disable_overlap_scheduler: true diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_metrics.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_metrics.yaml index a15f68e6381c..2edaa5c93911 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_metrics.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_metrics.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B free_gpu_memory_fraction: 0.25 backend: "pytorch" cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_mixed.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_mixed.yaml index cf7478ce8588..4582e152fb8f 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_mixed.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_mixed.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B free_gpu_memory_fraction: 0.25 backend: "pytorch" cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_multi_orchestrator.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_multi_orchestrator.yaml index 970c2e276647..2382366ab5c3 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_multi_orchestrator.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_multi_orchestrator.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B num_workers: 4 free_gpu_memory_fraction: 0.25 backend: pytorch diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ngram.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ngram.yaml index 4d0e7f804368..95f7278c2f9b 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ngram.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ngram.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B free_gpu_memory_fraction: 0.1 backend: pytorch disable_overlap_scheduler: true diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap.yaml index 391f95605b2c..4b796be5ed65 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost backend: pytorch cuda_graph_config: null diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_gen_first.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_gen_first.yaml index 50e8f172101b..af67d32b0808 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_gen_first.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_gen_first.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost port: 8000 backend: "pytorch" diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_gen_first_pp4.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_gen_first_pp4.yaml index 4f50e9b57150..70134e60b0cf 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_gen_first_pp4.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_gen_first_pp4.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost port: 8000 backend: "pytorch" diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_transceiver_runtime_python.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_transceiver_runtime_python.yaml index 33b4d256ad54..b44337dc6996 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_transceiver_runtime_python.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_transceiver_runtime_python.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost port: 8000 backend: "pytorch" diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_transceiver_runtime_python_bounce.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_transceiver_runtime_python_bounce.yaml index b4b3cd1234b9..c3939076edfd 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_transceiver_runtime_python_bounce.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_overlap_transceiver_runtime_python_bounce.yaml @@ -7,7 +7,7 @@ # TRTLLM_KV_CACHE_BOUNCE_MIN_BLOCKS env (set by the test) so the ordinary short test prompts still # take the coalesced-bounce WRITE path (the production default of 96 would need a ~2k-token prompt). # GB200/GB300 only, since the bounce arena is fabric (MNNVL) VMM memory. -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost port: 8000 backend: "pytorch" diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_python_transceiver_host_offload.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_python_transceiver_host_offload.yaml index 7cfdef404168..85fc3519fef1 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_python_transceiver_host_offload.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_python_transceiver_host_offload.yaml @@ -1,4 +1,4 @@ -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B hostname: localhost port: 8000 backend: "pytorch" diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_sa.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_sa.yaml index 397defec094d..7da1cf8ec701 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_sa.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_sa.yaml @@ -1,5 +1,5 @@ hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B free_gpu_memory_fraction: 0.1 backend: pytorch disable_overlap_scheduler: true diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_sa_python.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_sa_python.yaml index 82984ec49b49..0ef4ec112550 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_sa_python.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_sa_python.yaml @@ -5,7 +5,7 @@ # The existing test_disaggregated_sa covers the spec split only on the # C++ DEFAULT backend. hostname: localhost -model: TinyLlama/TinyLlama-1.1B-Chat-v1.0 +model: Qwen3/Qwen3-0.6B free_gpu_memory_fraction: 0.1 backend: pytorch disable_overlap_scheduler: true diff --git a/tests/integration/defs/disaggregated/test_disaggregated.py b/tests/integration/defs/disaggregated/test_disaggregated.py index 7f9497787554..72b98e7fb87a 100644 --- a/tests/integration/defs/disaggregated/test_disaggregated.py +++ b/tests/integration/defs/disaggregated/test_disaggregated.py @@ -1105,36 +1105,36 @@ def run_disaggregated_test(example_dir, shutil.rmtree(work_dir, ignore_errors=True) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_diff_max_tokens(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root, llm_venv): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "2_ranks_diff_max_tokens", env=llm_venv._new_env, prompt_file="long_prompts.json", - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_single_gpu(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root, llm_venv): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env["CUDA_VISIBLE_DEVICES"] = "0" run_disaggregated_test(disaggregated_example_root, "2_ranks", env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @@ -1198,13 +1198,14 @@ def test_disaggregated_mamba_bs1_concurrency2(disaggregated_example_root, ) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) -def test_disaggregated_tinyllama_multi_orchestrator(disaggregated_test_root, - disaggregated_example_root, - llm_venv, llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") +def test_disaggregated_qwen3_multi_orchestrator(disaggregated_test_root, + disaggregated_example_root, + llm_venv): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env["CUDA_VISIBLE_DEVICES"] = "0" @@ -1212,54 +1213,55 @@ def test_disaggregated_tinyllama_multi_orchestrator(disaggregated_test_root, "multi_orchestrator", num_iters=1, env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_benchmark_gen_only(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root, llm_venv): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env['TRTLLM_DISAGG_BENCHMARK_GEN_ONLY'] = '1' run_disaggregated_test(disaggregated_example_root, "gen_only", env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @pytest.mark.parametrize("router_type", ["load_balancing", "kv_cache_aware", "conversation"]) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_router(disaggregated_test_root, disaggregated_example_root, llm_venv, - llama_model_root, router_type): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + router_type): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, router_type, env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_benchmark_gen_only_insufficient_kv( - disaggregated_test_root, disaggregated_example_root, llm_venv, - llama_model_root): + disaggregated_test_root, disaggregated_example_root, llm_venv): """Test that gen-only benchmark mode raises an error when KV cache is too small to hold all benchmark requests, instead of hanging forever.""" import openai - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env['TRTLLM_DISAGG_BENCHMARK_GEN_ONLY'] = '1' @@ -1271,7 +1273,7 @@ def test_disaggregated_benchmark_gen_only_insufficient_kv( os.path.dirname(__file__)) config, ctx_workers, gen_workers, disagg_server, server_port, work_dir = \ setup_disagg_cluster(config_file, - model_name=llama_model_root, + model_name=qwen_model_root, env=env, cwd=llm_venv.get_working_directory()) @@ -1286,7 +1288,7 @@ def test_disaggregated_benchmark_gen_only_insufficient_kv( def send_request(): try: stream = client.completions.create( - model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", + model="Qwen3/Qwen3-0.6B", prompt="What is the capital of Germany?", max_tokens=10, temperature=0.0, @@ -1312,97 +1314,100 @@ def send_request(): @pytest.mark.skip_less_device(4) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_genbs1(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root, llm_venv): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env['TRTLLM_DISAGG_BENCHMARK_GEN_ONLY'] = '1' run_disaggregated_test(disaggregated_example_root, "gen_only_bs1", env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @pytest.mark.skip_less_device(2) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_multi_gpu(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root, llm_venv): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "4_ranks", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_cuda_graph(disaggregated_test_root, llm_venv, - disaggregated_example_root, llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "cuda_graph", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_mixed(disaggregated_test_root, llm_venv, - disaggregated_example_root, llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "mixed", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_overlap(disaggregated_test_root, llm_venv, - disaggregated_example_root, llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") def post_client_test(server_url: str): - verify_usage_with_cache_reuse(server_url, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + verify_usage_with_cache_reuse(server_url, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "overlap", env=llm_venv._new_env, post_client_test=post_client_test, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @skip_pre_hopper @pytest.mark.skip_less_device(8) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) @pytest.mark.parametrize("ctx_pp", [1, 4], ids=["ctx_pp1", "ctx_pp4"]) def test_disaggregated_overlap_gen_first(disaggregated_test_root, disaggregated_example_root, llm_venv, - llama_model_root, ctx_pp): + ctx_pp): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" src_dst_dict = { - llama_model_root: - f"{llm_venv.get_working_directory()}/TinyLlama/TinyLlama-1.1B-Chat-v1.0", + qwen_model_root: f"{llm_venv.get_working_directory()}/Qwen3/Qwen3-0.6B", } for src, dst in src_dst_dict.items(): if not os.path.islink(dst): @@ -1410,33 +1415,32 @@ def test_disaggregated_overlap_gen_first(disaggregated_test_root, os.symlink(src, dst, target_is_directory=True) def post_client_test(server_url: str): - verify_usage_with_cache_reuse(server_url, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + verify_usage_with_cache_reuse(server_url, "Qwen3/Qwen3-0.6B") run_disaggregated_test( disaggregated_example_root, "overlap_gen_first" if ctx_pp == 1 else "overlap_gen_first_pp4", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory(), disagg_schedule_style="generation_first", post_client_test=post_client_test) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_overlap_transceiver_runtime_python( - disaggregated_test_root, llm_venv, disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_test_root, llm_venv, disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env["UCX_TLS"] = get_ucx_tls() run_disaggregated_test(disaggregated_example_root, "overlap_transceiver_runtime_python", env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @@ -1446,13 +1450,13 @@ def test_disaggregated_overlap_transceiver_runtime_python( # platforms with MNNVL fabric-memory support; on other devices the env var would silently fall # back to a non-fabric allocation, which would defeat the purpose of this test. @pytest.mark.skip_device_not_contain(["GB200", "GB300"]) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_overlap_transceiver_runtime_python_fabric_memory( - disaggregated_test_root, llm_venv, disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_test_root, llm_venv, disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env["UCX_TLS"] = get_ucx_tls() @@ -1460,7 +1464,7 @@ def test_disaggregated_overlap_transceiver_runtime_python_fabric_memory( run_disaggregated_test(disaggregated_example_root, "overlap_transceiver_runtime_python", env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @@ -1477,13 +1481,13 @@ def test_disaggregated_overlap_transceiver_runtime_python_fabric_memory( # logged the coalesced-bounce marker, so a silent fall-back to the per-fragment path fails the # test instead of passing quietly. @pytest.mark.skip_device_not_contain(["GB200", "GB300"]) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_overlap_transceiver_runtime_python_bounce( - disaggregated_test_root, llm_venv, disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_test_root, llm_venv, disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env["UCX_TLS"] = get_ucx_tls() @@ -1493,7 +1497,7 @@ def test_disaggregated_overlap_transceiver_runtime_python_bounce( run_disaggregated_test(disaggregated_example_root, "overlap_transceiver_runtime_python_bounce", env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory(), assert_gen_log_contains="[kv-bounce] coalesced") @@ -1517,7 +1521,7 @@ def _verify_python_transceiver_under_host_offload(server_url: str, model: str): succeeds; without it, the sender either crashes on a primary assertion or returns nonsense tokens. - Assertions are deliberately content-agnostic (TinyLlama outputs vary + Assertions are deliberately content-agnostic (Qwen3-0.6B outputs vary run-to-run): we check that responses are non-empty, the server stays up across the eviction/onboard cycle, and `cached_tokens > 0` on repeats so we know reuse actually fired. @@ -1624,11 +1628,8 @@ async def drive(): asyncio.run(drive()) -@pytest.mark.parametrize("llama_model_root", ["TinyLlama-1.1B-Chat-v1.0"], - indirect=True) def test_disaggregated_python_transceiver_host_offload( - disaggregated_test_root, llm_venv, disaggregated_example_root, - llama_model_root): + disaggregated_test_root, llm_venv, disaggregated_example_root): """E2E regression for block_id -> primary-slot translation in the Python disagg cache transceiver. See `_verify_python_transceiver_under_host_offload` for what this @@ -1637,30 +1638,33 @@ def test_disaggregated_python_transceiver_host_offload( that prefix reuse is forced through an offload+onboard cycle before each KV transfer. """ - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") env = llm_venv._new_env.copy() env["UCX_TLS"] = get_ucx_tls() def post_client_test(server_url: str): - _verify_python_transceiver_under_host_offload( - server_url, "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + _verify_python_transceiver_under_host_offload(server_url, + "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "python_transceiver_host_offload", env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory(), post_client_test=post_client_test) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_perf_metrics(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root, tmp_path): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root, tmp_path): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") perf_metrics_output_dir = str(tmp_path / "perf_metrics") @@ -1680,36 +1684,36 @@ def extra_endpoints_test(_server_url: str): "perf_metrics", env=env, extra_endpoints_test=extra_endpoints_test, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory(), perf_metrics_output_dir=perf_metrics_output_dir) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_chat_completion_tool_calls(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "tool_calls", num_iters=1, prompt_file="tool_call_prompts.json", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_kv_cache_time_output(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") output_path = os.path.join(llm_venv.get_working_directory(), "cache_time") env = llm_venv._new_env.copy() @@ -1722,7 +1726,7 @@ def test_disaggregated_kv_cache_time_output(disaggregated_test_root, llm_venv, run_disaggregated_test(disaggregated_example_root, "perf_metrics", env=env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) assert os.path.isdir(output_path) # The C++ transceiver names timing files "__.csv" @@ -1760,183 +1764,185 @@ def test_disaggregated_kv_cache_time_output(disaggregated_test_root, llm_venv, assert matched -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_load_balance(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "load_balance", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_cache_aware_balance(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "cache_aware_balance", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_conditional(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "conditional", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_ngram(disaggregated_test_root, llm_venv, - disaggregated_example_root, llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "ngram", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_sa(disaggregated_test_root, llm_venv, - disaggregated_example_root, llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "sa", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_sa_python(disaggregated_test_root, llm_venv, - disaggregated_example_root, llama_model_root): + disaggregated_example_root): """Spec-split SA (ctx no-spec, gen SA) on the V2 PYTHON transceiver path. NIXL + transceiver_runtime PYTHON. The existing test_disaggregated_sa covers this split only on the C++ DEFAULT backend. """ - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "sa_python", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @pytest.mark.skip_less_device(4) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_ctxpp2_genpp2(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "ctxpp2_genpp2", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @pytest.mark.skip_less_device(4) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_ctxtp2_genpp2(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "ctxtp2_genpp2", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @pytest.mark.skip_less_device(4) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_ctxpp2_gentp2(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "ctxpp2_gentp2", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @pytest.mark.skip_less_device(8) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_ctxtp2pp2_gentp2pp2(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "ctxtp2pp2_gentp2pp2", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) @pytest.mark.skip_less_device(8) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_ctxpp4_genpp4(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "ctxpp4_genpp4", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) -#tiny llama pp4 will have uneven layer per pp. pp4 @pytest.mark.skip_less_device(8) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_disaggregated_ctxpp4_gentp4(disaggregated_test_root, llm_venv, - disaggregated_example_root, - llama_model_root): - setup_model_symlink(llm_venv, llama_model_root, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0") + disaggregated_example_root): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + setup_model_symlink(llm_venv, qwen_model_root, "Qwen3/Qwen3-0.6B") run_disaggregated_test(disaggregated_example_root, "ctxpp4_gentp4", env=llm_venv._new_env, - model_path=llama_model_root, + model_path=qwen_model_root, cwd=llm_venv.get_working_directory()) diff --git a/tests/integration/defs/disaggregated/test_disaggregated_etcd.py b/tests/integration/defs/disaggregated/test_disaggregated_etcd.py index ec7956ed7393..5334e0e6b7c4 100644 --- a/tests/integration/defs/disaggregated/test_disaggregated_etcd.py +++ b/tests/integration/defs/disaggregated/test_disaggregated_etcd.py @@ -19,9 +19,8 @@ import subprocess import time -import pytest import requests -from defs.conftest import get_sm_version +from defs.conftest import get_sm_version, llm_models_root from tensorrt_llm.logger import logger @@ -318,7 +317,7 @@ def run_automated_disaggregated_test(example_dir, env=None, cwd=None): kill_automated_disaggregated_processes() cleanup_automated_output_files() - config = {"model_path": "TinyLlama/TinyLlama-1.1B-Chat-v1.0"} + config = {"model_path": "Qwen3/Qwen3-0.6B"} # Create configuration files create_config_files(config) @@ -434,14 +433,14 @@ def run_automated_disaggregated_test(example_dir, env=None, cwd=None): kill_automated_disaggregated_processes() -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_automated_disaggregated_complete(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): + disaggregated_example_root, llm_venv): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" src_dst_dict = { - llama_model_root: - f"{llm_venv.get_working_directory()}/TinyLlama/TinyLlama-1.1B-Chat-v1.0", + qwen_model_root: f"{llm_venv.get_working_directory()}/Qwen3/Qwen3-0.6B", } for src, dst in src_dst_dict.items(): if not os.path.islink(dst): diff --git a/tests/integration/defs/disaggregated/test_disaggregated_single_gpu.py b/tests/integration/defs/disaggregated/test_disaggregated_single_gpu.py index 6e8913ea67ab..924e08324215 100644 --- a/tests/integration/defs/disaggregated/test_disaggregated_single_gpu.py +++ b/tests/integration/defs/disaggregated/test_disaggregated_single_gpu.py @@ -55,7 +55,7 @@ def get_ucx_tls(): MODEL_PATHS = { "DeepSeek-V3-Lite-fp8": "DeepSeek-V3-Lite/fp8", - "TinyLlama-1.1B-Chat-v1.0": "llama-models-v2/TinyLlama-1.1B-Chat-v1.0", + "Qwen3-0.6B": "Qwen3/Qwen3-0.6B", "Llama-3.1-8B-Instruct": "llama-3.1-model/Llama-3.1-8B-Instruct/", "EAGLE3-LLaMA3.1-Instruct-8B": "EAGLE3-LLaMA3.1-Instruct-8B", "Qwen3-8B-FP8": "Qwen3/Qwen3-8B-FP8", @@ -366,21 +366,6 @@ def verify_disaggregated(model, generation_overlap, enable_cuda_graph, prompt, print("All workers terminated.") -@pytest.mark.parametrize("model", ["TinyLlama-1.1B-Chat-v1.0"]) -@pytest.mark.parametrize("generation_overlap", [False, True]) -@pytest.mark.parametrize("enable_cuda_graph", [False, True]) -def test_disaggregated_simple_llama(model, generation_overlap, - enable_cuda_graph): - verify_disaggregated( - model, generation_overlap, enable_cuda_graph, - "What is the capital of Germany?", - "\n<|assistant|>\nThe capital of Germany is Berlin. \n<|user|>", [ - 2, 29871, 13, 29966, 29989, 465, 22137, 29989, 29958, 13, 1576, - 7483, 310, 9556, 338, 5115, 29889, 2, 29871, 13, 29966, 29989, 1792, - 29989, 29958 - ]) - - @skip_no_hopper @pytest.mark.parametrize("model", ["DeepSeek-V3-Lite-fp8/fp8"]) @pytest.mark.parametrize("generation_overlap", [False, True]) @@ -625,7 +610,7 @@ def test_disaggregated_spec_dec_batch_slot_limit(model, spec_dec_model_path, print("All workers terminated.") -@pytest.mark.parametrize("model", ["TinyLlama-1.1B-Chat-v1.0"]) +@pytest.mark.parametrize("model", ["Qwen3-0.6B"]) @pytest.mark.parametrize("generation_overlap", [False, True]) def test_disaggregated_logprobs(model, generation_overlap): """Verify that logprobs propagate correctly from prefill to decode. @@ -732,7 +717,7 @@ def test_disaggregated_logprobs(model, generation_overlap): future.result() -@pytest.mark.parametrize("model", ["TinyLlama-1.1B-Chat-v1.0"]) +@pytest.mark.parametrize("model", ["Qwen3-0.6B"]) def test_disaggregated_cancel_gen_requests(model): # Test that cancelling generation requests on a saturated generation # worker completes without hangs or resource leaks. @@ -839,7 +824,7 @@ def test_disaggregated_cancel_gen_requests(model): print("All workers terminated.") -@pytest.mark.parametrize("model", ["TinyLlama-1.1B-Chat-v1.0"]) +@pytest.mark.parametrize("model", ["Qwen3-0.6B"]) @pytest.mark.parametrize("generation_overlap", [False, True]) def test_disaggregated_logits(model, generation_overlap): """Verify that generation logits propagate from prefill to decode in disagg.""" @@ -974,7 +959,7 @@ def test_disaggregated_logits(model, generation_overlap): print("All workers terminated.") -@pytest.mark.parametrize("model", ["TinyLlama-1.1B-Chat-v1.0"]) +@pytest.mark.parametrize("model", ["Qwen3-0.6B"]) @pytest.mark.parametrize("generation_overlap", [False]) def test_arbitrary_kv_cache_transfer(model, generation_overlap): """Test KV cache transfer from the reuse tree. @@ -1125,7 +1110,7 @@ def test_arbitrary_kv_cache_transfer(model, generation_overlap): print("All workers terminated.") -@pytest.mark.parametrize("model", ["TinyLlama-1.1B-Chat-v1.0"]) +@pytest.mark.parametrize("model", ["Qwen3-0.6B"]) @pytest.mark.parametrize("generation_overlap", [False]) def test_arbitrary_kv_cache_transfer_missing_blocks(model, generation_overlap): """Test that missing-block transfers fail. diff --git a/tests/integration/defs/disaggregated/test_workers.py b/tests/integration/defs/disaggregated/test_workers.py index 9660178971a8..8a71bf8d16b8 100644 --- a/tests/integration/defs/disaggregated/test_workers.py +++ b/tests/integration/defs/disaggregated/test_workers.py @@ -26,7 +26,7 @@ import pytest import yaml from defs.common import get_free_port_in_ci as get_free_port -from defs.conftest import get_sm_version, skip_no_hopper +from defs.conftest import get_sm_version, llm_models_root, skip_no_hopper from disagg_test_utils import (HEARTBEAT_INTERVAL, INACTIVE_TIMEOUT, get_registered_worker_urls, run_ctx_worker, run_disagg_server, run_gen_worker, terminate, @@ -231,7 +231,7 @@ def __init__(self, gen_servers: List[str], req_timeout_secs: int = DEFAULT_TIMEOUT_REQUEST, server_start_timeout_secs: int = DEFAULT_TIMEOUT_SERVER_START, - model_name: str = "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + model_name: str = "Qwen3/Qwen3-0.6B", internal_request_auth_key: str | None = None): super().__init__(ctx_servers, gen_servers, req_timeout_secs, server_start_timeout_secs, internal_request_auth_key) @@ -285,7 +285,7 @@ def __init__(self, gen_servers: List[str], req_timeout_secs: int = DEFAULT_TIMEOUT_REQUEST, server_start_timeout_secs: int = DEFAULT_TIMEOUT_SERVER_START, - model_name: str = "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + model_name: str = "Qwen3/Qwen3-0.6B", internal_request_auth_key: str | None = None): super().__init__(ctx_servers, gen_servers, req_timeout_secs, server_start_timeout_secs, internal_request_auth_key) @@ -406,7 +406,7 @@ def __init__(self, gen_servers: List[str], req_timeout_secs: int = DEFAULT_TIMEOUT_REQUEST, server_start_timeout_secs: int = DEFAULT_TIMEOUT_SERVER_START, - model_name: str = "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + model_name: str = "Qwen3/Qwen3-0.6B", tokens_per_block: int = 32, internal_request_auth_key: str | None = None): super().__init__(ctx_servers, gen_servers, req_timeout_secs, @@ -552,10 +552,9 @@ async def test_eviction(self): assert info["matches"][0] < first_match -def prepare_llama_model(llama_model_root: str, llm_venv): +def prepare_qwen_model(qwen_model_root: str, llm_venv): src_dst_dict = { - llama_model_root: - f"{llm_venv.get_working_directory()}/TinyLlama/TinyLlama-1.1B-Chat-v1.0", + qwen_model_root: f"{llm_venv.get_working_directory()}/Qwen3/Qwen3-0.6B", } for src, dst in src_dst_dict.items(): if not os.path.islink(dst): @@ -677,14 +676,16 @@ def background_workers(llm_venv, config_file: str): @pytest.mark.skip(reason="https://nvbugs/5372970") -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_workers_conditional_disaggregation(disaggregated_test_root, disaggregated_example_root, - llm_venv, llama_model_root): + llm_venv): config_file = os.path.join(disaggregated_test_root, 'test_configs/disagg_config_cache_reuse.yaml') - prepare_llama_model(llama_model_root, llm_venv) + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + prepare_qwen_model(qwen_model_root, llm_venv) with background_workers(llm_venv, config_file) as (ctx_servers, gen_servers, _, @@ -725,14 +726,15 @@ def test_workers_conditional_disaggregation_deepseek_v3_lite_bf16( asyncio.run(tester.test_multi_round_request(prompts)) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_workers_kv_cache_events(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): + disaggregated_example_root, llm_venv): config_file = os.path.join(disaggregated_test_root, 'test_configs/disagg_config_cache_reuse.yaml') - prepare_llama_model(llama_model_root, llm_venv) + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + prepare_qwen_model(qwen_model_root, llm_venv) with background_workers(llm_venv, config_file) as (ctx_servers, gen_servers, _, @@ -745,15 +747,16 @@ def test_workers_kv_cache_events(disaggregated_test_root, asyncio.run(tester.test_multi_round_request(prompts, 6)) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_workers_kv_cache_aware_router(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): + disaggregated_example_root, llm_venv): config_file = os.path.join( disaggregated_test_root, 'test_configs/disagg_config_cache_aware_balance.yaml') - prepare_llama_model(llama_model_root, llm_venv) + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + prepare_qwen_model(qwen_model_root, llm_venv) with background_workers(llm_venv, config_file) as (ctx_servers, gen_servers, _, @@ -797,14 +800,16 @@ def test_workers_kv_cache_aware_router_deepseek_v3_lite_bf16( asyncio.run(tester.test_multi_round_request(prompts, 8, 4)) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_workers_kv_cache_aware_router_eviction(disaggregated_test_root, disaggregated_example_root, - llm_venv, llama_model_root): + llm_venv): config_file = os.path.join(disaggregated_test_root, 'test_configs/disagg_config_cache_reuse.yaml') - prepare_llama_model(llama_model_root, llm_venv) + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + prepare_qwen_model(qwen_model_root, llm_venv) with background_workers(llm_venv, config_file) as (ctx_servers, gen_servers, _, @@ -825,7 +830,7 @@ def __init__(self, gen_servers: List[str], req_timeout_secs: int = DEFAULT_TIMEOUT_REQUEST, server_start_timeout_secs: int = DEFAULT_TIMEOUT_SERVER_START, - model_name: str = "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + model_name: str = "Qwen3/Qwen3-0.6B", internal_request_auth_key: str | None = None): super().__init__(ctx_servers, gen_servers, req_timeout_secs, server_start_timeout_secs, internal_request_auth_key) @@ -1003,15 +1008,16 @@ async def test_implicit_conversation_matching(self): @skip_no_hopper @pytest.mark.skip_less_device(3) -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) def test_workers_conversation_router(disaggregated_test_root, - disaggregated_example_root, llm_venv, - llama_model_root): + disaggregated_example_root, llm_venv): config_file = os.path.join( disaggregated_test_root, 'test_configs/disagg_config_conversation_workers.yaml') - prepare_llama_model(llama_model_root, llm_venv) + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + prepare_qwen_model(qwen_model_root, llm_venv) with background_workers(llm_venv, config_file) as (ctx_servers, gen_servers, diff --git a/tests/integration/defs/examples/run_llm_quickstart_atexit.py b/tests/integration/defs/examples/run_llm_quickstart_atexit.py index 6738d9396ee5..20119b3d7926 100644 --- a/tests/integration/defs/examples/run_llm_quickstart_atexit.py +++ b/tests/integration/defs/examples/run_llm_quickstart_atexit.py @@ -12,8 +12,7 @@ ] sampling_params = SamplingParams(temperature=0.8, top_p=0.95) - model_path = Path(os.environ.get( - "LLM_MODELS_ROOT")) / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + model_path = Path(os.environ.get("LLM_MODELS_ROOT")) / "Qwen3/Qwen3-0.6B" print(f'model_path: {model_path}') with LLM(model=str(model_path)) as llm: diff --git a/tests/integration/defs/examples/serve/test_serve.py b/tests/integration/defs/examples/serve/test_serve.py index 7c046dff06b8..5d68212b658b 100644 --- a/tests/integration/defs/examples/serve/test_serve.py +++ b/tests/integration/defs/examples/serve/test_serve.py @@ -77,8 +77,7 @@ def wait_for_log(log_queue, expected_log, timeout=10): return False -def check_openai_chat_completion(http_port, - model_name="TinyLlama-1.1B-Chat-v1.0"): +def check_openai_chat_completion(http_port, model_name="Qwen3-0.6B"): """ Test the launched trtllm-serve server using OpenAI client. @@ -186,7 +185,7 @@ def test_env_overrides_pdl(tmp_path): environment variables to the server workers. Specifically, it sets `TRTLLM_ENABLE_PDL=1` (Programmatic Dependent Launch) via config and verifies it overrides the env var initially set to 0. - 1. This model (TinyLlama-1.1B-Chat-v1.0) architecture uses RMSNorm, which triggers 'flashinfer' kernels that use PDL when `TRTLLM_ENABLE_PDL=1`. + 1. This model (Qwen3-0.6B) architecture uses RMSNorm, which triggers 'flashinfer' kernels that use PDL when `TRTLLM_ENABLE_PDL=1`. 2. When `TRTLLM_ENABLE_PDL=1` is actually propagated into worker env, flashinfer custom ops log "PDL enabled" to stdout/stderr. """ pdl_enabled = "1" @@ -209,8 +208,7 @@ def test_env_overrides_pdl(tmp_path): }) cmd = [ - "trtllm-serve", "serve", - f"{llm_models_root()}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0", + "trtllm-serve", "serve", f"{llm_models_root()}/Qwen3/Qwen3-0.6B", "--host", "0.0.0.0", "--port", str(port), "--backend", "pytorch", "--config", str(config_file) @@ -230,7 +228,7 @@ def test_env_overrides_pdl(tmp_path): check_server_ready(http_port=port, timeout_timer=300) response = OpenAI(base_url=f"http://localhost:{port}/v1", api_key="tensorrt_llm").chat.completions.create( - model="TinyLlama-1.1B-Chat-v1.0", + model="Qwen3-0.6B", messages=[{ "role": "user", "content": "Test" diff --git a/tests/integration/defs/examples/serve/test_serve_negative.py b/tests/integration/defs/examples/serve/test_serve_negative.py index dcfcb356bd08..e07310ce4fb0 100644 --- a/tests/integration/defs/examples/serve/test_serve_negative.py +++ b/tests/integration/defs/examples/serve/test_serve_negative.py @@ -43,8 +43,8 @@ def get_async_client(self, **kwargs): @pytest.fixture(scope="module") def model_name(): - """Use TinyLlama for faster testing""" - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + """Use Qwen3-0.6B for faster testing""" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module") diff --git a/tests/integration/defs/examples/test_ad_guided_decoding.py b/tests/integration/defs/examples/test_ad_guided_decoding.py index fbf2211dd3ec..b359d5407c63 100644 --- a/tests/integration/defs/examples/test_ad_guided_decoding.py +++ b/tests/integration/defs/examples/test_ad_guided_decoding.py @@ -32,8 +32,7 @@ def test_autodeploy_guided_decoding_main_json(): '"bandwidth": {"title": "Bandwidth", "type": "string"}}, ' '"required": ["ssid", "securityProtocol", "bandwidth"]}') - model_path = os.path.join(llm_models_root(), - "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + model_path = os.path.join(llm_models_root(), "Qwen3/Qwen3-0.6B") print(f"model_path: {model_path}") llm_args = { diff --git a/tests/integration/defs/examples/test_llm_api_with_mpi.py b/tests/integration/defs/examples/test_llm_api_with_mpi.py index 6be110a9cce0..9fea948b5fe4 100644 --- a/tests/integration/defs/examples/test_llm_api_with_mpi.py +++ b/tests/integration/defs/examples/test_llm_api_with_mpi.py @@ -15,17 +15,17 @@ import os -import pytest from defs.common import venv_mpi_check_call +from defs.conftest import llm_models_root -@pytest.mark.parametrize("llama_model_root", ['TinyLlama-1.1B-Chat-v1.0'], - indirect=True) -def test_llm_api_single_gpu_with_mpirun(llmapi_example_root, llm_venv, - llama_model_root): +def test_llm_api_single_gpu_with_mpirun(llmapi_example_root, llm_venv): + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" src_dst_dict = { - llama_model_root: - f"{llm_venv.get_working_directory()}/TinyLlama/TinyLlama-1.1B-Chat-v1.0", + qwen_model_root: f"{llm_venv.get_working_directory()}/Qwen3/Qwen3-0.6B", } for src, dst in src_dst_dict.items(): if not os.path.islink(dst): diff --git a/tests/integration/defs/examples/test_ray.py b/tests/integration/defs/examples/test_ray.py index 201192d5fdd1..3e7a00ac30b8 100644 --- a/tests/integration/defs/examples/test_ray.py +++ b/tests/integration/defs/examples/test_ray.py @@ -31,7 +31,7 @@ def ray_example_root(llm_root): def test_llm_inference_async_ray(ray_example_root, llm_venv): script_path = os.path.join(ray_example_root, "llm_inference_async_ray.py") - model_path = f"{llm_models_root()}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + model_path = f"{llm_models_root()}/Qwen3/Qwen3-0.6B" venv_check_call(llm_venv, [script_path, "--model", model_path]) @@ -64,7 +64,7 @@ def test_llm_inference_distributed_ray(ray_example_root, llm_venv, tp_size, model_dir = f"{llm_models_root()}/DeepSeek-V3-Lite/bf16" cmd.extend(["--model_dir", model_dir]) else: - model_dir = f"{llm_models_root()}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + model_dir = f"{llm_models_root()}/Qwen3/Qwen3-0.6B" cmd.extend(["--model_dir", model_dir]) venv_check_call(llm_venv, cmd) @@ -171,7 +171,7 @@ def _run_ray_disaggregated_serving(ray_example_root, tp_size, disagg_dir = os.path.join(ray_example_root, "disaggregated") script_path = os.path.join(disagg_dir, "disagg_serving_local.sh") - model_dir = f"{llm_models_root()}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + model_dir = f"{llm_models_root()}/Qwen3/Qwen3-0.6B" try: runtime_env = { @@ -229,7 +229,7 @@ def _run_completion_requests(): async def send_request(session, prompt): payload = { - "model": "TinyLlama-1.1B-Chat-v1.0", + "model": "Qwen3-0.6B", "prompt": prompt, "max_tokens": max_tokens, "temperature": 0, diff --git a/tests/integration/defs/kv_cache/test_final_single_token_context_cuda_graph.py b/tests/integration/defs/kv_cache/test_final_single_token_context_cuda_graph.py index 8cfede2bdb22..bc86b3e608ee 100644 --- a/tests/integration/defs/kv_cache/test_final_single_token_context_cuda_graph.py +++ b/tests/integration/defs/kv_cache/test_final_single_token_context_cuda_graph.py @@ -41,7 +41,7 @@ from ..conftest import llm_models_root -MODEL = f"{llm_models_root()}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +MODEL = f"{llm_models_root()}/Qwen3/Qwen3-0.6B" SPEC_MODEL = f"{llm_models_root()}/Qwen3/Qwen3-8B" EAGLE3_MODEL = f"{llm_models_root()}/Qwen3/qwen3_8b_eagle3" PROMPT_TOKEN_IDS = [1] + [42] * 63 + [43] diff --git a/tests/integration/defs/kv_cache/test_kv_cache_iteration_stats.py b/tests/integration/defs/kv_cache/test_kv_cache_iteration_stats.py index 3a7d62c85860..48c371a031a9 100644 --- a/tests/integration/defs/kv_cache/test_kv_cache_iteration_stats.py +++ b/tests/integration/defs/kv_cache/test_kv_cache_iteration_stats.py @@ -42,7 +42,7 @@ from ..conftest import llm_models_root -MODEL = f"{llm_models_root()}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +MODEL = f"{llm_models_root()}/Qwen3/Qwen3-0.6B" # Pin the host tier for all scenarios so cold-pool field coverage is deterministic. HOST_CACHE_SIZE = 64 << 20 diff --git a/tests/integration/defs/llmapi/test_llm_examples.py b/tests/integration/defs/llmapi/test_llm_examples.py index 36f12ccd1905..5b46ae17b3f2 100644 --- a/tests/integration/defs/llmapi/test_llm_examples.py +++ b/tests/integration/defs/llmapi/test_llm_examples.py @@ -52,9 +52,9 @@ def _run_llmapi_example(llm_root, engine_dir, llm_venv, script_name: str, # Create llm models softlink to avoid duplicated downloading for llm api example src_dst_dict = { - # TinyLlama-1.1B-Chat-v1.0 - f"{llm_models_root()}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0": - f"{llm_venv.get_working_directory()}/TinyLlama/TinyLlama-1.1B-Chat-v1.0", + # Qwen3-0.6B + f"{llm_models_root()}/Qwen3/Qwen3-0.6B": + f"{llm_venv.get_working_directory()}/Qwen3/Qwen3-0.6B", # vicuna-7b-v1.3 f"{llm_models_root()}/vicuna-7b-v1.3": f"{llm_venv.get_working_directory()}/lmsys/vicuna-7b-v1.3", diff --git a/tests/integration/defs/model_express/test_model_express.py b/tests/integration/defs/model_express/test_model_express.py index d046dc982107..afeade947abf 100644 --- a/tests/integration/defs/model_express/test_model_express.py +++ b/tests/integration/defs/model_express/test_model_express.py @@ -51,21 +51,21 @@ pytest.param( MxE2ECase( model_env="TRTLLM_MX_LLAMA_MODEL", - default_model_subdir="llama-models-v2/TinyLlama-1.1B-Chat-v1.0", + default_model_subdir="Qwen3/Qwen3-0.6B", repository_cache_prefix="models--trtllm-mx-e2e--llama-tp1", tp_size=1, ), - id="llama-bf16-tp1", + id="qwen3-0.6b-bf16-tp1", marks=pytest.mark.skip_less_device(2), ), pytest.param( MxE2ECase( model_env="TRTLLM_MX_LLAMA_MODEL", - default_model_subdir="llama-models-v2/TinyLlama-1.1B-Chat-v1.0", + default_model_subdir="Qwen3/Qwen3-0.6B", repository_cache_prefix="models--trtllm-mx-e2e--llama-tp2", tp_size=2, ), - id="llama-bf16-tp2", + id="qwen3-0.6b-bf16-tp2", marks=pytest.mark.skip_less_device(4), ), pytest.param( diff --git a/tests/integration/defs/perf/test_perf.py b/tests/integration/defs/perf/test_perf.py index 9fd4708e3928..8dc81e16fada 100644 --- a/tests/integration/defs/perf/test_perf.py +++ b/tests/integration/defs/perf/test_perf.py @@ -1047,8 +1047,8 @@ def get_prepare_data_command(self, engine_dir, input_len, elif self._config.model_name in HF_MODEL_PATH.keys(): tokenizer_dir = HF_MODEL_PATH[self._config.model_name] else: - tokenizer_dir = os.path.join(llm_models_root(), "llama-models-v2", - "TinyLlama-1.1B-Chat-v1.0") + tokenizer_dir = os.path.join(llm_models_root(), "Qwen3", + "Qwen3-0.6B") if not os.path.exists(engine_dir): os.makedirs(engine_dir, exist_ok=True) diff --git a/tests/integration/defs/stress_test/stress_test.py b/tests/integration/defs/stress_test/stress_test.py index 7f38babfe929..93058e8e2ca8 100644 --- a/tests/integration/defs/stress_test/stress_test.py +++ b/tests/integration/defs/stress_test/stress_test.py @@ -428,9 +428,8 @@ def is_port_available(port: int, [ # Configuration for TinyLlama model # memory_requirement is in MiB (12 GB = 12288 MiB) - ModelConfig(model_dir="llama-models-v2/TinyLlama-1.1B-Chat-v1.0", - tp_size=1, - memory_requirement=12288), + ModelConfig( + model_dir="Qwen3/Qwen3-0.6B", tp_size=1, memory_requirement=12288), # Configuration for Qwen3.5-4B # memory_requirement is in MiB (12 GB = 12288 MiB) ModelConfig(model_dir="Qwen3.5-4B", tp_size=1, diff --git a/tests/integration/defs/test_e2e.py b/tests/integration/defs/test_e2e.py index e7acf13b435e..e66348aae1e8 100644 --- a/tests/integration/defs/test_e2e.py +++ b/tests/integration/defs/test_e2e.py @@ -241,16 +241,16 @@ def parse_benchmark_output(self, output): return result -@pytest.mark.parametrize( - "model_name, llama_model_root", - [pytest.param("TinyLlama-1.1B-Chat-v1.0", "TinyLlama-1.1B-Chat-v1.0")], - indirect=["llama_model_root"]) -def test_trtllm_bench_invalid_token_pytorch(llm_root, llm_venv, model_name, - llama_model_root): +def test_trtllm_bench_invalid_token_pytorch(llm_root, llm_venv): + model_name = "Qwen3-0.6B" + qwen_model_root = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") + assert os.path.exists( + qwen_model_root + ), f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" # Prepare dataset with invalid tokens _, dataset_path = trtllm_bench_prolog(llm_root, llm_venv, - model_subdir=llama_model_root, + model_subdir=qwen_model_root, model_name=model_name, quant=None, streaming=False) @@ -275,7 +275,7 @@ def test_trtllm_bench_invalid_token_pytorch(llm_root, llm_venv, model_name, output_path = Path(tmpdir) / "stdout.log" benchmark_cmd = \ f"trtllm-bench --model {model_name} " \ - f"--model_path {llama_model_root} " \ + f"--model_path {qwen_model_root} " \ f"throughput " \ f"--dataset {str(dataset_path)} --backend pytorch " \ f"--config {extra_options_path} " \ diff --git a/tests/integration/defs/triton_server/conftest.py b/tests/integration/defs/triton_server/conftest.py index 59188db72eec..b8be62f771d3 100644 --- a/tests/integration/defs/triton_server/conftest.py +++ b/tests/integration/defs/triton_server/conftest.py @@ -331,12 +331,34 @@ def gpt_2b_lora_model_root(): return gpt_2b_lora_model_root +@pytest.fixture(scope="session") +def tiny_llama_lora_base_model_root(): + """Base model for the TinyLlama-1.1B-Chat-v1.0 LoRA adapter. + + Kept separate from the Qwen3-0.6B model path used elsewhere in this + module because the LoRA adapter returned by + `tiny_llama_lora_model_root` is fine-tuned specifically for + TinyLlama-1.1B-Chat-v1.0 and has no Qwen3-0.6B equivalent. + """ + models_root = llm_models_root() + assert models_root, "Did you set LLM_MODELS_ROOT?" + tiny_llama_lora_base_model_root = os.path.join(models_root, + "llama-models-v2", + "TinyLlama-1.1B-Chat-v1.0") + + assert os.path.exists( + tiny_llama_lora_base_model_root + ), f"{tiny_llama_lora_base_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + return tiny_llama_lora_base_model_root + + @pytest.fixture(scope="session") def tiny_llama_lora_model_root(): """HF-format LoRA adapter for TinyLlama-1.1B-Chat-v1.0. Used by the llmapi triton backend's E2E LoRA test - (`test_llmapi_lora`). Same base model as `tiny_llama_model_root`. + (`test_llmapi_lora`). Same base model as + `tiny_llama_lora_base_model_root`. """ models_root = llm_models_root() assert models_root, "Did you set LLM_MODELS_ROOT?" @@ -462,19 +484,6 @@ def whisper_large_model_root(): return whisper_large_model_root -@pytest.fixture(scope="session") -def tiny_llama_model_root(): - models_root = llm_models_root() - assert models_root, "Did you set LLM_MODELS_ROOT?" - tiny_llama_model_root = os.path.join(models_root, "llama-models-v2", - "TinyLlama-1.1B-Chat-v1.0") - - assert os.path.exists( - tiny_llama_model_root - ), f"{tiny_llama_model_root} does not exist under NFS LLM_MODELS_ROOT dir" - return tiny_llama_model_root - - @pytest.fixture(scope="session") def mistral_small_3_1_24b_model_root(): models_root = llm_models_root() diff --git a/tests/integration/defs/triton_server/test_triton_llmapi.py b/tests/integration/defs/triton_server/test_triton_llmapi.py index e637efddbbe7..998180c162cc 100644 --- a/tests/integration/defs/triton_server/test_triton_llmapi.py +++ b/tests/integration/defs/triton_server/test_triton_llmapi.py @@ -30,7 +30,7 @@ import yaml from .common import check_server_ready, prepare_llmapi_model_repo, set_llmapi_decoupled_mode -from .conftest import find_repo_root, venv_check_call, venv_check_output +from .conftest import find_repo_root, llm_models_root, venv_check_call, venv_check_output from .trt_test_alternative import call, check_call, print_info LLM_ROOT = os.environ.get("LLM_ROOT", find_repo_root()) @@ -62,13 +62,19 @@ def test_llmapi_backend( llm_backend_inflight_batcher_llm_root, llm_backend_venv, llm_backend_dataset_root, - tiny_llama_model_root, ): llm_backend_repo_root = os.path.join(LLM_ROOT, "triton_backend") if torch.cuda.device_count() < int(TENSOR_PARALLEL_SIZE): pytest.skip("Skipping. Not enough GPUs.") + models_root = llm_models_root() + assert models_root, "Did you set LLM_MODELS_ROOT?" + qwen_model_root = os.path.join(models_root, "Qwen3", "Qwen3-0.6B") + assert os.path.exists(qwen_model_root), ( + f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + ) + # Prepare model repo new_model_repo = os.path.join(llm_backend_repo_root, "triton_repo") prepare_llmapi_model_repo(llm_backend_repo_root, new_model_repo) @@ -80,7 +86,7 @@ def test_llmapi_backend( model_config["triton_config"]["max_batch_size"] = int(TRITON_MAX_BATCH_SIZE) model_config["tensor_parallel_size"] = int(TENSOR_PARALLEL_SIZE) model_config["kv_cache_config"] = {"free_gpu_memory_fraction": 0.8} - model_config["model"] = tiny_llama_model_root + model_config["model"] = qwen_model_root with open(model_config_path, "w") as f: yaml.dump(model_config, f) @@ -143,7 +149,7 @@ def test_llmapi_backend( run_cmd += [ "dataset", f"--dataset={os.path.join(llm_backend_dataset_root, 'mini_cnn_eval.json')}", - f"--tokenizer-dir={tiny_llama_model_root}", + f"--tokenizer-dir={qwen_model_root}", ] print_info("DEBUG:: run_cmd: python3 " + " ".join(run_cmd)) @@ -185,7 +191,7 @@ def test_llmapi_lora( TENSOR_PARALLEL_SIZE, llm_backend_inflight_batcher_llm_root, llm_backend_venv, - tiny_llama_model_root, + tiny_llama_lora_base_model_root, tiny_llama_lora_model_root, ): """E2E LoRA test for the new llmapi triton backend. @@ -213,7 +219,7 @@ def test_llmapi_lora( model_config["triton_config"]["max_batch_size"] = 0 model_config["tensor_parallel_size"] = int(TENSOR_PARALLEL_SIZE) model_config["kv_cache_config"] = {"free_gpu_memory_fraction": 0.8} - model_config["model"] = tiny_llama_model_root + model_config["model"] = tiny_llama_lora_base_model_root model_config["lora_config"] = { "lora_dir": [tiny_llama_lora_model_root], "max_lora_rank": 64, @@ -256,9 +262,14 @@ def test_llmapi_backend_multi_instance( llm_backend_inflight_batcher_llm_root, llm_backend_venv, llm_backend_dataset_root, - tiny_llama_model_root, ): llm_backend_repo_root = os.path.join(LLM_ROOT, "triton_backend") + models_root = llm_models_root() + assert models_root, "Did you set LLM_MODELS_ROOT?" + qwen_model_root = os.path.join(models_root, "Qwen3", "Qwen3-0.6B") + assert os.path.exists(qwen_model_root), ( + f"{qwen_model_root} does not exist under NFS LLM_MODELS_ROOT dir" + ) # Prepare model repo new_model_repo = os.path.join(llm_backend_repo_root, "triton_repo") @@ -274,7 +285,7 @@ def test_llmapi_backend_multi_instance( model_config["tensor_parallel_size"] = 1 # Low KV cache to ensure both instances fit on GPU 0 model_config["kv_cache_config"] = {"free_gpu_memory_fraction": 0.3} - model_config["model"] = tiny_llama_model_root + model_config["model"] = qwen_model_root with open(model_config_path, "w") as f: yaml.dump(model_config, f) @@ -343,7 +354,7 @@ def test_llmapi_backend_multi_instance( "--decoupled", "dataset", f"--dataset={os.path.join(llm_backend_dataset_root, 'mini_cnn_eval.json')}", - f"--tokenizer-dir={tiny_llama_model_root}", + f"--tokenizer-dir={qwen_model_root}", ] print_info("DEBUG:: run_cmd: python3 " + " ".join(run_cmd)) venv_check_call(llm_backend_venv, run_cmd) diff --git a/tests/integration/test_lists/qa/llm_function_core.txt b/tests/integration/test_lists/qa/llm_function_core.txt index 0d869188978f..24955573c2ab 100644 --- a/tests/integration/test_lists/qa/llm_function_core.txt +++ b/tests/integration/test_lists/qa/llm_function_core.txt @@ -613,9 +613,9 @@ accuracy/test_llm_api_pytorch.py::TestQwen3_8_Flash_Next::test_nvfp4_adp4_mtp3_t accuracy/test_llm_api_pytorch.py::TestSeedOss_36B::test_auto_dtype accuracy/test_llm_api_pytorch.py::TestStep3p7SpeculativeDecoding::test_guided_decoding TIMEOUT (60) accuracy/test_llm_api_pytorch.py::TestStep3p7SpeculativeDecoding::test_step3p7_mtp TIMEOUT (60) -accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_cuda_graph_matches_eager_logits[tinyllama-1.1b] +accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_cuda_graph_matches_eager_logits[llama-3.2-1b] +accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_matches_huggingface[llama-3.2-1b] accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_matches_huggingface[qwen3-0.6b] -accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_matches_huggingface[tinyllama-1.1b] accuracy/test_llm_api_pytorch_encode.py::TestEncoderEncode::test_encoder_encode_cuda_graph_matches_eager_logits[bert-yelp] accuracy/test_llm_api_pytorch_encode.py::TestEncoderEncode::test_encoder_encode_matches_huggingface_classification[bert-yelp-cuda_graph] accuracy/test_llm_api_pytorch_encode.py::TestEncoderEncode::test_encoder_encode_matches_huggingface_classification[bert-yelp-eager] @@ -667,18 +667,18 @@ disaggregated/test_auto_scaling.py::test_worker_restart[etcd-round_robin] disaggregated/test_auto_scaling.py::test_worker_restart[http-kv_cache_aware] disaggregated/test_auto_scaling.py::test_worker_restart[http-load_balancing] disaggregated/test_auto_scaling.py::test_worker_restart[http-round_robin] -disaggregated/test_disaggregated.py::test_disaggregated_benchmark_gen_only_insufficient_kv[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_cache_aware_balance[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_disaggregated.py::test_disaggregated_benchmark_gen_only_insufficient_kv +disaggregated/test_disaggregated.py::test_disaggregated_cache_aware_balance disaggregated/test_disaggregated.py::test_disaggregated_cancel_large_context_requests[DeepSeek-V3-Lite-bf16] -disaggregated/test_disaggregated.py::test_disaggregated_chat_completion_tool_calls[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_conditional[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_genpp2[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_gentp2[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_genpp4[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_gentp4[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2_genpp2[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2pp2_gentp2pp2[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_cuda_graph[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_disaggregated.py::test_disaggregated_chat_completion_tool_calls +disaggregated/test_disaggregated.py::test_disaggregated_conditional +disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_genpp2 +disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_gentp2 +disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_genpp4 +disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_gentp4 +disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2_genpp2 +disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2pp2_gentp2pp2 +disaggregated/test_disaggregated.py::test_disaggregated_cuda_graph disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_bf16_cache_aware_balance[DeepSeek-V3-Lite-bf16] disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_bf16_conditional[DeepSeek-V3-Lite-bf16] disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_bf16_conditional_v2[DeepSeek-V3-Lite-bf16] @@ -700,59 +700,55 @@ disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1 disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_single_gpu[DeepSeek-V3-Lite-fp8] disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_single_gpu_mtp[DeepSeek-V3-Lite-fp8] disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_two_mtp[DeepSeek-V3-Lite-fp8] -disaggregated/test_disaggregated.py::test_disaggregated_diff_max_tokens[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_genbs1[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_disaggregated.py::test_disaggregated_diff_max_tokens +disaggregated/test_disaggregated.py::test_disaggregated_genbs1 disaggregated/test_disaggregated.py::test_disaggregated_gpt_oss_120b_harmony[gpt_oss/gpt-oss-120b] -disaggregated/test_disaggregated.py::test_disaggregated_kv_cache_time_output[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_load_balance[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_disaggregated.py::test_disaggregated_kv_cache_time_output +disaggregated/test_disaggregated.py::test_disaggregated_load_balance disaggregated/test_disaggregated.py::test_disaggregated_logprobs_serving[llama-3.1-8b-instruct] disaggregated/test_disaggregated.py::test_disaggregated_mamba_bs1_concurrency2 disaggregated/test_disaggregated.py::test_disaggregated_mamba_conc_greater_than_mbs[NVIDIA-Nemotron-3-Super-120B-A12B-FP8] -disaggregated/test_disaggregated.py::test_disaggregated_mixed[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_disaggregated.py::test_disaggregated_mixed disaggregated/test_disaggregated.py::test_disaggregated_mixed_stress_test[req120-conc64-qwen3_32b_fp8_mixed_stress] -disaggregated/test_disaggregated.py::test_disaggregated_multi_gpu[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_ngram[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_overlap[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp1-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python_bounce[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python_fabric_memory[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_perf_metrics[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_python_transceiver_host_offload[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_disaggregated.py::test_disaggregated_multi_gpu +disaggregated/test_disaggregated.py::test_disaggregated_ngram +disaggregated/test_disaggregated.py::test_disaggregated_overlap +disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp1] +disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4] +disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python +disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python_bounce +disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python_fabric_memory +disaggregated/test_disaggregated.py::test_disaggregated_perf_metrics +disaggregated/test_disaggregated.py::test_disaggregated_python_transceiver_host_offload disaggregated/test_disaggregated.py::test_disaggregated_qwen3_32b_fp8[Qwen3/Qwen3-32B-FP8] -disaggregated/test_disaggregated.py::test_disaggregated_sa[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_sa_python[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_single_gpu[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_tinyllama_multi_orchestrator[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_arbitrary_kv_cache_transfer[False-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_arbitrary_kv_cache_transfer_missing_blocks[False-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_cancel_gen_requests[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_disaggregated.py::test_disaggregated_sa +disaggregated/test_disaggregated.py::test_disaggregated_sa_python +disaggregated/test_disaggregated.py::test_disaggregated_single_gpu +disaggregated/test_disaggregated.py::test_disaggregated_qwen3_multi_orchestrator +disaggregated/test_disaggregated_single_gpu.py::test_arbitrary_kv_cache_transfer[False-Qwen3-0.6B] +disaggregated/test_disaggregated_single_gpu.py::test_arbitrary_kv_cache_transfer_missing_blocks[False-Qwen3-0.6B] +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_cancel_gen_requests[Qwen3-0.6B] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_llama_context_capacity[False-False-DeepSeek-V3-Lite-fp8/fp8] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[False-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[True-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[False-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[True-TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[False-Qwen3-0.6B] +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[True-Qwen3-0.6B] +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[False-Qwen3-0.6B] +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[True-Qwen3-0.6B] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[False-False-DeepSeek-V3-Lite-fp8/fp8] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[False-True-DeepSeek-V3-Lite-fp8/fp8] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[True-False-DeepSeek-V3-Lite-fp8/fp8] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[True-True-DeepSeek-V3-Lite-fp8/fp8] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[False-False-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[False-True-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[True-False-TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[True-True-TinyLlama-1.1B-Chat-v1.0] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_qwen3[False-False-Qwen3-8B-FP8] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_qwen3[False-True-Qwen3-8B-FP8] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_qwen3[True-False-Qwen3-8B-FP8] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_qwen3[True-True-Qwen3-8B-FP8] disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_spec_dec_batch_slot_limit[False-EAGLE3-LLaMA3.1-Instruct-8B-Llama-3.1-8B-Instruct] -disaggregated/test_workers.py::test_workers_conditional_disaggregation[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_workers.py::test_workers_conditional_disaggregation disaggregated/test_workers.py::test_workers_conditional_disaggregation_deepseek_v3_lite_bf16[DeepSeek-V3-Lite-bf16] -disaggregated/test_workers.py::test_workers_conversation_router[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_workers.py::test_workers_kv_cache_aware_router[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_workers.py::test_workers_conversation_router +disaggregated/test_workers.py::test_workers_kv_cache_aware_router disaggregated/test_workers.py::test_workers_kv_cache_aware_router_deepseek_v3_lite_bf16[DeepSeek-V3-Lite-bf16] -disaggregated/test_workers.py::test_workers_kv_cache_aware_router_eviction[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_workers.py::test_workers_kv_cache_events[TinyLlama-1.1B-Chat-v1.0] +disaggregated/test_workers.py::test_workers_kv_cache_aware_router_eviction +disaggregated/test_workers.py::test_workers_kv_cache_events kv_cache/test_prefix_aware_scheduling.py::TestServePrefixAwareScheduling::test_multi_round_qa_shared_prefix_smoke llmapi/test_llm_api_pytorch_moe_lora.py::test_qwen_moe_routed_expert_multi_lora_varying_ranks[cudagraph] TIMEOUT (300) llmapi/test_llm_api_pytorch_moe_lora.py::test_qwen_moe_routed_expert_multi_lora_varying_ranks[eager] TIMEOUT (300) diff --git a/tests/integration/test_lists/test-db/l0_a10.yml b/tests/integration/test_lists/test-db/l0_a10.yml index 7584053f50ff..aad664c989ab 100644 --- a/tests/integration/test_lists/test-db/l0_a10.yml +++ b/tests/integration/test_lists/test-db/l0_a10.yml @@ -89,29 +89,25 @@ l0_a10: - unittest/tools/test_unittest_culprits.py - unittest/usage/test_transport.py - unittest/usage/test_e2e_capture.py - - disaggregated/test_disaggregated.py::test_disaggregated_single_gpu[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_cuda_graph[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_mixed[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_overlap[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_diff_max_tokens[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_kv_cache_time_output[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_perf_metrics[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_cache_aware_balance[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_conditional[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_benchmark_gen_only_insufficient_kv[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ngram[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_sa[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_chat_completion_tool_calls[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_workers.py::test_workers_conditional_disaggregation[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_workers.py::test_workers_kv_cache_events[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_workers.py::test_workers_kv_cache_aware_router[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_workers.py::test_workers_kv_cache_aware_router_eviction[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[False-False-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[False-True-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[True-False-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[True-True-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_arbitrary_kv_cache_transfer[False-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_arbitrary_kv_cache_transfer_missing_blocks[False-TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_disaggregated.py::test_disaggregated_single_gpu + - disaggregated/test_disaggregated.py::test_disaggregated_cuda_graph + - disaggregated/test_disaggregated.py::test_disaggregated_mixed + - disaggregated/test_disaggregated.py::test_disaggregated_overlap + - disaggregated/test_disaggregated.py::test_disaggregated_diff_max_tokens + - disaggregated/test_disaggregated.py::test_disaggregated_kv_cache_time_output + - disaggregated/test_disaggregated.py::test_disaggregated_perf_metrics + - disaggregated/test_disaggregated.py::test_disaggregated_cache_aware_balance + - disaggregated/test_disaggregated.py::test_disaggregated_conditional + - disaggregated/test_disaggregated.py::test_disaggregated_benchmark_gen_only_insufficient_kv + - disaggregated/test_disaggregated.py::test_disaggregated_ngram + - disaggregated/test_disaggregated.py::test_disaggregated_sa + - disaggregated/test_disaggregated.py::test_disaggregated_chat_completion_tool_calls + - disaggregated/test_workers.py::test_workers_conditional_disaggregation + - disaggregated/test_workers.py::test_workers_kv_cache_events + - disaggregated/test_workers.py::test_workers_kv_cache_aware_router + - disaggregated/test_workers.py::test_workers_kv_cache_aware_router_eviction + - disaggregated/test_disaggregated_single_gpu.py::test_arbitrary_kv_cache_transfer[False-Qwen3-0.6B] + - disaggregated/test_disaggregated_single_gpu.py::test_arbitrary_kv_cache_transfer_missing_blocks[False-Qwen3-0.6B] - test_e2e.py::test_get_ci_container_port - test_e2e.py::test_openai_chat_multimodal_example ISOLATION - test_e2e.py::test_openai_mmencoder_example @@ -130,7 +126,7 @@ l0_a10: - test_e2e.py::test_openai_completions_example[pytorch] - test_e2e.py::test_openai_chat_example[pytorch] TIMEOUT (90) - test_e2e.py::test_trtllm_bench_request_rate_and_concurrency[enable_concurrency-] - - test_e2e.py::test_trtllm_bench_invalid_token_pytorch[TinyLlama-1.1B-Chat-v1.0-TinyLlama-1.1B-Chat-v1.0] + - test_e2e.py::test_trtllm_bench_invalid_token_pytorch # visual_gen - unittest/_torch/visual_gen/test_profiler.py - unittest/visual_gen/test_executor_shared_tensor_ipc.py diff --git a/tests/integration/test_lists/test-db/l0_a100.yml b/tests/integration/test_lists/test-db/l0_a100.yml index 2b0c7fd7359c..22d509d88bfd 100644 --- a/tests/integration/test_lists/test-db/l0_a100.yml +++ b/tests/integration/test_lists/test-db/l0_a100.yml @@ -32,9 +32,9 @@ l0_a100: - accuracy/test_llm_api_pytorch_encode.py::TestEncoderEncode::test_encoder_encode_matches_huggingface_classification[bert-yelp-eager] - accuracy/test_llm_api_pytorch_encode.py::TestEncoderEncode::test_encoder_encode_matches_huggingface_classification[bert-yelp-cuda_graph] - accuracy/test_llm_api_pytorch_encode.py::TestEncoderEncode::test_encoder_encode_cuda_graph_matches_eager_logits[bert-yelp] - - accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_matches_huggingface[tinyllama-1.1b] + - accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_matches_huggingface[llama-3.2-1b] - accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_matches_huggingface[qwen3-0.6b] - - accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_cuda_graph_matches_eager_logits[tinyllama-1.1b] + - accuracy/test_llm_api_pytorch_encode.py::TestDecoderEncode::test_decoder_encode_cuda_graph_matches_eager_logits[llama-3.2-1b] # Moved from l0_a10.yml: Llama-7B + KV cache + spec resources OOM on A10's 22 GB. - test_e2e.py::test_openai_lora - test_e2e.py::test_trtllm_serve_lora_example diff --git a/tests/integration/test_lists/test-db/l0_b200.yml b/tests/integration/test_lists/test-db/l0_b200.yml index ffeb93d979ae..9d38e608268c 100644 --- a/tests/integration/test_lists/test-db/l0_b200.yml +++ b/tests/integration/test_lists/test-db/l0_b200.yml @@ -80,7 +80,7 @@ l0_b200: - accuracy/test_epd_disagg_multimodal.py::TestVideoMMEEPD::test_disaggregated_videomme[qwen3vl_2b_instruct] - accuracy/test_epd_disagg_multimodal.py::TestVideoMMEEPD::test_disaggregated_videomme[nemotron_nano_v3_omni_nvfp4] - accuracy/test_llm_api_pytorch.py::TestQwen3_5_35B_A3B::test_bf16_mtp - - disaggregated/test_workers.py::test_workers_kv_cache_aware_router_eviction[TinyLlama-1.1B-Chat-v1.0] # nvbugs 5300551 + - disaggregated/test_workers.py::test_workers_kv_cache_aware_router_eviction # nvbugs 5300551 - test_e2e.py::test_ptp_quickstart_advanced[Llama3.1-8B-NVFP4-nvfp4-quantized/Meta-Llama-3.1-8B] - test_e2e.py::test_ptp_quickstart_advanced[Nemotron-Nano-9B-v2-nvfp4-NVIDIA-Nemotron-Nano-9B-v2-NVFP4] - test_e2e.py::test_ptp_quickstart_advanced[Llama3.1-8B-FP8-llama-3.1-model/Llama-3.1-8B-Instruct-FP8] diff --git a/tests/integration/test_lists/test-db/l0_dgx_b200.yml b/tests/integration/test_lists/test-db/l0_dgx_b200.yml index 22652d73f8d1..d0b6cb2de005 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_b200.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_b200.yml @@ -132,10 +132,10 @@ l0_dgx_b200: - unittest/_torch/ray_orchestrator/multi_gpu/test_llm_update_weights_multi_gpu.py -m "part3" - unittest/_torch/ray_orchestrator/multi_gpu/test_llm_update_weights_multi_gpu.py -m "part4" - unittest/_torch/ray_orchestrator/multi_gpu/test_llm_update_weights_multi_gpu.py -m "part5" - - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_genpp2[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2_genpp2[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_gentp2[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_gentp4[TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_genpp2 + - disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2_genpp2 + - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_gentp2 + - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_gentp4 - examples/test_ray.py::test_llm_inference_distributed_ray[tp2pp2] - examples/test_ray.py::test_ray_disaggregated_serving[tp2] - examples/test_ray.py::test_ray_disaggregated_serving_python[tp2] diff --git a/tests/integration/test_lists/test-db/l0_dgx_h100.yml b/tests/integration/test_lists/test-db/l0_dgx_h100.yml index 5527364aab90..890d96c63528 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_h100.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_h100.yml @@ -113,17 +113,17 @@ l0_dgx_h100: - unittest/disaggregated/test_py_cache_transceiver_mp.py -k "ctx_first_sync" - unittest/disaggregated/test_py_cache_transceiver_mp.py -k "gen_first1" - unittest/disaggregated/test_py_cache_transceiver_mp.py -k "gen_first2" - - disaggregated/test_disaggregated.py::test_disaggregated_multi_gpu[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_genpp2[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2_genpp2[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_gentp2[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_gentp4[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_genbs1[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_overlap[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_python_transceiver_host_offload[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp1-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4-TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_disaggregated.py::test_disaggregated_multi_gpu + - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_genpp2 + - disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2_genpp2 + - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_gentp2 + - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_gentp4 + - disaggregated/test_disaggregated.py::test_disaggregated_genbs1 + - disaggregated/test_disaggregated.py::test_disaggregated_overlap + - disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python + - disaggregated/test_disaggregated.py::test_disaggregated_python_transceiver_host_offload + - disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp1] + - disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4] - accuracy/test_disaggregated_serving.py::TestQwen3_5_4B::test_ctx_pp_gen_tp_asymmetric - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_gen_first - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_gen_first_kv_cache_v1 @@ -217,7 +217,7 @@ l0_dgx_h100: - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_ctxpp2_gentp2_one_mtp[DeepSeek-V3-Lite-fp8] - disaggregated/test_workers.py::test_workers_conditional_disaggregation_deepseek_v3_lite_bf16[DeepSeek-V3-Lite-bf16] - disaggregated/test_workers.py::test_workers_kv_cache_aware_router_deepseek_v3_lite_bf16[DeepSeek-V3-Lite-bf16] - - disaggregated/test_workers.py::test_workers_conversation_router[TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_workers.py::test_workers_conversation_router - condition: ranges: system_gpu_count: diff --git a/tests/integration/test_lists/test-db/l0_dgx_h200.yml b/tests/integration/test_lists/test-db/l0_dgx_h200.yml index 90c8545a82e9..6e16d6509486 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_h200.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_h200.yml @@ -26,8 +26,8 @@ l0_dgx_h200: - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] - accuracy/test_llm_api_pytorch.py::TestQwen3NextInstruct::test_bf16_4gpu[tep4] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2pp2_gentp2pp2[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_genpp4[TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2pp2_gentp2pp2 + - disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_genpp4 - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_ctxtp2ep2pp2_gentp4_one_mtp_block_reuse[DeepSeek-V3-Lite-fp8] - disaggregated/test_disaggregated.py::test_disaggregated_qwen3_32b_fp8[Qwen3/Qwen3-32B-FP8] - disaggregated/test_disaggregated.py::test_disaggregated_mixed_stress_test[req120-conc64-qwen3_32b_fp8_mixed_stress] diff --git a/tests/integration/test_lists/test-db/l0_gb200_multi_gpus.yml b/tests/integration/test_lists/test-db/l0_gb200_multi_gpus.yml index 3f4100e02f7e..629c612648ed 100644 --- a/tests/integration/test_lists/test-db/l0_gb200_multi_gpus.yml +++ b/tests/integration/test_lists/test-db/l0_gb200_multi_gpus.yml @@ -51,8 +51,8 @@ l0_gb200_multi_gpus: - unittest/_torch/moe/test_moe_comm.py::TestMoEComm::test_mnnvl_checkpoint_preserves_moe_graph_addresses - unittest/_torch/moe/test_moe_comm.py::TestMoEComm::test_mnnvl_engine_checkpoint_coordination - unittest/_torch/moe/test_moe_comm.py::TestMoEComm::test_mnnvl_checkpoint_failure_is_collective_and_bounded - - disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python_fabric_memory[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python_bounce[TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python_fabric_memory + - disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python_bounce - condition: ranges: diff --git a/tests/integration/test_lists/test-db/l0_h100.yml b/tests/integration/test_lists/test-db/l0_h100.yml index 7ccad5bbbc64..464d4d52eb01 100644 --- a/tests/integration/test_lists/test-db/l0_h100.yml +++ b/tests/integration/test_lists/test-db/l0_h100.yml @@ -172,8 +172,8 @@ l0_h100: - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_single_gpu[DeepSeek-V3-Lite-fp8] - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_single_gpu_mtp[DeepSeek-V3-Lite-fp8] - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_two_mtp[DeepSeek-V3-Lite-fp8] - - disaggregated/test_disaggregated.py::test_disaggregated_load_balance[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated.py::test_disaggregated_tinyllama_multi_orchestrator[TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_disaggregated.py::test_disaggregated_load_balance + - disaggregated/test_disaggregated.py::test_disaggregated_qwen3_multi_orchestrator - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[False-False-DeepSeek-V3-Lite-fp8/fp8] - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[False-True-DeepSeek-V3-Lite-fp8/fp8] - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[True-False-DeepSeek-V3-Lite-fp8/fp8] @@ -184,11 +184,11 @@ l0_h100: - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_qwen3[True-True-Qwen3-8B-FP8] - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_llama_context_capacity[False-False-DeepSeek-V3-Lite-fp8/fp8] - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_spec_dec_batch_slot_limit[False-EAGLE3-LLaMA3.1-Instruct-8B-Llama-3.1-8B-Instruct] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_cancel_gen_requests[TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[False-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[True-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[False-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[True-TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_cancel_gen_requests[Qwen3-0.6B] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[False-Qwen3-0.6B] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[True-Qwen3-0.6B] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[False-Qwen3-0.6B] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[True-Qwen3-0.6B] # Encoder-decoder Hopper smoke: CUDA-graph beam/greedy, kv-v2, overlap. # The primary pre-merge set runs on L40S (l0_l40s.yml); the full # dtype/model-size matrix runs post-merge below. @@ -244,13 +244,12 @@ l0_h100: - accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_fp8_block_scales[mtp=disable-fp8kv=True-attention_dp=False-cuda_graph=True-overlap_scheduler=True-torch_compile=True] - accuracy/test_llm_api_pytorch.py::TestQwen3_8B::test_fp8_block_scales[latency] - test_e2e.py::test_trtllm_bench_pytorch_backend_sanity[meta-llama/Llama-3.1-8B-llama-3.1-8b-False-False] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[False-False-TinyLlama-1.1B-Chat-v1.0] - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[False-False-DeepSeek-V3-Lite-fp8/fp8] - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_qwen3[False-False-Qwen3-8B-FP8] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[False-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[True-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[False-TinyLlama-1.1B-Chat-v1.0] - - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[True-TinyLlama-1.1B-Chat-v1.0] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[False-Qwen3-0.6B] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[True-Qwen3-0.6B] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[False-Qwen3-0.6B] + - disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[True-Qwen3-0.6B] - unittest/_torch/executor/test_overlap_scheduler.py - unittest/_torch/modeling/test_modeling_nemotron_h.py::test_nemotron_h_breakable_prefill_cuda_graph -k "tp1" TIMEOUT (90) - unittest/executor/test_shim_ray.py diff --git a/tests/integration/test_lists/test-db/l0_l40s.yml b/tests/integration/test_lists/test-db/l0_l40s.yml index d0c6253c0b92..748cc6be7f2b 100644 --- a/tests/integration/test_lists/test-db/l0_l40s.yml +++ b/tests/integration/test_lists/test-db/l0_l40s.yml @@ -94,7 +94,7 @@ l0_l40s: - llmapi/test_llm_examples.py::test_llmapi_example_multilora - llmapi/test_llm_examples.py::test_llmapi_example_guided_decoding - llmapi/test_llm_examples.py::test_llmapi_example_logits_processor - - examples/test_llm_api_with_mpi.py::test_llm_api_single_gpu_with_mpirun[TinyLlama-1.1B-Chat-v1.0] + - examples/test_llm_api_with_mpi.py::test_llm_api_single_gpu_with_mpirun - condition: ranges: system_gpu_count: diff --git a/tests/integration/test_lists/test-db/l0_model_express.yml b/tests/integration/test_lists/test-db/l0_model_express.yml index 5921d1d3f674..50039c809d0b 100644 --- a/tests/integration/test_lists/test-db/l0_model_express.yml +++ b/tests/integration/test_lists/test-db/l0_model_express.yml @@ -18,7 +18,7 @@ l0_model_express: backend: pytorch orchestrator: mpi tests: - - model_express/test_model_express.py::test_mx_donor_receiver[llama-bf16-tp1] + - model_express/test_model_express.py::test_mx_donor_receiver[qwen3-0.6b-bf16-tp1] - model_express/test_model_express.py::test_mx_donor_receiver[qwen2-bf16-tp1] - model_express/test_model_express.py::test_mx_donor_receiver[qwen3-bf16-tp1] - model_express/test_model_express.py::test_mx_donor_receiver[mistral-bf16-tp1] @@ -38,7 +38,7 @@ l0_model_express: backend: pytorch orchestrator: mpi tests: - - model_express/test_model_express.py::test_mx_donor_receiver[llama-bf16-tp2] + - model_express/test_model_express.py::test_mx_donor_receiver[qwen3-0.6b-bf16-tp2] - model_express/test_model_express.py::test_mx_donor_receiver[qwen2-bf16-tp2] - model_express/test_model_express.py::test_mx_donor_receiver[qwen3-bf16-tp2] - model_express/test_model_express.py::test_mx_donor_receiver[mistral-bf16-tp2] diff --git a/tests/integration/test_lists/test-db/l0_sanity_check.yml b/tests/integration/test_lists/test-db/l0_sanity_check.yml index db5c37afffbe..218b864bd9e8 100644 --- a/tests/integration/test_lists/test-db/l0_sanity_check.yml +++ b/tests/integration/test_lists/test-db/l0_sanity_check.yml @@ -28,7 +28,7 @@ l0_sanity_check: - llmapi/test_llm_examples.py::test_llmapi_example_logits_processor - llmapi/test_llm_examples.py::test_llmapi_sampling - llmapi/test_llm_examples.py::test_llmapi_runtime - - examples/test_llm_api_with_mpi.py::test_llm_api_single_gpu_with_mpirun[TinyLlama-1.1B-Chat-v1.0] ISOLATION + - examples/test_llm_api_with_mpi.py::test_llm_api_single_gpu_with_mpirun ISOLATION - unittest/others/test_kv_cache_transceiver.py::test_kv_cache_transceiver_single_process[NIXL-mha-ctx_fp16_gen_fp16] - unittest/others/test_kv_cache_transceiver.py::test_kv_cache_transceiver_single_process[UCX-mha-ctx_fp16_gen_fp16] - unittest/others/test_kv_cache_transceiver.py::test_cpp_nixl_sync_transfer_stress diff --git a/tests/integration/test_lists/waives.txt b/tests/integration/test_lists/waives.txt index 02de7d5387a1..a1ef4a74d5a6 100644 --- a/tests/integration/test_lists/waives.txt +++ b/tests/integration/test_lists/waives.txt @@ -55,20 +55,18 @@ disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1 disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_single_gpu[DeepSeek-V3-Lite-fp8] SKIP (https://nvbugs/6162322) disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_single_gpu_mtp[DeepSeek-V3-Lite-fp8] SKIP (https://nvbugs/6162322) disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_two_mtp[DeepSeek-V3-Lite-fp8] SKIP (https://nvbugs/6162322) -disaggregated/test_disaggregated.py::test_disaggregated_genbs1[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6162322) -disaggregated/test_disaggregated.py::test_disaggregated_overlap[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6799208) +disaggregated/test_disaggregated.py::test_disaggregated_genbs1 SKIP (https://nvbugs/6162322) disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-gpt_oss_120b_eagle_triton_stress] SKIP (https://nvbugs/6621362) disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_5_4b_fp8_stress] SKIP (https://nvbugs/6621362) -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[False-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6759021) -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[True-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6759021) -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[False-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6759021) -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[True-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6759021) +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[False-Qwen3-0.6B] SKIP (https://nvbugs/6759021) +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logits[True-Qwen3-0.6B] SKIP (https://nvbugs/6759021) +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[False-Qwen3-0.6B] SKIP (https://nvbugs/6759021) +disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_logprobs[True-Qwen3-0.6B] SKIP (https://nvbugs/6759021) disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_deepseek[False-False-DeepSeek-V3-Lite-fp8/fp8] SKIP (https://nvbugs/6759021) -disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_llama[False-False-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6759021) disaggregated/test_disaggregated_single_gpu.py::test_disaggregated_simple_qwen3[False-False-Qwen3-8B-FP8] SKIP (https://nvbugs/6759021) -disaggregated/test_workers.py::test_workers_conversation_router[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6162322) +disaggregated/test_workers.py::test_workers_conversation_router SKIP (https://nvbugs/6162322) disaggregated/test_workers.py::test_workers_kv_cache_aware_router_deepseek_v3_lite_bf16[DeepSeek-V3-Lite-bf16] SKIP (https://nvbugs/6162322) -disaggregated/test_workers.py::test_workers_kv_cache_aware_router_eviction[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6162322) +disaggregated/test_workers.py::test_workers_kv_cache_aware_router_eviction SKIP (https://nvbugs/6162322) examples/test_deepseek_v4_pro.py::test_short_token_boundary_smoke SKIP (https://nvbugs/6670227) examples/visual_gen/test_visual_gen_cosmos3.py::test_cosmos3_feature_accuracy_against_golden[fp8-blockwise] SKIP (https://nvbugs/6759131) examples/visual_gen/test_visual_gen_cosmos3.py::test_cosmos3_feature_accuracy_against_golden[nvfp4] SKIP (https://nvbugs/6572800) @@ -102,7 +100,9 @@ full:A100/accuracy/test_llm_api_pytorch_multimodal.py::TestExaone4_5_33B::test_a full:A100/accuracy/test_llm_api_pytorch_multimodal.py::TestExaone4_5_33B::test_auto_dtype[full_budget] SKIP (https://nvbugs/6597570) full:A100/disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_attention_dp_overlap[DeepSeek-V3-Lite-fp8] SKIP (https://nvbugs/6581064) full:A100/disaggregated/test_disaggregated.py::test_disaggregated_logprobs_serving[llama-3.1-8b-instruct] SKIP (https://nvbugs/6275959) -full:A100/disaggregated/test_disaggregated.py::test_disaggregated_python_transceiver_host_offload[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6758573) +full:A100/disaggregated/test_disaggregated.py::test_disaggregated_python_transceiver_host_offload SKIP (https://nvbugs/6758573) +full:A100/llmapi/test_llm_api_pytorch_moe_lora.py::test_qwen_moe_routed_expert_multi_lora_varying_ranks[cudagraph] SKIP (https://nvbugs/6758594) +full:A100/llmapi/test_llm_api_pytorch_moe_lora.py::test_qwen_moe_routed_expert_multi_lora_varying_ranks[eager] SKIP (https://nvbugs/6758594) full:A100/llmapi/test_llm_api_qa.py::TestLlmDefaultBackend::test_llm_args_logging SKIP (https://nvbugs/6727262) full:A100/llmapi/test_llm_api_qa.py::TestLlmDefaultBackend::test_llm_args_type_default SKIP (https://nvbugs/6727262) full:A30/unittest/_torch/sampler/test_beam_search_speculative_d2h.py::test_speculative_d2h_predictor_always_hit SKIP (https://nvbugs/6792615) @@ -114,10 +114,10 @@ full:B200/accuracy/test_llm_api_pytorch.py::TestNemotronV3Ultra::test_nvfp4_4gpu full:B200/accuracy/test_llm_api_pytorch.py::TestQwen3_235B_A22B::test_nvfp4[latency_moe_trtllm] SKIP (https://nvbugs/6731978) full:B200/accuracy/test_llm_api_pytorch_multimodal.py::TestExaone4_5_33B::test_auto_dtype[forced_chunked_prefill] SKIP (https://nvbugs/6597570) full:B200/accuracy/test_llm_api_pytorch_multimodal.py::TestExaone4_5_33B::test_auto_dtype[full_budget] SKIP (https://nvbugs/6597570) -full:B200/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_genpp4[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6771023) -full:B200/disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2pp2_gentp2pp2[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6435097) +full:B200/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_genpp4 SKIP (https://nvbugs/6771023) +full:B200/disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2pp2_gentp2pp2 SKIP (https://nvbugs/6435097) full:B200/disaggregated/test_disaggregated.py::test_disaggregated_logprobs_serving[llama-3.1-8b-instruct] SKIP (https://nvbugs/6275959) -full:B200/disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6728119) +full:B200/disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4] SKIP (https://nvbugs/6728119) full:B200/disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-deepseek_r1_v2_fp4_stress] SKIP (https://nvbugs/6765807) full:B200/disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-gpt_oss_120b_eagle_trtllm_stress] SKIP (https://nvbugs/6649384) full:B200/disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress] SKIP (https://nvbugs/6621362) @@ -129,11 +129,11 @@ full:B300/accuracy/test_llm_api_pytorch.py::TestMiniMaxM3::test_nvfp4[use_msa=Fa full:B300/accuracy/test_llm_api_pytorch.py::TestMistralLarge3_675B::test_nvfp4_4gpus[latency_moe_trtllm] SKIP (https://nvbugs/6529874) full:B300/accuracy/test_llm_api_pytorch_multimodal.py::TestExaone4_5_33B::test_auto_dtype[forced_chunked_prefill] SKIP (https://nvbugs/6597570) full:B300/accuracy/test_llm_api_pytorch_multimodal.py::TestExaone4_5_33B::test_auto_dtype[full_budget] SKIP (https://nvbugs/6597570) -full:B300/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_genpp4[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6771023) -full:B300/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_gentp4[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6728119) +full:B300/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_genpp4 SKIP (https://nvbugs/6771023) +full:B300/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp4_gentp4 SKIP (https://nvbugs/6728119) full:B300/disaggregated/test_disaggregated.py::test_disaggregated_logprobs_serving[llama-3.1-8b-instruct] SKIP (https://nvbugs/6275959) full:B300/disaggregated/test_disaggregated.py::test_disaggregated_mamba_conc_greater_than_mbs[NVIDIA-Nemotron-3-Super-120B-A12B-FP8] SKIP (https://nvbugs/6770978) -full:B300/disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6728119) +full:B300/disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4] SKIP (https://nvbugs/6728119) full:B300/disaggregated/test_disaggregated.py::test_disaggregated_qwen3_32b_fp8[Qwen3/Qwen3-32B-FP8] SKIP (https://nvbugs/6770977) full:B300/kv_cache/test_prefix_aware_scheduling.py::TestServePrefixAwareScheduling::test_multi_round_qa_shared_prefix_smoke SKIP (https://nvbugs/6782589) full:DGX_B200/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=False-enable_chunked_prefill=False-v2_kv_cache=True] SKIP (https://nvbugs/6633268) @@ -192,12 +192,15 @@ full:H20/accuracy/test_llm_api_pytorch_multimodal.py::TestExaone4_5_33B::test_au full:H20/accuracy/test_llm_api_pytorch_multimodal.py::TestExaone4_5_33B::test_auto_dtype[full_budget] SKIP (https://nvbugs/6597570) full:H20/accuracy/test_llm_api_pytorch_multimodal.py::TestNanoV3Omni::test_auto_dtype[bf16] SKIP (https://nvbugs/6618649) full:H20/disaggregated/test_disaggregated.py::test_disaggregated_logprobs_serving[llama-3.1-8b-instruct] SKIP (https://nvbugs/6275959) -full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_genpp2[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6728119) -full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_gentp2[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6728119) -full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2_genpp2[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6728119) +full:H20/disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp1] SKIP (https://nvbugs/6692009) +full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_genpp2 SKIP (https://nvbugs/6728119) +full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_ctxpp2_gentp2 SKIP (https://nvbugs/6728119) +full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_ctxtp2_genpp2 SKIP (https://nvbugs/6728119) full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_attention_dp_overlap[DeepSeek-V3-Lite-fp8] SKIP (https://nvbugs/6581064) full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_logprobs_serving[llama-3.1-8b-instruct] SKIP (https://nvbugs/6275959) -full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_multi_gpu[TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6728119) +full:L40S/disaggregated/test_disaggregated.py::test_disaggregated_multi_gpu SKIP (https://nvbugs/6728119) +full:L40S/llmapi/test_llm_api_qa.py::TestLlmDefaultBackend::test_llm_args_logging SKIP (https://nvbugs/6727262) +full:L40S/llmapi/test_llm_api_qa.py::TestLlmDefaultBackend::test_llm_args_type_default SKIP (https://nvbugs/6727262) full:RTXPro6000D/accuracy/test_llm_api_pytorch.py::TestQwen3_30B_A3B::test_nvfp4[dep4_latency_moe_cutlass-torch_compile=True] SKIP (https://nvbugs/5929339) full:RTX_PRO_6000_Blackwell_Server_Edition/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=False] SKIP (https://nvbugs/6616033) full:RTX_PRO_6000_Blackwell_Server_Edition/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=True] SKIP (https://nvbugs/6616033) diff --git a/tests/test_common/llm_data.py b/tests/test_common/llm_data.py index 5c09c27ee70c..45abeee72896 100644 --- a/tests/test_common/llm_data.py +++ b/tests/test_common/llm_data.py @@ -31,7 +31,7 @@ "meta-llama/Llama-3.1-8B": "llama-3.1-model/Meta-Llama-3.1-8B", "nvidia/Llama-3.1-8B-Instruct-FP8": "Llama-3.1-8B-Instruct-FP8", "nvidia/Llama-3.1-8B-Instruct-NVFP4": "Llama-3.1-8B-Instruct-NVFP4", - "TinyLlama/TinyLlama-1.1B-Chat-v1.0": "llama-models-v2/TinyLlama-1.1B-Chat-v1.0", + "Qwen/Qwen3-0.6B": "Qwen3/Qwen3-0.6B", "mistralai/Mistral-Small-3.1-24B-Instruct-2503": "Mistral-Small-3.1-24B-Instruct-2503", "Qwen/Qwen3-30B-A3B": "Qwen3/Qwen3-30B-A3B", "deepseek-ai/DeepSeek-V3": "DeepSeek-V3", diff --git a/tests/unittest/_torch/executor/test_overlap_scheduler.py b/tests/unittest/_torch/executor/test_overlap_scheduler.py index 7f9a57f6560c..2cbac2aab93b 100644 --- a/tests/unittest/_torch/executor/test_overlap_scheduler.py +++ b/tests/unittest/_torch/executor/test_overlap_scheduler.py @@ -19,7 +19,7 @@ def test_case(): @pytest.fixture(scope="module") def model_path(): - return llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return llm_models_root() / "Qwen3/Qwen3-0.6B" def create_llm(model_dir, diff --git a/tests/unittest/_torch/multi_gpu/test_mpi_sleep_wakeup.py b/tests/unittest/_torch/multi_gpu/test_mpi_sleep_wakeup.py index 3484aa0cdedc..78dbf7145643 100644 --- a/tests/unittest/_torch/multi_gpu/test_mpi_sleep_wakeup.py +++ b/tests/unittest/_torch/multi_gpu/test_mpi_sleep_wakeup.py @@ -33,7 +33,7 @@ from tensorrt_llm.llmapi import KvCacheConfig, SamplingParams from tensorrt_llm.llmapi.llm_args import ExecutorMemoryType, SleepConfig -_LLAMA_MODEL_PATH = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") +_LLAMA_MODEL_PATH = str(llm_models_root() / "Qwen3/Qwen3-0.6B") _PROMPTS = [ "Hello, my name is", diff --git a/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_executor.py b/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_executor.py index 4c88a65dbcad..7ef912591868 100644 --- a/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_executor.py +++ b/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_executor.py @@ -21,8 +21,7 @@ @pytest.mark.gpu2 def test_worker_extension(): - llm = LLM(model=llm_models_root() / - "llama-models-v2/TinyLlama-1.1B-Chat-v1.0", + llm = LLM(model=llm_models_root() / "Qwen3/Qwen3-0.6B", ray_worker_extension_cls= "tensorrt_llm.llmapi.rlhf_utils.WorkerExtension", orchestrator_type="ray", @@ -61,8 +60,7 @@ def test_placement_env_vars(setup_ray_cluster, monkeypatch): placement_group_capture_child_tasks=True, ), )(LLM).remote( - model=os.path.join(llm_models_root(), "llama-models-v2", - "TinyLlama-1.1B-Chat-v1.0"), + model=os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B"), kv_cache_config=KvCacheConfig(free_gpu_memory_fraction=0.1), tensor_parallel_size=2, orchestrator_type="ray", @@ -100,8 +98,7 @@ def test_placement_api(setup_ray_cluster, monkeypatch, n_gpus, bundle_indices): print(f"Placement group ready with bundles {pg.bundle_specs}") llm = LLM( - model=os.path.join(llm_models_root(), "llama-models-v2", - "TinyLlama-1.1B-Chat-v1.0"), + model=os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B"), kv_cache_config=KvCacheConfig(free_gpu_memory_fraction=0.1), tensor_parallel_size=tp_size, orchestrator_type="ray", @@ -132,8 +129,7 @@ def test_cuda_visible_device(monkeypatch): """Placement via cuda_visible_device""" monkeypatch.setenv("CUDA_VISIBLE_DEVICES", "1") - llm = LLM(model=llm_models_root() / - "llama-models-v2/TinyLlama-1.1B-Chat-v1.0", + llm = LLM(model=llm_models_root() / "Qwen3/Qwen3-0.6B", orchestrator_type="ray") infer_actor_uuids = llm._collective_rpc("report_device_id") diff --git a/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_inflight_weight_update.py b/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_inflight_weight_update.py index 0577588aaeaa..a2fd44c8ce17 100644 --- a/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_inflight_weight_update.py +++ b/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_inflight_weight_update.py @@ -98,7 +98,7 @@ async def _run_generate_async( @pytest.mark.asyncio @skip_pre_hopper async def test_inflight_weight_update(): - model_dir = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + model_dir = str(llm_models_root() / "Qwen3/Qwen3-0.6B") num_hidden_layers = 1 # Reference HF model providing the "new" weights via CUDA IPC handles. diff --git a/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_multi_instance.py b/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_multi_instance.py index 1abeb27f2f4e..a1be2dd660d5 100644 --- a/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_multi_instance.py +++ b/tests/unittest/_torch/ray_orchestrator/multi_gpu/test_multi_instance.py @@ -98,9 +98,7 @@ def test_multi_instance(setup_ray_cluster, tp_size, num_instances): runtime_env=runtime_env, ).remote( async_llm_kwargs={ - "model": os.path.join( - llm_models_root(), "llama-models-v2", "TinyLlama-1.1B-Chat-v1.0" - ), + "model": os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B"), "kv_cache_config": { "free_gpu_memory_fraction": 0.1, }, diff --git a/tests/unittest/_torch/ray_orchestrator/single_gpu/test_llm_sleep.py b/tests/unittest/_torch/ray_orchestrator/single_gpu/test_llm_sleep.py index 9a812bbb95c9..e771c2d6ba9d 100644 --- a/tests/unittest/_torch/ray_orchestrator/single_gpu/test_llm_sleep.py +++ b/tests/unittest/_torch/ray_orchestrator/single_gpu/test_llm_sleep.py @@ -7,7 +7,7 @@ def test_llm_sleep(process_gpu_memory_info_available): - llama_model_path = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + llama_model_path = str(llm_models_root() / "Qwen3/Qwen3-0.6B") kv_cache_config = KvCacheConfig(enable_block_reuse=False, max_tokens=16384) llm = LLM( @@ -73,7 +73,7 @@ def test_llm_sleep_discard_weights(process_gpu_memory_info_available): are gone (NONE = no backup). The model should still be able to run a forward pass without crashing — output correctness is not expected. """ - llama_model_path = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + llama_model_path = str(llm_models_root() / "Qwen3/Qwen3-0.6B") kv_cache_config = KvCacheConfig(enable_block_reuse=False, max_tokens=16384) sleep_config = SleepConfig( diff --git a/tests/unittest/_torch/ray_orchestrator/single_gpu/test_llm_update_weights.py b/tests/unittest/_torch/ray_orchestrator/single_gpu/test_llm_update_weights.py index 1590fdacce65..16f37cd1db1f 100644 --- a/tests/unittest/_torch/ray_orchestrator/single_gpu/test_llm_update_weights.py +++ b/tests/unittest/_torch/ray_orchestrator/single_gpu/test_llm_update_weights.py @@ -174,7 +174,6 @@ def run_generate( @pytest.mark.parametrize( "model_dir", [ - "llama-models-v2/TinyLlama-1.1B-Chat-v1.0", "Qwen3/Qwen3-0.6B", "Qwen3/Qwen3-8B", "Qwen3/Qwen3-30B-A3B", @@ -229,7 +228,6 @@ def test_llm_update_weights(model_dir): @pytest.mark.parametrize( "model_dir", [ - "llama-models-v2/TinyLlama-1.1B-Chat-v1.0", "Qwen3/Qwen3-0.6B", "Qwen3/Qwen3-8B", "Qwen3/Qwen3-30B-A3B", diff --git a/tests/unittest/_torch/ray_orchestrator/single_gpu/test_postproc_workers.py b/tests/unittest/_torch/ray_orchestrator/single_gpu/test_postproc_workers.py index 7f7e64530529..beb5223be707 100644 --- a/tests/unittest/_torch/ray_orchestrator/single_gpu/test_postproc_workers.py +++ b/tests/unittest/_torch/ray_orchestrator/single_gpu/test_postproc_workers.py @@ -33,7 +33,7 @@ def _model_path() -> str: override = os.environ.get("POSTPROC_TEST_MODEL") if override: return override - return str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + return str(llm_models_root() / "Qwen3/Qwen3-0.6B") def _make_llm(num_postprocess_workers: int) -> LLM: diff --git a/tests/unittest/_torch/sampler/test_beam_search.py b/tests/unittest/_torch/sampler/test_beam_search.py index 48e248bddf34..850b449794c1 100644 --- a/tests/unittest/_torch/sampler/test_beam_search.py +++ b/tests/unittest/_torch/sampler/test_beam_search.py @@ -2186,8 +2186,7 @@ def batch_size(request) -> int: def model_kwargs() -> dict[str, Any]: root = llm_models_root() assert root is not None - return dict(model=root / "llama-models-v2" / - "TinyLlama-1.1B-Chat-v1.0", ) + return dict(model=root / "Qwen3" / "Qwen3-0.6B", ) # NB: Class-level fixture overrides do not work without this @pytest.fixture(scope="module") diff --git a/tests/unittest/_torch/sampler/test_logits_logprobs.py b/tests/unittest/_torch/sampler/test_logits_logprobs.py index 579862de442d..f5aa80618fa1 100644 --- a/tests/unittest/_torch/sampler/test_logits_logprobs.py +++ b/tests/unittest/_torch/sampler/test_logits_logprobs.py @@ -99,7 +99,7 @@ def llm( ) llm = LLM( - model=os.path.join(llm_models_root(), "llama-models-v2", "TinyLlama-1.1B-Chat-v1.0"), + model=os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B"), kv_cache_config=global_kvcache_config, max_batch_size=128, # reduce buffer sizes, specially for generation logits disable_overlap_scheduler=disable_overlap_scheduler, @@ -112,7 +112,7 @@ def llm( @pytest.fixture(scope="module") def simple_llm() -> LLM: llm = LLM( - model=os.path.join(llm_models_root(), "llama-models-v2", "TinyLlama-1.1B-Chat-v1.0"), + model=os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B"), max_batch_size=8, kv_cache_config=global_kvcache_config_prompt_logprobs, ) @@ -825,7 +825,7 @@ def test_processed_logprobs_e2e(logprobs_k: int, simple_llm: LLM): @force_ampere @pytest.mark.gpu2 def test_logprobs_match_hf_tp2(): - model_path = os.path.join(llm_models_root(), "llama-models-v2", "TinyLlama-1.1B-Chat-v1.0") + model_path = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") llm = LLM( model=model_path, tensor_parallel_size=2, @@ -881,7 +881,7 @@ def test_logprobs_pp2(): Without the fix, logprobs length = 2N-1 instead of N due to duplication in the PP ring broadcast diff mechanism. """ - model_path = os.path.join(llm_models_root(), "llama-models-v2", "TinyLlama-1.1B-Chat-v1.0") + model_path = os.path.join(llm_models_root(), "Qwen3", "Qwen3-0.6B") max_tokens = 16 llm = LLM( model=model_path, diff --git a/tests/unittest/_torch/sampler/test_penalties_e2e.py b/tests/unittest/_torch/sampler/test_penalties_e2e.py index 05222a3d64f8..a817d54e2a4e 100644 --- a/tests/unittest/_torch/sampler/test_penalties_e2e.py +++ b/tests/unittest/_torch/sampler/test_penalties_e2e.py @@ -30,7 +30,7 @@ @pytest.fixture(scope="module") def model_path() -> Path: - return llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return llm_models_root() / "Qwen3/Qwen3-0.6B" @dataclass(frozen=True) diff --git a/tests/unittest/auto_deploy/_utils_test/_model_test_utils.py b/tests/unittest/auto_deploy/_utils_test/_model_test_utils.py index 9b726263e174..44154325ca26 100644 --- a/tests/unittest/auto_deploy/_utils_test/_model_test_utils.py +++ b/tests/unittest/auto_deploy/_utils_test/_model_test_utils.py @@ -519,7 +519,7 @@ def apply_rotary_pos_emb_ds(q, k, cos, sin, position_ids, unsqueeze_dim=1): "ssm_state_size": 32, }, }, - "TinyLlama/TinyLlama-1.1B-Chat-v1.0": { + "Qwen/Qwen3-0.6B": { "model_kwargs": { "num_hidden_layers": 2, }, diff --git a/tests/unittest/auto_deploy/singlegpu/smoke/test_ad_trtllm_bench.py b/tests/unittest/auto_deploy/singlegpu/smoke/test_ad_trtllm_bench.py index 6ba35a0aa44d..1435660a5625 100644 --- a/tests/unittest/auto_deploy/singlegpu/smoke/test_ad_trtllm_bench.py +++ b/tests/unittest/auto_deploy/singlegpu/smoke/test_ad_trtllm_bench.py @@ -95,7 +95,7 @@ def prepare_dataset(root_dir: str, temp_dir: str, model_path_or_name: str): @pytest.mark.parametrize("compile_backend", ["torch-compile", "torch-opt", "torch-cudagraph"]) -@pytest.mark.parametrize("model_name", ["TinyLlama/TinyLlama-1.1B-Chat-v1.0"]) +@pytest.mark.parametrize("model_name", ["Qwen/Qwen3-0.6B"]) def test_trtllm_bench(llm_root, compile_backend, model_name): # noqa: F811 args = get_small_model_config(model_name)["args"] # remove kv_cache_config and max_batch_size to avoid conflicts with trtllm-bench diff --git a/tests/unittest/auto_deploy/singlegpu/utils/test_example_configs.py b/tests/unittest/auto_deploy/singlegpu/utils/test_example_configs.py index 9fdccfd77fbf..b493ae963007 100644 --- a/tests/unittest/auto_deploy/singlegpu/utils/test_example_configs.py +++ b/tests/unittest/auto_deploy/singlegpu/utils/test_example_configs.py @@ -41,7 +41,7 @@ } # Dummy model name used during validation (model path is not resolved during construction) -_DUMMY_MODEL = "TinyLlama/TinyLlama-1.1B-Chat-v1.0" +_DUMMY_MODEL = "Qwen3/Qwen3-0.6B" def _find_config_yamls(): diff --git a/tests/unittest/check_pip_install.py b/tests/unittest/check_pip_install.py index 5057365eefa1..7e12f1acc9de 100644 --- a/tests/unittest/check_pip_install.py +++ b/tests/unittest/check_pip_install.py @@ -238,9 +238,8 @@ def create_link_for_models(): print(f"ERROR: Models root {models_root} does not exist") exit(1) src_dst_dict = { - # TinyLlama-1.1B-Chat-v1.0 - f"{models_root}/llama-models-v2/TinyLlama-1.1B-Chat-v1.0": - f"{os.getcwd()}/TinyLlama/TinyLlama-1.1B-Chat-v1.0", + # Qwen3-0.6B + f"{models_root}/Qwen3/Qwen3-0.6B": f"{os.getcwd()}/Qwen3/Qwen3-0.6B", } for src, dst in src_dst_dict.items(): diff --git a/tests/unittest/executor/test_base_worker.py b/tests/unittest/executor/test_base_worker.py index bc9a814e76c7..cfef9f45fb5d 100644 --- a/tests/unittest/executor/test_base_worker.py +++ b/tests/unittest/executor/test_base_worker.py @@ -17,7 +17,7 @@ from tensorrt_llm.llmapi.llm_args import TorchLlmArgs from tensorrt_llm.sampling_params import SamplingParams -default_model_name = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +default_model_name = "Qwen3/Qwen3-0.6B" model_path = llm_models_root() / default_model_name diff --git a/tests/unittest/executor/test_rpc_proxy.py b/tests/unittest/executor/test_rpc_proxy.py index 6c8af44c91a8..a2729067be0c 100644 --- a/tests/unittest/executor/test_rpc_proxy.py +++ b/tests/unittest/executor/test_rpc_proxy.py @@ -14,7 +14,7 @@ from utils.util import similar, skip_single_gpu # isort: on -model_path = llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +model_path = llm_models_root() / "Qwen3/Qwen3-0.6B" class TestRpcProxy: diff --git a/tests/unittest/executor/test_rpc_worker.py b/tests/unittest/executor/test_rpc_worker.py index 011784c990eb..e11f060f167c 100644 --- a/tests/unittest/executor/test_rpc_worker.py +++ b/tests/unittest/executor/test_rpc_worker.py @@ -10,7 +10,7 @@ from utils.llm_data import llm_models_root # isort: on -model_path = llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +model_path = llm_models_root() / "Qwen3/Qwen3-0.6B" assert model_path.exists() diff --git a/tests/unittest/grpc/openengine/test_capability_conformance.py b/tests/unittest/grpc/openengine/test_capability_conformance.py index af0799ae0d63..9855a7fcd304 100644 --- a/tests/unittest/grpc/openengine/test_capability_conformance.py +++ b/tests/unittest/grpc/openengine/test_capability_conformance.py @@ -43,7 +43,7 @@ from tensorrt_llm.llmapi.llm_args import TorchLlmArgs # noqa: E402 from tensorrt_llm.sampling_params import MAX_TOP_LOGPROBS # noqa: E402 -MODEL_NAME = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +MODEL_NAME = "Qwen3/Qwen3-0.6B" GUIDED_BACKEND = "xgrammar" # The engine is module-scoped, so the executor proxy's `proxy_dispatch_result_thread` diff --git a/tests/unittest/grpc/smg/test_smg.py b/tests/unittest/grpc/smg/test_smg.py index bbf6f5a31717..e443f2a2f7d1 100644 --- a/tests/unittest/grpc/smg/test_smg.py +++ b/tests/unittest/grpc/smg/test_smg.py @@ -640,7 +640,7 @@ def test_missing_tokenized_input(self): # End-to-end gRPC service tests (with real model) # ============================================================================ -default_model_name = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +default_model_name = "Qwen3/Qwen3-0.6B" def get_model_path(model_name): @@ -654,7 +654,7 @@ def get_model_path(model_name): def grpc_service(): """Create a real LLM, request manager, and servicer for e2e testing. - Uses TinyLlama-1.1B for minimal GPU resource usage. + Uses Qwen3-0.6B for minimal GPU resource usage. Shared across all tests in the class; class scope (not module) so the LLM is shut down and its GPU memory released before the multimodal class below creates its own LLM — with module scope both models are @@ -705,7 +705,7 @@ class TestGrpcServiceEndToEnd: """End-to-end tests for the gRPC service flow. Tests the full pipeline: gRPC request -> servicer -> request manager -> LLM -> response. - Uses TinyLlama-1.1B for minimal GPU resource usage. + Uses Qwen3-0.6B for minimal GPU resource usage. """ def test_generate_non_streaming(self, grpc_service): diff --git a/tests/unittest/llmapi/_run_multi_llm_tasks.py b/tests/unittest/llmapi/_run_multi_llm_tasks.py index 8d65fd6c761e..7002d8069525 100644 --- a/tests/unittest/llmapi/_run_multi_llm_tasks.py +++ b/tests/unittest/llmapi/_run_multi_llm_tasks.py @@ -11,7 +11,7 @@ from test_common.llm_data import llm_models_root # noqa: E402 -model_path = llm_models_root() / "llama-models-v2" / "TinyLlama-1.1B-Chat-v1.0" +model_path = llm_models_root() / "Qwen3" / "Qwen3-0.6B" def run_llm_tp2(): diff --git a/tests/unittest/llmapi/apps/_test_openai_cache_salt.py b/tests/unittest/llmapi/apps/_test_openai_cache_salt.py index 0799b6c28319..58c3d8f8f875 100644 --- a/tests/unittest/llmapi/apps/_test_openai_cache_salt.py +++ b/tests/unittest/llmapi/apps/_test_openai_cache_salt.py @@ -13,9 +13,9 @@ pytestmark = pytest.mark.threadleak(enabled=False) -@pytest.fixture(scope="module", ids=["TinyLlama-1.1B-Chat"]) +@pytest.fixture(scope="module", ids=["Qwen3-0.6B"]) def model_name() -> str: - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module") diff --git a/tests/unittest/llmapi/apps/_test_openai_chat.py b/tests/unittest/llmapi/apps/_test_openai_chat.py index db3b092c4adc..eb80b7e10adf 100644 --- a/tests/unittest/llmapi/apps/_test_openai_chat.py +++ b/tests/unittest/llmapi/apps/_test_openai_chat.py @@ -17,9 +17,9 @@ pytestmark = pytest.mark.threadleak(enabled=False) -@pytest.fixture(scope="module", ids=["TinyLlama-1.1B-Chat"]) +@pytest.fixture(scope="module", ids=["Qwen3-0.6B"]) def model_name(): - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module", params=["pytorch"]) diff --git a/tests/unittest/llmapi/apps/_test_openai_completions.py b/tests/unittest/llmapi/apps/_test_openai_completions.py index 59bb56ea4bc5..5e6de40c5238 100644 --- a/tests/unittest/llmapi/apps/_test_openai_completions.py +++ b/tests/unittest/llmapi/apps/_test_openai_completions.py @@ -15,7 +15,7 @@ @pytest.fixture(scope="module") def model_name(): - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module", params=["pytorch"]) diff --git a/tests/unittest/llmapi/apps/_test_openai_perf_metrics.py b/tests/unittest/llmapi/apps/_test_openai_perf_metrics.py index f8514b967147..e8ab10b13c2c 100644 --- a/tests/unittest/llmapi/apps/_test_openai_perf_metrics.py +++ b/tests/unittest/llmapi/apps/_test_openai_perf_metrics.py @@ -20,9 +20,9 @@ logger = logging.getLogger(__name__) -@pytest.fixture(scope="module", ids=["TinyLlama-1.1B-Chat"]) +@pytest.fixture(scope="module", ids=["Qwen3-0.6B"]) def model_name(): - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module") diff --git a/tests/unittest/llmapi/apps/_test_openai_post_processor.py b/tests/unittest/llmapi/apps/_test_openai_post_processor.py index e4cd279727a4..d68649745589 100644 --- a/tests/unittest/llmapi/apps/_test_openai_post_processor.py +++ b/tests/unittest/llmapi/apps/_test_openai_post_processor.py @@ -35,7 +35,7 @@ @pytest.fixture(scope="module") def model_name(): - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module", params=[0, 2], ids=["disable_processpool", "enable_processpool"]) diff --git a/tests/unittest/llmapi/apps/_test_openai_prometheus.py b/tests/unittest/llmapi/apps/_test_openai_prometheus.py index a113274ad0c2..5560e3fba81b 100644 --- a/tests/unittest/llmapi/apps/_test_openai_prometheus.py +++ b/tests/unittest/llmapi/apps/_test_openai_prometheus.py @@ -33,10 +33,10 @@ logger = logging.getLogger(__name__) -@pytest.fixture(scope="module", ids=["TinyLlama-1.1B-Chat"]) +@pytest.fixture(scope="module", ids=["Qwen3-0.6B"]) def model_name(): """Return the HuggingFace model path used for all tests in this module.""" - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module") diff --git a/tests/unittest/llmapi/apps/_test_trtllm_serve_duplicated_args.py b/tests/unittest/llmapi/apps/_test_trtllm_serve_duplicated_args.py index a195036e4195..cca1951ac80d 100644 --- a/tests/unittest/llmapi/apps/_test_trtllm_serve_duplicated_args.py +++ b/tests/unittest/llmapi/apps/_test_trtllm_serve_duplicated_args.py @@ -26,9 +26,9 @@ from test_llm import get_model_path -@pytest.fixture(scope="module", ids=["TinyLlama-1.1B-Chat"]) +@pytest.fixture(scope="module", ids=["Qwen3-0.6B"]) def model_name(): - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module") diff --git a/tests/unittest/llmapi/apps/_test_trtllm_serve_example.py b/tests/unittest/llmapi/apps/_test_trtllm_serve_example.py index 37c6b8252ac3..a29467bc14d0 100644 --- a/tests/unittest/llmapi/apps/_test_trtllm_serve_example.py +++ b/tests/unittest/llmapi/apps/_test_trtllm_serve_example.py @@ -25,9 +25,9 @@ from .openai_server import RemoteOpenAIServer -@pytest.fixture(scope="module", ids=["TinyLlama-1.1B-Chat"]) +@pytest.fixture(scope="module", ids=["Qwen3-0.6B"]) def model_name(): - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module") diff --git a/tests/unittest/llmapi/apps/_test_trtllm_serve_top_logprobs.py b/tests/unittest/llmapi/apps/_test_trtllm_serve_top_logprobs.py index 6c0d023b4726..d205f5c5bd09 100644 --- a/tests/unittest/llmapi/apps/_test_trtllm_serve_top_logprobs.py +++ b/tests/unittest/llmapi/apps/_test_trtllm_serve_top_logprobs.py @@ -7,9 +7,9 @@ pytestmark = pytest.mark.threadleak(enabled=False) -@pytest.fixture(scope="module", ids=["TinyLlama-1.1B-Chat"]) +@pytest.fixture(scope="module", ids=["Qwen3-0.6B"]) def model_name(): - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module", params=["pytorch"]) diff --git a/tests/unittest/llmapi/apps/test_disagg_serving_perf_metrics.py b/tests/unittest/llmapi/apps/test_disagg_serving_perf_metrics.py index 8ee7b214429d..f7d41aaa1648 100644 --- a/tests/unittest/llmapi/apps/test_disagg_serving_perf_metrics.py +++ b/tests/unittest/llmapi/apps/test_disagg_serving_perf_metrics.py @@ -50,7 +50,7 @@ def gen_port(test_ports: list[int]): @pytest.fixture def model_name(): - model_path = os.path.join(llm_models_root(), "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + model_path = os.path.join(llm_models_root(), "Qwen3/Qwen3-0.6B") assert os.path.exists(model_path), f"Model path {model_path} does not exist" return model_path diff --git a/tests/unittest/llmapi/run_llm_with_postproc.py b/tests/unittest/llmapi/run_llm_with_postproc.py index b534dc0b2ea4..d192cd9edcde 100644 --- a/tests/unittest/llmapi/run_llm_with_postproc.py +++ b/tests/unittest/llmapi/run_llm_with_postproc.py @@ -40,8 +40,7 @@ def main(model_dir: str, tp_size: int, n: int, best_of: Optional[int], n=n, best_of=best_of, top_k=top_k) - postproc_args = ChatPostprocArgs(role="assistant", - model="TinyLlama-1.1B-Chat-v1.0") + postproc_args = ChatPostprocArgs(role="assistant", model="Qwen3-0.6B") postproc_params = PostprocParams( post_processor=chat_stream_post_processor, postproc_args=postproc_args, diff --git a/tests/unittest/llmapi/test_async_llm.py b/tests/unittest/llmapi/test_async_llm.py index 9468eedaa6d5..a2548fe6db05 100644 --- a/tests/unittest/llmapi/test_async_llm.py +++ b/tests/unittest/llmapi/test_async_llm.py @@ -16,7 +16,7 @@ @pytest.mark.ray @pytest.mark.asyncio async def test_async_llm_awaitable(): - llama_model_path = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + llama_model_path = str(llm_models_root() / "Qwen3/Qwen3-0.6B") kv_cache_config = KvCacheConfig(enable_block_reuse=False) prompt = "The future of AI is" @@ -41,7 +41,7 @@ async def test_async_llm_awaitable(): @pytest.mark.asyncio @pytest.mark.parametrize("num_cycles", [3], ids=lambda x: f"{x}_cycle") async def test_async_llm_release_resume(process_gpu_memory_info_available, num_cycles): - llama_model_path = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + llama_model_path = str(llm_models_root() / "Qwen3/Qwen3-0.6B") kv_cache_config = KvCacheConfig(enable_block_reuse=False, max_tokens=4096) prompt = "The future of AI is" @@ -113,9 +113,7 @@ async def test_async_llm_placement_api(setup_ray_cluster, monkeypatch): print(f"Placement group ready with bundles {pg.bundle_specs}") llm = await AsyncLLM( - model=os.path.join( - str(llm_models_root()), "llama-models-v2", "TinyLlama-1.1B-Chat-v1.0" - ), + model=os.path.join(str(llm_models_root()), "Qwen3", "Qwen3-0.6B"), kv_cache_config=KvCacheConfig(free_gpu_memory_fraction=0.1), tensor_parallel_size=tp_size, placement_groups=[pg], @@ -141,7 +139,7 @@ async def test_async_llm_placement_api(setup_ray_cluster, monkeypatch): @pytest.mark.ray @pytest.mark.asyncio async def test_async_llm_reset_prefix_cache(): - llama_model_path = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + llama_model_path = str(llm_models_root() / "Qwen3/Qwen3-0.6B") kv_cache_config = KvCacheConfig(enable_block_reuse=True) prompt = "The future of AI is " * 20 sampling_params = SamplingParams(temperature=0, max_tokens=5, return_perf_metrics=True) @@ -182,7 +180,7 @@ async def test_async_llm_reset_prefix_cache(): @pytest.mark.ray @pytest.mark.asyncio async def test_async_llm_pause_resume(): - llama_model_path = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + llama_model_path = str(llm_models_root() / "Qwen3/Qwen3-0.6B") prompt = "The future of AI is" sampling_params = SamplingParams(temperature=0, max_tokens=10) @@ -209,7 +207,7 @@ async def test_async_llm_pause_resume(): @pytest.mark.ray @pytest.mark.asyncio async def test_async_llm_pause_aborts_inflight(): - llama_model_path = str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + llama_model_path = str(llm_models_root() / "Qwen3/Qwen3-0.6B") prompt = "The future of AI is" inflight_params = SamplingParams(temperature=0, max_tokens=512) normal_params = SamplingParams(temperature=0, max_tokens=10) diff --git a/tests/unittest/llmapi/test_executor.py b/tests/unittest/llmapi/test_executor.py index 5aaa3433794a..e4377199e026 100644 --- a/tests/unittest/llmapi/test_executor.py +++ b/tests/unittest/llmapi/test_executor.py @@ -191,7 +191,7 @@ def test_result_completes_within_timeout(): def test_DetokenizedGenerationResultBase(): sampling_params = SamplingParams(max_tokens=4) - model_path = llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + model_path = llm_models_root() / "Qwen3/Qwen3-0.6B" tokenizer = TransformersTokenizer.from_pretrained(model_path) result = DetokenizedGenerationResultBase( id=2, @@ -405,10 +405,9 @@ def test_ResponsePostprocessWorker(): pool = ProcessPoolExecutor(max_workers=1) print("submit task") - fut = pool.submit( - ResponsePostprocessWorker_worker_task, input_pipe.address, - out_pipe.address, - str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0")) + fut = pool.submit(ResponsePostprocessWorker_worker_task, input_pipe.address, + out_pipe.address, + str(llm_models_root() / "Qwen3/Qwen3-0.6B")) inputs = [ Input(rsp=create_rsp(123), @@ -500,10 +499,9 @@ def test_PostprocWorker_disaggregated_params(): out_pipe = ZeroMqQueue(is_server=True, socket_type=zmq.PULL) pool = ProcessPoolExecutor(max_workers=1) - fut = pool.submit( - ResponsePostprocessWorker_worker_task, input_pipe.address, - out_pipe.address, - str(llm_models_root() / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0")) + fut = pool.submit(ResponsePostprocessWorker_worker_task, input_pipe.address, + out_pipe.address, + str(llm_models_root() / "Qwen3/Qwen3-0.6B")) disagg_params = DisaggregatedParams( request_type="generation_only", diff --git a/tests/unittest/llmapi/test_llm.py b/tests/unittest/llmapi/test_llm.py index be45f0f08d5f..f329fca2343d 100644 --- a/tests/unittest/llmapi/test_llm.py +++ b/tests/unittest/llmapi/test_llm.py @@ -136,7 +136,7 @@ def llm_check_output(llm: LLM, stop_reasons=stop_reasons) -default_model_name = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +default_model_name = "Qwen3/Qwen3-0.6B" qwen3_tokenizer_model_name = "Qwen3/Qwen3-0.6B" llama_model_path = get_model_path(default_model_name) diff --git a/tests/unittest/llmapi/test_llm_args.py b/tests/unittest/llmapi/test_llm_args.py index c1e09bd89930..0135f5324339 100644 --- a/tests/unittest/llmapi/test_llm_args.py +++ b/tests/unittest/llmapi/test_llm_args.py @@ -30,6 +30,7 @@ HfCheckpointLoader from tensorrt_llm._torch.models.modeling_gemma3 import Gemma3ForCausalLM from tensorrt_llm._torch.models.modeling_llama import LlamaForCausalLM +from tensorrt_llm._torch.models.modeling_qwen3 import Qwen3ForCausalLM from tensorrt_llm._torch.peft.lora.config import LoraConfig from tensorrt_llm._torch.virtual_memory import RestoreMode from tensorrt_llm.commands.serve import get_llm_args, is_non_default_or_required @@ -3208,16 +3209,16 @@ def test_serve_is_non_default_or_required_helper(self): class TestPyTorchBackendModelDefaults: - def get_tinyllama_path(self): + def get_qwen_path(self): # Use local model path if available, otherwise use HuggingFace ID model_root = llm_models_root() if model_root: - local_path = model_root / "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + local_path = model_root / "Qwen3/Qwen3-0.6B" if local_path.exists(): return str(local_path) # Fallback to HuggingFace model ID - return "TinyLlama/TinyLlama-1.1B-Chat-v1.0" + return "Qwen/Qwen3-0.6B" @pytest.fixture(autouse=True) def setup(self, monkeypatch, tmp_path): @@ -3236,17 +3237,17 @@ def mock_get_model_defaults(cls, llm_args): } } - self.original_get_model_defaults = getattr(LlamaForCausalLM, + self.original_get_model_defaults = getattr(Qwen3ForCausalLM, 'get_model_defaults', None) - setattr(LlamaForCausalLM, 'get_model_defaults', + setattr(Qwen3ForCausalLM, 'get_model_defaults', classmethod(mock_get_model_defaults)) yield if self.original_get_model_defaults is None: - delattr(LlamaForCausalLM, 'get_model_defaults') + delattr(Qwen3ForCausalLM, 'get_model_defaults') else: - setattr(LlamaForCausalLM, 'get_model_defaults', + setattr(Qwen3ForCausalLM, 'get_model_defaults', self.original_get_model_defaults) @pytest.mark.part0 @@ -3254,7 +3255,7 @@ def test_model_defaults_application(self): self.get_model_defaults_called = False with TorchLLM( - model=self.get_tinyllama_path(), + model=self.get_qwen_path(), backend='pytorch', skip_tokenizer_init=True, env_overrides={"TLLM_WORKER_USE_SINGLE_PROCESS": "1"}, @@ -3271,7 +3272,7 @@ def test_user_overrides_respected(self): self.get_model_defaults_called = False with TorchLLM( - model=self.get_tinyllama_path(), + model=self.get_qwen_path(), backend='pytorch', enable_chunked_prefill=False, max_batch_size=42, @@ -3293,7 +3294,7 @@ def test_partial_user_override(self): self.get_model_defaults_called = False with TorchLLM( - model=self.get_tinyllama_path(), + model=self.get_qwen_path(), backend='pytorch', max_batch_size=42, skip_tokenizer_init=True, @@ -3318,7 +3319,7 @@ def test_empty_nested_config_preserves_defaults(self): self.get_model_defaults_called = False with TorchLLM( - model=self.get_tinyllama_path(), + model=self.get_qwen_path(), backend='pytorch', kv_cache_config=KvCacheConfig(), skip_tokenizer_init=True, diff --git a/tests/unittest/llmapi/test_llm_download.py b/tests/unittest/llmapi/test_llm_download.py index 45a7a95430cc..05c681ee6133 100644 --- a/tests/unittest/llmapi/test_llm_download.py +++ b/tests/unittest/llmapi/test_llm_download.py @@ -8,7 +8,7 @@ prompts = ["A B C"] -model_name = "TinyLlama/TinyLlama-1.1B-Chat-v1.0" +model_name = "Qwen/Qwen3-0.6B" def test_llm_with_model_downloaded(): diff --git a/tests/unittest/llmapi/test_llm_kv_cache_events.py b/tests/unittest/llmapi/test_llm_kv_cache_events.py index d2447c1aea2f..e85fd5ced29f 100644 --- a/tests/unittest/llmapi/test_llm_kv_cache_events.py +++ b/tests/unittest/llmapi/test_llm_kv_cache_events.py @@ -30,7 +30,7 @@ from .test_llm import get_model_path -default_model_name = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +default_model_name = "Qwen3/Qwen3-0.6B" llama_model_path = get_model_path(default_model_name) global_kvcache_config = KvCacheConfig(free_gpu_memory_fraction=0.4, event_buffer_max_size=1024, diff --git a/tests/unittest/llmapi/test_llm_pytorch.py b/tests/unittest/llmapi/test_llm_pytorch.py index 0457ac706ef5..04a9a7766c7a 100644 --- a/tests/unittest/llmapi/test_llm_pytorch.py +++ b/tests/unittest/llmapi/test_llm_pytorch.py @@ -235,7 +235,7 @@ def test_llm_perf_metrics(): @pytest.mark.part3 @pytest.mark.parametrize("attn_backend", ["TRTLLM", "FLASHINFER"]) def test_llm_prefix_cache_reuse(attn_backend): - model_path = get_model_path("llama-models-v2/TinyLlama-1.1B-Chat-v1.0") + model_path = get_model_path("Qwen3/Qwen3-0.6B") prompt = "The future of AI is " * 20 sampling_params = SamplingParams(temperature=0, max_tokens=5, diff --git a/tests/unittest/llmapi/test_llm_telemetry.py b/tests/unittest/llmapi/test_llm_telemetry.py index 66e2f2754839..de6652855803 100644 --- a/tests/unittest/llmapi/test_llm_telemetry.py +++ b/tests/unittest/llmapi/test_llm_telemetry.py @@ -35,7 +35,7 @@ pytestmark = pytest.mark.threadleak(enabled=False) -MODEL_NAME = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +MODEL_NAME = "Qwen3/Qwen3-0.6B" _kv_cache_config = KvCacheConfig(free_gpu_memory_fraction=0.4) @@ -241,7 +241,7 @@ def test_telemetry_receives_hf_config_pytorch(self): ) assert isinstance(pretrained_config.architectures, list) assert len(pretrained_config.architectures) > 0 - assert pretrained_config.architectures[0] == "LlamaForCausalLM" + assert pretrained_config.architectures[0] == "Qwen3ForCausalLM" assert captured.get("llm_args") is not None, "report_usage was not called with llm_args" @@ -264,7 +264,7 @@ def test_telemetry_config_has_extractable_architecture(self): assert pretrained_config is not None arch = usage_lib._extract_architecture_class_name(pretrained_config) - assert arch == "LlamaForCausalLM", f"Expected 'LlamaForCausalLM', got '{arch}'" + assert arch == "Qwen3ForCausalLM", f"Expected 'Qwen3ForCausalLM', got '{arch}'" class TestTelemetryDisabledFlag: @@ -412,7 +412,7 @@ def test_features_json_present_in_report_pytorch(self): assert set(features.keys()) == set(usage_lib._FEATURES_DEFAULTS.keys()) def test_features_json_default_values_pytorch(self): - """Default TinyLlama config has expected feature defaults.""" + """Default Qwen3-0.6B config has expected feature defaults.""" import json captured, spy = _make_spy() @@ -424,7 +424,7 @@ def test_features_json_default_values_pytorch(self): llm_args = captured.get("llm_args") features = json.loads(usage_lib._collect_features(llm_args)) - # TinyLlama loaded with defaults: no LoRA, no spec dec, no chunked prefill + # Qwen3-0.6B loaded with defaults: no LoRA, no spec dec, no chunked prefill assert features["lora"] is False assert features["speculative_decoding"] is False assert features["chunked_context"] is False diff --git a/tests/unittest/llmapi/test_llm_telemetry_payload.py b/tests/unittest/llmapi/test_llm_telemetry_payload.py index 7f8a29a128b1..338f6a36370b 100644 --- a/tests/unittest/llmapi/test_llm_telemetry_payload.py +++ b/tests/unittest/llmapi/test_llm_telemetry_payload.py @@ -34,7 +34,7 @@ pytestmark = pytest.mark.threadleak(enabled=False) -MODEL_NAME = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +MODEL_NAME = "Qwen3/Qwen3-0.6B" _kv_cache_config = KvCacheConfig(free_gpu_memory_fraction=0.4) @@ -127,7 +127,7 @@ def capture_send(payload): assert params["cpuArchitecture"] == platform.machine() assert params["cpuCount"] == os.cpu_count() assert params["cudaVersion"] == torch.version.cuda - assert params["architectureClassName"] == "LlamaForCausalLM" + assert params["architectureClassName"] == "Qwen3ForCausalLM" assert params["backend"] == "pytorch" # Step 4: String length checks (ShortString<=128, LongString<=256) diff --git a/tests/unittest/others/test_tracing.py b/tests/unittest/others/test_tracing.py index 781bd872653e..0071245e2934 100644 --- a/tests/unittest/others/test_tracing.py +++ b/tests/unittest/others/test_tracing.py @@ -60,9 +60,9 @@ def trace_service() -> Generator[FakeTraceService, None, None]: executor.shutdown(wait=True) -@pytest.fixture(scope="module", ids=["TinyLlama-1.1B-Chat"]) +@pytest.fixture(scope="module", ids=["Qwen3-0.6B"]) def model_name(): - return "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" + return "Qwen3/Qwen3-0.6B" @pytest.fixture(scope="module", params=["pytorch"]) diff --git a/tests/unittest/scripts/test_check_model_registry.py b/tests/unittest/scripts/test_check_model_registry.py index d6b9c743bd91..1fc45e82aaf8 100644 --- a/tests/unittest/scripts/test_check_model_registry.py +++ b/tests/unittest/scripts/test_check_model_registry.py @@ -88,7 +88,7 @@ def test_validate_models_rejects_duplicate_explicit_config_id(mod): def test_validate_models_rejects_empty_config_id(mod): models = [ { - "name": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "name": "Qwen3/Qwen3-0.6B", "config_id": " ", "yaml_extra": ["world_size_1.yaml"], } diff --git a/tests/unittest/tools/test_host_profiler.py b/tests/unittest/tools/test_host_profiler.py index 291e398c674d..f6608283d177 100644 --- a/tests/unittest/tools/test_host_profiler.py +++ b/tests/unittest/tools/test_host_profiler.py @@ -351,15 +351,15 @@ def test_iteration_aware_profiling(): @pytest.fixture -def tinyllama_path(): - """Get TinyLlama model path.""" - model_path = llm_models_root() / "llama-models-v2" / "TinyLlama-1.1B-Chat-v1.0" +def qwen3_model_path(): + """Get Qwen3-0.6B model path.""" + model_path = llm_models_root() / "Qwen3" / "Qwen3-0.6B" if not model_path.exists(): - pytest.skip(f"TinyLlama model not found at {model_path}") + pytest.skip(f"Qwen3-0.6B model not found at {model_path}") return str(model_path) -def test_e2e_profiler_with_model(tinyllama_path, mocker): +def test_e2e_profiler_with_model(qwen3_model_path, mocker): """E2E test: verify profiler works with actual model inference. Clears default profile targets and adds only specific targets, @@ -385,7 +385,7 @@ def test_e2e_profiler_with_model(tinyllama_path, mocker): ) with LLM( - model=tinyllama_path, + model=qwen3_model_path, kv_cache_config=KvCacheConfig(free_gpu_memory_fraction=0.3), ) as llm: # Generate enough tokens to ensure profiled methods are executed diff --git a/tests/unittest/usage/test_e2e_capture.py b/tests/unittest/usage/test_e2e_capture.py index 6a2bb928278d..a0429a742a26 100644 --- a/tests/unittest/usage/test_e2e_capture.py +++ b/tests/unittest/usage/test_e2e_capture.py @@ -21,7 +21,7 @@ hitting any external endpoint. Requirements: - - GPU (loads TinyLlama via PyTorch backend) + - GPU (loads Qwen3-0.6B via PyTorch backend) - LLM_MODELS_ROOT set (or /home/scratch.trt_llm_data_ci accessible) - Must be run with TRTLLM_USAGE_FORCE_ENABLED=1 to bypass pytest auto-detection (conftest or env) @@ -48,11 +48,11 @@ # Model path resolution (same pattern as test_llm_telemetry.py) # --------------------------------------------------------------------------- -MODEL_NAME = "llama-models-v2/TinyLlama-1.1B-Chat-v1.0" +MODEL_NAME = "Qwen3/Qwen3-0.6B" def _get_model_path(): - """Resolve TinyLlama model path from LLM_MODELS_ROOT.""" + """Resolve Qwen3-0.6B model path from LLM_MODELS_ROOT.""" root = os.environ.get("LLM_MODELS_ROOT") if root is None: # Fallback to standard scratch path @@ -297,7 +297,7 @@ def test_initial_report_captured(self, capture_server, monkeypatch): assert "cudaVersion" in params # Model architecture - assert params["architectureClassName"] == "LlamaForCausalLM" + assert params["architectureClassName"] == "Qwen3ForCausalLM" assert params["architectureClassHash"] == "" # Backend