รัน Kimi K3 ตัวเต็ม 2.8T บน MacBook เครื่องเดียวได้ 1 โทเคน/วินาที — ARGODRIVE Deltafin สตรีมผู้เชี่ยวชาญจาก SSD สี่ลูก
เมื่อคืนวันที่ 8 กันยายน 2026 Argonaut Labs ปล่อยรีโป ARGODRIVE Deltafin พร้อมแท็ก v1.0-2026-09-08 — เป็นฟอร์กของโปรเจกต์ gavamedia/deltafin ที่เพิ่มงานฝั่งสตอเรจและชุดเบนช์มาร์กเข้ามา สิ่งที่มันทำคือรัน Kimi K3 ตัวเต็ม 2.8 ล้านล้านพารามิเตอร์ บน MacBook Pro M5 Max แรม 128 GB เครื่องเดียว โดยสตรีมน้ำหนักของผู้เชี่ยวชาญ (experts) จาก SSD ภายนอกสี่ลูกพร้อมกัน
ตัวเลขพาดหัวคือ 1.00 tok/s และถ้าอ่านแค่นั้นก็จะพลาดของดีทั้งหมด เพราะสิ่งที่รีโปนี้มีค่ามากกว่าความเร็วคือ ความซื่อสัตย์กับข้อจำกัดของตัวเอง และข้อมูลเชิงระบบเรื่องคอขวดที่ใช้ได้จริงกับใครก็ตามที่กำลังคิดจะรันโมเดล MoE ขนาดยักษ์ออกจากดิสก์
ตัวเลขที่วัดได้ และตัวเลขที่วัดแล้วเจ็บ
เบนช์มาร์กทั้งหมดวัดวันที่ 8 ก.ย. 2026 ทุกตัวเลขเป็น การรันเย็นครั้งเดียว ด้วยพรอมต์ที่ระบุไว้ พร้อมล็อกต่อรันเก็บไว้ในรีโป (k3-public-bench/results/) ซึ่งเป็นระดับความโปร่งใสที่โปรเจกต์ประเภทนี้มักไม่ทำ
| การทดสอบ | ปิด drafter | เปิด drafter |
|---|---|---|
| steady decode, สร้าง 512 โทเคน | 0.9232 tok/s | 1.0015 tok/s |
| steady decode, สร้าง 128 โทเคน | 0.9261 | 1.1252 |
| พรอมต์ 17 โทเคนจาก issue #15 (ต้นน้ำรายงาน 0.684) | — | 0.9631 |
| time to first token, พรอมต์ 512 โทเคน | ≈376 วินาที | ≈375 วินาที |
แถวสุดท้ายคือแถวที่ทีมเรียกเองว่า “the honest limit” — พรอมต์ยาว 512 โทเคนใช้เวลา ราว 6.3 นาที กว่าจะได้โทเคนแรกออกมา และ drafter ช่วยไม่ได้เลยในขั้นนี้ พวกเขาระบุสาเหตุไว้ตรง ๆ ว่าขั้น prefill อ่านน้ำหนักผู้เชี่ยวชาญของแต่ละเลเยอร์ซ้ำ 8 รอบ และเขียนว่า “หาสาเหตุเจอแล้ว วางแผนแก้แล้ว ยังไม่ได้สร้าง”
เทียบกับต้นน้ำที่รันบน M1 Max ได้ 0.2901 tok/s (ไต่ขึ้นมาจาก 0.0141 tok/s เมื่อ 27 ก.ค.) — ฟอร์กนี้เร็วขึ้นราว 3.4 เท่า แต่ส่วนหนึ่งมาจากฮาร์ดแวร์ที่ต่างกันคนละรุ่น ไม่ใช่ซอฟต์แวร์ล้วน ๆ ซึ่งรีโปก็เขียนกำกับไว้ชัดว่าตัวเลขชุด M1 “ไม่ใช่ตัวเลขของฟอร์กนี้”
ของจริงอยู่ที่บันได SSD: คอขวดไม่ใช่แบนด์วิดท์รวม
ส่วนที่นักพัฒนาควรอ่านที่สุดคือการทดลองไล่จำนวนไดรฟ์บนพรอมต์เดียวกัน:
- 1 ไดรฟ์ ≈ 52% ของความเร็วสี่ไดรฟ์
- 2 ไดรฟ์ ≈ 73%
- 3 ไดรฟ์ ≈ 90%
นี่คือ scaling แบบ sublinear ที่ชัดเจน และคำอธิบายของพวกเขาคือประโยคที่มีค่าที่สุดในรีโป: ตัวกำหนดจังหวะคือ “การอ่านที่ช้าที่สุดในบรรดา 16 ครั้งของแต่ละเลเยอร์” ไม่ใช่แบนด์วิดท์รวมของทุกไดรฟ์ พูดอีกอย่างคือมันเป็นปัญหา tail latency ไม่ใช่ปัญหา throughput — ทุกโทเคน โมเดลต้องรอผู้เชี่ยวชาญตัวสุดท้ายมาถึงก่อนถึงจะเดินต่อได้ การเพิ่มไดรฟ์ลูกที่สี่จึงได้กำไรแค่ ~10% เพราะมันไม่ได้ทำให้ค่า worst-case ของแต่ละรอบดีขึ้นตามสัดส่วน
บทเรียนนี้ใช้ได้ไกลกว่าโปรเจกต์นี้: ใครที่ออกแบบ inference แบบ offload ไปดิสก์หรือข้ามเครื่อง ควรวัด p99 ของการอ่านต่อเลเยอร์ ไม่ใช่ GB/s รวม
”K3 ตัวเต็ม” หมายความว่าอะไรกันแน่
รีโปประกาศจุดยืนแรงมากว่า “ไม่ตัดอะไรทิ้ง ไม่ข้ามอะไร K3 เป็นคนตัดสินทุกโทเคน” และวิจารณ์โปรเจกต์อื่นที่ “รี-เอ็นโค้ดคลังผู้เชี่ยวชาญของ K3 ลงเหลือราว 3 บิต” ว่าน้ำหนักเหล่านั้นไม่ใช่สิ่งที่ Moonshot ปล่อยออกมาอีกต่อไป ตรงนี้ต้องอ่านให้ละเอียด เพราะการเช็ก config.json ของ moonshotai/Kimi-K3 บน Hugging Face โดยตรงให้ภาพที่แม่นกว่าคำโฆษณา:
- น้ำหนักที่ Moonshot ปล่อยเป็น 4 บิตอยู่แล้ว —
quantization_configระบุฟอร์แมตmxfp4-pack-quantized,num_bits: 4,group_size: 32ดังนั้น “ทุกไบต์ตรงตามที่ Moonshot ส่งมา” จึงหมายถึง ไม่บีบต่ำลงไปกว่า MXFP4 ที่เป็นต้นฉบับ ไม่ได้แปลว่ารัน BF16 - โมเดลมีผู้เชี่ยวชาญ 896 ตัว (
num_experts: 896) โดยเลือกใช้ 16 ตัวต่อโทเคน (num_experts_per_token: 16) บวกผู้เชี่ยวชาญร่วม 2 ตัว — ฉะนั้นคำว่า “all 16 experts, every single token” ในรีโปหมายถึง ไม่ตัด top-k ให้เหลือน้อยกว่า 16 ไม่ใช่ว่าโมเดลมีผู้เชี่ยวชาญแค่ 16 ตัว - ขนาดจริงของรีโปบน Hugging Face คือ ~1.56 TB (96 ไฟล์ safetensors) พารามิเตอร์รวม 2,779,931,837,184 ตัว คอนเท็กซ์ 1,048,576 โทเคน และ 93 เลเยอร์
ส่วนความเร็วที่ได้มา มาจาก speculative decoding: ติดตั้งมาพร้อม Kimi-K3-DSpark (6.635 GiB บนดิสก์ ~4.49 GiB ตอนรัน) เดาโทเคนถัดไป แล้ว K3 ตัวจริงเป็นคนตรวจทุกครั้ง — เอาต์พุตจึงเหมือนกันบิตต่อบิต ไม่ใช่การแลกคุณภาพกับความเร็ว มีตัวเสริม Qwen อีก 4.337 GiB สำหรับ raw completion โดยเฉพาะ (วัดได้ 2.7 เท่า บน completion 17 โทเคน โดยได้ token ID ชุดเดียวกัน) แต่ทีมระบุเองว่ามันไม่ช่วยฝั่งแชท จึงแยกเป็น add-on
ไลเซนส์เป็น MIT ทั้งต้นน้ำและฟอร์ก (น้ำหนัก K3 ยังอยู่ใต้เงื่อนไขของ Moonshot ซึ่ง Hugging Face ระบุว่า other) ตัวโปรแกรมเป็นไบนารีเดียวคอมไพล์จาก Rust รองรับ macOS arm64 และ Linux x86-64/aarch64 บน MPS/Metal, CUDA และ CPU
มุมมอง AI Curator
ต้องพูดตรง ๆ ก่อนว่า 1 tok/s กับ TTFT 6.3 นาที คือความเร็วที่ใช้ทำงานจริงไม่ได้ พรอมต์เดียวที่ยาวหน่อยแล้วรอหกนาทีก่อนเห็นตัวอักษรแรก ไม่มี workflow ไหนของนักพัฒนาที่ทนได้ และทีมเองก็ไม่ได้เสแสร้งเป็นอย่างอื่น — README เขียนว่า “Deltafin ไม่ใช่การขายของ มันคือการทดลองว่าฮาร์ดแวร์ผู้บริโภคจะถูกดันไปได้ไกลแค่ไหน” ความซื่อสัตย์แบบนี้หายากพอที่จะควรชม โดยเฉพาะเมื่อเทียบกับโปรเจกต์ local LLM จำนวนมากที่โชว์ตัวเลข best-case แล้วซ่อน prefill ไว้ใต้พรม
ที่น่าสนใจกว่าคือ มันเปลี่ยนคำถามของการรันโมเดลใหญ่ในบ้านจาก “แรมพอไหม” เป็น “ดิสก์ป้อนทันไหม” สำหรับ MoE ที่ activate พารามิเตอร์แค่เศษเสี้ยวต่อโทเคน หน่วยความจำไม่ใช่เพดานแข็งอีกต่อไป — เพดานคือ latency ของการอ่านผู้เชี่ยวชาญ และงานวิจัยฝั่ง prefetch/expert-placement/caching ยังแทบไม่ถูกแตะเมื่อเทียบกับงานฝั่ง quantization ที่มีคนทำเต็มไปหมด ถ้าใครในภูมิภาคนี้มองหาช่องวิจัยเชิงระบบที่ยังว่างและมีผลกระทบสูง นี่คือช่องนั้น
สำหรับบริบทไทยและ SEA มีสองมุมที่ใช้ได้ทันที มุมแรกคือเรื่องเงิน — รีโปเทียบว่าเซ็ตอัพที่บ้านราว 15,000 ดอลลาร์ เทียบกับโครงสร้างพื้นฐานระดับ 2 ล้านดอลลาร์ ที่ Moonshot แนะนำสำหรับ K3 (16 โหนด, VRAM รวมราว 4.8 TB) นั่นคือส่วนต่างสามระดับขนาด แต่ต้องยอมรับว่าที่ 1 tok/s มันยังไม่ใช่การทดแทน มันคือการ เข้าถึงเพื่อศึกษา — พอสำหรับงานที่ตอบครั้งเดียวแล้วรอได้ เช่นการตรวจสอบพฤติกรรมโมเดล การทำ red-team บางประเภท หรือการรันงานเป็นแบตช์ข้ามคืน ไม่ใช่การเสิร์ฟผู้ใช้
มุมที่สองสำคัญกว่าและมักถูกมองข้าม: นี่คือเส้นทางเดียวที่องค์กรซึ่งข้อมูลออกนอกประเทศไม่ได้ จะได้แตะโมเดลระดับ frontier ตัวจริง โรงพยาบาล หน่วยงานรัฐ หรือสถาบันการเงินที่ติดข้อกำหนด data residency ทุกวันนี้มีทางเลือกอยู่แค่โมเดลเปิดขนาดกลางที่รันไหว งานอย่าง Deltafin ทำให้ “รันโมเดลใหญ่สุดในเครื่องตัวเอง” ย้ายจากคำว่าเป็นไปไม่ได้ มาเป็นคำว่าช้า — และปัญหาความช้าเป็นปัญหาวิศวกรรมที่แก้ได้ ต่างจากปัญหา “ไม่มีเครื่องพอ” ตัวชี้วัดที่ควรจับตาในรอบถัดไปจึงไม่ใช่ tok/s แต่คือ TTFT: ถ้าพวกเขาแก้เรื่องอ่านซ้ำ 8 รอบใน prefill ได้จริง ตัวเลข 6.3 นาทีควรลดลงอย่างมีนัยสำคัญ และนั่นจะเป็นข่าวที่ใหญ่กว่าตัวเลข 1 tok/s หลายเท่า
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog