AI และเอเจนต์8 นาทีในการอ่าน

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

แก้ค่าน้ำหนักของโครงข่ายประสาทเทียมโดยไม่ต้องเทรนเพิ่ม: Astra ลดการวนลูปของ Qwen ได้ยังไง เปอร์เซ็นต์สวย ๆ ซ่อนอะไรไว้ และการซ่อมแบบนี้มีประโยชน์เมื่อไหร่

แก้ค่าน้ำหนักของโครงข่ายประสาทเทียมโดยตรง: ลดการวนลูปของโมเดลได้ยังไง
สารบัญ

ก่อนจะเทรนโมเดลภาษาตัวเล็กเพิ่ม ให้เช็กก่อนว่ามันผิดพลาดเพราะอะไร ในการทดลองของ MIT CSAIL การแก้ค่าน้ำหนักเพียง 0.016% ทำให้คะแนนบนชุดทดสอบคณิตศาสตร์ขึ้นจาก 7.9% เป็น 48.1%: การแก้ค่าน้ำหนักของโครงข่ายประสาทเทียมช่วยให้มันวนลูปน้อยลง และทำโจทย์ไปจนถึงคำตอบได้บ่อยขึ้น นี่เป็นเหตุผลให้เริ่มจากการวินิจฉัย ไม่ใช่สูตรซ่อมสำเร็จรูปที่ใช้ได้กับทุกกรณี

สำหรับนักพัฒนา เรื่องนี้น่าสนใจกว่าคำสัญญาเรื่อง “ความฉลาดฟรี” ถ้าโมเดลทำงานได้ไม่ดี ปัญหาไม่ได้อยู่ที่ความรู้ไม่พอเสมอไป บางครั้งความสามารถที่มีอยู่แล้วถูกขัดขวางด้วยความผิดพลาดที่เกิดซ้ำ ๆ และการเทรนเพิ่มก็ไม่ใช่วิธีเดียวที่จะแก้มัน

การแก้ค่าน้ำหนักของโครงข่ายประสาทเทียม: ใช้โมเดลที่มี Python แทน optimizer

นักวิจัย Rikiya Takehi, Jayden Teoh, Alex Zhang และ Omar Khattab จาก MIT CSAIL ทดสอบแนวทาง Weight-Space Programming: โมเดลภาษาขนาดใหญ่อ่านและเปลี่ยนพารามิเตอร์เชิงตัวเลขของอีกโครงข่ายหนึ่ง ตามโจทย์ที่เขียนด้วยภาษาธรรมดา

ในการเทรนเพิ่มแบบที่คุ้นกัน ระบบจะคำนวณความผิดพลาด คำนวณ gradient แล้วอัปเดตค่าน้ำหนักผ่าน optimizer แต่ที่นี่ผู้แก้ไขคือ GPT-6 Astra มันวิเคราะห์ tensor ผ่าน Python ตั้งสมมติฐาน และเขียนการเปลี่ยนแปลงลงไปโดยตรง ส่วน gradient descent, backpropagation และการปรับค่าน้ำหนักให้เข้ากับ loss function ถูกห้ามทั้งหมด

นี่ไม่ใช่การเขียน prompt: สิ่งที่เปลี่ยนคือตัวโครงข่ายเอง ไม่ใช่คำแนะนำที่ใส่ไว้ก่อน request และก็ไม่ใช่ fine-tuning แบบปกติ: ทิศทางของการเปลี่ยนแปลงถูกเลือกโดยโมเดลผู้แก้ไข ไม่ใช่อัลกอริทึมการเทรน

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

อะไรพังใน Qwen ตัวเล็ก

เป้าหมายของการซ่อมคือส่วนข้อความของ Qwen3.5-0.8B: ราว 800 ล้านพารามิเตอร์ 24 เลเยอร์ โดยรันแบบเปิดโหมดการให้เหตุผล (reasoning) ไว้

ในทางปฏิบัติ โมเดลมักทวนข้อความท่อนเดิมซ้ำ ๆ และใช้งบการสร้างข้อความจนหมดโดยไม่ไปถึงคำตอบสุดท้าย เป็นลักษณะที่รู้กันอยู่แล้ว: การ์ดโมเดลทางการของ Qwen เตือนว่าเวอร์ชันนี้มีแนวโน้มวนลูปสูงขึ้นในโหมด thinking

