ไม่ต้องเทรนโมเดลตัดสินใจใหม่: Privatemode ใช้ GLM-5.3-Flash ตอบแบบ typed ด้วยโทเคนเดียวผ่าน logprobs ของ vLLM — ความแม่นยำไม่ต่างจาก Jev อย่างมีนัยสำคัญ อ่านภาพได้ด้วย แต่แพงกว่าราว 4 เท่า
ตลอดสองสัปดาห์ที่ผ่านมามีโมเดลตัดสินใจแบบ “System One” ออกมาหลายตัว ตั้งแต่ Jev ของ TypeSafe ไปจนถึง Laya, CLM-8B และ GLiNER2.5-Decide ทุกตัวเป็นโมเดลที่ เทรนมาเฉพาะงานนี้ แต่บทความของ Privatemode (บริการ LLM แบบ confidential computing ของ Edgeless Systems จากเยอรมนี) ที่เผยแพร่เมื่อ 24 ก.ย. 2026 ตั้งคำถามว่าจำเป็นต้องเทรนใหม่จริงหรือ คำตอบของพวกเขาคือไม่จำเป็น ใช้ LLM ที่มีอยู่ได้เลย แค่ตั้ง prompt ให้คำตอบออกมาเป็นโทเคนเดียว
เครื่องมือที่ใช้คือ GLM-5.3-Flash ตามที่ปล่อยมา ไม่ fine-tune เลย รันบน vLLM เผยแพร่เป็นไลบรารี Python edgelesssys/privatemode-decisions และชุดเบนช์มาร์กที่รันซ้ำได้ ทั้งสองรีโปใช้ไลบรารี MIT
เทคนิค: ทั้งคำตอบคือโทเคนเดียว
- ใส่หมายเลขตัวเลือก ส่ง state คำถาม และตัวเลือกเป็น JSON โดยทุกตัวเลือกมี
index - เติมคำตอบไว้ล่วงหน้า จบ prompt ด้วยข้อความฝั่ง assistant ว่า
choice_index:โทเคนถัดไปจึงต้องเป็นหมายเลขตัวเลือก - อ่าน logprob แทนข้อความที่โมเดลสร้าง ดึงความน่าจะเป็นของโทเคนหมายเลขทุกตัว ณ ตำแหน่งนั้น แล้ว normalize ใหม่ให้รวมเป็น 1 เฉพาะในกลุ่มตัวเลือก จะได้ distribution ของคำตอบจากการคำนวณรอบเดียว
รายละเอียดฝั่ง vLLM ที่นักพัฒนาควรรู้ ทีมนี้บอกว่าเป็นจุดที่ทำให้ใช้ได้จริง
- ใช้
/chat/completionsกับcontinue_final_messageและadd_generation_prompt: falseเพื่อให้โมเดลเขียนต่อจากข้อความ assistant ที่เติมไว้ วิธีนี้ยังแนบภาพได้ด้วย allowed_token_idsตัดโทเคนอื่นทั้งหมดเป็น-infทีมนี้ถือว่าเป็นแค่ guardrail ไม่จำเป็นต้องมีtop_logprobsใช้ไม่ได้ เพราะรายงาน distribution ก่อน ตัด vocab โทเคนจัดรูปแบบอย่างช่องว่างนำหน้าจึงแย่งอันดับต้น ๆ ไป บางตัวเลือกหายจากรายการจนดูเหมือนความน่าจะเป็นเป็นศูนย์ ต้องใช้logprob_token_idsที่คืนค่า logprob ของโทเคนที่ระบุตรง ๆ- เลขบางค่าเป็นโทเคนเดียว บางค่าไม่ใช่ (GLM-5.3-Flash มีโทเคนเดียวสำหรับ
12) ไลบรารีจึงถาม tokenizer จาก server ผ่าน/completionsกับechoแทนการฝัง tokenizer ของโมเดลไว้ในโค้ด ทำให้สลับไปใช้โมเดลอื่นได้โดยไม่ต้องแก้โค้ด
ข้อจำกัดคือ deployment ของ Privatemode คืน logprob_token_ids ได้ไม่เกิน 128 ค่า ถ้าคำถามมี 151 ตัวเลือก ไลบรารีจึงส่งคำขอเดียวกันสองครั้งแล้วรวมผล เพดานของ GLM-5.3-Flash อยู่ที่ 191 ตัวเลือก ซึ่งเป็นจำนวนเลขที่ tokenizer เขียนเป็นโทเคนเดียวได้
ผลเบนช์มาร์ก: เสมอ Jev แต่แพงกว่า
ทดสอบ 29 ชุดข้อมูลสาธารณะ ภาษาอังกฤษและเยอรมัน มีตัวเลือก 2–151 ตัว เทียบกับ Jev และ Laya โดยทั้งสามระบบได้ state ตัวเลือก และคำสั่งชุดเดียวกัน
- ความแม่นยำ: บน 28 ชุดข้อความ GLM-5.3-Flash ชนะ 10 ชุด Jev ชนะ 10 ชุด ที่เหลือ 8 ชุดต่างกันไม่เกิน 1 จุด ค่ามัธยฐานของส่วนต่างคือ 0.7 จุด เอียงไปทาง Jev ซึ่งไม่มีนัยสำคัญทางสถิติ (p = 0.64) ส่วน Laya (421M พารามิเตอร์ รันในเครื่อง) ตามหลัง 13–15 จุด อย่างมีนัยสำคัญ
- ตัวเลือกเยอะมาก: บน CLINC150 (151 intent) GLM-5.3-Flash ได้ 87.5% ส่วน Jev ได้ 78.4% แต่ใช้เวลา 719 ms ต่อการตัดสินใจ ส่วน Jev ใช้ 249 ms
- Latency: ยิงจากเยอรมนี Privatemode ใช้ 180 ms และ Jev 264 ms ยิงจากสหรัฐฯ ผลกลับกัน Jev 164 ms และ Privatemode 299 ms เพราะเซิร์ฟเวอร์อยู่คนละทวีป
- ต้นทุน: “One million decisions cost about EUR 62 with GLM-5.3-Flash and about EUR 16 with Jev” ถ้ามีตัวเลือกน้อยกว่าราว 21 ตัว prompt ของ GLM จะสั้นกว่า แต่ถ้ามากกว่านั้นจะยาวกว่า
- ภาพ: บน RVL-CDIP (เอกสารสแกน 1,600 ชิ้น 16 ประเภท) ได้ 70.2% ซึ่ง Jev และ Laya ตอบไม่ได้เลยเพราะรับแต่ข้อความ แต่ภาพเพิ่ม input ราว 1,350 โทเคน ต้นทุนจึงขึ้นเป็นราว €270 ต่อล้านเอกสาร
ข้อสังเกตที่ทีมเปิดเผยเอง
- ถ้าให้ GLM-5.3-Flash คิดก่อนตอบ จะแม่นขึ้นทุกช่วงจำนวนตัวเลือก เช่น 89.9% เทียบกับ 85.5% ที่ 2 ตัวเลือก แต่ต้นทุนพุ่งเป็นราว €350 ต่อล้านครั้ง
- เปลี่ยนชื่อตัวเลือกแล้วผลเปลี่ยนมาก: บน boolq เมื่อเปลี่ยน
true/falseเป็นcorrect/wrongGLM-5.3-Flash หายไป 20 จุด อีกสองระบบหายไม่ถึง 3 จุด - แม้ตั้ง temperature 0 ผลก็ยังเปลี่ยนได้ถึง 3.5% ระหว่างรันที่เหมือนกันทุกอย่าง เพราะ batching และเลขทศนิยมบน server ที่มีโหลดทำให้ผลไม่ตรงกันทุกบิต
- banking77 มี label ที่กำกวมราว 17% (เช่น
declined_transferกับfailed_transfer) ความแม่นยำสูงสุดที่เป็นไปได้จริงจึงอยู่ราว 85%
มุมมอง AI Curator
บทความนี้สำคัญเพราะตั้งคำถามกับกระแส “โมเดลตัดสินใจ” ทั้งหมดในสองสัปดาห์ที่ผ่านมา ถ้า LLM ที่มีอยู่ทำได้เสมอ Jev ด้วยเทคนิค prompt กับ logprob ที่เขียนเองได้ในบ่ายเดียว จุดขายของโมเดลที่เทรนเฉพาะก็เหลือแค่ ราคาและขนาด ไม่ใช่ความสามารถ ซึ่งตรงกับตัวเลขที่เห็น Jev ถูกกว่า 4 เท่า ส่วนโมเดลเล็กอย่าง Laya ถูกที่สุดเพราะรันในเครื่อง แต่แม่นน้อยกว่าชัดเจน ผู้เขียนเป็นผู้ให้บริการ GLM เองก็จริง แต่ก็เปิดข้อเสียของตัวเองไว้ครบ ทั้งเรื่องราคา ความไวต่อชื่อตัวเลือก และ latency ฝั่งสหรัฐฯ พร้อมข้อมูลดิบให้คำนวณซ้ำได้ ซึ่งมากกว่าที่เบนช์มาร์กของค่ายโมเดลตัดสินใจส่วนใหญ่ทำ
สำหรับนักพัฒนาไทย ข้อดีที่สุดคือ เทคนิคนี้ไม่ผูกกับเจ้าไหน ใช้กับ vLLM ที่ตั้งเองและโมเดลที่รู้ภาษาไทยดีได้เลย เช่น Qwen3.8 หรือ Typhoon ส่วนโมเดลตัดสินใจที่เทรนเฉพาะส่วนใหญ่ยังไม่ได้ทดสอบภาษาไทย ถ้าต้องจัดเส้นทาง ticket ภาษาไทย แยกประเภทเอกสารสแกน หรือกรองคอนเทนต์บนเซิร์ฟเวอร์ในประเทศเพื่อให้ข้อมูลไม่ออกนอกประเทศตาม PDPA ก็ทำได้โดยไม่ต้องรอใครเทรนโมเดลภาษาไทยให้ ผลข้างเคียงที่ดีอีกข้อคือได้ distribution ของทุกตัวเลือก จึงตั้งเกณฑ์ได้ง่ายว่าเมื่อไรควรส่งให้คนตรวจ
ข้อควรระวังคือผลบน boolq ที่หายไป 20 จุดเมื่อเปลี่ยนแค่ชื่อตัวเลือก ใครจะนำไปใช้ต้องทดสอบชื่อ label ของตัวเองหลายแบบ โดยเฉพาะถ้าตั้งชื่อ label เป็นภาษาไทย ซึ่งอาจถูกตัดเป็นหลายโทเคนและให้ผลต่างจากชื่อภาษาอังกฤษ และต้องใช้ logprob_token_ids ไม่ใช่ top_logprobs มิฉะนั้นความน่าจะเป็นที่ได้จะผิดโดยไม่มีอะไรเตือน
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
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