Step1 モデルのダウンロード
🏆Qwen3-Coder-480B-A35B-Instruct GitHub
※ FP8版なら最低限必要なVRAM(≒GPU数)が半減できて嬉しい(約960GB→480GB)
Note
「"Give Me BF16 or Give Me Death"? Accuracy-Performance Trade-Offs in LLM Quantization」
https://arxiv.org/abs/2411.02355 等を見る限り、推論において BF16→FP8 は、ほぼ無劣化
ゆえにベンチマークで比較するまでもないのだろう
スパコンへの直接ダウンロード方法
事前準備
Pythonモジュール
pip install - U "huggingface_hub[cli]"
pip install - U hf_transfer
Hugging Face CLIのログイン
hfトークン設定後の確認
以下のbashファイルを編集してhf_downloader.shとして保存
DEST=/work/YOUR_PROJECT_ID/YOUR_USER_ID/models/Qwen3-Coder-480B-A35B-Instruct-FP8
mkdir -p " $DEST "
# ダウンロード
hf download Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 --local-dir " $DEST "
実行許可
chmod +x hf_downloader.sh
Caution
vLLMデフォルトのHFキャッシュは~/.cache/huggingface/だが約480GBのLLMの重みを/homeには置けないので、 /work以下のあるフォルダに
HuggingFaceから全ファイルをダウンロードすべき
例:/work/PROJECT_ID/USER_ID/Qwen3-Coder-480B-A35B-Instruct-FP8/
さらにvllm serveの引数--download-dirをセット(後述)
vLLM args一覧
Step2 vLLMでのサービング
1ノードであればPython経由でuv pip install でvllmのPre-build wheelsを使えて楽 詳細
uv venv --python 3.12 --seed
source .venv/bin/activate
GH200でなければ下記は--torch-backend=autoで構わない
uv pip install vllm --torch-backend=cu126
(or UV_TORCH_BACKEND=cu126)
https://github.com/vllm-project/vllm/releases/tag/v0.10.0 にあるCUDA12.6のPre-build wheelを使えそう
Install vLLM with a specific CUDA version (e.g., 11.8 or 12.6).
export VLLM_VERSION=$( curl -s https://api.github.com/repos/vllm-project/vllm/releases/latest | jq -r .tag_name | sed ' s/^v//' )
export CUDA_VERSION=126
uv pip install https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION} /vllm-${VLLM_VERSION} +cu${CUDA_VERSION} -cp38-abi3-manylinux1_x86_64.whl --extra-index-url https://download.pytorch.org/whl/cu${CUDA_VERSION}
vLLMのマルチノード分散サービング
マルチノード分散の場合Rayクラスタの構築方法
上記のリンクにある./multi-node-serving.sh を Head nodeで実行後 各 Worker node でHead nodeの IPアドレスを渡して実行.
Head node
./multi-node-serving.sh leader --ray_port=6379 --ray_cluster_size=8 [< extra ray args> ] && \
python3 -m vllm.entrypoints.openai.api_server --port 8080 --model Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 --pipeline-parallel-size 8 --max-model-len 8000 --download-dir /work/PROJECT_ID/USER_ID/Qwen3-Coder-480B-A35B-Instruct-FP8
InfiniBand等高速なノード間通信があればTensor並列も有効
Worker nodes
./multi-node-serving.sh worker --ray_address=< HEAD_NODE_IP> --ray_port=6379 [< extra ray args> ]
最低限必要な引数は以下(コンテキスト長 8000は控え目。256Kに近づけたい)
vllm serve Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 \
--tensor-parallel-size 8 \
--enable-expert-parallel \
--max-model-len 8000 \
--download-dir /work/PROJECT_ID/USER_ID/Qwen3-Coder-480B-A35B-Instruct-FP8 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder
https://x.com/vllm_project/status/1947780382847603053
他の参考
Note
Miyabi-GのGH200は各ノード1GPUなのでTensor並列よりPipeline並列の方が良いかもしれない
Step3 Qwen Code CLIへの接続
vLLM自体がOpenAI互換なので、以下のように環境変数をセットした後
export OPENAI_API_KEY=" dummy"
export OPENAI_BASE_URL=" http://<ローカルサーバのIP>:8080/v1"
export OPENAI_MODEL=" Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8"
以下のコマンドでQwen Code CLIを起動すれば良い
Step1 モデルのダウンロード
🏆Qwen3-Coder-480B-A35B-Instruct GitHub
※ FP8版なら最低限必要なVRAM(≒GPU数)が半減できて嬉しい(約960GB→480GB)
Note
「"Give Me BF16 or Give Me Death"? Accuracy-Performance Trade-Offs in LLM Quantization」
https://arxiv.org/abs/2411.02355 等を見る限り、推論において BF16→FP8 は、ほぼ無劣化
ゆえにベンチマークで比較するまでもないのだろう
スパコンへの直接ダウンロード方法
事前準備
Pythonモジュール
Hugging Face CLIのログイン
hfトークン設定後の確認
以下のbashファイルを編集して
hf_downloader.shとして保存実行許可
Caution
vLLMデフォルトのHFキャッシュは
~/.cache/huggingface/だが約480GBのLLMの重みを/homeには置けないので、/work以下のあるフォルダにHuggingFaceから全ファイルをダウンロードすべき
例:
/work/PROJECT_ID/USER_ID/Qwen3-Coder-480B-A35B-Instruct-FP8/さらに
vllm serveの引数--download-dirをセット(後述)vLLM args一覧
Step2 vLLMでのサービング
1ノードであればPython経由でuv pip install でvllmのPre-build wheelsを使えて楽 詳細
GH200でなければ下記は
--torch-backend=autoで構わない(or UV_TORCH_BACKEND=cu126)
https://github.com/vllm-project/vllm/releases/tag/v0.10.0 にあるCUDA12.6のPre-build wheelを使えそう
Install vLLM with a specific CUDA version (e.g., 11.8 or 12.6).
Warning
不老のマルチノード環境ではDockerイメージをsingularityに変換して使用したが
GH200(aarch64/Arm64)は、別のDockerコンテナが必要
latestのビルドが4ヶ月前なのでPre-build版は非推奨(Qwen3-Coder等の最新モデルには未対応)
https://docs.vllm.ai/en/stable/deployment/docker.html#building-for-arm64aarch64
vLLMのマルチノード分散サービング
マルチノード分散の場合Rayクラスタの構築方法
上記のリンクにある
./multi-node-serving.shを Head nodeで実行後 各 Worker node でHead nodeの IPアドレスを渡して実行.Head node
InfiniBand等高速なノード間通信があればTensor並列も有効
Worker nodes
最低限必要な引数は以下(コンテキスト長 8000は控え目。256Kに近づけたい)
https://x.com/vllm_project/status/1947780382847603053
他の参考
Note
Miyabi-GのGH200は各ノード1GPUなのでTensor並列よりPipeline並列の方が良いかもしれない
Step3 Qwen Code CLIへの接続
vLLM自体がOpenAI互換なので、以下のように環境変数をセットした後
以下のコマンドでQwen Code CLIを起動すれば良い