Astra โยงความผิดพลาดนี้กับทิศทาง (direction) ที่บล็อก MLP ของเลเยอร์ 15 และ 19 เขียนลงไป MLP คือส่วนคำนวณของเลเยอร์ที่แปลง representation ภายในของข้อความ ในแต่ละบล็อกจากสองบล็อกนี้ ผู้แก้ไขเลือก 64 คอลัมน์ของเมทริกซ์เอาต์พุต แล้วลบองค์ประกอบที่เกี่ยวกับการทวนซ้ำออก

การแก้ไขกระทบค่าน้ำหนัก 131,072 ค่า เมื่อเทียบกับราว 800 ล้านพารามิเตอร์ นี่คือตัวเลขปัดเศษ 0.016% นั่นเอง

สมมติฐานการทำงานที่นี่ไม่ใช่ “เราเจอนิวรอนคณิตศาสตร์แล้ว” แต่ระมัดระวังกว่านั้น: ผู้แก้ไขทำให้กลไกการทวนซ้ำอ่อนลง ซึ่งเป็นกลไกที่ขัดขวางไม่ให้โมเดลที่เทรนมาแล้วทำงานให้จบ

ตัวเลขน่าประทับใจ แต่ใช้ได้กับโหมดหนึ่งโดยเฉพาะ

ในการรันที่ประสบความสำเร็จที่สุด นักวิจัยได้ผลดังนี้:

  • MATH-500: ความแม่นยำเพิ่มจาก 7.9% เป็น 48.1%
  • GSM8K: จาก 13.8% เป็น 67.1%
  • IFEval ซึ่งวัดการทำตามคำสั่ง: จาก 21.0% เป็น 62.3%
  • ถูกตัดเพราะชนลิมิต: สัดส่วนข้อความที่สร้างบน MATH-500 แล้วชนลิมิต token ลดลงจาก 93.0% เหลือ 33.1%

ตัวเลข 93% หมายถึง MATH-500 ในการทดลองนี้เท่านั้น ไม่ใช่ทุก request ที่ส่งไปยัง Qwen แม้หลังซ่อมแล้ว ข้อความที่สร้างบนชุดนี้ราวหนึ่งในสามก็ยังชนลิมิต การชนลิมิตเองยังไม่ได้พิสูจน์ว่าวนลูป: โมเดลอาจแค่ใช้เวลาคิดโจทย์นาน คำอธิบายเรื่องการทวนซ้ำยังอาศัยการวิเคราะห์ตัวคำตอบและการแทรกแซงเพื่อตรวจสอบประกอบด้วย

ก่อนและหลังแก้ไขใช้การตั้งค่าการสร้างข้อความเหมือนกัน และ token ใหม่สูงสุด 32,768 token สำหรับ MATH-500 ใช้ค่าเฉลี่ยจากการสร้างสี่ครั้งต่อโจทย์ นี่คือความแม่นยำเฉลี่ย ไม่ใช่โอกาสที่จะได้คำตอบถูกอย่างน้อยหนึ่งครั้งจากสี่ครั้ง

เราเทียบตัวเลขหลักกับไฟล์ผลประเมินที่เผยแพร่แล้ว แต่ไม่ได้รันโมเดลใหม่เอง: การตรวจรายงานไม่เท่ากับการทำซ้ำการทดลองอย่างอิสระ

การที่ผลดีขึ้นส่งต่อไปถึง IFEval ด้วย สนับสนุนคำอธิบายว่าเป็นการแก้ความผิดพลาดทั่วไปในการสร้างข้อความ แต่ตัวเลขเหล่านี้ไม่ได้แปลว่า Qwen ตัวเล็กเก่งขึ้นในทุกงาน หรือเหนือกว่าโมเดลเดิมในทุกการตั้งค่า

“50 รอบ” ไม่ใช่ห้าสิบคำถาม และไม่ใช่การซ่อมในพริบตา

ในการรันแต่ละแบบ ผู้แก้ไขได้รับอนุญาตให้เรียกเครื่องมือ forward pass ได้ 10, 25 หรือ 50 ครั้ง การเรียกหนึ่งครั้งอาจรวมการสร้างคำตอบให้โจทย์ฝึกหลายร้อยข้อ หรือการอ่านสถานะภายในบนข้อความต่าง ๆ

