การโปรแกรมในเวทน้ำหนัก (weight-space programming) คือวิธีที่โมเดลภาษาขนาดใหญ่แบบอเนกประสงค์ (LLM) อ่านน้ำหนักดิบของโครงข่ายประสาทและแก้ไขหรือเขียนมันโดยตรงตามเป้าหมายที่ระบุเป็นภาษาธรรมชาติ โดยไม่ใช้กระบวนการไล่ระดับ (gradient descent) และไม่ต้องมีลูปการฝึก ใน บล็อกโพสต์เมื่อวันที่ 2 พฤศจิกายน 2026 นักวิจัยจาก MIT CSAIL จำนวนสี่คนรายงานว่า GPT-6 Astra ทำสิ่งนี้ได้แล้ว: มันแก้ไขน้ำหนักของ Qwen3.5-0.8B เพียง 0.016% และดันคะแนน MATH-500 ของโมเดลจาก 7.9% เป็น 48.1%.
ผู้เขียนคือ Rikiya Takehi, Jayden Teoh, Alex Zhang และ Omar Khattab ผู้เขียนคนแรกของงาน DSPy ต้นฉบับ ผลลัพธ์ยังเป็นระยะแรกและมาจาก LLM เพียงตัวเดียว แต่ทีมเผยแพร่พรอมต์ คำตอบ และการประเมินทั้งหมดที่อยู่เบื้องหลังผลเหล่านี้
ในบทความนี้ จะอธิบายว่า weight-space programming คืออะไร การทดลองแสดงอะไร ข้อจำกัดอยู่ตรงไหน และมีความหมายอย่างไรต่อการทำงาน หากต้องการทบทวนเกี่ยวกับโมเดลที่ทำการแก้ไข ดู คำแนะนำเกี่ยวกับ GPT-6 Astra ของเรา
สรุปสั้น ๆ
คืออะไร: LLM ให้เหตุผลเกี่ยวกับน้ำหนักของเครือข่ายและแก้ไขด้วยมือ แทนที่จะใช้ออปติไมเซอร์อย่าง Adam ที่เปลี่ยนผ่านกราดิเอนต์
ผลลัพธ์พาดหัว: GPT-6 Astra ติดตามลูปการคิดของ Qwen3.5-0.8B ไปยังทิศทางหนึ่งในน้ำหนักและลบมันออก ส่งผลให้เก่งคณิตและทำตามคำสั่งได้ดีขึ้น
ข้อจำกัดหลัก: การแก้ไขช่วยเอาข้อบกพร่องที่บดบังความสามารถออกได้ แต่ไม่สามารถเพิ่มความสามารถที่โมเดลไม่มีอยู่แล้ว
ควรใช้แล้วหรือยัง? ยังไม่เหมาะสำหรับโปรดักชัน แต่สามารถเล่นซ้ำการทดลองที่ 1 ได้จากพรอมต์ที่เผยแพร่ โดยมีค่าใช้จ่ายต่ำกว่า $1 ต่อครั้ง
Weight-Space Programming คืออะไร?
Weight-space programming คือการขอให้ LLM อ่าน แก้ หรือเขียนน้ำหนักของโครงข่ายประสาทโดยตรง ตามสเปกภาษาธรรมชาติ บางครั้งโดยไม่ต้องมีฟีดแบ็กจากสภาพแวดล้อมเลย LLM จะพิจารณาว่าส่วนต่าง ๆ ของเครือข่ายคำนวณอะไร หรือควรคำนวณอะไร แล้วตั้งค่าตัวเลขให้สอดคล้อง
นั่นเป็นเส้นทางที่ต่างจากการสร้างน้ำหนักแบบปกติ ปัจจุบัน น้ำหนักมักมาจาก gradient descent ด้วยออปติไมเซอร์อย่าง Adam หรือ Muon จากเครือข่ายที่ฝึกมาให้สร้างน้ำหนักของเครือข่ายอื่น หรือจากคอมไพเลอร์ที่แปลงโปรแกรมเชิงรูปแบบให้เป็นเครือข่าย ในการตั้งค่าของ MIT GPT-6 Astra ไม่ได้เขียนลูปการฝึก แต่มันใช้เหตุผลเกี่ยวกับน้ำหนักเหมือนวิศวกรที่ใช้เหตุผลเกี่ยวกับโค้ด
LLM ปรับแต่งพรอมต์ โปรแกรม และโค้ดการฝึกได้อยู่แล้ว ผู้เขียนให้เหตุผลว่าการเพิ่มประสิทธิภาพแบบอาศัยเหตุผลนี้ ตอนนี้ขยายมาถึงตัวน้ำหนักเอง
นักวิจัย MIT แสดงให้เห็นอะไร
การทดลอง 8 รายการแบ่งเป็นสามกลุ่ม: อ่านน้ำหนัก แก้น้ำหนัก และเขียนน้ำหนักตั้งแต่เริ่มต้น ส่วนใหญ่ใช้เครือข่ายขนาดเล็กที่น้ำหนักพอใส่ในหน้าต่างบริบทของ Astra เป็นข้อความ; กรณีที่ใหญ่กว่านั้นเพิ่ม sandbox ของ Python และบางส่วนได้งบประมาณสำหรับการทำ forward pass
การอ่านน้ำหนักของเครือข่าย
ทีมฝึกนโยบาย 4 ตัวด้วย proximal policy optimization (PPO) ซึ่งเป็นอัลกอริทึมเสริมกำลังมาตรฐานสำหรับเอเจนต์เกม บนเวอร์ชันกริดของ Breakout, Pong, Pac-Man และ Freeway ทั้งหมดใช้สถาปัตยกรรมเดียวกันที่มีน้ำหนัก 17,253 ค่า โดยที่ไม่ได้บอกชื่อเกม Astra ระบุชื่อเกมที่ถูกต้องสำหรับทั้ง 4 เครือข่าย โดยอ่านเบาะแสอย่างเช่นน้ำหนักเลเยอร์แรกของเอเจนต์ Breakout ที่วางตามแถวล่างซึ่งเป็นตำแหน่งของไม้ตี
ตามด้วยเวอร์ชันที่ยากขึ้นอีกสองแบบ:
โมเดล diffusion: จากน้ำหนักของ DDPM ขนาดเล็ก 3 ตัว โดยไม่อนุญาตให้ทำ forward pass Astra ระบุได้ว่าอันไหนสร้างวงกลม สี่เหลี่ยม หรือสามเหลี่ยม มันวาดเป็นโครงร่างแม้ว่าโมเดลจะสร้างรูปทึบ ซึ่งเป็นสัญญาณว่ามันอ่านโครงเรขาคณิตของน้ำหนักมากกว่าจำลองเครือข่าย
โมเดลภาษา: เมื่อให้เฉพาะ 4 บล็อกทรานส์ฟอร์เมอร์ตรงกลางของโมเดลตัวอักษรที่มีพารามิเตอร์ 7.2 ล้าน Astra ระบุภาษาที่ใช้ฝึก (Python โรมาจิญี่ปุ่น หรืออังกฤษ) ได้ครบทั้ง 3 ในทั้งสองรอบ นอกจากนี้ยังพบหัวคัดลอกทั้งหมดที่เรียกว่า induction head และไม่เรียกหัวอื่นใดว่าเป็นหัวแบบนั้น คู่มือของเราที่อธิบาย multi-head attention บอกว่าหัวเหล่านี้ทำอะไร
ซ่อมนโยบายที่เสีย
นโยบาย PPO ที่ฝึกมา 1 พันล้านสเต็ปบนด่านรถกับทางลาดในสภาพแวดล้อม Kinetix ขับพุ่งชนทางลาดและดับทุกครั้ง เมื่อให้ข้อมูลน้ำหนัก 171,664 ค่า ฉาก และหนึ่งเอพิโสดที่บันทึกไว้ Astra อธิบายความล้มเหลวและเขียนวิธีแก้ในคำตอบเดียวโดยไม่ใช้เครื่องมือ การแก้ไขเปลี่ยน 3.5% ของน้ำหนักและทำให้อัตราความสำเร็จจาก 0% เป็น 100% ตลอด 1,024 เอพิโสด
วิธีแก้อ่านเข้าใจได้: เส้นทางเล็ก ๆ เพิ่มเติมที่ถอยรถก่อน แล้วปิดเมื่อรถผ่านแถบไปแล้ว
เขียนเครือข่ายตั้งแต่เริ่มต้น
สำหรับเกม MinAtar สามเกม Astra ได้กติกา ซอร์สโค้ด และเครือข่ายที่เป็นศูนย์ทั้งหมด แล้วเขียนน้ำหนักทุกตัวเป็นข้อความในคำตอบเดียว โดยไม่มีข้อมูล กราดิเอนต์ หรือเครื่องมือ เครือข่ายทั้งสามเอาชนะเอเจนต์ PPO ที่ฝึกมา 100 ล้านสเต็ปได้
เกม PPO, 100M สเต็ป PPO, 500M สเต็ป Astra, one shot Breakout 15.8 25.3 517.4 Seaquest 5.6 88.9 53.1 Asterix 25.8 55.2 53.2
Breakout โดดเด่นเพราะ Astra เขียนมันเป็นโปรแกรม: เลเยอร์แรกคำนวณว่าลูกบอลจะตกที่ไหน เลเยอร์ที่สองขยับไม้ตีไปที่นั่น เครือข่ายโกะ 9x9 ที่มีน้ำหนัก 1,480,274 ค่า ซึ่งเขียนใน Python sandbox เอาชนะเครือข่าย PPO ขนาดเท่ากันที่ฝึกบนเกม 20 ล้านเกมได้เมื่อ Astra มี 50 forward pass สำหรับทดสอบเปรียบเทียบ
แก้ลูปการให้เหตุผลใน Qwen3.5-0.8B
ผลลัพธ์ที่นำไปใช้ได้มากที่สุดมุ่งเป้าไปที่ข้อบกพร่องที่ทราบอยู่แล้ว การ์ดโมเดลของ Qwen เตือนว่า Qwen3.5-0.8B มีแนวโน้มเข้าสู่ลูปการคิด และในการทดสอบของ MIT มีคำตอบ MATH-500 ถึง 93.0% ที่ยืดยาวจนชนขีดจำกัด 32,768 โทเค็น ทำงานในเคอร์เนล Python พร้อม 50 forward pass บนโจทย์ฝึกจาก GSM8K และ MATH Astra ติดตามลูปไปยังทิศทางหนึ่งที่เขียนโดย MLP ของเลเยอร์ 15 และ 19 และลบมันออกจากคอลัมน์เอาต์พุต 64 คอลัมน์ในแต่ละเลเยอร์
น้ำหนักที่แก้ไข
0.016%
131,072 จาก 0.8 พันล้าน
MATH-500
7.9% → 48.1%
รุ่นฐาน เทียบกับรุ่นแก้ไข
GSM8K
13.8% → 67.1%
รุ่นฐาน เทียบกับรุ่นแก้ไข
IFEval
21.0% → 62.3%
การทำตามคำสั่ง
สัดส่วนคำตอบที่ชนขีดจำกัดโทเค็นลดลงเหลือ 33.1% และเพราะลูปไม่ได้จำเพาะกับคณิตศาสตร์ การทำตามคำสั่งจึงดีขึ้นด้วย งบประมาณมีผล: เมื่อมี 10 หรือ 25 forward pass ลูปแทบไม่หายไป Ahsen Khaliq จาก Hugging Face สร้างเช็คพอยต์ที่แก้ไขจากล็อกและรัน MATH-500 ซ้ำด้วยการตั้งค่าเดียวกัน ได้ 51.0%
จุดอ่อนของ Weight-Space Programming
Weight-space programming ไปได้ไม่ไกลเมื่อปัญหาไม่ได้เป็นข้อบกพร่องเฉพาะจุดเพียงจุดเดียวในน้ำหนัก ผู้เขียนรายงานความล้มเหลวชัดเจนสองกรณี ซึ่งให้ข้อมูลสำคัญ
การเออออ (sycophancy) มองไม่เห็นในน้ำหนัก: เมื่อให้รุ่นปรับแต่งแบบซื่อสัตย์และแบบเออออของ Gemma 3 270M Astra แยกไม่ออกจากน้ำหนักล้วน ๆ ในความพยายามทั้งสี่ครั้ง แต่เมื่อเห็นรูปแบบความสนใจ มันชี้ตัวเออออได้ครบทั้งสามคู่
Gemma 3 270M ไม่เก่งคณิตขึ้น: Gemma แทบไม่วนลูป จึงไม่มีข้อบกพร่องเดียวให้ลบ และการแก้ไขที่ดีที่สุดของ Astra ทำให้ MATH-500 ขยับจาก 6.8% เป็น 7.7% ดังที่ผู้เขียนสรุป การแก้น้ำหนักช่วยเอาอุปสรรคที่บดบังความสามารถออกได้ แต่ไม่อาจเพิ่มความสามารถที่โมเดลไม่มี
ข้อพึงระวังที่กว้างขึ้น: ทุกการทดลองใช้ LLM เพียงตัวเดียว เครือข่ายที่ใหญ่ที่สุดมีน้ำหนัก 0.8 พันล้าน และนี่คือบล็อกโพสต์ที่เป็นผลลัพธ์ระยะแรก ไม่ใช่งานวิจัยผ่านการทบทวนโดยผู้ทรงคุณวุฒิ ผู้เขียนบอกว่ายังสร้างเบนช์มาร์กสำหรับงานนี้อยู่
ความหมายสำหรับผู้ปฏิบัติงานด้านข้อมูลและ AI
สำหรับผู้ปฏิบัติ Weight-space programming เป็นสัญญาณวิจัย ณ วันนี้ แต่ยังไม่ใช่เครื่องมือ มีสองส่วนที่ควรติดตามตอนนี้
ส่วนแรกคือ การตีความ (interpretability) วิธีการระบุแหล่งที่มาอย่าง SHAP อธิบายโมเดลผ่านอินพุต และการตีความเชิงกลไกต้องการเครื่องมือเฉพาะ Astra กู้คืนหัว induction ด้วยวิธีเมทริกซ์มัลทิพลายที่รู้จัก โดยที่นักวิจัยไม่เคยบอกถึงวิธีนั้น ถ้านั่นใช้ได้กับโมเดลที่ใหญ่ขึ้น “ถามโมเดลแนวหน้าว่าเลเยอร์นี้ทำอะไร” อาจกลายเป็นด่านแรกก่อนลงเครื่องมือหนัก
ส่วนที่สองคือ การซ่อมเฉพาะจุด เมื่อโมเดลเล็กมีความล้มเหลวแคบ ๆ อย่างลูปของ Qwen วิธีแก้ทั่วไปคือ ปรับแต่ง (fine-tune) ด้วยข้อมูลใหม่ การแก้ 131,072 น้ำหนักทิ้งส่วนอื่นของโมเดลไว้เหมือนเดิม ซึ่งผู้เขียนเห็นว่าเลี่ยงการลืมอย่างรุนแรงที่อาจเกิดจากการปรับแต่งได้ ควรมองเป็นสมมติฐาน: ผลของ Gemma แสดงว่าการแก้ได้ผลก็ต่อเมื่อมีตัวการเดี่ยวให้หา รายการความปรารถนาที่กว้างขึ้นของผู้เขียน ตั้งแต่การตรวจสอบแบ็กดอร์โดยไม่ต้องรันโมเดล ไปจนถึงการถอนการเรียนรู้ความสามารถโดยไม่ใช้ข้อมูล ยังไม่ได้แสดงให้เห็น
วิธีลองทำ Weight-Space Programming ด้วยตนเอง
วิธีที่ตรงที่สุดในการทดสอบ weight-space programming คือเล่นซ้ำการทดลองสักรายการ: ล็อกเก็บพรอมต์ที่ Astra ได้รับไว้อย่างครบถ้วน และ GPT-6 Astra มีให้ใช้เป็น gpt-6-astra ใน OpenAI API, ใน Amazon Bedrock และในแผนชำระเงินของ ChatGPT การทดลองที่ 1 การระบุชื่อเกมจากน้ำหนักของนโยบาย เป็นจุดเริ่มที่ง่ายที่สุด:
เอาล็อกมา โคลน ที่เก็บ lm_understand-logs แต่ละโฟลเดอร์ของการทดลองมี README ที่ผูกตัวเลขทุกตัวในโพสต์กับไฟล์ต้นทาง
เลือกการทดลองที่ไม่ใช้เครื่องมือ การทดลอง 1, 2, 4 และ 5 ไม่ให้ Astra ใช้เครื่องมือ ดังนั้นพรอมต์เดียวก็ทำซ้ำการรันแต่ละครั้งได้ ในการทดลองที่ 1 แต่ละโฟลเดอร์รันมี prompt.txt ที่บรรยายเครือข่าย คำถาม และน้ำหนักทั้ง 17,253 ค่าเป็นข้อความ
ส่งแบบเดียวกับผู้เขียน ผู้เขียนเรียก gpt-6-astra ผ่าน Codex CLI (codex exec ส่งพรอมต์ทาง stdin) โดยปิดเครื่องมือในตัวทั้งหมด และตั้งค่า reasoning effort สูงสำหรับการทดลองที่ 1 การตั้งค่าอื่น ๆ อยู่ใน harness/codex_config.toml แต่ค่าเริ่มต้นเป็น gpt-6-luna ที่ความพยายาม medium จึงควรกำหนดโมเดลและ reasoning effort ทุกครั้งตามที่ผู้เขียนทำ
เปรียบเทียบคำตอบ แต่ละโฟลเดอร์รันยังมี answer.md ของ Astra และโฟลเดอร์ eval/ มีการให้คะแนนและเฉลย
การรันหนึ่งครั้งใช้โทเค็นอินพุตประมาณ 73,700 และโทเค็นเอาต์พุตไม่ถึง 2,000 ดังนั้นที่ราคา API $10 และ $50 ต่อหนึ่งล้านโทเค็น การเล่นซ้ำหนึ่งครั้งมีค่าใช้จ่ายต่ำกว่า $1 การทดลองที่ใช้ Python sandbox (3, 6, 7 และ 8) ต้องใช้ harness/sandbox.py ของผู้เขียนและต้องโต้ตอบหลายรอบกว่ามาก จัดงบประมาณให้เหมาะสม
หากไม่อยากรันอะไรเอง Qwen3.5-0.8B ที่แก้ไขแล้ว มีให้บน Hugging Face ภายใต้ Apache-2.0 พร้อมแฮชของเทนเซอร์ 2 ตัวที่เปลี่ยนบนการ์ดโมเดล และ Hugging Face Space ให้พิมพ์โจทย์และดูว่ารุ่นฐานวนลูปในขณะที่รุ่นแก้ไขแก้โจทย์ได้
ข้อคิดส่งท้าย
Weight-space programming แสดงว่า LLM ระดับแนวหน้าสามารถอ่านและแก้ไขน้ำหนักเครือข่ายประสาทด้วยการใช้เหตุผล อย่างน้อยสำหรับเครือข่ายขนาดเล็กและข้อบกพร่องเฉพาะจุด ผลการแก้ Qwen คือสิ่งที่จะดึงดูดความสนใจ และสมควรได้รับ เพราะบางส่วนมาจากการที่ Hugging Face ทำซ้ำได้ภายในวันเดียว
ยังคงระมัดระวังต่อคำอ้างที่ใหญ่กว่า โมเดลเดียว เครือข่ายเล็ก และไม่มีเบนช์มาร์ก เป็นฐานที่บางสำหรับกรอบคิดของผู้เขียนที่ว่า “น้ำหนักเครือข่ายประสาทของเราจะถูกเพิ่มประสิทธิภาพโดย LLM โดยตรงในไม่ช้า” อย่างไรก็ดี ความล้มเหลวถูกรายงานอย่างรอบคอบเท่าชัยชนะ และนั่นทำให้ให้ค่ากับชัยชนะมากขึ้น
หากอยากเข้าใจภายในของทรานส์ฟอร์เมอร์ที่การแก้ไขเหล่านี้มุ่งเป้า แนะนำ เส้นทาง Developing Large Language Models ของเรา
การโปรแกรมในเวทน้ำหนัก (weight-space programming) คือวิธีที่โมเดลภาษาขนาดใหญ่แบบอเนกประสงค์ (LLM) อ่านน้ำหนักดิบของโครงข่ายประสาทและแก้ไขหรือเขียนมันโดยตรงตามเป้าหมายที่ระบุเป็นภาษาธรรมชาติ โดยไม่ใช้กระบวนการไล่ระดับ (gradient descent) และไม่ต้องมีลูปการฝึก ใน บล็อกโพสต์เมื่อวันที่ 2 พฤศจิกายน 2026 นักวิจัยจาก MIT CSAIL จำนวนสี่คนรายงานว่า GPT-6 Astra ทำสิ่งนี้ได้แล้ว: มันแก้ไขน้ำหนักของ Qwen3.5-0.8B เพียง 0.016% และดันคะแนน MATH-500 ของโมเดลจาก 7.9% เป็น 48.1%.
ผู้เขียนคือ Rikiya Takehi, Jayden Teoh, Alex Zhang และ Omar Khattab ผู้เขียนคนแรกของงาน DSPy ต้นฉบับ ผลลัพธ์ยังเป็นระยะแรกและมาจาก LLM เพียงตัวเดียว แต่ทีมเผยแพร่พรอมต์ คำตอบ และการประเมินทั้งหมดที่อยู่เบื้องหลังผลเหล่านี้
ในบทความนี้ จะอธิบายว่า weight-space programming คืออะไร การทดลองแสดงอะไร ข้อจำกัดอยู่ตรงไหน และมีความหมายอย่างไรต่อการทำงาน หากต้องการทบทวนเกี่ยวกับโมเดลที่ทำการแก้ไข ดู คำแนะนำเกี่ยวกับ GPT-6 Astra ของเรา
Weight-Space Programming คืออะไร?
Weight-space programming คือการขอให้ LLM อ่าน แก้ หรือเขียนน้ำหนักของโครงข่ายประสาทโดยตรง ตามสเปกภาษาธรรมชาติ บางครั้งโดยไม่ต้องมีฟีดแบ็กจากสภาพแวดล้อมเลย LLM จะพิจารณาว่าส่วนต่าง ๆ ของเครือข่ายคำนวณอะไร หรือควรคำนวณอะไร แล้วตั้งค่าตัวเลขให้สอดคล้อง
นั่นเป็นเส้นทางที่ต่างจากการสร้างน้ำหนักแบบปกติ ปัจจุบัน น้ำหนักมักมาจาก gradient descent ด้วยออปติไมเซอร์อย่าง Adam หรือ Muon จากเครือข่ายที่ฝึกมาให้สร้างน้ำหนักของเครือข่ายอื่น หรือจากคอมไพเลอร์ที่แปลงโปรแกรมเชิงรูปแบบให้เป็นเครือข่าย ในการตั้งค่าของ MIT GPT-6 Astra ไม่ได้เขียนลูปการฝึก แต่มันใช้เหตุผลเกี่ยวกับน้ำหนักเหมือนวิศวกรที่ใช้เหตุผลเกี่ยวกับโค้ด
LLM ปรับแต่งพรอมต์ โปรแกรม และโค้ดการฝึกได้อยู่แล้ว ผู้เขียนให้เหตุผลว่าการเพิ่มประสิทธิภาพแบบอาศัยเหตุผลนี้ ตอนนี้ขยายมาถึงตัวน้ำหนักเอง
นักวิจัย MIT แสดงให้เห็นอะไร
การทดลอง 8 รายการแบ่งเป็นสามกลุ่ม: อ่านน้ำหนัก แก้น้ำหนัก และเขียนน้ำหนักตั้งแต่เริ่มต้น ส่วนใหญ่ใช้เครือข่ายขนาดเล็กที่น้ำหนักพอใส่ในหน้าต่างบริบทของ Astra เป็นข้อความ; กรณีที่ใหญ่กว่านั้นเพิ่ม sandbox ของ Python และบางส่วนได้งบประมาณสำหรับการทำ forward pass
การอ่านน้ำหนักของเครือข่าย
ทีมฝึกนโยบาย 4 ตัวด้วย proximal policy optimization (PPO) ซึ่งเป็นอัลกอริทึมเสริมกำลังมาตรฐานสำหรับเอเจนต์เกม บนเวอร์ชันกริดของ Breakout, Pong, Pac-Man และ Freeway ทั้งหมดใช้สถาปัตยกรรมเดียวกันที่มีน้ำหนัก 17,253 ค่า โดยที่ไม่ได้บอกชื่อเกม Astra ระบุชื่อเกมที่ถูกต้องสำหรับทั้ง 4 เครือข่าย โดยอ่านเบาะแสอย่างเช่นน้ำหนักเลเยอร์แรกของเอเจนต์ Breakout ที่วางตามแถวล่างซึ่งเป็นตำแหน่งของไม้ตี
ตามด้วยเวอร์ชันที่ยากขึ้นอีกสองแบบ:
ซ่อมนโยบายที่เสีย
นโยบาย PPO ที่ฝึกมา 1 พันล้านสเต็ปบนด่านรถกับทางลาดในสภาพแวดล้อม Kinetix ขับพุ่งชนทางลาดและดับทุกครั้ง เมื่อให้ข้อมูลน้ำหนัก 171,664 ค่า ฉาก และหนึ่งเอพิโสดที่บันทึกไว้ Astra อธิบายความล้มเหลวและเขียนวิธีแก้ในคำตอบเดียวโดยไม่ใช้เครื่องมือ การแก้ไขเปลี่ยน 3.5% ของน้ำหนักและทำให้อัตราความสำเร็จจาก 0% เป็น 100% ตลอด 1,024 เอพิโสด
วิธีแก้อ่านเข้าใจได้: เส้นทางเล็ก ๆ เพิ่มเติมที่ถอยรถก่อน แล้วปิดเมื่อรถผ่านแถบไปแล้ว
เขียนเครือข่ายตั้งแต่เริ่มต้น
สำหรับเกม MinAtar สามเกม Astra ได้กติกา ซอร์สโค้ด และเครือข่ายที่เป็นศูนย์ทั้งหมด แล้วเขียนน้ำหนักทุกตัวเป็นข้อความในคำตอบเดียว โดยไม่มีข้อมูล กราดิเอนต์ หรือเครื่องมือ เครือข่ายทั้งสามเอาชนะเอเจนต์ PPO ที่ฝึกมา 100 ล้านสเต็ปได้
Breakout โดดเด่นเพราะ Astra เขียนมันเป็นโปรแกรม: เลเยอร์แรกคำนวณว่าลูกบอลจะตกที่ไหน เลเยอร์ที่สองขยับไม้ตีไปที่นั่น เครือข่ายโกะ 9x9 ที่มีน้ำหนัก 1,480,274 ค่า ซึ่งเขียนใน Python sandbox เอาชนะเครือข่าย PPO ขนาดเท่ากันที่ฝึกบนเกม 20 ล้านเกมได้เมื่อ Astra มี 50 forward pass สำหรับทดสอบเปรียบเทียบ
แก้ลูปการให้เหตุผลใน Qwen3.5-0.8B
ผลลัพธ์ที่นำไปใช้ได้มากที่สุดมุ่งเป้าไปที่ข้อบกพร่องที่ทราบอยู่แล้ว การ์ดโมเดลของ Qwen เตือนว่า Qwen3.5-0.8B มีแนวโน้มเข้าสู่ลูปการคิด และในการทดสอบของ MIT มีคำตอบ MATH-500 ถึง 93.0% ที่ยืดยาวจนชนขีดจำกัด 32,768 โทเค็น ทำงานในเคอร์เนล Python พร้อม 50 forward pass บนโจทย์ฝึกจาก GSM8K และ MATH Astra ติดตามลูปไปยังทิศทางหนึ่งที่เขียนโดย MLP ของเลเยอร์ 15 และ 19 และลบมันออกจากคอลัมน์เอาต์พุต 64 คอลัมน์ในแต่ละเลเยอร์
สัดส่วนคำตอบที่ชนขีดจำกัดโทเค็นลดลงเหลือ 33.1% และเพราะลูปไม่ได้จำเพาะกับคณิตศาสตร์ การทำตามคำสั่งจึงดีขึ้นด้วย งบประมาณมีผล: เมื่อมี 10 หรือ 25 forward pass ลูปแทบไม่หายไป Ahsen Khaliq จาก Hugging Face สร้างเช็คพอยต์ที่แก้ไขจากล็อกและรัน MATH-500 ซ้ำด้วยการตั้งค่าเดียวกัน ได้ 51.0%
จุดอ่อนของ Weight-Space Programming
Weight-space programming ไปได้ไม่ไกลเมื่อปัญหาไม่ได้เป็นข้อบกพร่องเฉพาะจุดเพียงจุดเดียวในน้ำหนัก ผู้เขียนรายงานความล้มเหลวชัดเจนสองกรณี ซึ่งให้ข้อมูลสำคัญ
ข้อพึงระวังที่กว้างขึ้น: ทุกการทดลองใช้ LLM เพียงตัวเดียว เครือข่ายที่ใหญ่ที่สุดมีน้ำหนัก 0.8 พันล้าน และนี่คือบล็อกโพสต์ที่เป็นผลลัพธ์ระยะแรก ไม่ใช่งานวิจัยผ่านการทบทวนโดยผู้ทรงคุณวุฒิ ผู้เขียนบอกว่ายังสร้างเบนช์มาร์กสำหรับงานนี้อยู่
ความหมายสำหรับผู้ปฏิบัติงานด้านข้อมูลและ AI
สำหรับผู้ปฏิบัติ Weight-space programming เป็นสัญญาณวิจัย ณ วันนี้ แต่ยังไม่ใช่เครื่องมือ มีสองส่วนที่ควรติดตามตอนนี้
ส่วนแรกคือ การตีความ (interpretability) วิธีการระบุแหล่งที่มาอย่าง SHAP อธิบายโมเดลผ่านอินพุต และการตีความเชิงกลไกต้องการเครื่องมือเฉพาะ Astra กู้คืนหัว induction ด้วยวิธีเมทริกซ์มัลทิพลายที่รู้จัก โดยที่นักวิจัยไม่เคยบอกถึงวิธีนั้น ถ้านั่นใช้ได้กับโมเดลที่ใหญ่ขึ้น “ถามโมเดลแนวหน้าว่าเลเยอร์นี้ทำอะไร” อาจกลายเป็นด่านแรกก่อนลงเครื่องมือหนัก
ส่วนที่สองคือ การซ่อมเฉพาะจุด เมื่อโมเดลเล็กมีความล้มเหลวแคบ ๆ อย่างลูปของ Qwen วิธีแก้ทั่วไปคือ ปรับแต่ง (fine-tune) ด้วยข้อมูลใหม่ การแก้ 131,072 น้ำหนักทิ้งส่วนอื่นของโมเดลไว้เหมือนเดิม ซึ่งผู้เขียนเห็นว่าเลี่ยงการลืมอย่างรุนแรงที่อาจเกิดจากการปรับแต่งได้ ควรมองเป็นสมมติฐาน: ผลของ Gemma แสดงว่าการแก้ได้ผลก็ต่อเมื่อมีตัวการเดี่ยวให้หา รายการความปรารถนาที่กว้างขึ้นของผู้เขียน ตั้งแต่การตรวจสอบแบ็กดอร์โดยไม่ต้องรันโมเดล ไปจนถึงการถอนการเรียนรู้ความสามารถโดยไม่ใช้ข้อมูล ยังไม่ได้แสดงให้เห็น
วิธีลองทำ Weight-Space Programming ด้วยตนเอง
วิธีที่ตรงที่สุดในการทดสอบ weight-space programming คือเล่นซ้ำการทดลองสักรายการ: ล็อกเก็บพรอมต์ที่ Astra ได้รับไว้อย่างครบถ้วน และ GPT-6 Astra มีให้ใช้เป็น
gpt-6-astraใน OpenAI API, ใน Amazon Bedrock และในแผนชำระเงินของ ChatGPT การทดลองที่ 1 การระบุชื่อเกมจากน้ำหนักของนโยบาย เป็นจุดเริ่มที่ง่ายที่สุด:เอาล็อกมา โคลน ที่เก็บ lm_understand-logs แต่ละโฟลเดอร์ของการทดลองมี README ที่ผูกตัวเลขทุกตัวในโพสต์กับไฟล์ต้นทาง
เลือกการทดลองที่ไม่ใช้เครื่องมือ การทดลอง 1, 2, 4 และ 5 ไม่ให้ Astra ใช้เครื่องมือ ดังนั้นพรอมต์เดียวก็ทำซ้ำการรันแต่ละครั้งได้ ในการทดลองที่ 1 แต่ละโฟลเดอร์รันมี
prompt.txtที่บรรยายเครือข่าย คำถาม และน้ำหนักทั้ง 17,253 ค่าเป็นข้อความส่งแบบเดียวกับผู้เขียน ผู้เขียนเรียก
gpt-6-astraผ่าน Codex CLI (codex execส่งพรอมต์ทาง stdin) โดยปิดเครื่องมือในตัวทั้งหมด และตั้งค่า reasoning effort สูงสำหรับการทดลองที่ 1 การตั้งค่าอื่น ๆ อยู่ในharness/codex_config.tomlแต่ค่าเริ่มต้นเป็นgpt-6-lunaที่ความพยายามmediumจึงควรกำหนดโมเดลและ reasoning effort ทุกครั้งตามที่ผู้เขียนทำเปรียบเทียบคำตอบ แต่ละโฟลเดอร์รันยังมี
answer.mdของ Astra และโฟลเดอร์eval/มีการให้คะแนนและเฉลยการรันหนึ่งครั้งใช้โทเค็นอินพุตประมาณ 73,700 และโทเค็นเอาต์พุตไม่ถึง 2,000 ดังนั้นที่ราคา API $10 และ $50 ต่อหนึ่งล้านโทเค็น การเล่นซ้ำหนึ่งครั้งมีค่าใช้จ่ายต่ำกว่า $1 การทดลองที่ใช้ Python sandbox (3, 6, 7 และ 8) ต้องใช้
harness/sandbox.pyของผู้เขียนและต้องโต้ตอบหลายรอบกว่ามาก จัดงบประมาณให้เหมาะสมหากไม่อยากรันอะไรเอง Qwen3.5-0.8B ที่แก้ไขแล้ว มีให้บน Hugging Face ภายใต้ Apache-2.0 พร้อมแฮชของเทนเซอร์ 2 ตัวที่เปลี่ยนบนการ์ดโมเดล และ Hugging Face Space ให้พิมพ์โจทย์และดูว่ารุ่นฐานวนลูปในขณะที่รุ่นแก้ไขแก้โจทย์ได้
ข้อคิดส่งท้าย
Weight-space programming แสดงว่า LLM ระดับแนวหน้าสามารถอ่านและแก้ไขน้ำหนักเครือข่ายประสาทด้วยการใช้เหตุผล อย่างน้อยสำหรับเครือข่ายขนาดเล็กและข้อบกพร่องเฉพาะจุด ผลการแก้ Qwen คือสิ่งที่จะดึงดูดความสนใจ และสมควรได้รับ เพราะบางส่วนมาจากการที่ Hugging Face ทำซ้ำได้ภายในวันเดียว
ยังคงระมัดระวังต่อคำอ้างที่ใหญ่กว่า โมเดลเดียว เครือข่ายเล็ก และไม่มีเบนช์มาร์ก เป็นฐานที่บางสำหรับกรอบคิดของผู้เขียนที่ว่า “น้ำหนักเครือข่ายประสาทของเราจะถูกเพิ่มประสิทธิภาพโดย LLM โดยตรงในไม่ช้า” อย่างไรก็ดี ความล้มเหลวถูกรายงานอย่างรอบคอบเท่าชัยชนะ และนั่นทำให้ให้ค่ากับชัยชนะมากขึ้น
หากอยากเข้าใจภายในของทรานส์ฟอร์เมอร์ที่การแก้ไขเหล่านี้มุ่งเป้า แนะนำ เส้นทาง Developing Large Language Models ของเรา