Skip to main content

11 posts tagged with "dgx-spark"

View All Tags

เลือกฮาร์ดแวร์ AI On-Premise — มุมมองจากประสบการณ์ DGX Spark

· 19 min read

หลายองค์กรกำลังมองหา AI Server เป็นของตัวเอง คำถามแรกที่เกิดขึ้นคือ "ซื้ออะไรดี?" ผมเองก็เริ่มจากจุดนี้ — ได้ DGX Spark มาวางบนโต๊ะทำงาน ใช้คนเดียวลื่นไหลดี แต่พอถามว่า "แล้วถ้าให้พนักงานหลายคนใช้งานผ่าน API ล่ะ?" คำตอบคือต้องกลับมาคิดใหม่ทั้งหมด

DGX Spark คือเครื่อง AI ขนาดเล็กที่ NVIDIA ออกแบบมาเพื่อ developer — ชิป GB10 Grace Blackwell หน่วยความจำรวม 128 GB bandwidth 273 GB/s ราคา ~฿165,000 สเปกดูดีจนลืมถามว่า ถ้าต้องรองรับผู้ใช้หลายคนในองค์กรจะเป็นยังไง ข้อจำกัดที่ซ่อนอยู่ก็ปรากฏชัดขึ้นทันที

บทความนี้สรุปจากประสบการณ์ตรงและข้อมูลวิจัย เพื่อช่วยตอบคำถามว่า: ถ้าอยากได้ AI Server ในองค์กร เราต้องพิจารณาอะไรบ้าง ตั้งแต่จำนวนผู้ใช้ ความต้องการของโมเดล ไปจนถึงงบประมาณจริง

ก่อนหน้านี้ผมเขียนถึงประสบการณ์ตัดสินใจซื้อ DGX Spark ส่วนตัว — 5 red flags และ 3 checklist ก่อนจ่ายเงินกว่าแสนหกหมื่นบาท คราวนี้เรามาดูมุมที่กว้างขึ้น: พอเอาเครื่องเดียวไปรองรับทีมหรือองค์กร มันเจอข้อจำกัดอะไรบ้าง และถ้าต้องเลือกฮาร์ดแวร์ระดับองค์กรจริงๆ ต้องคิดอะไรบ้าง

DGX Spark: 5 Red Flags + 3 Checklist ก่อนจ่าย 165,000 บาท

Qwen3.6-35B บน DGX Spark — จาก FP8 สู่ NVFP4 + บทเรียนจาก Atlas

· 16 min read

เอาจริง ๆ จุดเด่นอย่างนึงของ DGX Spark ที่อาจจะเหนือกว่าเครื่อง x86 และ GPU ค่ายอื่นก็คือ NVFP4 — รูปแบบข้อมูลเลขทศนิยมลอยตัวขนาด 4 บิต (Floating Point 4-bit) ที่พัฒนาโดย NVIDIA เพื่อใช้บนสถาปัตยกรรม GPU รุ่นใหม่อย่าง Blackwell มันคือเหตุผลที่ DGX Spark — ซูเปอร์คอมพิวเตอร์ AI ขนาดเดสก์ท็อป — สามารถรันโมเดลภาษาขนาดใหญ่ (LLM) ระดับร้อยพันล้านพารามิเตอร์ได้ภายในเครื่องเดียวอย่างมีประสิทธิภาพ

NVFP4 คืออะไร และทำไมถึงต่างจาก INT4 ทั่วไป?

NVFP4 ใช้โครงสร้าง E2M1 — 1 sign bit, 2 exponent bits, 1 mantissa bit — ครอบคลุมค่าในช่วงประมาณ -6 ถึง +6 แต่สิ่งที่ทำให้มันแตกต่างจาก INT4 ทั่วไปคือ two-level micro-block scaling: ใช้ scaling factor แบบ E4M3 FP8 บนทุก ๆ 16-value micro-block พร้อม per-tensor FP32 scalar ระดับบนสุด ช่วยลด quantization error ได้อย่างมีนัยสำคัญ เมื่อเทียบกับ MXFP4 ที่ใช้ block ขนาด 32 ค่า NVFP4 ลดขนาด block ลงครึ่งหนึ่ง ทำให้ scale ได้ละเอียดขึ้น และ preserve ค่าเล็ก ๆ ที่สำคัญใน model weights ได้ดีกว่า

พูดง่าย ๆ คือ — แทนที่จะบีบทุกค่าใน tensor ให้ใช้ scale factor ตัวเดียวกัน NVFP4 แบ่งเป็น block เล็ก ๆ และหา scale factor ที่เหมาะสมให้แต่ละ block ทำให้ค่าที่ได้ใกล้เคียงของจริงมากที่สุด

สถาปัตยกรรมนี้ทำงานบน fifth-generation Tensor Cores ของ GB10 Grace Blackwell Superchip ใน DGX Spark ซึ่งสามารถจัดการ microscaled FP4 data ได้โดยตรง ทั้ง grouping, dynamic scaling และ 4-bit matrix operations — สิ่งที่ GPU รุ่นก่อนอย่าง Hopper หรือ Ampere ทำไม่ได้เพราะขาด dedicated datapath สำหรับ FP4

