Taknet / WS300 · AI Playbooks
AI Playbooks · Curated for MSI WS300

AI Playbooks for MSI XpertStation WS300

สรุป 15 Playbooks จาก NVIDIA DGX Station Playbooks พร้อมคำสั่งหลัก ข้อควรระวัง และหมายเหตุเฉพาะ WS300 — ตั้งแต่ LLM Serving, AI Agent, Data Science ไปจนถึงสร้างภาพ/วิดีโอ ทุกอย่างรันบน GB300 ในองค์กรของคุณ

15 Playbooksรวม ~10 ชม. ลงมือทำPlatform GB300 · DGX OS 7Data On-premise 100%
MSI XpertStation WS300
00

ก่อนเริ่ม — เตรียม WS300 ครั้งเดียว ใช้ได้ทุก Playbook

Playbooks ของ NVIDIA เขียนสำหรับ DGX Station (GB300) ซึ่งเป็นสถาปัตยกรรมเดียวกับ WS300 — เตรียมเครื่องตามนี้ก่อนจะลดปัญหาเกือบทั้งหมด

bash · Baseline setup บน WS300
# 1) อัปเดต DGX OS และตรวจ GPU
sudo apt update && sudo apt full-upgrade -y
nvidia-smi --query-gpu=index,name,uuid,compute_cap --format=csv     # GB300 = compute cap 10.3

# 2) Docker ไม่ต้องใช้ sudo + ทดสอบ GPU ใน container
sudo usermod -aG docker $USER && newgrp docker
docker run --rm --gpus all ubuntu nvidia-smi

# 3) Hugging Face CLI + token (โมเดลส่วนใหญ่ต้องใช้)
curl -LsSf https://hf.co/cli/install.sh | bash && source ~/.bashrc
hf auth login && hf auth whoami

# 4) NGC (container จาก nvcr.io) — สร้าง API key ที่ ngc.nvidia.com
docker login nvcr.io          # Username: $oauthtoken  Password: <NGC API key>
หัวข้อสิ่งที่ต้องรู้บน WS300
หน่วยความจำHBM3e 252 GB + LPDDR5X 496 GB (coherent 748 GB) — NVIDIA DGX Station อ้างอิงมี HBM สูงกว่าเล็กน้อย recipe ที่ใช้หน่วยความจำ GPU ใกล้เต็มควรเผื่อ headroom
Page size 64KKernel ของ WS300 คือ …-nvidia-64k — container บางตัว (เช่น ArangoDB/Qdrant บางเวอร์ชัน) อาจ crash ด้วย Unsupported system page size
เลือก GPUWS300 มี GB300 ตัวเดียว ใช้ --gpus all ได้ · ถ้าติดตั้ง RTX PRO เพิ่ม ให้ระบุ GB300 ด้วย --gpus '"device=<UUID>"'
Containerเลือก image ที่รองรับ Arm64 + CUDA 13 (NGC / cu130) เสมอ
พื้นที่เก็บโมเดลOS drive 2 TB (RAID 1) เต็มเร็ว — แนะนำติดตั้ง NVMe ในสล็อต CX8 (PCIe 6.0) แล้วใช้เป็นที่เก็บ ~/.cache/huggingface
เข้าใช้จากโน้ตบุ๊กใช้ NVIDIA Sync (port forward, custom apps) หรือ ssh -L <port>:localhost:<port> user@ws300
ความปลอดภัยPlaybook กลุ่ม Agent (NemoClaw, OpenShell, Healthcare) เป็น demo — ทดลองในสภาพแวดล้อมแยก ไม่เชื่อมบัญชีหรือข้อมูลจริง
01

Playbook Catalog

คลิกที่ Playbook เพื่อดูขั้นตอนและคำสั่ง · กรองตามหมวดได้

Inference⏱ 30 นาที

Serve LLMs with vLLM

ให้บริการ LLM ด้วย vLLM

Risk: ต่ำPort 8000
Inference⏱ 30 นาที

Serve LLMs with SGLang

ให้บริการ LLM ด้วย SGLang

Risk: ต่ำPort 30000
Inference⏱ 60 นาที

Quantize Models to NVFP4

ย่อโมเดลเป็น NVFP4 ด้วย Model Optimizer

Risk: กลางPort 8000
Agents & Apps⏱ 30 นาที

Claude Code with Local Inference

Coding Agent ด้วยโมเดล Local

Risk: ต่ำPort 11434
Agents & Apps⏱ 30–60 นาที

Run NemoClaw with a Local LLM

ผู้ช่วย AI ส่วนตัว (NemoClaw)

Risk: กลางPort 18789
Agents & Apps⏱ 30 นาที

Secure AI Agents with OpenShell

รัน AI Agent อย่างปลอดภัยด้วย OpenShell

Risk: กลางPort 8000 / 18789
Agents & Apps⏱ 60 นาที

Local Healthcare Agent

Healthcare Multi-Agent (Demo)

Risk: กลางPort 18789 / 11434 / 8000
Agents & Apps⏱ 15 นาที

DGX Station AI Skills & dgx-assist

สอน AI Coding Agent ให้รู้จักเครื่อง

Risk: ต่ำPort —
Agents & Apps⏱ 30 นาที

Build Knowledge Graphs with txt2kg

สร้าง Knowledge Graph จากเอกสาร

Risk: ต่ำPort 3001
Data Science & Training⏱ 45 นาที

Topic Modeling (BERTopic + cuML)

วิเคราะห์หัวข้อจากข้อความหลายสิบล้านรายการ

Risk: ต่ำPort 8888 / 8501
Data Science & Training⏱ 30 นาที

NVFP4 Pretraining with Megatron Bridge

Pretrain LLM ด้วย NVFP4

Risk: ต่ำPort —
Data Science & Training⏱ 45 นาที

Isaac GR00T N1.6 Fine-Tuning

