ข้ามไปยังเนื้อหาหลัก

การโปรแกรมในเวทน้ำหนัก: LLM อ่านและแก้ไขน้ำหนักโครงข่ายประสาทอย่างไร

Weight-space programming เปิดให้ LLM อ่านและแก้ไขน้ำหนักของเครือข่ายโดยไม่ต้องฝึก การทดลองของ MIT กับ GPT-6 Astra ผลลัพธ์ ข้อจำกัด และความหมายที่ตามมา
Tom Farnschläder
Tom Farnschläder

สร้างบัญชีฟรีของคุณ

ฝึกฝนและตรวจสอบความก้าวหน้าของคุณ

ดำเนินการต่อด้วย Googleเมื่อดำเนินการต่อ ถือว่าคุณยอมรับ ข้อกำหนดการใช้งานและ นโยบายความเป็นส่วนตัว และยอมรับว่าข้อมูลของคุณจะถูกจัดเก็บในสหรัฐอเมริกา

การโปรแกรมในเวทน้ำหนัก (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

GPT-6 Astra อ่าน แก้ เขียน และปรับปรุงเครือข่ายได้โดยไม่ต้องฝึก

การอ่านน้ำหนักของเครือข่าย

ทีมฝึกนโยบาย 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
Breakout15.825.3517.4
Seaquest5.688.953.1
Asterix25.855.253.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 การระบุชื่อเกมจากน้ำหนักของนโยบาย เป็นจุดเริ่มที่ง่ายที่สุด:

  1. เอาล็อกมา โคลน ที่เก็บ lm_understand-logs แต่ละโฟลเดอร์ของการทดลองมี README ที่ผูกตัวเลขทุกตัวในโพสต์กับไฟล์ต้นทาง

  2. เลือกการทดลองที่ไม่ใช้เครื่องมือ การทดลอง 1, 2, 4 และ 5 ไม่ให้ Astra ใช้เครื่องมือ ดังนั้นพรอมต์เดียวก็ทำซ้ำการรันแต่ละครั้งได้ ในการทดลองที่ 1 แต่ละโฟลเดอร์รันมี prompt.txt ที่บรรยายเครือข่าย คำถาม และน้ำหนักทั้ง 17,253 ค่าเป็นข้อความ

  3. ส่งแบบเดียวกับผู้เขียน ผู้เขียนเรียก gpt-6-astra ผ่าน Codex CLI (codex exec ส่งพรอมต์ทาง stdin) โดยปิดเครื่องมือในตัวทั้งหมด และตั้งค่า reasoning effort สูงสำหรับการทดลองที่ 1 การตั้งค่าอื่น ๆ อยู่ใน harness/codex_config.toml แต่ค่าเริ่มต้นเป็น gpt-6-luna ที่ความพยายาม medium จึงควรกำหนดโมเดลและ reasoning effort ทุกครั้งตามที่ผู้เขียนทำ

  4. เปรียบเทียบคำตอบ แต่ละโฟลเดอร์รันยังมี 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 ของเรา

FAQs

Weight-space programming คืออะไร?

Weight-space programming คือวิธีที่ LLM แบบอเนกประสงค์อ่านน้ำหนักดิบของโครงข่ายประสาทและแก้ไขหรือเขียนมันโดยตรงตามเป้าหมายภาษาธรรมชาติ โดยไม่ต้องมี gradient descent หรือ ลูปการฝึก คำนี้มาจากบล็อกโพสต์เดือนพฤศจิกายน 2026 โดยนักวิจัย MIT CSAIL ได้แก่ Rikiya Takehi, Jayden Teoh, Alex Zhang และ Omar Khattab ผู้ซึ่งทดสอบด้วย GPT-6 Astra

LLM แก้ไขน้ำหนักโครงข่ายประสาทโดยตรงได้หรือไม่?

ได้ อย่างน้อยสำหรับเครือข่ายขนาดเล็ก ในการทดลองของ MIT CSAIL GPT-6 Astra แก้ไขน้ำหนัก 3.5% ของนโยบายควบคุมที่ล้มเหลวให้กลับมาจาก 0% เป็น 100% และแก้ไข 0.016% ของน้ำหนัก Qwen3.5-0.8B เพื่อลดลูปการคิด โดยสัดส่วนคำตอบที่ชนขีดจำกัดโทเค็นลดจาก 93% เป็น 33% แต่มันล้มเหลื่อมเมื่อไม่มีข้อบกพร่องเดี่ยวให้ลบ เช่นข้อผิดพลาดคณิตของ Gemma 3 270M

GPT-6 Astra ปรับปรุง Qwen3.5-0.8B โดยไม่ต้องฝึกได้อย่างไร?

Astra ติดตามลูปการคิดของ Qwen3.5-0.8B ไปยังทิศทางหนึ่งที่ถูกเขียนโดย MLP ของเลเยอร์ 15 และ 19 แล้วลบมันออกจากคอลัมน์เอาต์พุต 64 คอลัมน์ในแต่ละเลเยอร์ เปลี่ยนไป 131,072 น้ำหนัก ด้วย 50 forward pass บนโจทย์ฝึก คะแนน MATH-500 เพิ่มจาก 7.9% เป็น 48.1% GSM8K จาก 13.8% เป็น 67.1% และ IFEval จาก 21.0% เป็น 62.3%

weight-space programming แทนที่การปรับแต่ง (fine-tuning) ได้หรือไม่?

ยังไม่ใช่ มันใช้ได้กับข้อบกพร่องเฉพาะจุดเพียงจุดเดียวอย่างลูปของ Qwen แต่ไม่สามารถเพิ่มความสามารถที่โมเดลไม่มี และทดลองเพียงกับ LLM ตัวเดียวบนเครือข่ายไม่เกิน 0.8 พันล้านน้ำหนัก ในตอนนี้ การปรับแต่ง (fine-tuning) ยังเป็นวิธีปฏิบัติได้จริงเพื่อเปลี่ยนพฤติกรรมโมเดล

ลองทำ weight-space programming เองได้หรือไม่?

ทำได้ โดยตรวจสอบและทดสอบผลลัพธ์โดยไม่ต้องเข้าถึง GPT-6 Astra นักวิจัยเผยแพร่ล็อกการทดลองฉบับเต็มบน GitHub รุ่น Qwen3.5-0.8B ที่แก้ไขแล้วอยู่บน Hugging Face ภายใต้ Apache-2.0 และมี Hugging Face Space ให้เปรียบเทียบรุ่นฐานกับรุ่นแก้ไขบนโจทย์ของตนเอง

Tom Farnschläder

ผู้เขียน

Tom Farnschläder

Tom เป็นบรรณาธิการด้านวิทยาการข้อมูลที่ DataCamp ทำหน้าที่เขียนและบรรณาธิการบทช่วยสอนด้าน AI เปรียบเทียบการเปิดตัว LLM รุ่นใหม่ และสร้างเวิร์กโฟลว์ที่ขับเคลื่อนด้วย AI ก่อนหน้านี้เคยทำงานด้านวิทยาการข้อมูลที่ Deutsche Telekom นอกเวลางานใช้การเรียนรู้ของเครื่องพยากรณ์ผลการแข่งขันฟุตบอล

หัวข้อ