ข้ามไปยังเนื้อหา
FACET: สังเคราะห์โจทย์เทอร์มินัลจาก state ของคอนเทนเนอร์จริง — เทรน Qwen3.5-27B ด้วย trajectory แค่ 1.2K แล้วไล่ตามโมเดล 397B บน Terminal-Bench 2.1 เหลือห่าง 1.49 แต้ม
งานวิจัย

FACET: สังเคราะห์โจทย์เทอร์มินัลจาก state ของคอนเทนเนอร์จริง — เทรน Qwen3.5-27B ด้วย trajectory แค่ 1.2K แล้วไล่ตามโมเดล 397B บน Terminal-Bench 2.1 เหลือห่าง 1.49 แต้ม

อ่าน 7 นาที ที่มา: arXiv (2608.18580)

ถ้าคุณเคยพยายามเทรน coding agent ให้ทำงานบนเทอร์มินัลได้ดีขึ้น คุณน่าจะเจอกำแพงเดียวกัน — ไม่ใช่โมเดล แต่เป็นโจทย์ การจะได้โจทย์เทอร์มินัลหนึ่งข้อที่ใช้เทรนได้จริง คุณต้องมีของสี่อย่างที่สอดคล้องกัน: คำสั่งที่ชัดเจน, สภาพแวดล้อมตั้งต้นที่ถูกต้อง, เฉลยที่รันแล้วผ่าน และ verifier ที่ตรวจได้จริงว่าผ่านหรือไม่ผ่าน

เปเปอร์ FACET: Preserving Source Intent and Executable State in Terminal Task Synthesis (arXiv 2608.18580 ส่งขึ้นเมื่อ 19 สิงหาคม 2026 และขึ้น Hugging Face Daily Papers เมื่อ 21 ส.ค. ด้วยยอดโหวต 112) ชี้ตรงไปที่ต้นตอของปัญหา: ถ้าของสี่อย่างนั้นถูก generate ขึ้นมาจาก สมมติฐานคนละชุด ผลลัพธ์คือโจทย์ที่ แก้ไม่ได้ หรือแย่กว่านั้นคือ ตรวจผิด — และคุณจะไม่รู้เลยจนกว่าจะเทรนเสร็จ

ปัญหาคือ “state” ไม่ใช่ “prompt”

วิธีสังเคราะห์โจทย์แบบเดิมมักให้ LLM เขียนคำสั่งขึ้นมาก่อน แล้วค่อยให้เขียน Dockerfile ตาม แล้วค่อยให้เขียนเฉลย แล้วค่อยให้เขียนเทสต์ ทุกขั้นเป็นการเดาว่าขั้นก่อนหน้า “น่าจะ” ทำอะไรไว้ ผลคือความไม่ตรงกันสะสม: เทสต์อ้างถึงไฟล์ที่สภาพแวดล้อมไม่ได้สร้าง, เฉลยสมมติว่ามีแพ็กเกจที่ไม่ได้ติดตั้ง, คำสั่งบอกให้แก้บั๊กที่ไม่มีอยู่จริง

FACET เปลี่ยนลำดับ: มันประกอบ skill ของ agent ให้เป็นสถานการณ์ที่สอดคล้องกันก่อน แล้วจึงสร้างสภาพแวดล้อมให้เป็นจริงขึ้นมา จากนั้นค่อย generate ทั้งคำสั่ง เฉลย และ verifier โดย อ้างอิงจาก state ของคอนเทนเนอร์เดียวกัน ที่ทุกส่วนมองเห็นร่วมกัน

จุดที่ทำให้ประหยัดขึ้นมากคือขั้น validate แล้วซ่อมเฉพาะจุด — เมื่อโจทย์ข้อหนึ่งไม่ผ่านการตรวจ ระบบไม่ทิ้งทั้งข้อแล้ว generate ใหม่ทั้งชุด แต่ระบุว่า artifact ตัวไหนพัง (เฉลย? เทสต์? environment?) แล้วซ่อมเฉพาะตัวนั้น ส่วนที่ยังดีอยู่ถูกเก็บไว้

ตัวเลขจากท่อผลิต

ตัวเลขจากเปเปอร์บอกว่า “ซ่อมเฉพาะจุด” คุ้มแค่ไหน:

ขั้นจำนวน
seed ตั้งต้น (scenario × skill)7,852
ผ่าน validate ก่อน ซ่อม2,856 จาก 7,446 (38.35%)
ผ่าน validate หลัง ซ่อม (สูงสุด 5 รอบ)6,078 (81.63%)