Fine-tune โมเดลหุ่นยนต์ GR00T

Risk: กลางPort —
Creative AI⏱ 2 ชั่วโมง

Images & Videos with ComfyUI

สร้างภาพและวิดีโอด้วย ComfyUI

Risk: กลางPort 8188
Infrastructure⏱ 5 นาที

Register to NVIDIA Brev

เข้าใช้ WS300 จากที่ไหนก็ได้ด้วย Brev

Risk: ต่ำPort SSH
Infrastructure⏱ 60 นาที

Connect Two Stations

เชื่อม WS300 สองเครื่องด้วย 2× 400G

Risk: กลางPort —
02

Learning Path — เริ่มจากตรงไหนดี?

โจทย์ธุรกิจPlaybook ที่ตอบโจทย์
Chatbot / ผู้ช่วยภายในองค์กร ข้อมูลไม่ออกนอกบริษัทvLLM หรือ SGLang + NemoClaw
ค้นหา/ถามตอบจากเอกสารบริษัทtxt2kg (Graph-RAG) · RAG ผ่าน AI Workbench
เพิ่ม productivity ทีมพัฒนาซอฟต์แวร์Claude Code + Local Model · AI Skills
วิเคราะห์ feedback ลูกค้าจำนวนมากTopic Modeling
ลดต้นทุน inference / รันโมเดลใหญ่ขึ้นNVFP4 Quantization
งาน Marketing / CreativeComfyUI
Robotics / Physical AIIsaac GR00T
··

Playbook Details

แต่ละหัวข้อสรุปเฉพาะคำสั่งหลัก — ตัวเลือกและ troubleshooting ฉบับเต็มอยู่ในลิงก์ NVIDIA ของแต่ละ Playbook

Inference

Serve LLMs with vLLMให้บริการ LLM ด้วย vLLM
⏱ 30 นาทีRisk ต่ำ

ตั้ง LLM server แบบ OpenAI-compatible API ที่ throughput สูง (PagedAttention + Continuous batching) — พื้นฐานของแทบทุก use case: Chatbot, RAG, Agent

สิ่งที่จะได้

  • รันโมเดลบน GB300 พร้อม endpoint http://<ws300>:8000/v1
  • ใช้แทน OpenAI API ในแอปเดิมได้ทันที
  • เลือกโมเดลจาก recipes.vllm.ai ที่ทดสอบกับ DGX Station แล้ว

ต้องเตรียม

  • Docker + NVIDIA Container Toolkit, user อยู่ในกลุ่ม docker
  • Hugging Face token (hf auth login)
  • แนะนำ NVIDIA Sync บนโน้ตบุ๊กสำหรับ start/stop และ port forward

Models: Qwen3.8-Flash-Next NVFP4 (แนะนำ) · Qwen3-235B-A22B NVFP4 · Step-3.7-Flash · DeepSeek-V4-Flash · Kimi-K2.5 1T (CPU offload) · DiffusionGemma 26B
Port: 8000

Recipe (DGX Station)Containerจุดเด่น
Qwen3.8-Flash-Next NVFP4 NVIDIA แนะนำvllm/vllm-openai:qwen38-flash-nextReasoning + tool calling · มี launch script สำหรับ NVIDIA Sync
Qwen3-235B-A22B NVFP4nvcr.io/nvidia/vllm:26.01-py3รันด้วย base config ได้ทันที
Step-3.7-Flash FP8 / NVFP4vllm/vllm-openai:stepfun37Reasoning/tool parser step3p5, KV cache FP8
DeepSeek-V4-Flashvllm/vllm-openai:v0.20.0-cu130MoE + expert parallel, เหมาะงาน Agentic
Kimi-K2.5 NVFP4 (1T)nvcr.io/nvidia/vllm:26.03-py3Offload experts ไป LPDDR5X (--cpu-offload-gb 375)
  1. ตั้งค่าตัวแปร
    bash · บน WS300
    export HF_TOKEN="hf_xxx"
    export MODEL_HANDLE="nvidia/Qwen3-235B-A22B-NVFP4"   # หรือรุ่นอื่นจากตาราง
    export MAX_MODEL_LEN=8192
  2. ดึง container (NGC)
    bash
    docker pull nvcr.io/nvidia/vllm:26.01-py3
  3. Start server (Base configuration)
    bash
    docker run -d --name vllm-server \
      --gpus all --ipc host \
      --ulimit memlock=-1 --ulimit stack=67108864 \
      -p 8000:8000 \
      -e HF_TOKEN="$HF_TOKEN" \
      -v "$HOME/.cache/huggingface/hub:/root/.cache/huggingface/hub" \
      nvcr.io/nvidia/vllm:26.01-py3 \
      vllm serve "$MODEL_HANDLE" \
        --max-model-len $MAX_MODEL_LEN \
        --gpu-memory-utilization 0.9
    
    docker logs -f vllm-server     # รอ "Application startup complete."
  4. ทดสอบ API
    bash
    curl http://localhost:8000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{"model":"'"$MODEL_HANDLE"'","messages":[{"role":"user","content":"สวัสดี แนะนำตัวหน่อย"}],"max_tokens":256}'

Cleanup: docker stop vllm-server && docker rm vllm-server

หมายเหตุสำหรับ WS300
  • WS300 มี HBM3e 252 GB (DGX Station อ้างอิงสูงสุด 288 GB) — recipe ที่ใช้ --gpu-memory-utilization 0.95 ควรเริ่มที่ 0.90 แล้วค่อยปรับ
  • Kimi-K2.5 ต้องใช้ DRAM ว่าง ≥ 375 GiB จาก LPDDR5X 496 GB — ปิดงานอื่นก่อนรัน
  • เก็บโมเดลบน NVMe สล็อต CX8 (PCIe 6.0) แทน OS drive โดย mount ไปที่ ~/.cache/huggingface
