Needle 2 โมเดล 14MB ที่สั่งงานอุปกรณ์ได้ในเครื่อง โดยไม่ต้องต่อเน็ต
Needle 2 เป็นโมเดลเปิด 45 ล้านพารามิเตอร์ที่รวมอยู่ในไฟล์เดียวขนาด 14MB และทำงานในเครื่องโดยไม่ต้องต่อเน็ต ที่เล็กได้ขนาดนี้เพราะโจทย์เหลือเพียงจับคู่ประโยคของคนกับรายการคำสั่งที่อุปกรณ์ประกาศไว้ล่วงหน้า

Needle 2 เป็นโมเดลเปิดที่มาเป็นไฟล์ไบนารีขนาด 14MB เพียงไฟล์เดียว ไม่ใช่ 14GB ภายในมีพารามิเตอร์ 45 ล้านตัว ใช้แรมราว 28MB ต่อหนึ่งเซสชัน และเผยแพร่ภายใต้สัญญาอนุญาต Apache 2.0 ขนาดนี้เล็กพอที่จะก๊อปทั้งโมเดลไปฝังในเครื่องใช้ไฟฟ้าหรือบอร์ดจิ๋วได้ โดยไม่ต้องเรียกใช้อะไรจากนอกเครื่องเลย
โมเดลนี้สร้างคำสั่งเรียกฟังก์ชันสำหรับงานสองแบบ คือสั่งงานอุปกรณ์และดึงข้อมูลจากข้อความออกมาเป็นโครงสร้างตามสคีมาที่ประกาศไว้ ทีมผู้สร้างบอกเองในกระทู้ถามตอบว่านี่ไม่ใช่โมเดลภาษาทั่วไป และไม่ได้ทำมาแทนผู้ช่วย AI ที่คนใช้คุยงานกันทุกวัน ถามความรู้ทั่วไปกับมันก็ไม่ได้คำตอบ เพราะผลลัพธ์ที่โครงสร้างของมันสร้างได้คือ function call ไม่ใช่ข้อความตอบกลับ
ทำไม 45 ล้านพารามิเตอร์ถึงพอ