พูดอีกอย่าง: ถ้าไม่มีขั้นซ่อม ต้องทิ้งโจทย์ไปเกือบสองในสาม การซ่อมแบบเจาะจุดดึงกลับมาได้อีกกว่าเท่าตัว

ที่น่าสนใจกว่าคือเมื่อเทียบคุณภาพชุดข้อมูลกับของที่มีอยู่แล้ว:

ชุดข้อมูลtrajectoryเทสต์ต่อโจทย์P@1P@3
FACET1.2K22.7727.0035.00
Terminal-Lego32K16.6047.0049.00
Nemotron-Terminal5K6.1840.6748.00

ต้องอ่านตารางนี้ให้ถูก — P@1 และ P@3 ของ FACET ต่ำกว่า ไม่ใช่เพราะข้อมูลแย่ แต่เพราะโจทย์ยากและตรวจเข้มกว่า ค่า 22.77 เทสต์ต่อโจทย์คือสูงที่สุดในตาราง สูงกว่า Nemotron-Terminal เกือบ 4 เท่า ยิ่งมีเทสต์ต่อโจทย์มาก โอกาสที่ agent จะ “ผ่าน” ด้วยการเดาหรือทำครึ่ง ๆ กลาง ๆ ก็ยิ่งน้อย

ผลบน Terminal-Bench 2.1

ทีมวิจัย fine-tune Qwen3.5 สามขนาดด้วย trajectory ที่สำเร็จเพียง 1.2K เส้น แล้ววัดบน Terminal-Bench 2.1:

โมเดลก่อนหลังเพิ่มขึ้น
Qwen3.5-4B17.6024.72+7.12
Qwen3.5-9B27.3435.58+8.24
Qwen3.5-27B40.8247.57+6.75

บรรทัดที่ควรจำคือบรรทัดสุดท้าย: 27B ที่ผ่าน FACET ทำได้ 47.57 ขณะที่ Qwen3.5-397B ทำได้ 49.06 — ห่างกัน 1.49 แต้ม จากโมเดลที่ใหญ่กว่าราว 15 เท่า

เปเปอร์เผยแพร่ภายใต้ CC BY 4.0 และมีหน้าโปรเจกต์แยกที่ stokou.github.io/FACET-Terminal

มุมมอง AI Curator

ผลนี้ไม่ได้บอกว่า “โมเดลเล็กแทนโมเดลใหญ่ได้” — มันบอกอย่างอื่นที่ตรงประเด็นกว่าสำหรับคนที่ต้อง deploy จริง: สำหรับงานเทอร์มินัลที่มีขอบเขตชัด ช่องว่างระหว่าง 27B กับ 397B ส่วนใหญ่เป็นช่องว่างของข้อมูลเทรน ไม่ใช่ของพารามิเตอร์ และช่องว่างของข้อมูลนั้นปิดได้ด้วย trajectory 1.2K เส้น ซึ่งเป็นปริมาณที่ทีมขนาด 3-5 คนผลิตเองได้ในเวลาไม่กี่สัปดาห์

สำหรับไทยและอาเซียน นี่คือประเด็นที่มีน้ำหนักกว่าข่าวโมเดลใหม่รายวัน เพราะข้อจำกัดที่แท้จริงของทีมในภูมิภาคไม่เคยเป็นเรื่อง “หาโมเดลเก่ง ๆ ไม่ได้” — โมเดล open-weight ระดับ 27B หาได้ฟรี รันบนการ์ดใบเดียวได้ ข้อจำกัดจริงคือ ไม่มีชุดโจทย์ที่สะท้อนงานจริงของตัวเอง ธนาคารไทยที่อยากได้ agent จัดการ pipeline ภายใน หรือทีม DevOps ที่อยากได้ agent แก้ปัญหาบนเซิร์ฟเวอร์ในองค์กร ไม่มีทางไปหยิบ Terminal-Bench มาใช้ตรง ๆ ได้ เพราะสภาพแวดล้อม เครื่องมือ และรูปแบบความล้มเหลวเป็นคนละชุดกันสิ้นเชิง

สิ่งที่ FACET เสนอจริง ๆ จึงไม่ใช่ชุดข้อมูล แต่เป็น สูตรการผลิตชุดข้อมูล ที่ทำซ้ำได้ในโดเมนของตัวเอง และหัวใจของสูตรคือข้อสังเกตที่ควรถูกยกไปใช้กับงานสังเคราะห์ข้อมูลทุกประเภท: อย่าให้ LLM เดาต่อกันเป็นทอด ๆ ให้มันเขียนทุกอย่างโดยอ้างอิง state ที่ตรวจสอบได้จริงชุดเดียวกัน ตัวเลข 38.35% → 81.63% คือราคาของข้อสังเกตนี้ในรูปตัวเลข