ดังนั้นวลียอดฮิต “แค่ 50 เทสต์” จึงบิดเบือนขนาดของงาน มันคือการเรียกโมเดล แบบเป็นชุด (batch) ได้ถึง 50 ครั้ง ไม่ใช่ตัวอย่างเดี่ยว 50 ตัว นอกจากนี้ผู้แก้ไขยังรันโค้ด Python เพื่อวิเคราะห์ค่าน้ำหนักแยกต่างหากได้ด้วย

เวอร์ชันที่สำเร็จใช้ 158 เทิร์นของการโต้ตอบและการรัน Python 80 ครั้ง ในล็อกระบุ 20.3 ชั่วโมงตั้งแต่ต้นจนจบ รวมการรอ 4.7 ชั่วโมงเพราะโมเดลผู้แก้ไขใช้งานไม่ได้ นี่คือเวลาของการรันวิจัยครั้งนี้โดยเฉพาะ ไม่ใช่มาตรฐานสำหรับเครื่องมือในอนาคต

ขนาดที่เล็กของการแก้ไขสุดท้ายไม่ได้บอกอะไรเลยว่าการหามันมาต้องใช้ต้นทุนเท่าไหร่ จะเปลี่ยนโค้ดไม่กี่บรรทัดในโปรแกรมที่ซับซ้อน บางทีก็ต้องดีบักกันทั้งวัน

เวอร์ชันที่มีงบน้อยกว่าให้ผลต่ำกว่ามาก: คะแนนบน MATH-500 อยู่ที่ 12.3% เมื่อเรียก 10 ครั้ง และ 14.1% เมื่อเรียก 25 ครั้ง นี่คือการรันค้นหาคนละครั้ง ไม่ใช่บันไดการพัฒนาที่รับประกันได้ของการแก้ไขชุดเดียวกัน

สิ่งที่ควรเช็กในเอเจนต์ของคุณก่อนเทรนใหม่

ข้อสรุปเชิงปฏิบัติของเรา: ให้หาก่อนว่า ผลลัพธ์หายไปที่ขั้นไหน เอเจนต์อาจรู้วิธีแก้แต่สร้างข้อความไม่จบ อาจตอบจนจบแต่ผิดรูปแบบ หรืออาจไม่มีทักษะที่ต้องใช้จริง ๆ ป้าย “ทำไม่ได้” แบบเดียวกันซ่อนข้อบกพร่องคนละแบบไว้

สำหรับโปรเจกต์ที่ใช้งานจริง ควรเริ่มจากสิ่งที่ทำได้:

  1. นับแยกกัน: คำตอบผิด ข้อความที่ถูกตัด การทวนซ้ำ และการผิดรูปแบบ
  2. เทียบ chat template และการตั้งค่ากับคำแนะนำของผู้พัฒนาโมเดล
  3. เปรียบเทียบโหมดการให้เหตุผลและลิมิตบนชุดโจทย์ชุดเดียวที่ตายตัว
  4. เช็กไม่ใช่แค่ metric เป้าหมาย แต่รวมถึง request ทั่วไป ต้นทุน และความหน่วงด้วย

ลำดับนี้มีประโยชน์แม้ไม่มีสิทธิ์เข้าถึงค่าน้ำหนัก ทำไมคุณภาพถึงขึ้นกับทั้งระบบ ไม่ใช่แค่ชื่อโมเดล อ่านเพิ่มได้ในบทความสรุปคอร์สของ CMU เรื่อง harness (ระบบที่ห่อรอบโมเดล) และการประเมินเอเจนต์ ส่วนการเทรนผ่านการฝึกฝนตัวเองด้วยภาษา แสดงอีกเส้นทางหนึ่งในการพัฒนาโมเดล และไม่ควรสับสนกับการซ่อมพารามิเตอร์แบบเจาะจุด

บน Gemma การซ่อมแทบไม่ได้ผล และนั่นเป็นผลลัพธ์สำคัญ

