Needle 3: โมเดลเรียกเครื่องมือไฟล์เดียว 8–29 MB จาก Cactus — ตัวเต็ม 121M ทำ Mobile Actions 86.0 ไล่ DeepSeek V4 Flash ที่ 88.4 แต่แพ้ขาดบน BFCL
18 ก.ย. 2026 ทีม Cactus Compute ปล่อย Needle 3 ขึ้น Hugging Face ภายใต้ Apache-2.0 — รุ่นต่อจาก Needle 2 ที่เราเขียนถึงเมื่อ 11 ส.ค. 2026 ข้อเสนอยังเป็นแบบเดิมแต่ชัดกว่าเดิมมาก: โมเดลไฟล์เดียวขนาด 8–29 MB ที่ไม่พยายามคุยเล่นกับคุณ แต่ทำสามอย่างให้ได้ดีบนอุปกรณ์ — เรียก tool, สกัดข้อมูลเป็น JSON แบบมี schema และทำ text embedding
ความน่าสนใจของรีลีสนี้ไม่ได้อยู่ที่ว่ามัน “เล็กแล้วเก่ง” แต่อยู่ที่ ทีมปล่อยตารางเบนช์มาร์กหกชุดเต็ม ๆ พร้อมจำนวนแถวทดสอบ รวมถึงชุดที่ตัวเองแพ้ ซึ่งหายากในรีลีสโมเดลเล็กยุคนี้ และทำให้ประเมินได้จริงว่าควรใช้มันกับงานแบบไหน
สถาปัตยกรรม: บันไดที่ทุกขั้นเอาไปใช้ได้
Needle 3 เป็นสิ่งที่ทีมเรียกว่า Laddered Simple Attention Network ประกอบด้วย:
- Monarch Hadamard MLP แทน FFN มาตรฐาน
- GQA attention พร้อม causal convolution taps
- engram หน่วยความจำแบบ n-gram ที่อ่านด้วย gather — พารามิเตอร์ส่วนใหญ่ของโมเดลอยู่ตรงนี้ ทำให้โมเดล 121M ทำงานคำนวณเท่ากับโมเดล 50M
- multi-lane hyper-connections
แต่หัวใจจริง ๆ คือคำว่า laddered: โมเดลถูกเทรนให้ ทุกความลึกตั้งแต่ 2 ถึง 20 เลเยอร์เป็นโมเดลที่ deploy ได้ ไม่ใช่ต้อง distill ใหม่ทุกขนาด คุณสไลซ์ subnetwork ที่ต้องการออกมาได้เลยด้วย needle build --layers N — ตัวเต็ม 20 เลเยอร์คือ 121M พารามิเตอร์, 16 เลเยอร์คือ 98M, 8 เลเยอร์คือ 52M และ 4 เลเยอร์คือ 29M
น้ำหนักถูกบีบด้วย Cactus Quants ที่ระดับ CQ2 หรือ 2.125 บิตต่อน้ำหนัก ออกมาเป็นไฟล์ .cact เดียวที่เอนจินแมปแล้วอ่านตรงจากตำแหน่งเดิม และทุกโฟลเดอร์แพลตฟอร์มใน repo มีเอนจิน ขนาดต่ำกว่า 1 MB เอาต์พุตถูกบังคับด้วย byte-level grammar ที่คอมไพล์จาก schema ของคุณเอง — แปลว่า JSON ที่ได้ parse ผ่านเสมอ ไม่ใช่ “มักจะผ่าน” และทุกคำตอบมี calibrated confidence จาก head ที่เทรนมาเฉพาะ
ตัวเลขจริง — และที่ต้องอ่านให้ครบ
นี่คือตัวเลขจากกราฟเบนช์มาร์กของ Needle 3 เอง (tool calling วัดเป็น exact-match accuracy, extraction วัดเป็น field micro-F1 บน test split เต็ม):
Mobile Actions (961 แถว, accuracy %) — ชุดที่ Needle ออกแบบมาเพื่อชนะ:
| โมเดล | ขนาด | คะแนน |
|---|---|---|
| DeepSeek V4 Flash | cloud | 88.4 |
| Needle3-20L | 121M | 86.0 |
| LFM2.5 | 1.2B | 82.4 |
| Needle3-16L | 98M | 80.7 |
| Qwen3.5 | 800M | 76.0 |
| FunctionGemma | 270M | 65.1 |
| Needle 2 | 45M | 63.5 |
| Apple FM | 3.0B | 57.6 |
ตรงนี้คำโฆษณา “ชนะโมเดลที่ใหญ่กว่า 10 เท่า” เป็นจริง — 121M เอาชนะ LFM2.5 1.2B และทิ้ง Apple Foundation Model 3B ไปเกือบ 30 แต้ม และเทียบกับ Needle 2 ที่ 63.5 รุ่นนี้ขยับขึ้น 22.5 แต้ม
DroidCall (200 แถว): DeepSeek V4 Flash 60.5, Needle3-20L 47.0, Needle3-16L 40.0, Needle3-8L 36.5, LFM2.5 1.2B 35.5 — ยังนำกลุ่มโมเดลเล็ก
แต่บนชุดที่กว้างกว่า ภาพกลับด้าน:
- BFCL v4 (3,641 แถว, AST match): DeepSeek V4 Flash 77.2, LFM2.5 1.2B 62.0, LFM2.5 350M 59.1, Qwen3.5 0.8B 56.8, Needle3-20L 50.2 — แพ้ทั้ง LFM2.5 1.2B และ Qwen3.5 0.8B
- DSTC8 (1,813 turns, field F1): DeepSeek V4 Flash 80.0, LFM2.5 230M 53.0, Qwen3.5 0.8B 49.0, LFM2.5 1.2B 48.0, Needle3-20L 40.7 — แพ้แม้กระทั่ง LFM2.5 230M
- SNIPS gold (700 แถว, F1): LFM2.5 1.2B 43.0, Needle3-20L 30.2
- SNIPS 7-way: LFM2.5 1.2B 38.0, Needle3-20L 24.7
พูดตรง ๆ คือ คำเคลมบนการ์ดโมเดลที่ว่า “match 2-3x bigger models on extraction” ไม่ตรงกับตารางของตัวเอง — บนงานสกัดข้อมูลสามชุด Needle3-20L อยู่ต่ำกว่าโมเดลขนาด 230M–1.2B ทุกชุด สิ่งที่ Needle 3 เก่งจริงคือ การเลือก tool และเติม argument ในโดเมนที่แคบและคาดเดาได้ ไม่ใช่การสกัดข้อมูลทั่วไป
ทางออกที่ทีมเสนอเอง: fine-tune
ที่น่าสนใจคือ Cactus ไม่ได้ซ่อนเรื่องนี้ แต่ออกแบบสินค้าให้ตอบมันตรง ๆ — Needle 3 ถูกออกแบบมาให้ fine-tune และตัวเลขสนับสนุนหนักแน่น:
- fine-tune บน DroidCall ยก subnetwork ทุกขนาดขึ้น 18 ถึง 36 แต้ม
- ตั้งแต่ 4 เลเยอร์ขึ้นไป (เริ่มที่ 29M พารามิเตอร์) subnetwork ที่ผ่านการ tune แซง DeepSeek V4 Flash บนงานนั้น
แปลว่าโมเดลฐานตัวนี้ควรถูกมองเป็น “ฐานที่เอาไปเทรนต่อให้ตรงกับ tool ของแอปคุณ” มากกว่าเป็นโมเดลพร้อมใช้ทั่วไป วิธีทำก็ตรงไปตรงมา — แพ็กเกจ Python ทำ LoRA บนฐานที่แช่แข็งไว้ที่ 20 เลเยอร์เต็ม จากนั้น needle build --layers N merge adapter สไลซ์ subnetwork แล้ว export เป็น .cact 4-bit ที่รันบนเอนจินเดิม (ส่วนการ post-train และ quantize เหลือ 2 บิตแบบที่ใช้กับโมเดลที่ปล่อยออกมา ทำบน Cactus Platform ซึ่งเป็นบริการเชิงพาณิชย์ของทีม)
เริ่มใช้งาน:
pip install cactus-needle
import needle
@needle.tool
def get_weather(city: str):
"Get the current weather for a city."
return {"city": city, "temp_c": 27, "sky": "clear"}
agent = needle.Needle(tools=[get_weather])
print(agent.run("what's it like in Lagos right now?")["results"])
หรือรันจาก CLI บนอุปกรณ์จริง:
./needle --model needle3.cact --tools tools.json --prompt "dim the living room to 30"
./needle --model needle3.cact --tools tools.json --serve
รองรับ Python, C API, WASI component, เบราว์เซอร์ผ่าน WebAssembly และการติดตั้งแบบ air-gapped ส่วนหน้ารีลีสของ Cactus ระบุความเร็วบน Raspberry Pi 5 ที่ราว 400–4,000 โทเคน/วินาทีตอน decode และ 1–10k โทเคน/วินาทีตอน prefill ขึ้นกับความลึกที่เลือก
มุมมอง AI Curator
สิ่งที่ผมคิดว่าสำคัญที่สุดใน Needle 3 ไม่ใช่ขนาด 29 MB แต่คือ แนวคิด “ladder” — การเทรนครั้งเดียวแล้วได้โมเดลที่ deploy ได้สิบกว่าขนาด เป็นคำตอบที่ตรงกับปัญหาจริงของงาน edge มากกว่าการ distill แยกทีละรุ่น เพราะในผลิตภัณฑ์จริงคุณไม่ได้เลือกฮาร์ดแวร์เดียว คุณต้องรันบนมือถือเรือธง มือถือราคาถูก และบางทีก็ MCU ในเครื่องใช้ไฟฟ้า ด้วยโค้ดชุดเดียว การที่ น้ำหนักชุดเดียวกันสไลซ์ได้ตั้งแต่ 29M ถึง 121M โดยใช้เอนจินตัวเดิม ลดงานวิศวกรรมลงมากกว่าที่ตัวเลขเบนช์มาร์กใด ๆ จะบอก
แต่ผมอยากให้ผู้อ่านจับประเด็นที่สองให้ได้ด้วย: ตารางเบนช์มาร์กของรีลีสนี้เป็นตัวอย่างที่ดีของการอ่านให้ครบ ถ้าอ่านแค่พาดหัว คุณจะจำว่า “โมเดล 29 MB สู้ DeepSeek V4 Flash ได้” ซึ่งเป็นจริงเฉพาะหลัง fine-tune บนงานเดียว ส่วนโมเดลฐานที่ปล่อยมานั้นแพ้ LFM2.5 บนสี่ในหกชุด การที่ Cactus ยังเลือกใส่ชุดที่ตัวเองแพ้ลงในกราฟเดียวกันเป็นเรื่องที่ควรชม — และเป็นมาตรฐานที่ผมอยากให้ทีมโมเดลเล็กรายอื่นทำตาม เพราะโมเดลระดับนี้ถูกเลือกใช้จากความเหมาะกับงาน ไม่ใช่จากอันดับรวม
สำหรับบริบทไทยและอาเซียน ผมเห็นสองการใช้งานที่ตรงจุดทันที หนึ่ง — แอปที่ต้องทำงานตอนเน็ตไม่ดี ซึ่งยังเป็นความจริงนอกเขตเมืองของหลายประเทศในภูมิภาค การให้ตัวแปลง “ประโยคผู้ใช้ → เรียกฟังก์ชัน” อยู่ในเครื่องหมายถึงแอปยังสั่งงานได้แม้เน็ตหลุด สอง — งานที่ข้อมูลออกนอกเครื่องไม่ได้ อย่างแอปสุขภาพหรือการเงิน ซึ่งเชื่อมโยงตรงกับข่าว ZCode ที่เราเขียนวันนี้: เมื่อความเสี่ยงของการส่งข้อมูลขึ้นคลาวด์กลายเป็นเรื่องที่พิสูจน์แล้ว ไม่ใช่แค่ข้อกังวลเชิงทฤษฎี โมเดลที่ทำงานได้จบในเครื่องก็มีมูลค่าเพิ่มขึ้นทันที
ข้อควรระวังสุดท้ายสำหรับทีมไทย: เบนช์มาร์กทั้งหกชุดเป็น ภาษาอังกฤษล้วน และโมเดลขนาด 121M ที่บีบเหลือ 2 บิตไม่มีทางมีความสามารถภาษาไทยที่ใช้ได้โดยไม่เทรนต่อ ถ้าจะเอาไปทำผู้ช่วยสั่งงานภาษาไทย ให้ตั้งงบไว้สำหรับ การสร้างชุดข้อมูล tool-call ภาษาไทยและ fine-tune เอง ตั้งแต่ต้น — ข่าวดีคือตัวเลข “ยกขึ้น 18–36 แต้มหลัง fine-tune” บอกว่างานนั้นคุ้มมาก และด้วย LoRA บนฐาน 121M มันเป็นงานที่การ์ดใบเดียวทำได้
แหล่งข่าว
อ่านเพิ่มในหมวด โมเดลใหม่
Google เปิดตัว Gemini 4 Carbon ขึ้นอันดับ 1 Artificial Analysis v5 ด้วยคะแนน 59 แต่ยังให้ใช้แค่นักป้องกันไซเบอร์กลุ่มเล็ก
Gemini 4 Carbon เปิดตัว 28 ต.ค. แซง Claude Opus 5.5 บน Intelligence Index v5 แค่ 1 คะแนน และตามหลังเพียง 3 คะแนนในดัชนี coding agent ราคาเปิดตัว $2/$10 แต่นักพัฒนาทั่วไปยังเรียกใช้ไม่ได้ ระหว่างที่ Google ค่อย ๆ เปิดผ่านโปรแกรม Fairwind
Microsoft ปล่อย Mage-VL-Cowork โมเดล 4B คุมเดสก์ท็อปและเทอร์มินัลในตัวเดียว ได้ 66% บน OSWorld-Verified สัญญาอนุญาต Apache-2.0
Mage-VL-Cowork ขนาด 4B ของ Microsoft เลือกเองว่าจะคลิกหน้าจอหรือสั่ง bash ทำคะแนน OSWorld-Verified 66.0% ใกล้ค่าอ้างอิงมนุษย์ 72.4% ในตารางเดียวกัน แต่คำว่าดีที่สุดในขนาด 4B มีคู่เทียบบนตารางนี้แค่รุ่นเดียว
Mistral ปล่อยน้ำหนัก Large 4 จริงแล้ว — 1T ราคาลดเกือบครึ่ง แต่บน AA ได้ 26 และสัญญาอนุญาตห้ามขายเป็น API ถ้าไม่มีใบอนุญาตแยก
Mistral ปล่อยน้ำหนัก Large 4 (Le Chonk) เมื่อ 29 ต.ค. เป็นรุ่นที่ฝึก RL ต่ออีกสามสัปดาห์หลัง preview ขนาด 1T ใช้พื้นที่ราว 1.06TB ราคา API ลดเหลือ $0.70/$2.10 Mistral นำ open-weight ด้าน coding แต่คะแนนรวม AA 26 ตามหลังโมเดลจีน และสัญญาอนุญาตกันธุรกิจ Model-as-a-Service