Serve LLMs with SGLangให้บริการ LLM ด้วย SGLang
⏱ 30 นาทีRisk ต่ำ

ทางเลือกของ vLLM ที่เด่นเรื่อง RadixAttention (reuse KV cache ของ prefix ที่ซ้ำ เช่น multi-turn chat, RAG, agent) และ Structured JSON output

สิ่งที่จะได้

  • OpenAI-compatible endpoint บนพอร์ต 30000
  • ทดสอบ prefix caching (#cached-token) และ JSON schema output
  • Benchmark multi-turn throughput (optional)

ต้องเตรียม

  • Docker + NVIDIA Container Toolkit
  • HF token (เฉพาะโมเดล gated)

Models: Qwen3-8B (default) · Qwen3.6-35B-A3B · Qwen3.6-27B · Llama-3.3-70B · DeepSeek-V4-Flash / Pro
Port: 30000

  1. ตั้งค่า
    bash
    export SGLANG_IMAGE="lmsysorg/sglang:latest-cu130"
    export MODEL_HANDLE="Qwen/Qwen3-8B"
    export HF_TOKEN=""
    docker pull "$SGLANG_IMAGE"
  2. Start server (ค่าที่จำเป็นบน GB300)
    bash
    docker run -d --name sglang-server \
      --gpus all --ipc host --cap-add SYS_NICE \
      --ulimit memlock=-1 --ulimit stack=67108864 \
      -p 30000:30000 -e HF_TOKEN="$HF_TOKEN" \
      -v "$HOME/.cache/huggingface/hub:/root/.cache/huggingface/hub" \
      "$SGLANG_IMAGE" \
      sglang serve --model-path "$MODEL_HANDLE" \
        --host 0.0.0.0 --port 30000 \
        --context-length 8192 --mem-fraction-static 0.85 \
        --attention-backend flashinfer --enable-cache-report
    
    docker logs -f sglang-server
  3. ทดสอบ
    bash
    curl http://localhost:30000/v1/chat/completions \
      -H "Content-Type: application/json" \
      -d '{"model":"'"$MODEL_HANDLE"'","messages":[{"role":"user","content":"Explain RAG in 3 bullets"}],"max_tokens":256}'
    
    docker logs sglang-server 2>&1 | grep "cached-token" | tail

Cleanup: docker stop sglang-server && docker rm sglang-server

หมายเหตุสำหรับ WS300
  • ต้องใช้ --attention-backend flashinfer บน GB300 (SM103) — fa3 จะ error
  • ใส่ --cap-add SYS_NICE เพื่อเลี่ยง warning NUMA affinity
Quantize Models to NVFP4ย่อโมเดลเป็น NVFP4 ด้วย Model Optimizer
⏱ 60 นาทีRisk กลาง

แปลงโมเดลเป็น NVFP4 (4-bit floating point ของ Blackwell) ลดหน่วยความจำ ~3.5× เทียบ FP16 โดยความแม่นยำใกล้ FP8 (<1% loss โดยทั่วไป)

สิ่งที่จะได้

  • Checkpoint NVFP4 ของ DeepSeek-R1-Distill-Llama-8B
  • Serve ผ่าน vLLM แล้วทดสอบด้วย API

ต้องเตรียม

  • HF token และสิทธิ์เข้าถึงโมเดล
  • พื้นที่ดิสก์หลายสิบ GB

Models: deepseek-ai/DeepSeek-R1-Distill-Llama-8B (ตัวอย่าง)
Port: 8000

  1. เตรียม
    bash
    mkdir -p ./output_models && chmod 755 ./output_models
    export HF_TOKEN="hf_xxx"
    export GPU_ID=0     # WS300 มี GB300 ตัวเดียว = 0 (ตรวจด้วย nvidia-smi)
  2. Quantize (Model Optimizer 0.41.0)
    bash
    docker run --rm -it --gpus "device=$GPU_ID" --ipc=host \
      --ulimit memlock=-1 --ulimit stack=67108864 \
      -v "./output_models:/workspace/output_models" \
      -v "$HOME/.cache/huggingface:/root/.cache/huggingface" \
      -e HF_TOKEN=$HF_TOKEN \
      nvcr.io/nvidia/vllm:25.12.post1-py3 \
      bash -c "
        git clone -b 0.41.0 --single-branch https://github.com/NVIDIA/Model-Optimizer.git /app/Model-Optimizer && \
        cd /app/Model-Optimizer && pip install -e '.[dev]' && \
        export ROOT_SAVE_PATH='/workspace/output_models' && \
        /app/Model-Optimizer/examples/llm_ptq/scripts/huggingface_example.sh \
          --model deepseek-ai/DeepSeek-R1-Distill-Llama-8B --quant nvfp4 --tasks quant"
  3. Serve & test
    bash
    export MODEL_PATH="./output_models/saved_models_DeepSeek-R1-Distill-Llama-8B_nvfp4/"
    docker run --rm -it --gpus "device=$GPU_ID" --ipc=host --network host \
      -v "$MODEL_PATH:/workspace/model" \
      nvcr.io/nvidia/vllm:25.12.post1-py3 \
      vllm serve /workspace/model --served-model-name DeepSeek-R1-Distill-Llama-8B-NVFP4 \
        --max-num-seqs 4 --max-model-len 8192 --port 8000

Cleanup: sudo rm -rf ./output_models

หมายเหตุสำหรับ WS300
  • WS300 มี GB300 ตัวเดียว ใช้ GPU_ID=0 · ถ้าติดตั้งการ์ด RTX PRO เพิ่ม ให้ตรวจ index ด้วย nvidia-smi
  • ควร evaluate คุณภาพกับข้อมูลจริงของลูกค้าก่อนใช้งาน production

Agents & Apps

Claude Code with Local InferenceCoding Agent ด้วยโมเดล Local
⏱ 30 นาทีRisk ต่ำ

ใช้ Claude Code (CLI coding agent) เชื่อมกับโมเดล Qwen3.6 27B ที่รันบน WS300 ผ่าน Ollama — เขียนโค้ดได้โดยข้อมูลไม่ออกนอกเครื่อง

สิ่งที่จะได้

  • Ollama + โมเดล qwen3.6:27b
  • สั่ง Claude Code ทำงานเขียนโค้ด/เทสต์ด้วยคำสั่งเดียว ollama launch claude

ต้องเตรียม

  • Ollama รุ่นปัจจุบันที่รองรับ ollama launch
  • Python 3 + venv

Models: qwen3.6:27b (Ollama)
Port: 11434

  1. ติดตั้ง Ollama และโมเดล
    bash
    curl -fsSL https://ollama.com/install.sh | sh
    ollama --version
    ollama pull qwen3.6:27b
    ollama run qwen3.6:27b      # ทดสอบ แล้วพิมพ์ /bye
  2. ติดตั้ง Claude Code
    bash
    curl -fsSL https://claude.ai/install.sh | bash
    claude --version
  3. (Optional) เพิ่ม context length
    bash
    sudo systemctl stop ollama
    OLLAMA_CONTEXT_LENGTH=64000 ollama serve     # เปิดค้างไว้ แล้วใช้ terminal ใหม่
  4. เริ่มใช้งาน
    bash
    mkdir -p ~/cli-agent-demo && cd ~/cli-agent-demo
    ollama launch claude --model qwen3.6:27b
    # พิมพ์: Please implement add() in math_utils.py and make sure the test passes.

Cleanup: ollama rm qwen3.6:27b && sudo systemctl stop ollama

หมายเหตุสำหรับ WS300
  • WS300 มีหน่วยความจำเหลือมาก — เพิ่ม context เป็น 64K–198K สำหรับ codebase ใหญ่ได้
  • หากจะรัน Healthcare Agent ภายหลัง ต้องหยุด Ollama บน host ก่อน (ชนพอร์ต 11434)
Run NemoClaw with a Local LLMผู้ช่วย AI ส่วนตัว (NemoClaw)
⏱ 30–60 นาทีRisk กลาง

ติดตั้ง AI Assistant แบบ always-on (OpenClaw) ใน OpenShell sandbox ใช้ inference จาก vLLM บนเครื่อง เข้าใช้ผ่าน Web UI, Terminal หรือ Telegram

สิ่งที่จะได้

  • ติดตั้งด้วยคำสั่งเดียว + Express Install
  • Web UI ที่พอร์ต 18789/18790
  • (Optional) Brave Search, Telegram bot

ต้องเตรียม

  • DGX OS อัปเดตล่าสุด, Docker 28.x+
  • sudo access
  • ใช้เครื่อง/บัญชีที่ไม่มีข้อมูลสำคัญ (demo environment)

Models: NVIDIA Nemotron 3 Ultra (Express บน Station) · DeepSeek-V4-Flash · หรือเลือกเองใน onboard
Port: 18789

  1. ตรวจระบบ
    bash
    head -n 2 /etc/os-release
    nvidia-smi
    docker info --format '{{.ServerVersion}}'
  2. ติดตั้ง (Express)
    bash
    curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
    # หรือใช้ DeepSeek-V4-Flash:
    # curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash -s -- --station-deepseek
  3. เปิด Web UI จากโน้ตบุ๊ก
    bash
    nemoclaw my-assistant dashboard-url --quiet     # บน WS300
    ssh -L <port>:127.0.0.1:<port> <user>@<ws300-ip>  # บนโน้ตบุ๊ก แล้วเปิด URL
  4. Telegram (optional)
    bash
    nemoclaw <sandbox-name> channels add telegram
    nemoclaw <sandbox-name> policy-add telegram

Cleanup: nemoclaw uninstall --yes --delete-models

หมายเหตุสำหรับ WS300
  • Nemotron 3 Ultra (550B NVFP4) ใช้หน่วยความจำสูงมาก — WS300 มี HBM 252 GB (น้อยกว่า DGX Station อ้างอิง) หากโหลดไม่ผ่านให้รัน nemoclaw onboard แล้วเลือกโมเดลที่เล็กลง
  • Agent มีความเสี่ยงด้าน data leakage / prompt injection — อย่าเชื่อมบัญชีจริงหรือข้อมูลลูกค้า
Secure AI Agents with OpenShellรัน AI Agent อย่างปลอดภัยด้วย OpenShell
⏱ 30 นาทีRisk กลาง

ห่อ OpenClaw agent ด้วย sandbox ระดับ kernel (filesystem / network / process) ควบคุมด้วย YAML policy และบังคับ inference ไปที่โมเดล local

สิ่งที่จะได้

  • OpenShell gateway (systemd user service)
  • Provider ชี้ไป vLLM บน WS300 + routing inference.local
  • ดู policy decision แบบ real-time ด้วย openshell term

ต้องเตรียม

  • Python 3.12+
  • vLLM server ที่ bind 0.0.0.0:8000 (ดู Playbook vLLM)

Models: vLLM endpoint ใดก็ได้ (Station แนะนำ Nemotron 3 Ultra served as nemotron-ultra)
Port: 8000 / 18789

  1. ติดตั้ง OpenShell
    bash
    sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker
    curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
    source ~/.bashrc
    openshell status          # ต้องเป็น Connected
    sudo loginctl enable-linger $USER
  2. สร้าง Provider + Routing
    bash
    export HARDWARE_IP="$(hostname -I | awk '{print $1}')"
    openshell provider create --name local-vllm --type openai \
      --credential OPENAI_API_KEY=not-needed \
      --config OPENAI_BASE_URL="http://${HARDWARE_IP}:8000/v1"
    openshell inference set --provider local-vllm --model <MODEL_HANDLE>
  3. สร้าง Sandbox
    bash
    export SANDBOX_NAME=openshell-demo
    openshell sandbox create --keep --tty --forward 18789 \
      --name "$SANDBOX_NAME" --from openclaw -- openclaw-start
    # Wizard: Custom Provider → https://inference.local/v1 → OpenAI-compatible
  4. ตรวจ isolation
    bash
    openshell term     # ดู allow / deny ของทุก connection

Cleanup: openshell sandbox delete "$SANDBOX_NAME" && openshell provider delete local-vllm

หมายเหตุสำหรับ WS300
  • ห้ามใช้ localhost ใน provider URL — gateway อยู่ใน Docker ต้องใช้ IP จริงของ WS300
  • Model ID ใน wizard ต้องตรงกับ --served-model-name ของ vLLM
Local Healthcare AgentHealthcare Multi-Agent (Demo)
⏱ 60 นาทีRisk กลาง

ระบบ 6 agents (Coordinator + 5 Specialists) วิเคราะห์ข้อมูลผู้ป่วย FHIR หา care gap และทำนายโครงสร้างโปรตีน 3D ด้วย OpenFold3 — ทั้งหมดรันในเครื่องภายใต้ OpenShell sandbox

สิ่งที่จะได้

  • Nemotron 3 Super (120B MoE) ผ่าน Ollama container
  • OpenFold3 NIM สำหรับ protein structure
  • ความรู้ทางคลินิกแก้ไขได้ในไฟล์ Markdown (skills)

ต้องเตรียม

  • GPU ว่าง ≥ 150 GB, ดิสก์ว่าง ≥ 200 GB
  • Node.js v22+, OpenShell ≥ 0.0.44
  • NGC API key + docker login nvcr.io

Models: Nemotron 3 Super 120B · OpenFold3 NIM
Port: 18789 / 11434 / 8000

  1. เตรียม assets
    bash
    git clone https://github.com/NVIDIA/dgx-spark-playbooks ~/dgx-spark-playbooks
    cp -r ~/dgx-spark-playbooks/nvidia/station-healthcare-agent/assets ~/clinical-intelligence
    cd ~/clinical-intelligence && cp .env.example .env    # ใส่ NGC_API_KEY
    make ngc-login
  2. Start โมเดล
    bash
    sudo systemctl stop ollama 2>/dev/null || true   # ปล่อยพอร์ต 11434
    docker compose up -d ollama openfold3
    docker compose up model-pull
    make status
  3. Gateway + Deploy agents
    bash
    nohup openshell-gateway --disable-tls --drivers docker \
      --bind-address 127.0.0.1 --port 17670 > /tmp/openshell-gateway.log 2>&1 &
    openshell gateway add http://127.0.0.1:17670 --name openshell
    make setup && make check && make test
  4. เปิด Dashboard
    bash
    ssh -f -N -L 18789:localhost:18789 <user>@<ws300-ip>   # แล้วเปิด http://localhost:18789

Cleanup: openshell sandbox delete clinical-sandbox && make down

หมายเหตุสำหรับ WS300
  • เป็น Demo ใช้ข้อมูลสังเคราะห์ (Synthea) — ไม่ใช่อุปกรณ์การแพทย์
  • ถ้า OpenFold3 ไม่รู้จัก GPU ให้ดูหัวข้อ Troubleshooting เรื่อง gpu_device ใน NVIDIA playbook (ตรวจ ID ด้วย lspci -nn | grep -i nvidia)
DGX Station AI Skills & dgx-assistสอน AI Coding Agent ให้รู้จักเครื่อง
⏱ 15 นาทีRisk ต่ำ

ติดตั้ง Agent Skills 4 ชุด + CLI dgx-assist ให้ Claude Code / Codex / Gemini / Cursor ตรวจเครื่องจริงก่อนแนะนำ, ค้นคู่มือ NVIDIA แบบอ้างอิงได้ และขออนุมัติก่อนทุกการเปลี่ยนแปลง

สิ่งที่จะได้

  • ตรวจ software profile ของเครื่อง
  • Resolve โมเดล → recipe → preflight → launch
  • วางแผน MIG และ Diagnostics แบบ read-only

ต้องเตรียม

  • Python 3.11+
  • AI coding agent อย่างน้อย 1 ตัว

Models: Qwen2.5-Coder-1.5B (smoke recipe)
Port: —

  1. ติดตั้ง
    bash
    git clone https://github.com/NVIDIA/dgx-spark-playbooks
    cd dgx-spark-playbooks/nvidia/station-ai-skills
    assets/install.sh install --harness claude --target /path/to/project --dry-run
    assets/install.sh install --harness claude --target /path/to/project
  2. ตรวจเครื่อง
    bash
    cd /path/to/project
    .dgx-station/bin/dgx-assist system inspect
    .dgx-station/bin/dgx-assist playbook search "CPU weight offload HBM"
  3. สั่งงานผ่าน Agent
    text
    Inspect this DGX Station and explain its compatibility profile and restrictions.

Cleanup: assets/install.sh uninstall --target /path/to/project

หมายเหตุสำหรับ WS300
  • dgx-assist รู้จักเฉพาะ build ของ NVIDIA DGX Station (เช่น NVIDIA DGX GB300WS) — WS300 ของ MSI อาจถูกจัดเป็น Unknown ซึ่งจะใช้ได้เฉพาะโหมด read-only (inspect / search / diagnose)
  • ตรวจด้วย cat /etc/dgx-release
Build Knowledge Graphs with txt2kgสร้าง Knowledge Graph จากเอกสาร
⏱ 30 นาทีRisk ต่ำ

ดึงความสัมพันธ์ (subject–predicate–object) จากเอกสารด้วย LLM local เก็บใน Graph DB และสำรวจแบบ 3D บนเว็บ พร้อมถามตอบแบบ Graph-RAG

สิ่งที่จะได้

  • Web UI อัปโหลดเอกสาร (md, txt, csv)
  • Graph DB: ArangoDB หรือ Neo4j
  • ถามคำถามโดยใช้ความสัมพันธ์ใน graph

ต้องเตรียม

  • Docker Compose

Models: llama3.1:8b (Ollama) · Llama-3.3-Nemotron-Super-49B FP8 (vLLM)
Port: 3001

  1. Clone & Start (แนะนำ Neo4j บน WS300)
    bash
    git clone https://github.com/NVIDIA/dgx-spark-playbooks
    cd dgx-spark-playbooks/nvidia/playbook-txt2kg/assets
    ./start.sh --neo4j          # Neo4j + Ollama
    # ./start.sh --vllm         # Neo4j + vLLM (โหลดโมเดล 30+ นาที)
  2. โหลดโมเดล
    bash
    docker exec ollama-compose ollama pull llama3.1:8b
  3. ใช้งาน
    text
    Web UI       http://<ws300-ip>:3001
    Neo4j        http://<ws300-ip>:7474

Cleanup: ./stop.sh --neo4j

หมายเหตุสำหรับ WS300
  • สำคัญ: WS300 ใช้ kernel แบบ 64K page (…-nvidia-64k) — ArangoDB/Qdrant บางเวอร์ชันจะ crash ด้วย Unsupported system page size จึงควรใช้ ./start.sh --neo4j

Data Science & Training

Topic Modeling (BERTopic + cuML)วิเคราะห์หัวข้อจากข้อความหลายสิบล้านรายการ
⏱ 45 นาทีRisk ต่ำ

ประมวลผลรีวิวสินค้า Amazon 40 ล้านรายการด้วย BERTopic ที่เร่งด้วย GPU (cuDF + cuML) — โค้ดเดิมไม่ต้องแก้ เพียงโหลด cuml.accel

สิ่งที่จะได้

  • Pipeline embeddings → UMAP → HDBSCAN บน GPU
  • Visualization: heatmap, barchart, document datamap
  • Streamlit dashboard สำหรับจูนพารามิเตอร์

ต้องเตรียม

  • Conda (Miniconda)
  • GPU ≥ 64 GB, ดิสก์ ≥ 50 GB

Models: SentenceTransformers (all-MiniLM-L6-v2)
Port: 8888 / 8501

  1. สร้าง environment
    bash
    conda create -n rapids-25.10 -c rapidsai -c conda-forge \
      cudf=25.10 cuml=25.10 python=3.11 'cuda-version=13.0'
    conda activate rapids-25.10
    python -m pip install transformers datasets sentence-transformers \
      umap-learn hdbscan==0.8.40 bertopic matplotlib scikit-learn==1.4.2 datamapplot streamlit
    python -m pip install "dask==2025.9.1" "distributed==2025.9.1"
    python -m pip install torch==2.9.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130
  2. ข้อมูลและ notebook
    bash
    git clone https://github.com/NVIDIA/dgx-spark-playbooks
    cd dgx-spark-playbooks/nvidia/station-topic-modeling/assets
    wget https://mcauleylab.ucsd.edu/public_datasets/data/amazon_2023/raw/review_categories/Electronics.jsonl.gz
    conda install -c conda-forge git-lfs && git lfs install && git lfs pull
    jupyter lab                 # เลือก kernel rapids-25.10 แล้ว Run All

Cleanup: conda env remove -n rapids-25.10

หมายเหตุสำหรับ WS300
  • Use case ไทย: วิเคราะห์ feedback ลูกค้า, ticket, social listening — เปลี่ยน embedding model เป็นแบบ multilingual
NVFP4 Pretraining with Megatron BridgePretrain LLM ด้วย NVFP4
⏱ 30 นาทีRisk ต่ำ

Pretrain Llama 3.1 8B ด้วย mixed precision NVFP4 บน GB300 เทียบกับ BF16 — NVIDIA วัดได้เร็วขึ้น 1.68× (5.39 s vs 9.05 s ต่อ step)

สิ่งที่จะได้

  • รัน training loop ด้วย mock data
  • เปรียบเทียบ NVFP4 vs BF16 (--disable-fp4)
  • แนวทางต่อยอดกับข้อมูลจริง

ต้องเตรียม

  • HF token
  • NVIDIA NeMo container (NGC)

Models: Llama 3.1 8B · NeMo container 26.04
Port: —

  1. เข้า container
    bash
    git clone https://github.com/NVIDIA/dgx-spark-playbooks
    cd dgx-spark-playbooks/nvidia/station-nvfp4-pretraining/assets
    export HF_TOKEN=hf_xxx TAG=26.04
    GB300_DEVICE=$(nvidia-smi --query-gpu=index,name --format=csv,noheader | awk -F', ' '/GB300/ {print $1; exit}')
    docker run --rm -it --gpus device=${GB300_DEVICE} --ipc host \
      --ulimit memlock=-1 --ulimit stack=67108864 -e HF_TOKEN="$HF_TOKEN" \
      -v "$HOME/.cache/huggingface:/root/.cache/huggingface" \
      -v "$(pwd):/workdir" -w /workdir --entrypoint bash nvcr.io/nvidia/nemo:${TAG}
  2. Train & compare (ใน container)
    bash
    torchrun --nproc_per_node=1 pretrain_llama.py > nvfp4.log 2>&1
    rm -rf nemo_experiments
    torchrun --nproc_per_node=1 pretrain_llama.py --disable-fp4 > bf16.log 2>&1
    grep -E "elapsed time per iteration|MODEL_TFLOP" nvfp4.log bf16.log

Cleanup: rm -rf nemo_experiments/ nvfp4.log bf16.log

หมายเหตุสำหรับ WS300
  • Peak VRAM ที่ NVIDIA วัดได้: BF16 221.6 GB / NVFP4 207.8 GB — ใกล้ขีด 252 GB ของ WS300 หาก OOM ให้ลด --micro-batch-size เป็น 2
Isaac GR00T N1.6 Fine-TuningFine-tune โมเดลหุ่นยนต์ GR00T
⏱ 45 นาทีRisk กลาง

Fine-tune โมเดล Vision-Language-Action 3B ของ NVIDIA สำหรับหุ่นยนต์บน benchmark LIBERO Spatial ด้วย batch size 128 บน GPU เดียว

สิ่งที่จะได้

  • Fine-tune 2,000 steps (~20–25 นาที)
  • Open-loop evaluation + วัด inference latency

ต้องเตรียม

  • Git LFS, CUDA 12.8+ (nvcc)
  • HF token, ดิสก์ ≥ 30 GB

Models: nvidia/GR00T-N1.6-3B · LIBERO Spatial dataset
Port: —

  1. Clone & ติดตั้ง
    bash
    git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T
    cd Isaac-GR00T && git checkout n1.6-release && git submodule update --init --recursive
    I_CONFIRM_THIS_IS_NOT_A_LICENSE_VIOLATION=1 bash scripts/deployment/dgpu/install_deps.sh
    source .venv/bin/activate
  2. ข้อมูล + โมเดล
    bash
    huggingface-cli download --repo-type dataset IPEC-COMMUNITY/libero_spatial_no_noops_1.0.0_lerobot \
      --local-dir examples/LIBERO/libero_spatial_no_noops_1.0.0_lerobot/
    cp examples/LIBERO/modality.json examples/LIBERO/libero_spatial_no_noops_1.0.0_lerobot/meta/
    huggingface-cli download nvidia/GR00T-N1.6-3B
  3. Fine-tune
    bash
    CUDA_VISIBLE_DEVICES=0 python gr00t/experiment/launch_finetune.py \
      --base-model-path nvidia/GR00T-N1.6-3B \
      --dataset-path examples/LIBERO/libero_spatial_no_noops_1.0.0_lerobot/ \
      --embodiment-tag LIBERO_PANDA --num-gpus 1 \
      --output-dir output/libero_spatial_ft --max-steps 2000 --global-batch-size 128

Cleanup: cd .. && rm -rf Isaac-GR00T

หมายเหตุสำหรับ WS300
  • ใช้ PyAV patch จาก playbook (Step 2) เพื่อไม่ให้ decode วิดีโอ AV1 ช้า
  • Arm64: ใช้ wheel flash-attn 2.8.1 แบบ aarch64 แทนการ build เอง (ดู NVIDIA playbook)
  • ใส่ TORCHDYNAMO_DISABLE=1 เมื่อเจอ error sm_103a

Creative AI

Images & Videos with ComfyUIสร้างภาพและวิดีโอด้วย ComfyUI
⏱ 2 ชั่วโมงRisk กลาง

Node-based web app สำหรับ Generative AI — สร้างภาพด้วย Z-Image-Turbo / FLUX และวิดีโอด้วย Wan 2.1, HunyuanVideo, NVIDIA Cosmos ทั้งหมดบนเครื่อง

สิ่งที่จะได้

  • Web UI ที่พอร์ต 8188
  • Workflow สำเร็จรูป: Text→Image, Text→Video, Image→Video, ControlNet
  • เรียกผ่าน HTTP API เพื่อ automation

ต้องเตรียม

  • Image: Python 3.8+, ดิสก์ ~30 GB
  • Video: Docker, HF token, ดิสก์ 70–230 GB

Models: Z-Image-Turbo · FLUX.1-dev · HiDream-I1 · Wan 2.1 · HunyuanVideo · Cosmos-Predict2
Port: 8188

Tierโมเดลดิสก์Peak GPU
1 · Getting StartedFLUX.1 dev, Wan 2.1 T2V 14B~70 GB~80 GB
2 · Intermediate+ HiDream-I1, Wan 2.1 I2V, Cosmos-Predict2~180 GB~100 GB
3 · Advanced+ HunyuanVideo 1080p, FLUX ControlNet~230 GB~120 GB
  1. A · Image Quick Start (สคริปต์อัตโนมัติ)
    bash
    curl -fsSL "https://raw.githubusercontent.com/NVIDIA/dgx-spark-playbooks/refs/heads/main/nvidia/playbook-comfyui/assets/setup.sh" | bash
    curl -fsSL "https://raw.githubusercontent.com/NVIDIA/dgx-spark-playbooks/refs/heads/main/nvidia/playbook-comfyui/assets/launch.sh" | bash
    # เปิด http://<ws300-ip>:8188 → Templates → Image → Z-Image-Turbo → Run
  2. B · Video Workflow (container)
    bash
    export HF_TOKEN=hf_xxx
    git clone https://github.com/NVIDIA/dgx-spark-playbooks
    cd dgx-spark-playbooks/nvidia/playbook-comfyui
    docker build -t comfyui -f assets/Dockerfile .
    bash assets/scripts/download-models.sh 1        # Tier 1: FLUX + Wan 2.1 (~70 GB)
    docker run -d --name comfyui --gpus all --ipc host --ulimit memlock=-1 -p 8188:8188 \
      -v "$(pwd)/models:/opt/ComfyUI/models" -v "$(pwd)/output:/opt/ComfyUI/output" \
      -v "$(pwd)/input:/opt/ComfyUI/input" \
      -v "$(pwd)/assets/workflows:/opt/ComfyUI/user/default/workflows" \
      -v "$HOME/.cache/huggingface:/root/.cache/huggingface" comfyui

Cleanup: docker stop comfyui && docker rm comfyui

หมายเหตุสำหรับ WS300
  • WS300 รองรับได้ทั้ง 3 Tier (Peak ~120 GB จาก HBM 252 GB)
  • ถ้าติดตั้งการ์ด RTX PRO เพิ่ม ให้ใช้ --gpus '"device=N"' ระบุ GB300

Infrastructure

Register to NVIDIA Brevเข้าใช้ WS300 จากที่ไหนก็ได้ด้วย Brev
⏱ 5 นาทีRisk ต่ำ

ลงทะเบียน WS300 เป็น GPU environment ใน NVIDIA Brev เพื่อเข้าใช้จากระยะไกลและแชร์สิทธิ์ให้ทีมผ่าน Web UI / CLI

สิ่งที่จะได้

  • เครื่องขึ้นสถานะ Connected ใน Brev
  • จัดการสิทธิ์ SSH ของสมาชิกทีม

ต้องเตรียม

  • บัญชี NVIDIA Brev
  • สิทธิ์ sudo บน WS300

Models: —
Port: SSH

  1. ลงทะเบียน
    text
    1. เข้า https://brev.nvidia.com → Register Compute
    2. ติดตั้ง Brev CLI ตาม pop-up · ตั้งชื่อเครื่อง · เปิด "Enable SSH access"
    3. รันคำสั่ง registration บน WS300 แล้วทำตาม flow จนจบ
    4. ตรวจที่ Registered Compute → สถานะ Connected

Cleanup: brev deregister

หมายเหตุสำหรับ WS300
  • ตรวจนโยบาย IT ขององค์กรก่อนเปิด remote access จากภายนอก
Connect Two Stationsเชื่อม WS300 สองเครื่องด้วย 2× 400G
⏱ 60 นาทีRisk กลาง

ต่อ WS300 สองเครื่องตรงด้วย QSFP112 สองเส้น (ConnectX-8, 400 Gb/s RoCEv2 ต่อ rail) เพื่อรวมหน่วยความจำและพลังประมวลผลสำหรับงาน distributed (NCCL, vLLM, Ray)

สิ่งที่จะได้

  • Rail IP + MTU 9000 ทั้ง 2 rails
  • ตรวจ RoCE, jumbo ping, RDMA bandwidth
  • (Optional) GPUDirect RDMA / Data Direct

ต้องเตรียม

  • WS300 2 เครื่อง + สาย QSFP 400G 2 เส้น
  • Control host (Linux/macOS/Windows) ที่ SSH เข้าทั้งสองเครื่องได้

Models: —
Port: —

  1. เตรียม (บน control host)
    bash
    git clone https://github.com/NVIDIA/dgx-spark-playbooks
    cd dgx-spark-playbooks/nvidia/station-connect-two-stations/assets
    cp 00_env.local.example 00_env.local    # แก้ CX8_A_HOST, CX8_B_HOST, CX8_OS_USER
  2. ต่อสาย (ห้ามไขว้)
    text
    WS300-A QSFP0  <---->  WS300-B QSFP0
    WS300-A QSFP1  <---->  WS300-B QSFP1
  3. รันสคริปต์ตามลำดับ
    bash
    ./01_probe_access.sh
    ./02_push_assets.sh
    ./03_prereq_check.sh
    ./04_check_cable_presence.sh
    ./05_configure_rails_runtime.sh        # เพิ่ม --persist ถ้าต้องการให้คงหลัง reboot
    ./06_configure_roce_gdr_runtime.sh
    ./07_validate_setup.sh
    ./08_run_perftest_pair.sh --rail 0 --gdr

Cleanup: ./99_cleanup_runtime.sh --remove-persist

หมายเหตุสำหรับ WS300
  • ค่าเริ่มต้นใช้ user nvidia — บน WS300 ให้ตั้ง CX8_OS_USER เป็นบัญชีที่สร้างตอน First Boot
  • Step 11 (ACS/GRUB) จะ reboot ทั้งสองเครื่อง — ทำในช่วง maintenance เท่านั้น
03

Ports Summary

ใช้กำหนด firewall หรือ SSH tunnel — ไม่ควรเปิดพอร์ตเหล่านี้สู่อินเทอร์เน็ตโดยตรง

PortบริการPlaybook
8000vLLM OpenAI APIvLLM, NVFP4 Quantization, OpenShell
30000SGLang APISGLang
11434Ollama APIClaude Code, txt2kg, Healthcare
18789 / 18790OpenClaw DashboardNemoClaw, OpenShell, Healthcare
8188ComfyUI Web UIComfyUI
3001 / 7474 / 8529txt2kg UI / Neo4j / ArangoDBtxt2kg
8888 / 8501JupyterLab / StreamlitTopic Modeling
04

Troubleshooting ที่พบบ่อย

อาการสาเหตุวิธีแก้
permission denied ตอนรัน dockeruser ไม่อยู่ในกลุ่ม dockersudo usermod -aG docker $USER && newgrp docker
Container start ไม่ได้ (GPU error)NVIDIA Container Toolkit ยังไม่ตั้งค่าsudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker
401 / Token is requiredไม่มี HF token หรือยังไม่กดยอมรับ license โมเดลexport HF_TOKEN=… และกด Accept ที่หน้าโมเดลบน Hugging Face
NGC pull ไม่ได้ยังไม่ login nvcr.iodocker login nvcr.io (user $oauthtoken)
CUDA out of memorycontext / batch ใหญ่เกินลด --max-model-len, --gpu-memory-utilization หรือ --mem-fraction-static
Port ถูกใช้แล้วบริการเดิมยังรันอยู่ss -tlnp | grep <port> แล้ว map พอร์ตใหม่ เช่น -p 8001:8000
exec format errorimage เป็น x86_64ใช้ image Arm64 / multi-arch
ไฟล์ใน cache ลบไม่ได้container เขียนไฟล์เป็น rootsudo rm -rf … หรือรัน container ด้วย --user "$(id -u):$(id -g)"