Skip to content

Commit 128f2d6

Browse files
committed
fix glob to path
Signed-off-by: sirutBuasai <sirutbuasai27@outlook.com>
2 parents d5f7018 + bffabfd commit 128f2d6

15 files changed

Lines changed: 1017 additions & 324 deletions

File tree

.github/actions/build-image/action.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ runs:
4949
echo "os-version=$(yq '.metadata.os_version' "$CONFIG_FILE")" >> $GITHUB_OUTPUT
5050
echo "python-version=$(yq '.build.python_version // ""' "$CONFIG_FILE")" >> $GITHUB_OUTPUT
5151
echo "cuda-version=$(yq '.build.cuda_version // ""' "$CONFIG_FILE")" >> $GITHUB_OUTPUT
52+
echo "contributor=$(yq '.metadata.contributor // ""' "$CONFIG_FILE")" >> $GITHUB_OUTPUT
53+
echo "transformers-version=$(yq '.build.transformers_version // ""' "$CONFIG_FILE")" >> $GITHUB_OUTPUT
5254
echo "dockerfile=$(yq '.build.dockerfile' "$CONFIG_FILE")" >> $GITHUB_OUTPUT
5355
echo "target=$(yq '.build.target // ""' "$CONFIG_FILE")" >> $GITHUB_OUTPUT
5456
@@ -152,6 +154,17 @@ runs:
152154
LABEL_ARGS+=("--label" "com.amazonaws.ml.engines.sagemaker.dlc.job.${JOB_TYPE}=true")
153155
[[ -n "$LABEL_OS" ]] && LABEL_ARGS+=("--label" "com.amazonaws.ml.engines.sagemaker.dlc.os.${LABEL_OS}=true")
154156
[[ -n "$LABEL_PYTHON" ]] && LABEL_ARGS+=("--label" "com.amazonaws.ml.engines.sagemaker.dlc.python.${LABEL_PYTHON}=true")
157+
158+
CONTRIBUTOR="${{ steps.metadata.outputs.contributor }}"
159+
if [[ -n "$CONTRIBUTOR" && "$CONTRIBUTOR" != "None" ]]; then
160+
LABEL_ARGS+=("--label" "com.amazonaws.ml.engines.sagemaker.dlc.contributor.${CONTRIBUTOR}=true")
161+
fi
162+
163+
TRANSFORMERS_VER="${{ steps.metadata.outputs.transformers-version }}"
164+
if [[ -n "$TRANSFORMERS_VER" ]]; then
165+
LABEL_TRANSFORMERS=$(echo "${TRANSFORMERS_VER}" | tr '.' '-')
166+
LABEL_ARGS+=("--label" "com.amazonaws.ml.engines.sagemaker.dlc.lib.transformers.${LABEL_TRANSFORMERS}=true")
167+
fi
155168
fi
156169
157170
# Target flag (optional)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
image:
2+
name: "huggingface-vllm-sagemaker"
3+
description: "Hugging Face vLLM for SageMaker (layered on the AWS vLLM DLC)"
4+
5+
metadata:
6+
framework: "huggingface_vllm"
7+
framework_version: "0.22.1"
8+
os_version: "ubuntu22.04"
9+
customer_type: "sagemaker"
10+
platform: "sagemaker"
11+
arch_type: "x86"
12+
device_type: "gpu"
13+
job_type: "general"
14+
contributor: "huggingface"
15+
prod_image: "huggingface-vllm:server-sagemaker-cuda-v1"
16+
17+
build:
18+
dockerfile: "docker/huggingface/vllm/Dockerfile"
19+
target: "huggingface-vllm-sagemaker"
20+
base_image: "public.ecr.aws/deep-learning-containers/vllm:0.22.1-gpu-py312-cu130-ubuntu22.04-sagemaker-v1"
21+
python_version: "3.12"
22+
cuda_version: "13.0.2"
23+
transformers_version: "5.10.2"
24+
huggingface_hub_version: "1.17.0"
25+
hf_xet_version: "1.5.0"
26+
ffmpeg_tag: "n8.1"
27+
dlc_major_version: "1"
28+
dlc_minor_version: "0"
29+
30+
release:
31+
release: false
32+
force_release: false
33+
public_registry: false
34+
private_registry: true
35+
enable_soci: true
36+
environment: "production"

.github/config/model-tests/vllm-model-tests.yml

Lines changed: 6 additions & 314 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
# vLLM Model Test Configuration
2-
# Single config for all model-based test suites.
2+
# Smoke-test and SageMaker endpoint test suites.
33
#
44
# smoke-test: model serving + inference validation
5-
# benchmark: throughput and latency with pass/fail thresholds
5+
# sagemaker: config-driven real SageMaker endpoint tests
66
#
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.
811
# Workflow parsers construct s3_path from s3_prefix + s3_model.
912

1013
s3_prefix: "s3://dlc-cicd-models/llm-models"
@@ -63,317 +66,6 @@ smoke-test:
6366

6467
runner-scale-sets: []
6568

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-
37769
# --- SageMaker Endpoint Tests ---
37870
# Config-driven real endpoint tests. Each entry deploys a model from S3,
37971
# sends requests to the configured route, and validates the response.

0 commit comments

Comments
 (0)