จุดที่ยังต้องระวัง: เปเปอร์นี้ยังไม่มีการทำซ้ำโดยบุคคลที่สาม และผลทั้งหมดวัดบนตระกูล Qwen3.5 ตระกูลเดียว จะรู้ว่าวิธีนี้ทั่วไปแค่ไหนก็ต่อเมื่อมีคนเอาไปลองกับ Llama, GLM หรือโมเดลไทยอย่าง Typhoon แล้วเห็นการเพิ่มขึ้นในระดับใกล้เคียงกัน — และนั่นคือการทดลองที่ทีมในไทยทำได้เอง ไม่ต้องรอใคร

แหล่งข่าว

บทความนี้เรียบเรียงจากแหล่งข่าวต้นทาง — arXiv (2608.18580)

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

อ่านเพิ่มในหมวด งานวิจัย

Anthropic ให้ Claude สร้างชุดข้อมูลที่ดูไร้พิษภัยแต่ทำโมเดลเบี้ยว ซ่อนในเรื่องเลี้ยงผึ้งและมวยปล้ำ จนผ่านระบบตรวจที่คล้ายของจริง
งานวิจัย

Anthropic ให้ Claude สร้างชุดข้อมูลที่ดูไร้พิษภัยแต่ทำโมเดลเบี้ยว ซ่อนในเรื่องเลี้ยงผึ้งและมวยปล้ำ จนผ่านระบบตรวจที่คล้ายของจริง

ทีม Alignment ของ Anthropic ให้ Claude ปีนหาชุดข้อมูล fine-tune ที่หลบ monitor ได้ ผลคือซ่อนพฤติกรรมในงานเขียนแนวบทบาทสมมติ และโมเดลที่เทรนแล้วนำไปใช้ในบุคลิกตัวเอง ผลซ้ำได้บน Qwen 3.6 27B แต่การทดลองเอื้อฝ่ายโจมตีมากและไม่ได้สะท้อนโมเดลที่ใช้งานจริง

· อ่าน 4 นาที
Memdoor ทำซ้ำ GVS5H ได้: ทีม Qwen3.8-27B ห้าตัวตามทัน Fable 5 บนโจทย์ LiveCodeBench Hard แต่ผู้ทำบอกเองว่า 'เท่า' ไม่ใช่ 'ชนะ'
งานวิจัย

Memdoor ทำซ้ำ GVS5H ได้: ทีม Qwen3.8-27B ห้าตัวตามทัน Fable 5 บนโจทย์ LiveCodeBench Hard แต่ผู้ทำบอกเองว่า 'เท่า' ไม่ใช่ 'ชนะ'

Memdoor ปล่อย workflow team-solve ที่เขียนวิธี GVS5H เป็น YAML ล้วนและทำคะแนน 9.8/10 บน LiveCodeBench Hard 10 ข้อ เทียบกับ 8.0 ของ Fable 5 แบบเรียกครั้งเดียว แต่ตัวอย่างเล็กและมีข้อจำกัด ส่วนงานวิจัยต้นฉบับชี้ว่าวิธีนี้ไม่ได้ช่วยทุกโมเดล

· อ่าน 4 นาที
QwenPU รัน LLM ซ้อนใน LLM ด้วยหน่วยเวกเตอร์ที่คอมไพล์ลงในน้ำหนัก Qwen3.5-4B ส่วน bootgpt ทำให้เครื่อง 386 บูตเข้าโมเดลภาษาโดยไม่มี OS
งานวิจัย

QwenPU รัน LLM ซ้อนใน LLM ด้วยหน่วยเวกเตอร์ที่คอมไพล์ลงในน้ำหนัก Qwen3.5-4B ส่วน bootgpt ทำให้เครื่อง 386 บูตเข้าโมเดลภาษาโดยไม่มี OS

ผู้สร้าง Qwenputer ปล่อย QwenPU เมื่อ 31 ต.ค. รัน stories260K ของ Karpathy บนหน่วยเวกเตอร์ที่คอมไพล์ลงในน้ำหนัก Qwen3.5-4B ลดเหลือ 53,000 trace token ต่อหนึ่ง token เรื่องเล่า วันเดียวกัน bootgpt ใส่โมเดล int8 ขนาด 11.5KB ให้บูตบนเครื่อง 386 โดยไม่มี OS

· อ่าน 3 นาที