นักวิจัยลองปรับปรุง Gemma 3 270M ซึ่งมีอาการวนลูปน้อยกว่ามาก บน MATH-500 ผลเริ่มต้นอยู่ที่ 6.8% และหลังเวอร์ชันที่เรียก 50 ครั้งได้ 7.0% ผลไม่ได้ดีขึ้นอย่างน่าเชื่อถือ

ความผิดพลาดที่นั่นหน้าตาต่างออกไป: คำนวณเลขผิด ทำขั้นตอนพีชคณิตผิด ไม่เจอกลไกเฉพาะจุดตัวเดียวที่ถ้าปิดแล้วจะแก้ปัญหาหลักได้

เอาตัวเลขเหล่านี้มาเทียบความสามารถสัมบูรณ์ของ Gemma กับ Qwen ตรง ๆ ไม่ได้: ขนาดโมเดล การตั้งค่า ลิมิตการสร้างข้อความ และกฎการดึงคำตอบตอนประเมินต่างกัน แต่ผลลัพธ์เชิงลบนี้จำกัดข้อสรุปหลัก การเอาสิ่งรบกวนออกกับการได้ทักษะใหม่เป็นคนละงานกัน ผลของ Qwen สอดคล้องกับการกำจัดสิ่งรบกวนเป็นหลัก และไม่ได้แปลว่ามีวิธีสากลที่จะทำให้โมเดลไหนก็ได้ฉลาดขึ้น

ในการทดลองแยกอีกชุด Astra แยกโมเดลที่ชอบคล้อยตามผู้ใช้ออกจากโมเดลปกติด้วยค่าน้ำหนักอย่างเดียวได้ไม่แม่นยำ ทำได้ก็ต่อเมื่อได้เครื่องมือที่แสดงการกระจายของ attention การเข้าถึงตัวเลขอย่างเดียวยังไม่ได้ทำให้โครงข่ายกลายเป็นหนังสือที่เปิดอ่านได้

ความใหม่ไม่ได้อยู่ที่ไอเดียการแก้ค่าน้ำหนักทีละจุด

การแก้ไขโมเดลแบบเจาะจุดมีมาก่อน Weight-Space Programming แล้ว ตัวอย่างเช่น วิธี ROME ที่นำเสนอใน NeurIPS 2022 ระบุตำแหน่งของความสัมพันธ์เชิงข้อเท็จจริง แล้วเปลี่ยนมันด้วยการแก้เมทริกซ์ MLP เล็กน้อย

สิ่งที่แนวทางใหม่ต่างออกไปคือบทบาทของ LLM อเนกประสงค์ มันไม่ได้แค่อธิบายนิวรอนที่เจอ หรือรันอัลกอริทึมแก้ไขที่เขียนไว้ล่วงหน้า แต่มีส่วนร่วมในการวินิจฉัยและออกแบบตัวการแก้ไขเองตามโจทย์ที่เขียนเป็นคำพูด

นี่ทำให้งานนี้น่าสนใจสำหรับ mechanistic interpretability ซึ่งเป็นงานวิจัยว่าการคำนวณภายในแบบไหนทำให้เกิดพฤติกรรมของโครงข่าย คำอธิบายจะน่าเชื่อขึ้นเมื่อตามมาด้วยการแทรกแซงแบบเจาะจงและผลลัพธ์ที่วัดได้ ในการรันที่สำเร็จ นักวิจัยตรวจทีละเลเยอร์และความแรงของการแทรกแซง และใช้การแก้ไขแบบสุ่มขนาดใกล้เคียงกันเป็นตัวควบคุม

แต่การแก้ไขเล็ก ๆ ไม่ได้รับประกันว่าจะไม่มีผลข้างเคียง งานวิจัยของ UC Berkeley เรื่องการใช้ ROME และ MEMIT ต่อเนื่องกันหลายครั้งแสดงให้เห็นว่าความรู้ที่เก็บไว้และความสามารถอื่น ๆ แย่ลงทีละน้อย แล้วก็แย่ลงอย่างฉับพลัน นี่ไม่ใช่หลักฐานว่า Weight-Space Programming จะเป็นแบบเดียวกัน แต่เป็นเหตุผลที่ไม่ควรเอาเปอร์เซ็นต์สวย ๆ ของพารามิเตอร์ที่ถูกเปลี่ยนมาแทน regression testing

