|
1 | 1 | # vLLM Model Test Configuration |
2 | | -# Single config for all model-based test suites. |
| 2 | +# Smoke-test and SageMaker endpoint test suites. |
3 | 3 | # |
4 | 4 | # smoke-test: model serving + inference validation |
5 | | -# benchmark: throughput and latency with pass/fail thresholds |
| 5 | +# sagemaker: config-driven real SageMaker endpoint tests |
6 | 6 | # |
7 | | -# Each section has codebuild-fleet and runner-scale-sets sub-keys. |
| 7 | +# Benchmark (throughput/latency) configs were split out into |
| 8 | +# vllm-text-benchmark-tests.yml and vllm-multimodal-benchmark-tests.yml. |
| 9 | +# |
| 10 | +# smoke-test has codebuild-fleet and runner-scale-sets sub-keys. |
8 | 11 | # Workflow parsers construct s3_path from s3_prefix + s3_model. |
9 | 12 |
|
10 | 13 | s3_prefix: "s3://dlc-cicd-models/llm-models" |
@@ -63,317 +66,6 @@ smoke-test: |
63 | 66 |
|
64 | 67 | runner-scale-sets: [] |
65 | 68 |
|
66 | | -benchmark: |
67 | | - codebuild-fleet: |
68 | | - - name: "qwen3-embedding-0.6b" |
69 | | - s3_model: "qwen3-embedding-0.6b.tar.gz" |
70 | | - fleet: "x86-g6xl-runner" |
71 | | - extra_args: "--dtype bfloat16 --max-model-len 8192" |
72 | | - test_script: "vllm_embedding_benchmark_test.sh" |
73 | | - min_rps: 5 |
74 | | - |
75 | | - - name: "qwen3-vl-embedding-2b" |
76 | | - s3_model: "qwen3-vl-embedding-2b.tar.gz" |
77 | | - fleet: "x86-g6xl-runner" |
78 | | - extra_args: "--runner pooling --dtype bfloat16 --max-model-len 2048 --trust-remote-code" |
79 | | - test_script: "vllm_embedding_benchmark_test.sh" |
80 | | - min_rps: 3 |
81 | | - |
82 | | - - name: "qwen3-reranker-4b" |
83 | | - s3_model: "qwen3-reranker-4b.tar.gz" |
84 | | - fleet: "x86-g6xl-runner" |
85 | | - extra_args: "--dtype bfloat16 --max-model-len 10000 --gpu-memory-utilization 0.85" |
86 | | - test_script: "vllm_reranker_benchmark_test.sh" |
87 | | - min_rps: 20 |
88 | | - |
89 | | - - name: "qwen3-asr-1.7b" |
90 | | - s3_model: "qwen3-asr-1.7b.tar.gz" |
91 | | - fleet: "x86-g6e12xl-runner" |
92 | | - extra_args: "--tensor-parallel-size 1 --max-model-len 4096 --dtype bfloat16" |
93 | | - test_script: "vllm_asr_benchmark_test.sh" |
94 | | - test_fixtures: |
95 | | - - "audio/asr_en.wav" |
96 | | - - "audio/asr_zh.wav" |
97 | | - benchmark_audio_fixture: "asr_en.wav" |
98 | | - min_throughput: 30 |
99 | | - min_rps: 1 |
100 | | - benchmark_profiles: "baseline,high_concurrency,sustained_load,burst" |
101 | | - |
102 | | - - name: "voxtral-mini-4b" |
103 | | - s3_model: "voxtral-mini-4b.tar.gz" |
104 | | - fleet: "x86-g6xl-runner" |
105 | | - extra_args: "--tokenizer-mode mistral --config-format mistral --load-format mistral --max-model-len 8192 --enforce-eager" |
106 | | - test_script: "vllm_asr_benchmark_test.sh" |
107 | | - test_fixtures: |
108 | | - - "audio/asr_en.wav" |
109 | | - benchmark_audio_fixture: "asr_en.wav" |
110 | | - min_throughput: 1 |
111 | | - min_rps: 0.25 |
112 | | - benchmark_profiles: "baseline,high_concurrency" |
113 | | - |
114 | | - - name: "gpt-oss-20b" |
115 | | - s3_model: "gpt-oss-20b.tar.gz" |
116 | | - fleet: "x86-g6exl-runner" |
117 | | - extra_args: "--tensor-parallel-size 1 --max-model-len 4096 --dtype bfloat16" |
118 | | - input_len: 512 |
119 | | - output_len: 128 |
120 | | - num_prompts: 64 |
121 | | - batch_size: 4 |
122 | | - min_throughput: 1200 |
123 | | - min_rps: 5 |
124 | | - |
125 | | - - name: "gemma-4-26b-a4b-it" |
126 | | - s3_model: "gemma-4-26b-a4b-it.tar.gz" |
127 | | - fleet: "x86-g6e12xl-runner" |
128 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096 --dtype bfloat16" |
129 | | - input_len: 512 |
130 | | - output_len: 128 |
131 | | - num_prompts: 64 |
132 | | - batch_size: 4 |
133 | | - min_throughput: 300 |
134 | | - min_rps: 2.4 |
135 | | - |
136 | | - - name: "gemma-4-31b-it" |
137 | | - s3_model: "gemma-4-31b-it.tar.gz" |
138 | | - fleet: "x86-g6e12xl-runner" |
139 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096 --dtype bfloat16" |
140 | | - input_len: 512 |
141 | | - output_len: 128 |
142 | | - num_prompts: 64 |
143 | | - batch_size: 4 |
144 | | - min_throughput: 150 |
145 | | - min_rps: 1.2 |
146 | | - |
147 | | - - name: "gemma-4-e4b-it" |
148 | | - s3_model: "gemma-4-e4b-it.tar.gz" |
149 | | - fleet: "x86-g6exl-runner" |
150 | | - extra_args: "--tensor-parallel-size 1 --max-model-len 4096 --dtype bfloat16" |
151 | | - input_len: 512 |
152 | | - output_len: 128 |
153 | | - num_prompts: 64 |
154 | | - batch_size: 4 |
155 | | - min_throughput: 680 |
156 | | - min_rps: 5.3 |
157 | | - |
158 | | - - name: "gemma-4-e2b-it" |
159 | | - s3_model: "gemma-4-e2b-it.tar.gz" |
160 | | - fleet: "x86-g6xl-runner" |
161 | | - extra_args: "--tensor-parallel-size 1 --max-model-len 4096 --dtype bfloat16" |
162 | | - input_len: 512 |
163 | | - output_len: 128 |
164 | | - num_prompts: 64 |
165 | | - batch_size: 4 |
166 | | - min_throughput: 470 |
167 | | - min_rps: 3.7 |
168 | | - |
169 | | - # Pending p5e.48xlarge fleet creation. Fleet name "x86-p5e-runner" is a placeholder. |
170 | | - # - name: "minimax-m2.7" |
171 | | - # s3_model: "minimax-m2.7.tar.gz" |
172 | | - # fleet: "x86-p5e-runner" |
173 | | - # extra_args: "--tensor-parallel-size 4 --max-model-len 4096 --dtype auto --trust-remote-code" |
174 | | - # input_len: 512 |
175 | | - # output_len: 128 |
176 | | - # num_prompts: 64 |
177 | | - # batch_size: 4 |
178 | | - # min_throughput: 950 |
179 | | - # min_rps: 7.4 |
180 | | - |
181 | | - # - name: "glm-5.1" |
182 | | - # s3_model: "glm-5.1.tar.gz" |
183 | | - # fleet: "x86-p5e-runner" |
184 | | - # extra_args: "--tensor-parallel-size 8 --max-model-len 4096 --dtype auto --trust-remote-code" |
185 | | - # input_len: 512 |
186 | | - # output_len: 128 |
187 | | - # num_prompts: 64 |
188 | | - # batch_size: 4 |
189 | | - # min_throughput: 330 |
190 | | - # min_rps: 2.6 |
191 | | - |
192 | | - - name: "qwen3.5-9b" |
193 | | - s3_model: "qwen3.5-9b.tar.gz" |
194 | | - fleet: "x86-g6xl-runner" |
195 | | - extra_args: "--tensor-parallel-size 1 --max-model-len 4096 --enforce-eager" |
196 | | - input_len: 512 |
197 | | - output_len: 128 |
198 | | - num_prompts: 64 |
199 | | - batch_size: 4 |
200 | | - min_throughput: 20 |
201 | | - min_rps: 0.15 |
202 | | - |
203 | | - - name: "llama-3.3-70b" |
204 | | - s3_model: "llama-3.3-70b.tar.gz" |
205 | | - fleet: "x86-g6e12xl-runner" |
206 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096" |
207 | | - input_len: 512 |
208 | | - output_len: 128 |
209 | | - num_prompts: 32 |
210 | | - batch_size: 2 |
211 | | - min_throughput: 80 |
212 | | - min_rps: 0.35 |
213 | | - |
214 | | - # https://github.com/vllm-project/vllm/issues/32637 |
215 | | - # transformer version doesn't support this model |
216 | | - # https://github.com/vllm-project/vllm/issues/34098 |
217 | | - # - name: "glm-4.7-flash" |
218 | | - # s3_model: "glm-4.7-flash.tar.gz" |
219 | | - # fleet: "x86-g6xl-runner" |
220 | | - # extra_args: "--tensor-parallel-size 1 --max-model-len 4096 --dtype bfloat16" |
221 | | - # input_len: 512 |
222 | | - # output_len: 128 |
223 | | - # num_prompts: 64 |
224 | | - # batch_size: 4 |
225 | | - # min_throughput: 20 |
226 | | - # min_rps: 1 |
227 | | - |
228 | | - - name: "qwen3.5-35b-a3b-fp8" |
229 | | - s3_model: "qwen3.5-35b-a3b-fp8.tar.gz" |
230 | | - fleet: "x86-g6e12xl-runner" |
231 | | - # https://github.com/vllm-project/vllm/issues/35743 open bug for capturing CUDA graph fails |
232 | | - # workaround with --enforce-eager tp=1 fail while tp=4 success |
233 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096" |
234 | | - input_len: 512 |
235 | | - output_len: 128 |
236 | | - num_prompts: 64 |
237 | | - batch_size: 4 |
238 | | - min_throughput: 80 |
239 | | - min_rps: 0.35 |
240 | | - |
241 | | -# A100 is compute capability 8.0 — FP8 requires 8.9+ (H100/L40S). |
242 | | -# The Marlin fallback uses significantly more memory. |
243 | | - - name: "qwen3.5-27b-fp8" |
244 | | - s3_model: "qwen3.5-27b-fp8.tar.gz" |
245 | | - fleet: "x86-g6e12xl-runner" |
246 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096" |
247 | | - input_len: 512 |
248 | | - output_len: 128 |
249 | | - num_prompts: 64 |
250 | | - batch_size: 4 |
251 | | - min_throughput: 20 |
252 | | - min_rps: 0.2 |
253 | | - |
254 | | - - name: "qwen3-coder-next-fp8" |
255 | | - s3_model: "qwen3-coder-next-fp8.tar.gz" |
256 | | - fleet: "x86-g6e12xl-runner" |
257 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096" |
258 | | - input_len: 512 |
259 | | - output_len: 256 |
260 | | - num_prompts: 32 |
261 | | - batch_size: 2 |
262 | | - min_throughput: 93 |
263 | | - min_rps: 0.25 |
264 | | - |
265 | | - runner-scale-sets: |
266 | | - - name: "qwen3-32b" |
267 | | - s3_model: "qwen3-32b.tar.gz" |
268 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096 --gpu-memory-utilization 0.85" |
269 | | - input_len: 512 |
270 | | - output_len: 256 |
271 | | - num_prompts: 32 |
272 | | - batch_size: 2 |
273 | | - min_throughput: 1133 |
274 | | - min_rps: 3 |
275 | | - |
276 | | - - name: "qwen3.5-35b-a3b-fp8" |
277 | | - s3_model: "qwen3.5-35b-a3b-fp8.tar.gz" |
278 | | - # https://github.com/vllm-project/vllm/issues/35743 open bug for capturing CUDA graph fails |
279 | | - # workaround with --enforce-eager tp=1 fail while tp=4 success |
280 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096" |
281 | | - input_len: 512 |
282 | | - output_len: 128 |
283 | | - num_prompts: 64 |
284 | | - batch_size: 4 |
285 | | - min_throughput: 80 |
286 | | - min_rps: 0.35 |
287 | | - |
288 | | - - name: "qwen3.5-27b-fp8" |
289 | | - s3_model: "qwen3.5-27b-fp8.tar.gz" |
290 | | - # A100 lacks native FP8 — vLLM dequantizes to BF16 at load, doubling weight memory |
291 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096 --enforce-eager" |
292 | | - input_len: 512 |
293 | | - output_len: 128 |
294 | | - num_prompts: 64 |
295 | | - batch_size: 4 |
296 | | - min_throughput: 20 |
297 | | - min_rps: 0.2 |
298 | | - |
299 | | - - name: "qwen3-coder-next-fp8" |
300 | | - s3_model: "qwen3-coder-next-fp8.tar.gz" |
301 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096" |
302 | | - input_len: 512 |
303 | | - output_len: 256 |
304 | | - num_prompts: 32 |
305 | | - batch_size: 2 |
306 | | - min_throughput: 93 |
307 | | - min_rps: 0.25 |
308 | | - |
309 | | - - name: "llama-3.3-70b" |
310 | | - s3_model: "llama-3.3-70b.tar.gz" |
311 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096" |
312 | | - input_len: 512 |
313 | | - output_len: 128 |
314 | | - num_prompts: 32 |
315 | | - batch_size: 2 |
316 | | - min_throughput: 80 |
317 | | - min_rps: 0.35 |
318 | | - |
319 | | - # --- Qwen 3.5/3.6 new models (thresholds at ~50% of observed) --- |
320 | | - - name: "qwen3.5-2b" |
321 | | - s3_model: "qwen3.5-2b.tar.gz" |
322 | | - runner_label: "gpu-l4-1gpu-runners" |
323 | | - extra_args: "--tensor-parallel-size 1 --max-model-len 4096 --dtype bfloat16 --gpu-memory-utilization 0.6" |
324 | | - input_len: 512 |
325 | | - output_len: 128 |
326 | | - num_prompts: 64 |
327 | | - batch_size: 4 |
328 | | - min_throughput: 5256 |
329 | | - min_rps: 8.2 |
330 | | - |
331 | | - - name: "qwen3.6-27b" |
332 | | - s3_model: "qwen3.6-27b.tar.gz" |
333 | | - runner_label: "gpu-l40s-4gpu-runners" |
334 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096 --dtype bfloat16 --gpu-memory-utilization 0.8" |
335 | | - input_len: 512 |
336 | | - output_len: 128 |
337 | | - num_prompts: 64 |
338 | | - batch_size: 4 |
339 | | - min_throughput: 2195 |
340 | | - min_rps: 3.4 |
341 | | - |
342 | | - - name: "qwen3.6-35b-a3b" |
343 | | - s3_model: "qwen3.6-35b-a3b.tar.gz" |
344 | | - runner_label: "gpu-l40s-4gpu-runners" |
345 | | - extra_args: "--tensor-parallel-size 4 --max-model-len 4096 --dtype bfloat16 --gpu-memory-utilization 0.8" |
346 | | - input_len: 512 |
347 | | - output_len: 128 |
348 | | - num_prompts: 64 |
349 | | - batch_size: 4 |
350 | | - min_throughput: 2654 |
351 | | - min_rps: 4.1 |
352 | | - |
353 | | - - name: "qwen3.5-0.8b" |
354 | | - s3_model: "qwen3.5-0.8b.tar.gz" |
355 | | - runner_label: "gpu-l4-1gpu-runners" |
356 | | - extra_args: "--tensor-parallel-size 1 --max-model-len 4096 --dtype bfloat16 --gpu-memory-utilization 0.6" |
357 | | - input_len: 512 |
358 | | - output_len: 128 |
359 | | - num_prompts: 64 |
360 | | - batch_size: 4 |
361 | | - min_throughput: 5966 |
362 | | - min_rps: 9.3 |
363 | | - |
364 | | -# upstream |
365 | | -# facebook/opt-125m |
366 | | -# meta-llama/Llama-3.2-1B-Instruct |
367 | | -# Qwen/Qwen3-0.6B |
368 | | -# fixie-ai/ultravox-v0_5-llama-3_2-1b |
369 | | -# llava-hf/llava-1.5-7b-hf |
370 | | -# microsoft/Phi-3.5-vision-instruct |
371 | | -# openai/whisper-large-v3-turbo |
372 | | -# jason9693/Qwen2.5-1.5B-apeach |
373 | | -# intfloat/e5-small |
374 | | -# BAAI/bge-reranker-v2-m3 |
375 | | -# meta-llama/Llama-3.1-8B-Instruct |
376 | | - |
377 | 69 | # --- SageMaker Endpoint Tests --- |
378 | 70 | # Config-driven real endpoint tests. Each entry deploys a model from S3, |
379 | 71 | # sends requests to the configured route, and validates the response. |
|
0 commit comments