โมเดลแชตต้องแบกความรู้ไว้มาก เพราะไม่มีใครรู้ล่วงหน้าว่าคนจะถามอะไร มันจึงต้องพร้อมตอบทั้งเรื่องกฎหมาย อาหาร และโค้ด ทั้งยังต้องเรียบเรียงคำตอบยาวๆ ให้อ่านรู้เรื่อง ความสามารถชุดนี้ต้องแลกมาด้วยพารามิเตอร์ระดับพันล้านตัว
แต่โจทย์ในนาฬิกา บ้าน หรือรถไม่ได้มีหน้าตาแบบนั้น อุปกรณ์ประกาศความสามารถของตัวเองไว้ล่วงหน้าเป็นรายการฟังก์ชัน แต่ละฟังก์ชันมีช่องที่ต้องกรอก พร้อมระบุชนิดของค่าไว้อย่างครบถ้วน ฟังก์ชันล็อกประตูรับชื่อประตู ส่วนฟังก์ชันตั้งอุณหภูมิรับตัวเลขกับโหมด งานเดียวที่เหลือให้โมเดลทำคืออ่านประโยครกๆ ที่คนพูดออกมา แล้วระบุว่าตรงกับฟังก์ชันไหนและต้องใส่ค่าอะไร งานนี้ไม่ต้องใช้ความรู้รอบตัวสักนิด และไม่ต้องเขียนข้อความยาวให้ใครอ่าน 45 ล้านพารามิเตอร์จึงเพียงพอ
กติกาสองข้อทำให้ขอบเขตงานนี้แคบจริงในทางปฏิบัติ ข้อแรก ค่าที่โมเดลกรอกต้องมีหลักฐานอยู่ในข้อความที่คนพิมพ์เข้ามา ถ้าฟิลด์ใดไม่บังคับและไม่มีหลักฐานรองรับ โมเดลจะเว้นว่างไว้แทนที่จะเดาค่าให้ ข้อสอง ถ้าไม่มีเครื่องมือตัวไหนรองรับสิ่งที่คนขอ โมเดลจะคืนรายการเรียกฟังก์ชันเปล่าอย่าง [] กลับมา โครงสร้างนี้ไม่มีทางออกเป็นข้อความอิสระมาตั้งแต่แรก การเปิดไฟดวงหนึ่งจึงไม่จำเป็นต้องใช้โมเดลระดับแนวหน้า อย่างที่หน้าเปิดตัวเขียนไว้เอง
มันไปนั่งอยู่ในอุปกรณ์ที่คนใช้จริงได้
เมื่อโจทย์เล็กลง อุปกรณ์ที่รันโมเดลนี้ได้ก็เปลี่ยนไปด้วย บน Raspberry Pi 5 มันถอดรหัสได้ 500 โทเคนต่อวินาที บนอุปกรณ์ VR อย่าง Meta Quest 3S และ Apple Vision Pro ทำได้ 400 ถึง 1,500 โทเคนต่อวินาที ส่วนมือถือราคาต่ำกว่า 200 ดอลลาร์อย่างซีรีส์ Samsung A ทำได้ 300 ถึง 700 โทเคนต่อวินาที ตัวเลขความเร็วของงานแบบนี้ต้องอ่านควบคู่กับชื่อเครื่อง เพราะอุปกรณ์คนละระดับย่อมให้ผลต่างกัน
เพดานแรม 28MB ต่ำพอให้มันลงไปทำงานได้ถึงชิ้นส่วนระดับไมโครคอนโทรลเลอร์ที่ต่อแรมภายนอกไว้ อย่าง ESP32-P4 แต่ต้องอ่านข้อมูลส่วนนี้ให้ตรง มันไม่ได้แปลว่าไมโครคอนโทรลเลอร์เปล่าๆ ทุกตัวจะรันได้ ส่วนข้อมูลว่า ESP32-S3 รันได้โดยใช้แรมราว 11MB เป็นรายงานจากคนนอกทีม ไม่ใช่ผลที่ทีมผู้สร้างวัดเอง
สิ่งที่ช่วยไม่ให้การใช้แรมบานปลายคือวิธีจัดการความจำ แรมที่ใช้มีเพดานตายตัว ไม่ได้เพิ่มขึ้นเรื่อยๆ ตามความยาวของบทสนทนา เพราะ attention มองย้อนหลังได้เพียงหน้าต่างเลื่อนขนาด 256 โทเคน ขณะที่ system prompt กับรายการเครื่องมือถูกตรึงไว้เป็นส่วนถาวรในแคชและไม่ถูกเลื่อนออกไป ด้วยโครงสร้างแบบนี้ อุปกรณ์ที่มีแรมจำกัดจึงวางแผนการใช้หน่วยความจำล่วงหน้าได้จริง
การทำงานแบบออฟไลน์ก็มีขอบเขตที่ควรบอกให้ชัด โมเดลฝังอยู่ในไบนารีตั้งแต่ต้น จึงไม่แตะเครือข่ายขณะประมวลผล ส่วนแพ็กเกจ Python ที่ติดตั้งด้วย pip install cactus-needle จะดึงเอนจินจาก Hugging Face เพียงครั้งแรกแล้วเก็บไว้ในแคช หลังจากนั้นการทำงานทั้งหมดจะอยู่ในเครื่อง ตัวอย่างที่นำไปใช้งานจริงแล้วคือ Pebble ซึ่งรันโมเดลนี้ในเครื่องผ่านแอป Index 01 เพื่อเปลี่ยนคำพูดให้เป็นการกระทำ เหตุผลที่ Pebble ให้ไว้นั้นตรงไปตรงมา คือแหวน Pebble Index ไม่มีหน้าจอ เมื่อพูดใส่มันแล้ว การกระทำต้องเกิดขึ้นทุกครั้งไม่ว่าจะมีเน็ตหรือไม่ก็ตาม
เหตุที่ต้องรันบนอุปกรณ์ราคาถูกให้ได้ เป็นเพราะอุปกรณ์เชื่อมต่อส่วนใหญ่ในโลกไม่ใช่คอมพิวเตอร์ราคาแพง อุปกรณ์ IoT ที่เชื่อมต่ออยู่มีมากกว่า 21 พันล้านเครื่อง เทียบกับพีซีราว 1.5 พันล้านเครื่อง ราวสี่ในห้าของอุปกรณ์ปลายทางมีราคาต่ำกว่า 200 ดอลลาร์ และในตลาดเกิดใหม่ มือถือส่วนใหญ่ก็ขายอยู่ในช่วงราคานั้น ฮาร์ดแวร์ที่ทีมผู้สร้างเล็งไว้จึงเป็นเครื่องที่ไม่มี GPU ไม่มี NPU และมีแรมเพียงไม่กี่ร้อยเมกะไบต์ AI ที่รันได้เฉพาะบนเครื่องแรงและต้องมีสัญญาณตลอดเวลา ย่อมเข้าไม่ถึงอุปกรณ์ที่คนในตลาดแบบบ้านเราถืออยู่ในมือ
วิธีเดียวกันนี้ใช้ดึงข้อมูลจากข้อความได้
สำหรับโมเดลตัวนี้ การสั่งงานกับการดึงข้อมูลเป็นงานแบบเดียวกัน ต่างกันเพียงสิ่งที่ประกาศเข้าไป ถ้าประกาศสคีมาของเรคอร์ดหนึ่งชุดเป็นเครื่องมือตัวเดียว แล้วส่งเนื้อความเข้าไปแทนคำสั่ง ค่าอาร์กิวเมนต์ที่ได้กลับมาก็คือฟิลด์ที่สกัดจากข้อความนั้น ไม่ต้องมีโหมด JSON แยกให้เรียนรู้เพิ่ม
ฟิลด์ที่กำหนดชุดค่าตายตัวไว้ทำให้ใช้โมเดลนี้จัดหมวดข้อความได้ทันที ส่วนฟิลด์แบบ array จะเก็บรายการทั้งชุดกลับมาในการเรียกครั้งเดียว และเพราะรูปแบบผลลัพธ์คอมไพล์มาจากสคีมาที่ประกาศไว้โดยตรง JSON ที่ได้จึงผิดรูปไม่ได้ ระบบปลายทางจึงไม่ต้องเขียนโค้ดป้องกันกรณีผลลัพธ์ผิดสคีมา
นั่นหมายความว่า งานอย่างการอ่านข้อความสั่งซื้อที่ลูกค้าพิมพ์มา แล้วแยกเป็นชื่อ ที่อยู่ เบอร์โทร และจำนวน ก็อยู่ในความสามารถชุดเดียวกัน ต่างจากการสั่งเปิดไฟเพียงสคีมาที่ประกาศไว้เท่านั้น ทั้งหมดทำจบในเครื่องได้โดยไม่ต้องส่งข้อความของลูกค้าออกไปไหน
มันรู้ตัวว่าไม่รู้
ทุกคำตอบจะมีคะแนนความมั่นใจส่งกลับมาด้วย คะแนนนี้ใช้ค่าที่ต่ำกว่าจากสองสัญญาณ สัญญาณแรกมาจากหัวประเมินที่ผ่านการปรับเทียบ ซึ่งอ่านทั้งคำสั่งของคนและ call ที่เพิ่งสร้างเสร็จ อีกสัญญาณคือความน่าจะเป็นของโทเคนใน call นั้น ทั้งสองอย่างต้องเห็นตรงกันจึงจะได้คะแนนสูง เวลาพลาด โมเดลจึงมักยกธงว่าไม่มั่นใจ แทนที่จะสั่งงานผิดด้วยความมั่นใจเต็มร้อย
เจ้าของระบบเป็นคนกำหนดเส้นแบ่งเอง ถ้าคะแนนเหนือเส้นก็ให้ทำงานได้เลย ถ้าต่ำกว่าเส้นให้ถามซ้ำหรือส่งต่อไปยังโมเดลใหญ่บนคลาวด์ ผลทดลองของทีมผู้สร้างบอกว่าคะแนนราว 60% ขึ้นไปพอใช้ได้ แต่ทีมก็ย้ำว่าต้องวัดกับงานของตัวเองอยู่ดี เพราะไม่มีชุดทดสอบใดบอกภาพทั้งหมดได้
นี่คือรูปแบบการแบ่งงานระหว่าง AI ในเครื่องกับ AI บนคลาวด์ที่นำไปใช้จริงได้ คำสั่งประจำวันที่มีรูปแบบตายตัวให้จบในเครื่องโดยไม่มีค่าใช้จ่ายต่อครั้ง ส่วนคำขอที่ก้ำกึ่งหรือกว้างเกินรายการเครื่องมือค่อยส่งขึ้นคลาวด์
เส้นที่มันหยุด

