ข้ามไปยังเนื้อหา
tandem.cpp แพตช์ llama.cpp ให้ CPU ช่วย GPU รันโมเดล MoE ที่ใหญ่เกิน VRAM เร็วขึ้นสูงสุด 3.3 เท่าบน RTX 4090
เครื่องมือนักพัฒนา

tandem.cpp แพตช์ llama.cpp ให้ CPU ช่วย GPU รันโมเดล MoE ที่ใหญ่เกิน VRAM เร็วขึ้นสูงสุด 3.3 เท่าบน RTX 4090

อ่าน 4 นาที ที่มา: tandem.cpp

โมเดลเปิดขนาดใหญ่ที่ใช้ MoE มีปัญหาเดียวกันบนเครื่องผู้ใช้ทั่วไป คือ expert ใหญ่เกิน VRAM แต่ในแต่ละ token ใช้จริงเพียงส่วนน้อย tandem.cpp ซึ่งปล่อยเมื่อ 1 พ.ย. ใช้จุดนี้เป็นชุดแพตช์ให้ llama.cpp โดยผู้พัฒนาเป็นอิสระ ไม่เกี่ยวกับ ggml-org

ตัวเลขเด่นคือ Qwen3.8-Flash-Next ได้ 97.3 token/s เทียบกับ 29.8 token/s บนเครื่องผู้ใช้ทั่วไป ถ้าตัวเลขนี้ทำซ้ำได้ การรันโมเดลระดับนี้บนการ์ดตัวเดียวจะก้าวหน้าไปอีกขั้น แต่ repo เพิ่งเปิดและมีไม่กี่ดาว จึงควรถือเป็นผลรายงานของผู้พัฒนาเอง

ทำงานอย่างไร

expert ทั้งหมดอยู่ใน RAM ส่วนหน่วยความจำ GPU ที่เหลือใช้เป็นแคชของ expert ที่ถูกใช้ล่าสุด สำหรับ expert ที่ token นั้นต้องใช้แต่ไม่อยู่ในแคช ระบบจะแบ่งเป็นสองทาง ส่วนหนึ่งให้ CPU คำนวณคู่ขนานไปขณะ GPU ทำส่วนที่แคชไว้ อีกส่วนอัปโหลดขึ้นแคชของ GPU

llama.cpp มีโหมดแคช --moe-cache-mib อยู่แล้ว สิ่งที่เพิ่มเข้ามาคือเส้นทาง CPU และการปรับแต่งรายละเอียดอีกมาก ตัวแพตช์มีขนาดราว 430KB ฐานคือ llama.cpp คอมมิต f5222f25c ค่าเริ่มต้นทั้งหมดให้ผลลัพธ์แบบ exact หรือต่างแค่การปัดเศษทศนิยม ไม่ใช่การข้าม expert เพื่อเอาความเร็ว

ตัวเลขที่ผู้พัฒนารายงาน

เครื่อง i5-12400F, DDR4 64GB, RTX 4090 24GB วัด decode บนโจทย์ GSM8K 200 ข้อแรก แบบผู้ใช้คนเดียว

โมเดลllama.cpptandem.cppStrata (exact)
Qwen3.8-Flash-Next IQ3_S + MTP29.897.3 (3.3×)103.6
gpt-oss-120b ไม่ใช้ draft27.851.5 (1.85×)ไม่มี
DeepSeek-V4.1 IQ2_XS จาก SSD6.865.99 (0.87×)8.41
  • โมเดลอื่นที่ไม่ได้จูนเฉพาะมักเร็วขึ้น 1.4–2.1 เท่า ส่วน prompt processing บน prompt 64k token เร็วขึ้น 1.4–1.8 เท่า
  • Strata ยังนำอยู่เล็กน้อยในโหมด exact แต่รองรับโมเดลจำกัดกว่า ข้อดีของ tandem.cpp คืออยู่ใน llama.cpp และใช้กับ MoE ใดก็ได้ที่ llama.cpp รองรับ
  • ข้อจำกัดที่ผู้พัฒนาเขียนไว้เอง: เมื่อโมเดลใหญ่กว่า RAM ถึง 3 เท่าอย่าง DeepSeek-V4.1 tandem.cpp ช้ากว่า llama.cpp เพราะเส้นทาง CPU ยังไม่รับ miss ที่ต้องอ่านจาก SSD
  • บนเครื่อง 6 คอร์ EAGLE3 ทำให้ช้าลง เพราะการตรวจ token หลายตัวเพิ่มงาน CPU

