embeded/jetson

nvidia jetson agx thor / vLLM 시도

구차니 2026. 7. 28. 11:32

 

2026.07.28에 하니 model 경로가 달라진듯 하다.

/root/.cache/huggingface 라고 명시되어 있더니, /data/models/huggingface 로 가버림

$ docker run --pull=always --rm -it \
  --network host \
  --shm-size=16g \
  --ulimit memlock=-1 \
  --ulimit stack=67108864 \
  --runtime=nvidia \
  --name=vllm_gemma4 \
  -v $HOME/data/models/huggingface:/data/models/huggingface \
  ghcr.io/nvidia-ai-iot/vllm:gemma4-jetson-thor \
  vllm serve google/gemma-4-E4B-it \
  --gpu-memory-utilization 0.5 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

 

$ docker run --pull=always --rm -it \
  --network host \
  --shm-size=16g \
  --ulimit memlock=-1 \
  --ulimit stack=67108864 \
  --runtime=nvidia \
  --name=vllm \
  -v $HOME/data/models/huggingface:/data/models/huggingface \
  ghcr.io/nvidia-ai-iot/vllm:latest-jetson-thor \
  vllm serve Qwen/Qwen3.6-35B-A3B \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

 

----

 

 

저거 정도는 좀 찐하게 칠해주던가 -_ㅠ

한참 받고 했는데 안되서 멘붕왔다가 클로드 물어보니 orin 이자너! 외쳐주심 ㅋㅋ

인간이 미안해 ㅋㅋㅋㅋ

docker run -d \
  --network=host \
  -v ${HOME}/open-webui:/app/backend/data \
  -e OPENAI_API_BASE_URL=http://0.0.0.0:8000/v1 \
  --name open-webui \
  ghcr.io/open-webui/open-webui:main

docker run --pull=always --rm -it \
  --network host \
  --shm-size=16g \
  --ulimit memlock=-1 \
  --ulimit stack=67108864 \
  --runtime=nvidia \
  --name=vllm \
  -v $HOME/data/models/huggingface:/root/.cache/huggingface \
  ghcr.io/nvidia-ai-iot/vllm:latest-jetson-thor \
  vllm serve RedHatAI/Qwen3-8B-quantized.w4a16