แต่เรื่องก็ไม่ได้สวยงามขนาดนั้น

อ่านเพิ่ม: DGX Spark: 5 Red Flags — Red Flag #1: NVFP4 ยังไม่ทำงานเต็มประสิทธิภาพ

ในความเป็นจริง chip GB10 ใน DGX Spark ใช้ compute capability SM121 ซึ่ง vLLM ตั้งต้นใช้ Marlin fallback — dequant FP4 กลับเป็น BF16 ก่อนคำนวณ แทนที่จะใช้ native FP4 tensor cores NVIDIA clarify ภายหลัง ว่า instruction มีอยู่จริงบน GB10 แต่ต้อง compile ด้วย sm_121a target ไม่ใช่ sm_121 — ปัญหาคือ toolchain ไม่ใช่ transistor ขาด

พูดง่าย ๆ คือ NVFP4 บน DGX Spark ตอนนี้ทำงานผ่าน fallback path ไม่ใช่ native FP4 compute

แล้วมันใช้ได้ไหม?

แม้จะมีดราม่าเรื่องนี้ แต่ก็ไม่ได้แปลว่า NVFP4 ใช้ไม่ได้ — ผมใช้ Qwen3.6-35B-A3B-FP8 บน DGX Spark มาเดือนกว่า ผ่าน vLLM v0.23.0 recipe ของตัวเอง throughput อยู่ที่ ~290 tok/s ที่ 12 parallel ก็ถือว่าใช้ได้ ไม่ได้แย่ แต่พอไปเจอ claim ใน Discord ว่า "NVFP4 + vLLM nightly ได้ 236.97 tok/s ที่ 10 concurrency" ก็เริ่มสนใจ

คำถามคือ — ทำไม NVFP4 ถึงเร็วกว่า? ทำไม nightly ถึงดีกว่า stable? และที่สำคัญที่สุด — NVFP4 แลกกับ quality เท่าไหร่?

บทความนี้เป็นบันทึกการทดสอบจริง ตั้งแต่ FP8 เดิม → ลอง Atlas (Rust engine) → กลับมาใช้ vLLM + NVFP4 — พร้อมบทเรียนเรื่อง architecture mismatch ที่เจอตอนลอง Atlas

บทความก่อนหน้า: Qwen3.6-35B Sampling Guide — พื้นฐานการเลือก temperature/top_p สำหรับงานต่างๆ

สรุปความเร็ว — เทียบทุก config ที่วัดจริง

ConcurrencyvLLM FP8 (เดิม)vLLM NVFP4 (ใหม่)Atlas NVFP4ที่ดีที่สุด
1 (single)55.4 tok/s58.4 tok/s78.4 tok/sAtlas +41.5%
3106.0106.763.5vLLM NVFP4
6177.2169.065.6vLLM FP8
12292.8335.8 tok/s81.4vLLM NVFP4 +14.7%

นอกจากความเร็ว ยังได้ฟรี: memory ลด 75% (30-50 GB → 7.94 GB), context 2x (128K → 256K), reasoning 7/7 — รายละเอียดทั้งหมดอยู่ด้านล่าง

DGX Spark: 5 Red Flags + 3 Checklist ก่อนจ่าย 165,000 บาท

· 18 min read

เรื่องมันเริ่มจากผมอ่าน forum thread ชื่อ "I am EXTREMELY disappointed with the current state of DGX Spark" บน NVIDIA Developer Forums

โพสต์นั้นติด 375 likes, 91 replies, view มากกว่า 15,000 ครั้ง คนที่คอมเมนต์ไม่ใช่มือใหม่ เขามีประสบการณ์ใช้จริง บางคนซื้อมาแล้วสองเครื่อง

แต่สิ่งที่ทำให้ผมสะดุดที่สุด ไม่ใช่ตัวเลข speed หรือ benchmark ต่างๆ แต่ประโยคนี้

"The issue is not just performance. It is trust."

DiffusionGemma บน DGX Spark - NVFP4 Quantization และโลกที่ Model 26B ลงใน 18GB ได้

· 9 min read

หลังจากรีวิว DGX Spark ไปแล้ว หลายคนถามว่า "แล้วเอาไปทำอะไรได้บ้าง?" - คำตอบหนึ่งที่น่าสนใจคือ DiffusionGemma ตัวล่าสุดจาก Google DeepMind ที่เพิ่ง release บน Hugging Face ไม่กี่วันก่อน

บทความนี้จะเล่าเรื่อง DiffusionGemma คืออะไร ทำไม NVFP4 quantization ถึงสำคัญ และลองรันบน DGX Spark จริงๆ จะเป็นอย่างไร

Qwen3.6-35B-A3B บน DGX Spark: เรื่อง sampling ที่ผมตั้งผิดมาตลอด

· 12 min read