ข้อจำกัดที่กระทบการออกแบบมากที่สุดคือจำนวนเครื่องมือต่อเทิร์น แม้จะประกาศเครื่องมือไว้เกินห้าตัวได้ แต่ในหนึ่งเทิร์น โมเดลจะเห็นเพียงห้าตัวที่ retrieval head ภายในโมเดลคัดว่ามีคะแนนสูงสุด จากนั้นเอนจินจะคอมไพล์ไวยากรณ์ที่บังคับรูปแบบผลลัพธ์ขึ้นใหม่ให้ครอบเฉพาะห้าตัวนั้น เครื่องมือที่ไม่เข้ารอบจะเรียกไม่ได้เลยในเทิร์นนั้น ไม่ใช่แค่มีโอกาสน้อยลง
ข้อจำกัดด้านการตีความก็เห็นได้ชัด คนนอกทีมรายหนึ่งทดลองเดโมบนเบราว์เซอร์ โดยใช้โมเดลฐานที่ยังไม่ได้ fine-tune กับชุดเครื่องมือตัวอย่างของเดโมเอง แล้วรายงานว่าประโยคที่เบี่ยงจากรูปแบบตรงๆ ทำให้โมเดลพลาดบ่อย เมื่อขอให้ห้องอุ่นขึ้นอีกนิด โมเดลกลับสร้างคำสั่ง set_thermostat ที่อุณหภูมิ 65 พร้อมโหมด cool โดยฟิลด์ reasoning ที่ติดกลับมาพร้อมคำตอบเขียนกำกับไว้ว่าคำว่า warmer แปลว่าต้องทำความเย็น อีกกรณีหนึ่งคือเมื่อพิมพ์คำสุ่มๆ ที่ไม่เกี่ยวข้องเข้าไป โมเดลกลับเรียก lock_door แต่คะแนนความมั่นใจของคำตอบนั้นเป็น 0 นี่จึงเป็นเหตุผลว่าทำไมต้องมีเส้นความมั่นใจ
ทีมผู้สร้างยอมรับว่านี่เป็นจุดที่ต้องแก้ และสรุปเงื่อนไขสำหรับคนนำโมเดลไปใช้ไว้สั้นๆ ว่าคำอธิบายเครื่องมือต้องแม่น และขอบเขตของเครื่องมือต้องแคบ หากยังพลาดอยู่ ทางออกถัดไปคือ fine-tune กับเครื่องมือของผลิตภัณฑ์ตัวเอง ซึ่งทำบนเครื่อง Mac หรือ PC ได้ ใช้เวลาไม่กี่นาทีถึงไม่กี่ชั่วโมง จากนั้น export เป็นไฟล์เดียวที่รันบนเอนจินเดิมได้ทันที
อีกข้อที่คนทำงานในไทยต้องรู้ก่อนวางแผน คือภาษาไทยยังไม่อยู่ในรายการภาษาที่ทีมผู้สร้างระบุว่ารองรับ ตอนนี้ทีมระบุไว้เจ็ดภาษา ได้แก่ อังกฤษ เยอรมัน โปแลนด์ ฝรั่งเศส ดัตช์ ละติน และอิตาลี
ส่วนคะแนนเบนช์มาร์กที่หน้าเปิดตัวนำมาแสดง ต้องอ่านควบคู่กับเงื่อนไขที่ผู้สร้างเขียนกำกับไว้เอง เขาบอกว่าการเปรียบเทียบครั้งนี้มีเงื่อนไขไม่เท่ากันอยู่สองด้าน และไม่มีทางทำให้ทั้งสองด้านเท่ากันพร้อมกัน ด้านที่เข้าข้างคู่เทียบคือความละเอียด เพราะคู่เทียบรันที่ f16 เต็มความละเอียด ขณะที่ Needle 2 วัดผลด้วยคอนฟิกโปรดักชันที่บีบเหลือ 2 บิต ด้านที่เข้าข้าง Needle 2 คือขอบเขต เพราะมันเทรนมาเฉพาะงานเรียกเครื่องมือ ขณะที่คู่เทียบเป็นโมเดลภาษาทั่วไปซึ่งแบกทั้งงานแชตและความรู้รอบตัวไว้ด้วย และในชุดทดสอบบางชุด ทุกโมเดลก็ได้คะแนนต่ำกันทั้งกระดาน
ถามก่อนว่างานนี้ต้องรู้อะไร แล้วค่อยถามว่าจะใช้โมเดลตัวไหน
บทเรียนจาก Needle 2 ที่นำไปใช้กับงานอื่นได้ อยู่ที่ลำดับของคำถามมากกว่าตัวโมเดล คนที่คิดจะเอา AI มาใช้กับงานของตัวเองมักเริ่มด้วยคำถามว่าจะเลือกโมเดลไหนดี ทั้งที่คำถามซึ่งให้คำตอบได้มากกว่าคือ งานนี้จำเป็นต้องรู้อะไรบ้าง
วิธีตอบคือเขียนรายการออกมาให้ชัดว่าระบบทำอะไรได้บ้าง แต่ละอย่างต้องใช้ค่าอะไร และค่านั้นมาจากไหน ถ้าเขียนได้ครบ และไม่มีช่องใดต้องอาศัยความรู้นอกรายการ งานของเราก็เข้าเงื่อนไขเดียวกับที่ทำให้โมเดล 45 ล้านพารามิเตอร์เพียงพอสำหรับการสั่งงานอุปกรณ์ ส่วนงานที่ยังต้องอธิบาย ต้องเรียบเรียง หรือต้องใช้ความรู้นอกรายการ ก็ยังเป็นหน้าที่ของโมเดลใหญ่ต่อไป
ความแตกต่างระหว่างงานสองกลุ่มนี้ไม่ได้จบแค่ค่าโมเดล งานที่ย่อจนพอดีกับโมเดลเล็กจะไม่ต้องรอสัญญาณ ไม่ต้องจ่ายทุกครั้งที่เรียกใช้ และข้อมูลของผู้ใช้ก็ไม่ต้องออกจากเครื่องไปไหนเลย
ที่มา:
ชอบเรื่องแนวนี้ มีอีบุ๊คฟรีให้อ่านต่อ
Local LLM ฉบับเข้าใจง่าย รัน AI ไว้ในเครื่องตัวเอง ติดตั้ง อัปเดต จัดการ ลบ ครบวงจรด้วย Ollama
กดสมัครแล้วเราจะส่งเทคนิค AI และของแจกใหม่ๆ ให้ทางอีเมล เลิกรับได้ตลอด
Claude Cowork · The Business Playbook

ฉบับภาษาไทย 15 บท เรียนรู้ผ่านโปรเจกต์จำลองต่อเนื่องทั้งเล่ม ตั้งแต่ตั้งค่า Workspace จัดการไฟล์ เชื่อมแอป ตั้งระบบอัตโนมัติ จนถึงสร้าง Plugin