แพตช์สุดท้ายทำซ้ำได้ แต่กระบวนการค้นหาทั้งหมดยังทำซ้ำได้ไม่ครบ

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

ตอนนี้ควรมอง Weight-Space Programming เป็นวิธีดีบักเชิงวิจัย มากกว่าเป็นสิ่งที่มาแทนการเทรน ขั้นแรกไม่ต้องเข้าถึงค่าน้ำหนักเลย: เอาชุดโจทย์ของคุณเองที่ตายตัวมาชุดหนึ่ง แล้วนับแยกกันว่ามีคำตอบผิด การทวนซ้ำ และข้อความที่ถูกตัดเท่าไหร่ แล้วคุณจะเห็นว่าจริง ๆ แล้วกำลังจะปรับปรุงอะไร

แหล่งข้อมูล

  1. MIT CSAIL: โปรโตคอล ล็อก และผลการทดลองกับ Qwen
  2. MATH-500, GSM8K และ IFEval: ผลเริ่มต้นของ Qwen
  3. MATH-500, GSM8K และ IFEval: ผลหลังแก้ค่าน้ำหนัก
  4. Qwen: การ์ดโมเดลทางการของ Qwen3.5-0.8B และคำแนะนำในการสร้างข้อความ
  5. MIT CSAIL: ทดสอบการแก้ค่าน้ำหนักบน Gemma 3 270M
  6. MIT CSAIL: การตรวจจับแนวโน้มของโมเดลที่จะคล้อยตามผู้ใช้
  7. ROME: การระบุตำแหน่งและแก้ไขความสัมพันธ์เชิงข้อเท็จจริงใน GPT
  8. UC Berkeley: การลืมแบบค่อยเป็นค่อยไปและแบบฉับพลันเมื่อแก้ไขโมเดล
คนกันเองอยู่ใกล้ ๆถามคนกันเอง แชทตอบเร็วกว่าค้นหาเองแชทหลักของไอที ปาร์ตี้ พัทยา: คนสาย IT สายดิจิทัล และผู้ประกอบการ ที่เคยผ่านเรื่องเดียวกันมาแล้ว เริ่มตั้งแต่กรกฎาคม 2566 แชทใช้ภาษารัสเซีย ชาวต่างชาติและคนไทยเข้ามาได้เสมอเข้าแชท (ภาษารัสเซีย)

อ่านเรื่องที่เกี่ยวข้อง

  • HackerTube: Claude สร้างแคตตาล็อกวิดีโอแทนฟีด YouTube ได้ยังไง

    AI และเอเจนต์7 นาทีในการอ่าน

    HackerTube: Claude สร้างแคตตาล็อกวิดีโอแทนฟีด YouTube ได้ยังไง

    HackerTube เปลี่ยนวิธีหาวิดีโอบน YouTube: คัดจากคำแนะนำใน Hacker News โดยมี Claude ช่วย พร้อมข้อมูลเปิด ควรลองอะไร และมีข้อจำกัดอะไรบ้าง

  • หน่วยความจำสำหรับ Claude Code และ Codex: holographic-memory และ agent-dreaming

    AI และเอเจนต์11 นาทีในการอ่าน

    หน่วยความจำสำหรับ Claude Code และ Codex: holographic-memory และ agent-dreaming

    holographic และ dreaming ไม่ได้มีแค่ใน Hermes แล้ว: หน่วยความจำในเครื่องที่ Claude Code กับ Codex ใช้ร่วมกัน ตรวจข้อเท็จจริงทุกคืน วิธีติดตั้ง และย้ายสิ่งที่เอเจนต์จำไว้แล้วมาด้วย

  • GPT ใน Claude Code: เปลี่ยนโมเดลผ่านพร็อกซี CCR

    AI และเอเจนต์16 นาทีในการอ่าน

    GPT ใน Claude Code: เปลี่ยนโมเดลผ่านพร็อกซี CCR

    วิธีเชื่อม GPT เข้ากับ Claude Code ผ่าน CCR บน Windows และ macOS ตั้งค่าเทอร์มินัลและ Claude Desktop แพ็กเกจ ChatGPT การเรียก Codex CLI การตรวจสอบ และการย้อนกลับ