[링크 : https://www.jetson-ai-lab.com/tutorials/genai-on-jetson-llms-vlms/#-vllm-for-best-performance]

 

vllm server 뒤에는 huggingface의 url을 때려 박으면 되나보다

양자화 차이는 있지만 그러면.. vllm server Qwen/Qwen3.5-0.8B 해봐야겠네

[링크 : https://huggingface.co/Qwen/Qwen3.5-0.8B]

 

open webui 에서 이런 에러가 발생해서 추가!

Qwen/Qwen3.5-0.8B
"auto" tool choice requires --enable-auto-tool-choice and --tool-call-parser to be set

 

잘 돌아는 가는데..

nvidia@nvidia:~$ docker run --pull=always --rm -it \
  --network host \
  --shm-size=16g \
  --ulimit memlock=-1 \
  --ulimit stack=67108864 \
  --runtime=nvidia \
  --name=vllm \
  -v $HOME/data/models/huggingface:/root/.cache/huggingface \
  ghcr.io/nvidia-ai-iot/vllm:latest-jetson-thor \
  vllm serve Qwen/Qwen3.5-0.8B \
  --enable-auto-tool-choice \
  --tool-call-parser hermes
latest-jetson-thor: Pulling from nvidia-ai-iot/vllm
Digest: sha256:b587dd56b4cb076209ad5156a626ac75f5a976d0e8e7d1e6a9fccd56d1bd65e8
Status: Image is up to date for ghcr.io/nvidia-ai-iot/vllm:latest-jetson-thor
/opt/venv/lib/python3.12/site-packages/transformers/utils/hub.py:110: FutureWarning: Using `TRANSFORMERS_CACHE` is deprecated and will be removed in v5 of Transformers. Use `HF_HOME` instead.
  warnings.warn(
(APIServer pid=1) INFO 07-28 03:09:00 [utils.py:299] 
(APIServer pid=1) INFO 07-28 03:09:00 [utils.py:299]        █     █     █▄   ▄█
(APIServer pid=1) INFO 07-28 03:09:00 [utils.py:299]  ▄▄ ▄█ █     █     █ ▀▄▀ █  version 0.19.0
(APIServer pid=1) INFO 07-28 03:09:00 [utils.py:299]   █▄█▀ █     █     █     █  model   Qwen/Qwen3.5-0.8B
(APIServer pid=1) INFO 07-28 03:09:00 [utils.py:299]    ▀▀  ▀▀▀▀▀ ▀▀▀▀▀ ▀     ▀
(APIServer pid=1) INFO 07-28 03:09:00 [utils.py:299] 
(APIServer pid=1) INFO 07-28 03:09:00 [utils.py:233] non-default args: {'model_tag': 'Qwen/Qwen3.5-0.8B', 'enable_auto_tool_choice': True, 'tool_call_parser': 'hermes', 'model': 'Qwen/Qwen3.5-0.8B'}
config.json: 2.91kB [00:00, 16.0MB/s]

 

llama.cpp 처럼 한번 문장 물어 본것에 대한 속도가 안나와서 비교하기가 애매~하다.

(APIServer pid=1) INFO 07-28 03:16:02 [loggers.py:259] Engine 000: Avg prompt throughput: 647.4 tokens/s, Avg generation throughput: 7.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:56010 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:56016 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:16:12 [loggers.py:259] Engine 000: Avg prompt throughput: 20.4 tokens/s, Avg generation throughput: 3.3 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:37160 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:37160 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:37162 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:16:22 [loggers.py:259] Engine 000: Avg prompt throughput: 643.2 tokens/s, Avg generation throughput: 36.1 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:54470 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:16:32 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     192.168.40.209:36304 - "GET /metrics HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     192.168.40.209:36304 - "GET /favicon.ico HTTP/1.1" 404 Not Found
(APIServer pid=1) INFO:     127.0.0.1:53220 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:53220 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:19:12 [loggers.py:259] Engine 000: Avg prompt throughput: 666.3 tokens/s, Avg generation throughput: 18.3 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:19:22 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:57598 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:19:32 [loggers.py:259] Engine 000: Avg prompt throughput: 622.3 tokens/s, Avg generation throughput: 39.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:57598 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:19:42 [loggers.py:259] Engine 000: Avg prompt throughput: 91.0 tokens/s, Avg generation throughput: 7.9 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:19:52 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:56452 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:56450 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:56450 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:56452 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:20:52 [loggers.py:259] Engine 000: Avg prompt throughput: 668.1 tokens/s, Avg generation throughput: 14.8 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:51276 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:21:02 [loggers.py:259] Engine 000: Avg prompt throughput: 597.2 tokens/s, Avg generation throughput: 25.3 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:51276 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:21:12 [loggers.py:259] Engine 000: Avg prompt throughput: 112.8 tokens/s, Avg generation throughput: 71.5 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:21:22 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:43142 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:21:32 [loggers.py:259] Engine 000: Avg prompt throughput: 686.0 tokens/s, Avg generation throughput: 28.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:21:42 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 132.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:21:52 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 127.6 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:40238 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:40254 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:40254 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:22:02 [loggers.py:259] Engine 000: Avg prompt throughput: 1424.5 tokens/s, Avg generation throughput: 56.6 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:52062 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:52062 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:22:12 [loggers.py:259] Engine 000: Avg prompt throughput: 1407.0 tokens/s, Avg generation throughput: 26.6 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:38124 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:38124 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:22:22 [loggers.py:259] Engine 000: Avg prompt throughput: 1139.7 tokens/s, Avg generation throughput: 24.9 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:38124 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:22:32 [loggers.py:259] Engine 000: Avg prompt throughput: 1053.3 tokens/s, Avg generation throughput: 110.4 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:40160 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:40174 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:22:42 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 129.2 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.2%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:37106 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:38124 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:37108 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:38124 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:22:52 [loggers.py:259] Engine 000: Avg prompt throughput: 1634.7 tokens/s, Avg generation throughput: 59.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.2%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:23:02 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 127.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.2%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:38124 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:23:12 [loggers.py:259] Engine 000: Avg prompt throughput: 535.5 tokens/s, Avg generation throughput: 116.7 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:23:22 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:49210 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:26:32 [loggers.py:259] Engine 000: Avg prompt throughput: 1562.3 tokens/s, Avg generation throughput: 111.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.2%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:26:42 [loggers.py:259] Engine 000: Avg prompt throughput: 743.5 tokens/s, Avg generation throughput: 121.6 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:54226 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:49210 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:54226 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:49210 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:26:52 [loggers.py:259] Engine 000: Avg prompt throughput: 4021.5 tokens/s, Avg generation throughput: 92.3 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.2%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:27:02 [loggers.py:259] Engine 000: Avg prompt throughput: 369.0 tokens/s, Avg generation throughput: 122.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:49210 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:49210 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:27:12 [loggers.py:259] Engine 000: Avg prompt throughput: 1909.2 tokens/s, Avg generation throughput: 71.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.2%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:27:22 [loggers.py:259] Engine 000: Avg prompt throughput: 331.3 tokens/s, Avg generation throughput: 120.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:49210 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:49210 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:27:32 [loggers.py:259] Engine 000: Avg prompt throughput: 2077.2 tokens/s, Avg generation throughput: 91.2 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:27:42 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 121.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:42812 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:49210 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:27:52 [loggers.py:259] Engine 000: Avg prompt throughput: 2832.4 tokens/s, Avg generation throughput: 110.3 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:56048 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:42812 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:28:02 [loggers.py:259] Engine 000: Avg prompt throughput: 3328.9 tokens/s, Avg generation throughput: 132.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:42812 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:28:12 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 12.5 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:28:22 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:43420 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:43406 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:28:42 [loggers.py:259] Engine 000: Avg prompt throughput: 628.9 tokens/s, Avg generation throughput: 25.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:43406 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:43420 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:43406 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 03:28:52 [loggers.py:259] Engine 000: Avg prompt throughput: 764.8 tokens/s, Avg generation throughput: 85.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-28 03:29:02 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 132.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:43406 - "POST /v1/chat/completions HTTP/1.1" 200 OK

 

llama.cpp 에서는 120 넘기기도 쉽지 않았는데 vLLM이 조금더 성능이 잘 나오긴 하는건가?

약.. 10% 정도?

[ Prompt: 93.1 t/s | Generation: 122.7 t/s ]
[ Prompt: 138.6 t/s | Generation: 100.3 t/s ]
[ Prompt: 264.0 t/s | Generation: 119.6 t/s ]
[ Prompt: 1654.8 t/s | Generation: 122.1 t/s ]
[ Prompt: 1379.7 t/s | Generation: 119.8 t/s ]
[ Prompt: 2284.5 t/s | Generation: 117.7 t/s ]
[ Prompt: 2549.1 t/s | Generation: 112.2 t/s ]
[ Prompt: 1214.4 t/s | Generation: 111.4 t/s ]
[ Prompt: 803.1 t/s | Generation: 115.3 t/s ]

 

+

gemma를 시도하려고 했는데 에러남. qwen은 되더니 쳇

nvidia@nvidia:~$ docker run --pull=always --rm -it   --network host   --shm-size=16g   --ulimit memlock=-1   --ulimit stack=67108864   --runtime=nvidia   --name=vllm   -v $HOME/data/models/huggingface:/root/.cache/huggingface   ghcr.io/nvidia-ai-iot/vllm:latest-jetson-thor   vllm serve google/gemma-4-31B-it 

nvidia@nvidia:~$ docker run --pull=always --rm -it   --network host   --shm-size=16g   --ulimit memlock=-1   --ulimit stack=67108864   --runtime=nvidia   --name=vllm   -v $HOME/data/models/huggingface:/root/.cache/huggingface   ghcr.io/nvidia-ai-iot/vllm:latest-jetson-thor   vllm serve google/gemma-4-E4B-it
latest-jetson-thor: Pulling from nvidia-ai-iot/vllm
Digest: sha256:b587dd56b4cb076209ad5156a626ac75f5a976d0e8e7d1e6a9fccd56d1bd65e8
Status: Image is up to date for ghcr.io/nvidia-ai-iot/vllm:latest-jetson-thor
/opt/venv/lib/python3.12/site-packages/transformers/utils/hub.py:110: FutureWarning: Using `TRANSFORMERS_CACHE` is deprecated and will be removed in v5 of Transformers. Use `HF_HOME` instead.
  warnings.warn(
(APIServer pid=1) INFO 07-28 03:40:47 [utils.py:299] 
(APIServer pid=1) INFO 07-28 03:40:47 [utils.py:299]        █     █     █▄   ▄█
(APIServer pid=1) INFO 07-28 03:40:47 [utils.py:299]  ▄▄ ▄█ █     █     █ ▀▄▀ █  version 0.19.0
(APIServer pid=1) INFO 07-28 03:40:47 [utils.py:299]   █▄█▀ █     █     █     █  model   google/gemma-4-E4B-it
(APIServer pid=1) INFO 07-28 03:40:47 [utils.py:299]    ▀▀  ▀▀▀▀▀ ▀▀▀▀▀ ▀     ▀
(APIServer pid=1) INFO 07-28 03:40:47 [utils.py:299] 
(APIServer pid=1) INFO 07-28 03:40:47 [utils.py:233] non-default args: {'model_tag': 'google/gemma-4-E4B-it', 'model': 'google/gemma-4-E4B-it'}
config.json: 5.14kB [00:00, 18.5MB/s]
(APIServer pid=1) Traceback (most recent call last):
(APIServer pid=1)   File "/opt/venv/bin/vllm", line 10, in <module>
(APIServer pid=1)     sys.exit(main())
(APIServer pid=1)              ^^^^^^
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/vllm/entrypoints/cli/main.py", line 75, in main
(APIServer pid=1)     args.dispatch_function(args)
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/vllm/entrypoints/cli/serve.py", line 122, in cmd
(APIServer pid=1)     uvloop.run(run_server(args))
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/uvloop/__init__.py", line 96, in run
(APIServer pid=1)     return __asyncio.run(
(APIServer pid=1)            ^^^^^^^^^^^^^^
(APIServer pid=1)   File "/root/.local/share/uv/python/cpython-3.12.13-linux-aarch64-gnu/lib/python3.12/asyncio/runners.py", line 195, in run
(APIServer pid=1)     return runner.run(main)
(APIServer pid=1)            ^^^^^^^^^^^^^^^^
(APIServer pid=1)   File "/root/.local/share/uv/python/cpython-3.12.13-linux-aarch64-gnu/lib/python3.12/asyncio/runners.py", line 118, in run
(APIServer pid=1)     return self._loop.run_until_complete(task)
(APIServer pid=1)            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(APIServer pid=1)   File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/uvloop/__init__.py", line 48, in wrapper
(APIServer pid=1)     return await main
(APIServer pid=1)            ^^^^^^^^^^
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/vllm/entrypoints/openai/api_server.py", line 670, in run_server
(APIServer pid=1)     await run_server_worker(listen_address, sock, args, **uvicorn_kwargs)
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/vllm/entrypoints/openai/api_server.py", line 684, in run_server_worker
(APIServer pid=1)     async with build_async_engine_client(
(APIServer pid=1)                ^^^^^^^^^^^^^^^^^^^^^^^^^^
(APIServer pid=1)   File "/root/.local/share/uv/python/cpython-3.12.13-linux-aarch64-gnu/lib/python3.12/contextlib.py", line 210, in __aenter__
(APIServer pid=1)     return await anext(self.gen)
(APIServer pid=1)            ^^^^^^^^^^^^^^^^^^^^^
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/vllm/entrypoints/openai/api_server.py", line 100, in build_async_engine_client
(APIServer pid=1)     async with build_async_engine_client_from_engine_args(
(APIServer pid=1)                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(APIServer pid=1)   File "/root/.local/share/uv/python/cpython-3.12.13-linux-aarch64-gnu/lib/python3.12/contextlib.py", line 210, in __aenter__
(APIServer pid=1)     return await anext(self.gen)
(APIServer pid=1)            ^^^^^^^^^^^^^^^^^^^^^
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/vllm/entrypoints/openai/api_server.py", line 124, in build_async_engine_client_from_engine_args
(APIServer pid=1)     vllm_config = engine_args.create_engine_config(usage_context=usage_context)
(APIServer pid=1)                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/vllm/engine/arg_utils.py", line 1549, in create_engine_config
(APIServer pid=1)     model_config = self.create_model_config()
(APIServer pid=1)                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/vllm/engine/arg_utils.py", line 1398, in create_model_config
(APIServer pid=1)     return ModelConfig(
(APIServer pid=1)            ^^^^^^^^^^^^
(APIServer pid=1)   File "/opt/venv/lib/python3.12/site-packages/pydantic/_internal/_dataclasses.py", line 121, in __init__
(APIServer pid=1)     s.__pydantic_validator__.validate_python(ArgsKwargs(args, kwargs), self_instance=s)
(APIServer pid=1) pydantic_core._pydantic_core.ValidationError: 1 validation error for ModelConfig
(APIServer pid=1)   Value error, The checkpoint you are trying to load has model type `gemma4` but Transformers does not recognize this architecture. This could be because of an issue with the checkpoint, or because your version of Transformers is out of date.
(APIServer pid=1) 
(APIServer pid=1) You can update Transformers with the command `pip install --upgrade transformers`. If this does not work, and the checkpoint is very new, then there may not be a release version that supports this model yet. In this case, you can get the most up-to-date code by installing Transformers from source with the command `pip install git+https://github.com/huggingface/transformers.git` [type=value_error, input_value=ArgsKwargs((), {'model': ...nderer_num_workers': 1}), input_type=ArgsKwargs]
(APIServer pid=1)     For further information visit https://errors.pydantic.dev/2.12/v/value_error

 

아무튼 thor용 gemma4를 받아서 해봐야지 머

docker pull ghcr.io/nvidia-ai-iot/vllm:gemma4-jetson-thor

[링크 : https://github.com/orgs/nvidia-ai-iot/packages/container/vllm/784603821?tag=gemma4-jetson-thor]

 

받는지 티가 안나서 일단 hf_token 추가해줬는데 로그 상으로는 차이가 별로 없다.(한 줄?)

btop 해서 보니 열심히 다운로드 받는 중.

nvidia@nvidia:~$ docker run --pull=always --rm -it   --network host   --shm-size=16g   --ulimit memlock=-1   --ulimit stack=67108864   --runtime=nvidia   --name=vllm_gemma4   -v $HOME/data/models/huggingface:/root/.cache/huggingface   ghcr.io/nvidia-ai-iot/vllm:gemma4-jetson-thor   vllm serve google/gemma-4-E4B-it
gemma4-jetson-thor: Pulling from nvidia-ai-iot/vllm
Digest: sha256:570f9a5ffa89a772226abcc98c2d358a56ec3f755c97bc079c7f2396ffe62260
Status: Image is up to date for ghcr.io/nvidia-ai-iot/vllm:gemma4-jetson-thor
(APIServer pid=1) INFO 07-28 04:38:44 [utils.py:299] 
(APIServer pid=1) INFO 07-28 04:38:44 [utils.py:299]        █     █     █▄   ▄█
(APIServer pid=1) INFO 07-28 04:38:44 [utils.py:299]  ▄▄ ▄█ █     █     █ ▀▄▀ █  version 0.19.0
(APIServer pid=1) INFO 07-28 04:38:44 [utils.py:299]   █▄█▀ █     █     █     █  model   google/gemma-4-E4B-it
(APIServer pid=1) INFO 07-28 04:38:44 [utils.py:299]    ▀▀  ▀▀▀▀▀ ▀▀▀▀▀ ▀     ▀
(APIServer pid=1) INFO 07-28 04:38:44 [utils.py:299] 
(APIServer pid=1) INFO 07-28 04:38:44 [utils.py:233] non-default args: {'model_tag': 'google/gemma-4-E4B-it', 'model': 'google/gemma-4-E4B-it'}
(APIServer pid=1) Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
config.json: 5.14kB [00:00, 12.9MB/s]
processor_config.json: 1.69kB [00:00, 4.13MB/s]
(APIServer pid=1) INFO 07-28 04:38:54 [model.py:549] Resolved architecture: Gemma4ForConditionalGeneration
(APIServer pid=1) INFO 07-28 04:38:54 [model.py:1678] Using max model len 131072
(APIServer pid=1) INFO 07-28 04:38:54 [config.py:104] Gemma4 model has heterogeneous head dimensions (head_dim=256, global_head_dim=512). Forcing TRITON_ATTN backend to prevent mixed-backend numerical divergence.
(APIServer pid=1) INFO 07-28 04:38:54 [vllm.py:790] Asynchronous scheduling is enabled.
tokenizer_config.json: 3.08kB [00:00, 8.20MB/s]
tokenizer.json: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 32.2M/32.2M [00:05<00:00, 5.53MB/s]
chat_template.jinja: 18.6kB [00:00, 26.0MB/s]
generation_config.json: 100%|████████████████████████████████████████████████████████████████████████████████████████████| 208/208 [00:00<00:00, 809kB/s]
(EngineCore pid=128) INFO 07-28 04:40:14 [core.py:105] Initializing a V1 LLM engine (v0.19.0) with config: model='google/gemma-4-E4B-it', speculative_config=None, tokenizer='google/gemma-4-E4B-it', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.bfloat16, max_seq_len=131072, download_dir=None, load_format=auto, tensor_parallel_size=1, pipeline_parallel_size=1, data_parallel_size=1, decode_context_parallel_size=1, dcp_comm_backend=ag_rs, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, enable_return_routed_experts=False, kv_cache_dtype=auto, device_config=cuda, structured_outputs_config=StructuredOutputsConfig(backend='auto', disable_any_whitespace=False, disable_additional_properties=False, reasoning_parser='', reasoning_parser_plugin='', enable_in_reasoning=False), observability_config=ObservabilityConfig(show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None, kv_cache_metrics=False, kv_cache_metrics_sample=0.01, cudagraph_metrics=False, enable_layerwise_nvtx_tracing=False, enable_mfu_metrics=False, enable_mm_processor_stats=False, enable_logging_iteration_details=False), seed=0, served_model_name=google/gemma-4-E4B-it, enable_prefix_caching=True, enable_chunked_prefill=True, pooler_config=None, compilation_config={'mode': <CompilationMode.VLLM_COMPILE: 3>, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['none'], 'splitting_ops': ['vllm::unified_attention', 'vllm::unified_attention_with_output', 'vllm::unified_mla_attention', 'vllm::unified_mla_attention_with_output', 'vllm::mamba_mixer2', 'vllm::mamba_mixer', 'vllm::short_conv', 'vllm::linear_attention', 'vllm::plamo2_mamba_mixer', 'vllm::gdn_attention_core', 'vllm::olmo_hybrid_gdn_full_forward', 'vllm::kda_attention', 'vllm::sparse_attn_indexer', 'vllm::rocm_aiter_sparse_attn_indexer', 'vllm::unified_kv_cache_update', 'vllm::unified_mla_kv_cache_update'], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_images_per_batch': 0, 'compile_sizes': [], 'compile_ranges_endpoints': [2048], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'size_asserts': False, 'alignment_asserts': False, 'scalar_asserts': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': <CUDAGraphMode.FULL_AND_PIECEWISE: (2, 1)>, 'cudagraph_num_of_warmups': 1, 'cudagraph_capture_sizes': [1, 2, 4, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464, 480, 496, 512], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': False, 'fuse_act_quant': False, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False}, 'max_cudagraph_capture_size': 512, 'dynamic_shapes_config': {'type': <DynamicShapesType.BACKED: 'backed'>, 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': True, 'static_all_moe_layers': []}
(EngineCore pid=128) Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
(EngineCore pid=128) INFO 07-28 04:40:20 [parallel_state.py:1400] world_size=1 rank=0 local_rank=0 distributed_init_method=tcp://192.168.40.202:38135 backend=nccl
(EngineCore pid=128) INFO 07-28 04:40:20 [parallel_state.py:1716] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A
(EngineCore pid=128) INFO 07-28 04:40:42 [gpu_model_runner.py:4735] Starting to load model google/gemma-4-E4B-it...
(EngineCore pid=128) INFO 07-28 04:40:42 [vllm.py:790] Asynchronous scheduling is enabled.
(EngineCore pid=128) INFO 07-28 04:40:42 [cuda.py:274] Using AttentionBackendEnum.TRITON_ATTN backend.
(EngineCore pid=128) INFO 07-28 04:40:43 [cuda.py:274] Using AttentionBackendEnum.TRITON_ATTN backend.

 

gemma4-e4b-it-q4_k_m 이 40t/s 정도 나왔는데 반해, vLLM 에서는 오히려 저조하게 나오는 듯 하다.

(APIServer pid=1) INFO 07-28 05:50:55 [loggers.py:259] Engine 000: Avg prompt throughput: 273.3 tokens/s, Avg generation throughput: 2.4 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 47.3%
(APIServer pid=1) INFO:     127.0.0.1:53598 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:53598 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:47762 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 05:51:05 [loggers.py:259] Engine 000: Avg prompt throughput: 52.8 tokens/s, Avg generation throughput: 32.0 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 63.2%
(APIServer pid=1) INFO:     127.0.0.1:53600 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 05:51:15 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 30.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 63.2%
(APIServer pid=1) INFO 07-28 05:51:25 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 24.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 63.2%
(APIServer pid=1) INFO:     127.0.0.1:57762 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:47762 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:57762 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:47762 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 05:51:35 [loggers.py:259] Engine 000: Avg prompt throughput: 154.2 tokens/s, Avg generation throughput: 40.7 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 75.0%
(APIServer pid=1) INFO 07-28 05:51:45 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 24.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 75.0%
(APIServer pid=1) INFO 07-28 05:51:55 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 23.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 75.0%
(APIServer pid=1) INFO 07-28 05:52:05 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 23.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 75.0%
(APIServer pid=1) INFO:     127.0.0.1:39358 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 05:52:15 [loggers.py:259] Engine 000: Avg prompt throughput: 172.7 tokens/s, Avg generation throughput: 31.3 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.4%, Prefix cache hit rate: 76.3%
(APIServer pid=1) INFO:     127.0.0.1:57762 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-28 05:52:25 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 26.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 76.3%
(APIServer pid=1) INFO 07-28 05:52:35 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 23.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 76.3%
(APIServer pid=1) INFO 07-28 05:52:45 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 23.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.3%, Prefix cache hit rate: 76.3%
(APIServer pid=1) INFO 07-28 05:52:55 [loggers.py:259] Engine 000: Avg prompt throughput: 213.4 tokens/s, Avg generation throughput: 23.2 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.1%, Prefix cache hit rate: 72.6%

[링크 : https://huggingface.co/google/gemma-4-E4B-it]

[링크 : https://huggingface.co/google/gemma-4-31B-it]

[링크 : https://huggingface.co/Qwen/Qwen3.6-35B-A3B]

 

+

docker로 하나 돌고 있는 상황에서 하나더 돌리려고 하니 이런 에러가 난다.

110GiB를 먹고 시작하겠다.. 라는 패기라니.. ㄷㄷ

(EngineCore pid=127) ValueError: Free memory on device cuda:0 (42.65/122.8 GiB) on startup is less than desired GPU memory utilization (0.9, 110.52 GiB). Decrease GPU memory utilization or reduce GPU memory used by other processes.
[rank0]:[W728 04:30:09.155450975 ProcessGroupNCCL.cpp:1553] Warning: WARNING: destroy_process_group() was not called before program exit, which can leak resources. For more info, please see https://pytorch.org/docs/stable/distributed.html#shutdown (function operator())

 

 

+

20276.07.29

google/gemma-4-31B-it

$ docker run --pull=always --rm -it   --network host   --shm-size=16g   --ulimit memlock=-1   --ulimit stack=67108864   --runtime=nvidia   --name=vllm   -v $HOME/data/models/huggingface:/data/models/huggingface   ghcr.io/nvidia-ai-iot/vllm:gemma4-jetson-thor   vllm serve google/gemma-4-31B-it --enable-auto-tool-choice --tool-call-parser hermes
gemma4-jetson-thor: Pulling from nvidia-ai-iot/vllm

 

하나만 해서 하면 4 token/s 나오는데

두개 띄워놓고 동시에 갈궈대면 먼가 뻥튀기 되는 느낌?

(APIServer pid=1) INFO:     127.0.0.1:44406 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:51624 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:13:31 [loggers.py:259] Engine 000: Avg prompt throughput: 26.9 tokens/s, Avg generation throughput: 0.3 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 4.7%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:51620 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:51624 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:13:41 [loggers.py:259] Engine 000: Avg prompt throughput: 552.2 tokens/s, Avg generation throughput: 5.8 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 47.1%
(APIServer pid=1) INFO:     127.0.0.1:50062 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:50076 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:13:51 [loggers.py:259] Engine 000: Avg prompt throughput: 6.3 tokens/s, Avg generation throughput: 8.1 tokens/s, Running: 4 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.8%, Prefix cache hit rate: 64.3%
(APIServer pid=1) INFO:     127.0.0.1:51620 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:50070 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:50070 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:51620 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:14:01 [loggers.py:259] Engine 000: Avg prompt throughput: 43.0 tokens/s, Avg generation throughput: 11.8 tokens/s, Running: 3 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.5%, Prefix cache hit rate: 71.8%
(APIServer pid=1) INFO:     127.0.0.1:50988 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:51624 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:50070 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:14:11 [loggers.py:259] Engine 000: Avg prompt throughput: 38.1 tokens/s, Avg generation throughput: 12.3 tokens/s, Running: 4 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.9%, Prefix cache hit rate: 80.2%
(APIServer pid=1) INFO:     127.0.0.1:51256 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:14:21 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 15.0 tokens/s, Running: 5 reqs, Waiting: 0 reqs, GPU KV cache usage: 4.4%, Prefix cache hit rate: 82.6%
(APIServer pid=1) INFO:     127.0.0.1:50076 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:51624 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:51624 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:14:31 [loggers.py:259] Engine 000: Avg prompt throughput: 28.9 tokens/s, Avg generation throughput: 14.6 tokens/s, Running: 3 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.9%, Prefix cache hit rate: 82.5%
(APIServer pid=1) INFO:     127.0.0.1:50070 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:50988 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:14:41 [loggers.py:259] Engine 000: Avg prompt throughput: 41.5 tokens/s, Avg generation throughput: 13.6 tokens/s, Running: 3 reqs, Waiting: 0 reqs, GPU KV cache usage: 4.2%, Prefix cache hit rate: 83.9%
(APIServer pid=1) INFO:     127.0.0.1:51624 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:14:51 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 9.8 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.3%, Prefix cache hit rate: 83.9%
(APIServer pid=1) INFO 07-29 01:15:01 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 7.8 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.3%, Prefix cache hit rate: 83.9%
(APIServer pid=1) INFO 07-29 01:15:11 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 7.6 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.4%, Prefix cache hit rate: 83.9%
(APIServer pid=1) INFO 07-29 01:15:21 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 7.6 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.5%, Prefix cache hit rate: 83.9%
(APIServer pid=1) INFO 07-29 01:15:31 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 7.6 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.5%, Prefix cache hit rate: 83.9%
(APIServer pid=1) INFO 07-29 01:15:41 [loggers.py:259] Engine 000: Avg prompt throughput: 31.2 tokens/s, Avg generation throughput: 7.4 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.8%, Prefix cache hit rate: 83.4%
(APIServer pid=1) INFO 07-29 01:15:51 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 7.8 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.9%, Prefix cache hit rate: 83.4%
(APIServer pid=1) INFO:     127.0.0.1:51256 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:16:01 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 6.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.6%, Prefix cache hit rate: 83.4%
(APIServer pid=1) INFO 07-29 01:16:11 [loggers.py:259] Engine 000: Avg prompt throughput: 56.1 tokens/s, Avg generation throughput: 3.7 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.4%, Prefix cache hit rate: 82.5%
(APIServer pid=1) INFO 07-29 01:16:21 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.5%, Prefix cache hit rate: 82.5%
(APIServer pid=1) INFO:     127.0.0.1:50070 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:16:31 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.6 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 82.5%
(APIServer pid=1) INFO 07-29 01:16:41 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 82.5%
(APIServer pid=1) INFO:     127.0.0.1:55952 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:43:01 [loggers.py:259] Engine 000: Avg prompt throughput: 37.9 tokens/s, Avg generation throughput: 0.6 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.6%, Prefix cache hit rate: 83.7%
(APIServer pid=1) INFO 07-29 01:43:11 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.6%, Prefix cache hit rate: 83.7%
(APIServer pid=1) INFO:     127.0.0.1:58160 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:43:21 [loggers.py:259] Engine 000: Avg prompt throughput: 68.3 tokens/s, Avg generation throughput: 5.9 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 4.1%, Prefix cache hit rate: 84.4%
(APIServer pid=1) INFO 07-29 01:43:31 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 7.8 tokens/s, Running: 2 reqs, Waiting: 0 reqs, GPU KV cache usage: 4.1%, Prefix cache hit rate: 84.4%
(APIServer pid=1) INFO:     127.0.0.1:55952 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:43:41 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.6%, Prefix cache hit rate: 84.4%

 

+

Qwen3.6-35B-A3B

docker run --pull=always --rm -it   --network host   --shm-size=16g   --ulimit memlock=-1   --ulimit stack=67108864   --runtime=nvidia   --name=vllm   -v $HOME/data/models/huggingface:/data/models/huggingface   ghcr.io/nvidia-ai-iot/vllm:latest-jetson-thor   vllm serve Qwen/Qwen3.6-35B-A3B --enable-auto-tool-choice --tool-call-parser hermes

 

단독 사용

(APIServer pid=1) INFO 07-29 01:59:09 [loggers.py:259] Engine 000: Avg prompt throughput: 1250.0 tokens/s, Avg generation throughput: 31.8 tokens/s, Running: 3 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.9%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-29 01:59:19 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 60.6 tokens/s, Running: 3 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.9%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:55540 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 01:59:29 [loggers.py:259] Engine 000: Avg prompt throughput: 689.5 tokens/s, Avg generation throughput: 50.7 tokens/s, Running: 4 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.1%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-29 01:59:39 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 81.2 tokens/s, Running: 4 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.1%, Prefix cache hit rate: 0.0%

 

2개 창에서 2~3개씩 쌓고 함

(APIServer pid=1) INFO:     127.0.0.1:58426 - "GET /v1/models HTTP/1.1" 200 OK
(APIServer pid=1) INFO:     127.0.0.1:47306 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 02:01:59 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 71.1 tokens/s, Running: 4 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.5%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:36898 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 02:02:09 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 70.2 tokens/s, Running: 3 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.3%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-29 02:02:19 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 60.6 tokens/s, Running: 3 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.3%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:40588 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 02:02:29 [loggers.py:259] Engine 000: Avg prompt throughput: 833.0 tokens/s, Avg generation throughput: 48.0 tokens/s, Running: 4 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.6%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:47322 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 02:02:39 [loggers.py:259] Engine 000: Avg prompt throughput: 35.4 tokens/s, Avg generation throughput: 78.2 tokens/s, Running: 4 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.5%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO:     127.0.0.1:46268 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=1) INFO 07-29 02:02:49 [loggers.py:259] Engine 000: Avg prompt throughput: 930.4 tokens/s, Avg generation throughput: 55.1 tokens/s, Running: 5 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.8%, Prefix cache hit rate: 0.0%
(APIServer pid=1) INFO 07-29 02:02:59 [loggers.py:259] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 67.0 tokens/s, Running: 5 reqs, Waiting: 0 reqs, GPU KV cache usage: 1.8%, Prefix cache hit rate: 0.0%