ผมตั้งค่า vLLM ที่ผ่านมาหลายครั้งด้วยสูตรเดียวตลอด — temperature: 0.6, top_p: 0.95, top_k: 20 แล้วก็ปล่อยให้ client ไป override เอาเอง ไม่ว่าจะเป็น trading bot, Hermes agent, code review — ใช้ค่าเดียวกันหมด

จนเมื่อวานนี้ผมเปิด Hugging Face model card ของ Qwen3.6-35B-A3B อ่านเล่น ๆ ในส่วน Sampling Parameters ถึงได้รู้ว่า — Qwen team แนะนำ sampling ตาม mode และ task type ไม่ใช่ตาม benchmark หรือ use case แบบที่ผมเข้าใจ

อ้าว ผมเลยต้องกลับมานั่งคิดใหม่

Virtual Models บน LiteLLM Proxy: 1 โมเดล 10 profiles ใช้ให้เหมาะกับงาน

· 7 min read

ผมใช้ Qwen3.6-35B-A3B-NVFP4 เป็น backend model ตัวเดียว แล้วสร้าง Virtual Models ผ่าน LiteLLM Proxy เป็น 10 profiles ตามลักษณะงาน

ทุก profile ชี้ไปที่โมเดลเดียวกัน แต่ override sampling parameters ต่างกัน — ทำให้โมเดลเดียวกันตอบออกมา "คนละคน" ตาม use case

Qwen3.6-35B-A3B: เลือก parameters ตาม use case

· 6 min read

Context

Qwen3.6-35B-A3B รันอยู่บน DGX Spark (port 8001, vLLM v0.23.0, 128K context)

ที่ผ่านมาใช้ temperature 0.6 ตาม --override-generation-config ของ recipe แต่พออ่าน HF model card ละเอียด ๆ เจอว่า Qwen team เองใช้ค่า ต่างกัน ในแต่ละ benchmark category

เลยรวบรวมมาเป็น note สั้น ๆ เพื่อใช้อ้างอิง

Blog Series 2026: 6 บทความเกี่ยวกับ AI Infrastructure ที่ผมเขียน

· 6 min read

ช่วงนี้ผมเขียนบล็อกไป 6 บทความ — แต่ละบทความเป็นเรื่องราว (journey) แยกกัน แต่ทั้งหมดเชื่อมโยงกันในธีมเดียวกัน: การสร้าง AI infrastructure เอง เริ่มจาก optimize model serving → debug API → ออกแบบโปรโตคอลสำหรับ agent → จนถึง workflow การทำงานร่วมกับ AI agents

ถ้าเพิ่งเข้ามาอ่าน อาจงงว่า "เริ่มบทความไหนดี" — เลยเขียน overview นี้ขึ้นมาเป็น landing page พร้อม reading order

DGX Spark: เมื่อ spec แรงไม่ได้แปลว่า run ได้ทันที

· 25 min read

ตอน DGX Spark มาถึงบ้าน ผมตื่นเต้นมาก — GB10 chip, 128GB unified memory, Blackwell architecture ผมคิดว่า "แค่เสียบปลั๊ก ติดตั้ง vLLM ก็ให้บริการ LLM ได้แรงๆ แล้ว" — แต่ความจริงหาเป็นแบบนั้นไม่

DGX Spark ไม่ใช่เครื่อง plug-and-play มันเป็นเครื่องสำหรับคนที่พร้อมจะเรียนรู้ - เรียนรู้เรื่อง serving engines, โครงสร้างของ model, รูปแบบ quantization และอีกหลายเรื่อง ก่อนที่จะดึงพลังออกมาได้เต็มที่

การเดินทางนี้กินเวลาหลายวัน ผมต้องศึกษา vLLM, llama.cpp, ความแตกต่างระหว่าง MoE กับ Dense, quantization ทุกแบบ (FP4, FP8, BF16, NVFP4) จนในที่สุดก็เข้าใจว่าทำไมคนอื่นถึงบอกว่า "DGX เป็นเครื่องสำหรับนักพัฒนาที่ใช้เฉพาะทาง"

DGX Spark: First Impression - เมื่อซื้อเครื่อง AI มา แล้วได้เรียนรู้มากกว่าที่คิด

· 13 min read

หลังจากยุ่งกับการทดลอง model + tune config + debug API มาเกือบอาทิตย์แล้ว วันนี้ได้ฤกษ์นั่งเขียนรีวิว DGX Spark ที่ซื้อมา จะเล่าแบบตรงๆ ตามประสบการณ์จริงทั้งข้อดีและข้อเสีย ไม่มี hype ไม่มี marketing — แค่ "ซื้อมา ใช้มา เจออะไรมา" ครับ

Note: เครื่องที่ผมได้MSI EdgeXpert MS-C931 (รหัส SKU: 60STH-BGB104TG5) ใช้ chip NVIDIA GB10 Grace Blackwell เหมือนกับ NVIDIA DGX Spark แต่ MSI อ้างว่า thermal design ดีกว่า ทำให้เร็วกว่า 5-10% ในงานส่วนใหญ่