ก่อนเริ่ม — เตรียม WS300 ครั้งเดียว ใช้ได้ทุก Playbook
Playbooks ของ NVIDIA เขียนสำหรับ DGX Station (GB300) ซึ่งเป็นสถาปัตยกรรมเดียวกับ 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 64K | Kernel ของ WS300 คือ …-nvidia-64k — container บางตัว (เช่น ArangoDB/Qdrant บางเวอร์ชัน) อาจ crash ด้วย Unsupported system page size |
| เลือก GPU | WS300 มี 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 — ทดลองในสภาพแวดล้อมแยก ไม่เชื่อมบัญชีหรือข้อมูลจริง |
Playbook Catalog
คลิกที่ Playbook เพื่อดูขั้นตอนและคำสั่ง · กรองตามหมวดได้
Serve LLMs with vLLM
ให้บริการ LLM ด้วย vLLM
Serve LLMs with SGLang
ให้บริการ LLM ด้วย SGLang
Quantize Models to NVFP4
ย่อโมเดลเป็น NVFP4 ด้วย Model Optimizer
Claude Code with Local Inference
Coding Agent ด้วยโมเดล Local
Run NemoClaw with a Local LLM
ผู้ช่วย AI ส่วนตัว (NemoClaw)
Secure AI Agents with OpenShell
รัน AI Agent อย่างปลอดภัยด้วย OpenShell
Local Healthcare Agent
Healthcare Multi-Agent (Demo)
DGX Station AI Skills & dgx-assist
สอน AI Coding Agent ให้รู้จักเครื่อง
Build Knowledge Graphs with txt2kg
สร้าง Knowledge Graph จากเอกสาร
Topic Modeling (BERTopic + cuML)
วิเคราะห์หัวข้อจากข้อความหลายสิบล้านรายการ
NVFP4 Pretraining with Megatron Bridge
Pretrain LLM ด้วย NVFP4
Isaac GR00T N1.6 Fine-Tuning
Fine-tune โมเดลหุ่นยนต์ GR00T
Images & Videos with ComfyUI
สร้างภาพและวิดีโอด้วย ComfyUI
Register to NVIDIA Brev
เข้าใช้ WS300 จากที่ไหนก็ได้ด้วย Brev
Connect Two Stations
เชื่อม WS300 สองเครื่องด้วย 2× 400G
Learning Path — เริ่มจากตรงไหนดี?
Day 1 ใช้ LLM ได้ทันที
Week 1 สร้างแอปและ Agent
Advanced Optimize & Train
| โจทย์ธุรกิจ | 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 / Creative | ComfyUI |
| Robotics / Physical AI | Isaac GR00T |
Playbook Details
แต่ละหัวข้อสรุปเฉพาะคำสั่งหลัก — ตัวเลือกและ troubleshooting ฉบับเต็มอยู่ในลิงก์ NVIDIA ของแต่ละ Playbook
Inference
Serve LLMs with vLLMให้บริการ LLM ด้วย vLLM
ตั้ง 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-next | Reasoning + tool calling · มี launch script สำหรับ NVIDIA Sync |
| Qwen3-235B-A22B NVFP4 | nvcr.io/nvidia/vllm:26.01-py3 | รันด้วย base config ได้ทันที |
| Step-3.7-Flash FP8 / NVFP4 | vllm/vllm-openai:stepfun37 | Reasoning/tool parser step3p5, KV cache FP8 |
| DeepSeek-V4-Flash | vllm/vllm-openai:v0.20.0-cu130 | MoE + expert parallel, เหมาะงาน Agentic |
| Kimi-K2.5 NVFP4 (1T) | nvcr.io/nvidia/vllm:26.03-py3 | Offload experts ไป LPDDR5X (--cpu-offload-gb 375) |
- ตั้งค่าตัวแปร
export HF_TOKEN="hf_xxx" export MODEL_HANDLE="nvidia/Qwen3-235B-A22B-NVFP4" # หรือรุ่นอื่นจากตาราง export MAX_MODEL_LEN=8192
- ดึง container (NGC)
docker pull nvcr.io/nvidia/vllm:26.01-py3
- Start server (Base configuration)
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." - ทดสอบ API
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 มี 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
ทางเลือกของ 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
- ตั้งค่า
export SGLANG_IMAGE="lmsysorg/sglang:latest-cu130" export MODEL_HANDLE="Qwen/Qwen3-8B" export HF_TOKEN="" docker pull "$SGLANG_IMAGE"
- Start server (ค่าที่จำเป็นบน GB300)
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 - ทดสอบ
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
- ต้องใช้
--attention-backend flashinferบน GB300 (SM103) —fa3จะ error - ใส่
--cap-add SYS_NICEเพื่อเลี่ยง warning NUMA affinity
Quantize Models to NVFP4ย่อโมเดลเป็น NVFP4 ด้วย Model Optimizer
แปลงโมเดลเป็น 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
- เตรียม
mkdir -p ./output_models && chmod 755 ./output_models export HF_TOKEN="hf_xxx" export GPU_ID=0 # WS300 มี GB300 ตัวเดียว = 0 (ตรวจด้วย nvidia-smi)
- Quantize (Model Optimizer 0.41.0)
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" - Serve & test
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 มี GB300 ตัวเดียว ใช้
GPU_ID=0· ถ้าติดตั้งการ์ด RTX PRO เพิ่ม ให้ตรวจ index ด้วยnvidia-smi - ควร evaluate คุณภาพกับข้อมูลจริงของลูกค้าก่อนใช้งาน production
Agents & Apps
Claude Code with Local InferenceCoding Agent ด้วยโมเดล Local
ใช้ 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
- ติดตั้ง Ollama และโมเดล
curl -fsSL https://ollama.com/install.sh | sh ollama --version ollama pull qwen3.6:27b ollama run qwen3.6:27b # ทดสอบ แล้วพิมพ์ /bye
- ติดตั้ง Claude Code
curl -fsSL https://claude.ai/install.sh | bash claude --version
- (Optional) เพิ่ม context length
sudo systemctl stop ollama OLLAMA_CONTEXT_LENGTH=64000 ollama serve # เปิดค้างไว้ แล้วใช้ terminal ใหม่
- เริ่มใช้งาน
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 มีหน่วยความจำเหลือมาก — เพิ่ม context เป็น 64K–198K สำหรับ codebase ใหญ่ได้
- หากจะรัน Healthcare Agent ภายหลัง ต้องหยุด Ollama บน host ก่อน (ชนพอร์ต 11434)
Run NemoClaw with a Local LLMผู้ช่วย AI ส่วนตัว (NemoClaw)
ติดตั้ง 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
- ตรวจระบบ
head -n 2 /etc/os-release nvidia-smi docker info --format '{{.ServerVersion}}' - ติดตั้ง (Express)
curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash # หรือใช้ DeepSeek-V4-Flash: # curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash -s -- --station-deepseek
- เปิด Web UI จากโน้ตบุ๊ก
nemoclaw my-assistant dashboard-url --quiet # บน WS300 ssh -L <port>:127.0.0.1:<port> <user>@<ws300-ip> # บนโน้ตบุ๊ก แล้วเปิด URL
- Telegram (optional)
nemoclaw <sandbox-name> channels add telegram nemoclaw <sandbox-name> policy-add telegram
Cleanup: nemoclaw uninstall --yes --delete-models
- 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
ห่อ 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
- ติดตั้ง OpenShell
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
- สร้าง Provider + Routing
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> - สร้าง Sandbox
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
- ตรวจ isolation
openshell term # ดู allow / deny ของทุก connection
Cleanup: openshell sandbox delete "$SANDBOX_NAME" && openshell provider delete local-vllm
- ห้ามใช้
localhostใน provider URL — gateway อยู่ใน Docker ต้องใช้ IP จริงของ WS300 - Model ID ใน wizard ต้องตรงกับ
--served-model-nameของ vLLM
Local Healthcare AgentHealthcare Multi-Agent (Demo)
ระบบ 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
- เตรียม assets
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
- Start โมเดล
sudo systemctl stop ollama 2>/dev/null || true # ปล่อยพอร์ต 11434 docker compose up -d ollama openfold3 docker compose up model-pull make status
- Gateway + Deploy agents
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
- เปิด Dashboard
ssh -f -N -L 18789:localhost:18789 <user>@<ws300-ip> # แล้วเปิด http://localhost:18789
Cleanup: openshell sandbox delete clinical-sandbox && make down
- เป็น Demo ใช้ข้อมูลสังเคราะห์ (Synthea) — ไม่ใช่อุปกรณ์การแพทย์
- ถ้า OpenFold3 ไม่รู้จัก GPU ให้ดูหัวข้อ Troubleshooting เรื่อง
gpu_deviceใน NVIDIA playbook (ตรวจ ID ด้วยlspci -nn | grep -i nvidia)
DGX Station AI Skills & dgx-assistสอน AI Coding Agent ให้รู้จักเครื่อง
ติดตั้ง 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: —
- ติดตั้ง
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
- ตรวจเครื่อง
cd /path/to/project .dgx-station/bin/dgx-assist system inspect .dgx-station/bin/dgx-assist playbook search "CPU weight offload HBM"
- สั่งงานผ่าน Agent
Inspect this DGX Station and explain its compatibility profile and restrictions.
Cleanup: assets/install.sh uninstall --target /path/to/project
- 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 จากเอกสาร
ดึงความสัมพันธ์ (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
- Clone & Start (แนะนำ Neo4j บน WS300)
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+ นาที)
- โหลดโมเดล
docker exec ollama-compose ollama pull llama3.1:8b
- ใช้งาน
Web UI http://<ws300-ip>:3001 Neo4j http://<ws300-ip>:7474
Cleanup: ./stop.sh --neo4j
- สำคัญ: WS300 ใช้ kernel แบบ 64K page (
…-nvidia-64k) — ArangoDB/Qdrant บางเวอร์ชันจะ crash ด้วยUnsupported system page sizeจึงควรใช้./start.sh --neo4j
Data Science & Training
Topic Modeling (BERTopic + cuML)วิเคราะห์หัวข้อจากข้อความหลายสิบล้านรายการ
ประมวลผลรีวิวสินค้า 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
- สร้าง environment
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
- ข้อมูลและ notebook
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
- Use case ไทย: วิเคราะห์ feedback ลูกค้า, ticket, social listening — เปลี่ยน embedding model เป็นแบบ multilingual
NVFP4 Pretraining with Megatron BridgePretrain LLM ด้วย NVFP4
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: —
- เข้า container
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} - Train & compare (ใน container)
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
- 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
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: —
- Clone & ติดตั้ง
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
- ข้อมูล + โมเดล
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
- Fine-tune
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
- ใช้ PyAV patch จาก playbook (Step 2) เพื่อไม่ให้ decode วิดีโอ AV1 ช้า
- Arm64: ใช้ wheel flash-attn 2.8.1 แบบ aarch64 แทนการ build เอง (ดู NVIDIA playbook)
- ใส่
TORCHDYNAMO_DISABLE=1เมื่อเจอ errorsm_103a
Creative AI
Images & Videos with ComfyUIสร้างภาพและวิดีโอด้วย ComfyUI
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 Started | FLUX.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 |
- A · Image Quick Start (สคริปต์อัตโนมัติ)
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
- B · Video Workflow (container)
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 รองรับได้ทั้ง 3 Tier (Peak ~120 GB จาก HBM 252 GB)
- ถ้าติดตั้งการ์ด RTX PRO เพิ่ม ให้ใช้
--gpus '"device=N"'ระบุ GB300
Infrastructure
Register to NVIDIA Brevเข้าใช้ WS300 จากที่ไหนก็ได้ด้วย Brev
ลงทะเบียน WS300 เป็น GPU environment ใน NVIDIA Brev เพื่อเข้าใช้จากระยะไกลและแชร์สิทธิ์ให้ทีมผ่าน Web UI / CLI
สิ่งที่จะได้
- เครื่องขึ้นสถานะ Connected ใน Brev
- จัดการสิทธิ์ SSH ของสมาชิกทีม
ต้องเตรียม
- บัญชี NVIDIA Brev
- สิทธิ์ sudo บน WS300
Models: —
Port: SSH
- ลงทะเบียน
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
- ตรวจนโยบาย IT ขององค์กรก่อนเปิด remote access จากภายนอก
Connect Two Stationsเชื่อม WS300 สองเครื่องด้วย 2× 400G
ต่อ 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: —
- เตรียม (บน control host)
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
- ต่อสาย (ห้ามไขว้)
WS300-A QSFP0 <----> WS300-B QSFP0 WS300-A QSFP1 <----> WS300-B QSFP1
- รันสคริปต์ตามลำดับ
./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
- ค่าเริ่มต้นใช้ user
nvidia— บน WS300 ให้ตั้งCX8_OS_USERเป็นบัญชีที่สร้างตอน First Boot - Step 11 (ACS/GRUB) จะ reboot ทั้งสองเครื่อง — ทำในช่วง maintenance เท่านั้น
Ports Summary
ใช้กำหนด firewall หรือ SSH tunnel — ไม่ควรเปิดพอร์ตเหล่านี้สู่อินเทอร์เน็ตโดยตรง
| Port | บริการ | Playbook |
|---|---|---|
8000 | vLLM OpenAI API | vLLM, NVFP4 Quantization, OpenShell |
30000 | SGLang API | SGLang |
11434 | Ollama API | Claude Code, txt2kg, Healthcare |
18789 / 18790 | OpenClaw Dashboard | NemoClaw, OpenShell, Healthcare |
8188 | ComfyUI Web UI | ComfyUI |
3001 / 7474 / 8529 | txt2kg UI / Neo4j / ArangoDB | txt2kg |
8888 / 8501 | JupyterLab / Streamlit | Topic Modeling |
Troubleshooting ที่พบบ่อย
| อาการ | สาเหตุ | วิธีแก้ |
|---|---|---|
permission denied ตอนรัน docker | user ไม่อยู่ในกลุ่ม docker | sudo 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.io | docker login nvcr.io (user $oauthtoken) |
| CUDA out of memory | context / batch ใหญ่เกิน | ลด --max-model-len, --gpu-memory-utilization หรือ --mem-fraction-static |
| Port ถูกใช้แล้ว | บริการเดิมยังรันอยู่ | ss -tlnp | grep <port> แล้ว map พอร์ตใหม่ เช่น -p 8001:8000 |
exec format error | image เป็น x86_64 | ใช้ image Arm64 / multi-arch |
| ไฟล์ใน cache ลบไม่ได้ | container เขียนไฟล์เป็น root | sudo rm -rf … หรือรัน container ด้วย --user "$(id -u):$(id -g)" |
Links
| Resource | Link |
|---|---|
| NVIDIA DGX Station Playbooks (ต้นฉบับ) | build.nvidia.com/station |
| Playbooks Source (GitHub) | github.com/NVIDIA/dgx-spark-playbooks |
| vLLM Recipes สำหรับ DGX Station | recipes.vllm.ai |
| DGX Station Development Guide | docs.nvidia.com |
| NVIDIA Sync | docs.nvidia.com/sync |
| WS300 Web Manual (Taknet) | taknet.co.th/msi-ws300/manuals |
| AI Workbench on WS300 (Taknet) | taknet.co.th/msi-ws300/AI-workbench |
Taknet และพาร์ตเนอร์ด้าน NVIDIA AI พร้อมให้คำปรึกษา ออกแบบ และติดตั้งระบบที่ปรับให้เหมาะกับข้อมูลและงานขององค์กรคุณ — www.taknet.co.th