ลองใช้

ผู้พัฒนาทดสอบกับ CUDA 13.0–13.4 บน Ubuntu 22.04 และ 24.04:

git clone https://github.com/ewhacc/tandem.cpp && cd tandem.cpp
bash build.sh
cd tandem
./build/bin/llama-server -m model.gguf -ngl 99 -cmoe \
  --moe-cache-mib auto -lm none -np 1 -c 16384

ถ้า RAM น้อยกว่าโมเดล ให้เอา -lm none ออก ถ้า RAM น้อยมากให้เพิ่ม --cache-ram 0 ด้วย ข้อความ failed to fit params ตอนเริ่มเป็นเรื่องปกติ เพราะ -ngl 99 ปิดการจัดวางอัตโนมัติ แล้วให้แคชจัดการแทน

มุมมอง AI Curator

ปีนี้ประสิทธิภาพของ local LLM ก้าวหน้าจากซอฟต์แวร์มากกว่าฮาร์ดแวร์ ตั้งแต่ Strata, MTP, quantization แบบ 2 บิต จนมาถึง tandem.cpp ซึ่งทั้งหมดอาศัยความจริงข้อเดียวกันว่า MoE ใช้ expert เพียงส่วนน้อยต่อ token สำหรับนักพัฒนาในไทยที่ต้องรันโมเดลในองค์กรเพราะเรื่องข้อมูล ข่าวแบบนี้มีความหมายกว่าการรอซื้อการ์ด 48GB ที่ราคาสูงมาก เพราะเครื่องเดิมอาจรันโมเดลใหญ่ได้เร็วขึ้นโดยไม่เสียเงินเพิ่ม

แต่ควรอ่านตัวเลขอย่างระวัง GSM8K เป็นคำถามสั้น ซึ่งไม่เหมือนงาน coding agent ที่บริบทยาวหลายหมื่น token ตัวเลขจริงน่าจะต่างกัน และการที่ repo ใช้แพตช์ขนาดใหญ่ทับคอมมิตเฉพาะก็หมายความว่าจะตามงาน upstream ได้ยากถ้าไม่ถูกรวมเข้าไป ขณะนี้ฝั่ง llama.cpp เองก็มี PR #31469 เรื่อง out-of-core MoE ที่ยังเปิดอยู่ ถ้าแนวคิดของ tandem.cpp เข้า upstream ได้ ผู้ใช้จะได้ประโยชน์มากกว่าการต้องดูแล fork แยก

แหล่งข่าว

บทความนี้เรียบเรียงจากแหล่งข่าวต้นทาง — tandem.cpp

เนื้อหาบน blog นี้สร้างโดย AI โดยมีการกำกับบรรณาธิการจากมนุษย์

อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา

DeepSeek เปิดโค้ด dsh-superagent ต้นแบบ coding agent แบบ Router-Worker ที่ออกแบบให้กินเวลาคนน้อยที่สุด
เครื่องมือนักพัฒนา

DeepSeek เปิดโค้ด dsh-superagent ต้นแบบ coding agent แบบ Router-Worker ที่ออกแบบให้กินเวลาคนน้อยที่สุด

ทีม DeepSeek Harness เปิดซอร์ส dsh-superagent-prototype ภายใต้ MIT พร้อมบทความอธิบายสถาปัตยกรรม Super-agent แบ่ง Router ที่รับงานจาก GitHub หรือ Feishu กับ Worker ที่ทำงานขนาน repo ได้กว่า 7,000 ดาวในสองวัน แต่ทีมย้ำว่าเป็นโค้ดวิจัย และ worker รันแบบ danger-full-access

· อ่าน 5 นาที
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
เครื่องมือนักพัฒนา

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

· อ่าน 5 นาที
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
เครื่องมือนักพัฒนา

กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง

ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง

· อ่าน 4 นาที