MiaAI-Lab/Qwen3.8-27B-SGLang-DGX-Spark
Qwen3.8 27B on SGLang for DGX Spark
このリポジトリの機能
MiaAI‑Lab は、NVIDIA DGX Spark(aarch64、128 GBの統合メモリ)上で SGLang を使用して Qwen 3.8 27B の大規模言語モデルを実行するための、すぐに実行可能な Docker スクリプトを提供しています。このリポジトリには以下のものが含まれます:
- 3つの予測デコードエンジン(EAGLE/MTP、DSpark、DFlash2)用の Docker ベースの起動スクリプト。それぞれ DGX Spark ハードウェアに最適化されています。
- README に記載されたパフォーマンス数値を再現するための、小さなベンチマークユーティリティ(
bench/)。 - コンテキスト長(最大 1 M トークン)、並行処理数(最大 10 件の同時リクエスト)、量子化モード、CPU ピニングを調整できる設定ヘルパー(
.env.sample、起動スクリプト)。 - 著者のマシンで測定された最良の遅延/スループットを得るために使用した、ハードウェア固有のフラグのドキュメント。
要するに、このリポジトリは、専用の NVIDIA サーバー上で 270 億パラメータの LLM を高速で実行するための デプロイメントキット です。
どのユーザーが利用するか
| ターゲット | 重要性 |
|---|---|
| MLエンジニア / リサーチオペス:NVIDIA DGX Spark ハードウェア上で Qwen 3.8 27B をベンチマークまたはデプロイする必要がある人。 | |
| AIプロダクトチーム:低遅延推論を必要とするチャットエージェント、コードアシスタント、ツールコールサービスを構築している人。 | |
| パフォーマンスチューニング愛好家:SGLang の予測デコーダー(EAGLE/MTP、DSpark、DFlash2)をハードウェア固有の設定(CPUセットピンニング、FP8 KVキャッシュ、メモリ割合チューニング)と組み合わせる具体的な例を知りたい人。 | |
下流アプリケーション開発者(例:RAGパイプライン、自律エージェント):標準の OpenAI 互換 /v1/models エンドポイントから配信されたモデルを呼び出すことができる人。 |
すぐに始めよう(クイックスタート)
- リポジトリをクローンし、サンプル環境ファイルをコピーします:
git clone https://github.com/MiaAI-Lab/Qwen3.8-27B-SGLang-DGX-Spark.git cd Qwen3.8-27B-SGLang-DGX-Spark cp .env.sample .env # デフォルト設定を持つ .env を作成 - DockerがGPUを認識できるか確認(NVIDIA Container Toolkitがインストール済み)し、Hugging Faceのアクセストークンを
HF_TOKENとしてエクスポートします。 - エンジンを選択して起動します:
スクリプトは適切な SGLang イメージを取得し、Qwen チェックポイントを# デフォルト:DSpark(コード系ワークロードで最速) ./start-dspark.sh # オプション:従来の EAGLE/MTP 予測デコード ./start.sh # オプション:DFlash2(短いチャットや長文執筆に適している) ./start-dflash.sh./.cache/huggingfaceにダウンロード(約24 GB)して、ポート8888でリッスンするコンテナを起動します。 - サーバーをテストします:
モデル名curl http://127.0.0.1:8888/v1/modelsqwen3.8-27b-sglangが準備完了していることを確認するJSONペイロードが返されるはずです。 - 使用終了時にサービスを停止します:
./stop.sh
変更可能な設定(構成)
変数(.env またはシェル環境変数) |
デフォルト | 機能 |
|---|---|---|
YARN |
0 |
コンテキスト長が 262 K トークンを超える場合に YaRN rope スケーリングを有効化。ネイティブウィンドウを超える長さでは必須。 |
CONTEXT_LENGTH |
262144 |
トークンウィンドウサイズ(262 K – 1 M)。大きなウィンドウには YARN=1 が必要。 |
MAX_CONCURRENT_REQUESTS |
10 |
同時API呼び出し数。GDNステートプールのサイズにも影響。 |
QUANT |
nvfp4 |
チェックポイントバリアントを選択:nvfp4(密度BF16ヘッド)、nvfp4-fp4(パックFP4ヘッド)、fp8(FP8重み)、bf16(フルBF16)。すべて128 GBメモリ予算に収まる。 |
CPUSET |
5-9,15-19 |
コンテナを DGX Spark の10個の高性能 Cortex‑X5 コアにピン止めし、低速な A725 コアは空きに保つ。 |
SPEC_STEPS / SPEC_TOPK / SPEC_DRAFT |
3 / 1 / 4 |
EAGLE/MTP 予測デコーダーのチューニング用ノブ。DSpark と DFlash2 エンジンはこれらを無視。 |
CHUNKED_PREFILL |
8192 |
プリフィルチャンクのサイズ。このハードウェアでは大きな値で最初のトークン遅延が改善される。 |
DF_TARGET(DFlash2専用) |
nvfp4 |
DFlash2 エンジンが読み込むチェックポイントを選択(nvfp4、nvfp4-fp4、bf16)。 |
IMAGE |
エンジン固有(スクリプトを参照) | ローカルでビルドしたバリアントを使用する場合にカスタム SGLang イメージを指定可能。 |
すべての変数はコマンドラインで上書き可能。例:
MAX_CONCURRENT_REQUESTS=5 CONTEXT_LENGTH=524288 YARN=1 ./start.sh
新しい値は ./stop.sh && ./start… のサイクル後に有効になります。
測定結果(著者の DGX Spark での数値)
| エンジン | 通常の遅延(秒) – コードスニペット | 通常の遅延 – 長文エッセイ | 通常の遅延 – 短いチャット |
|---|---|---|---|
| DSpark(block‑7) | ~51.5 s(コードに最速) | ~18 s(MTPより遅い) | ~23 s(良好) |
| EAGLE/MTP | ~34.5 s | ~24 s(長文に最適) | ~21 s |
| DFlash2(NVFP4) | ~50.9 s | ~25.4 s | 29 – 67 s(トークンカウント修正後、ストリーミング短いチャットで勝利) |
すべての数値は bench/ のベンチマークスクリプトのウォールタイムであり、プリフィル、デコード、および予測ドラフトのオーバーヘッドを含む。メモリ使用量は密度BF16ヘッドで約24 GB、ドラフトモデルで約2.5 GB。パックFP4バリアントは数ギガバイト節約可能。
どのエンジンを選ぶべきか
| 目的 | 推奨スクリプト | 理由 |
|---|---|---|
| ツール呼び出しやコード生成が必要なエージェント | ./start-dspark.sh |
DSparkのblock‑7ドラフトがコード主体のプロンプトで最速のデコード速度を実現。 |
| 長文執筆(エッセイ、レポート) | ./start.sh(EAGLE/MTP) |
MTPの予測デコードが大規模で連続的な出力で優れた性能を発揮。 |
| 一般的なチャットやミックスドワークロード | ./start-dflash.sh |
DFlash2はコードとチャットのパフォーマンスをバランスよく保ち、適切なトークンカウント後、短いチャット遅延で他を上回る。 |
詳細情報の入手先
- このマシンで測定 – README内の1つのテーブルに、著者が観察したすべての遅延、メモリ割合、トークンカウントの制約が記載されています。
bench/スクリプト –ndec.py、bench.sh、ab-image.shで、自社のハードウェア上でA/B比較を再現可能。docs/– ブレインストーミングノート(brainstorms/*.md)と長期計画(plans/*.md)を含む。
TL;DR
NVIDIA DGX Spark にアクセスでき、27 Bの Qwen モデルを低遅延で実行したい場合、このリポジトリは以下の機能を提供します:
- 3つの主要な SGLang 予測デコーダー用に事前に構成された Docker イメージ。
- モデルを自動的に取得し、最適なハードウェアフラグを適用し、OpenAI互換APIを公開するスクリプト。
- コンテキスト長を最大1 Mトークンまで拡張し、最大10件の並行リクエストを実行するための簡単なスイッチ。
.env.sample をコピーし、関心のあるエンジンを選択して対応する start‑*.sh を実行するだけで、数分で Qwen 3.8 27B を配信可能になります。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト