งานนี้ดำเนินการโดยทีมของอาจารย์ Zhao Dongyan และ Zhang Huishuai จากสถาบันคอมพิวเตอร์ Wang Xuan มหาวิทยาลัยปักกิ่ง ผู้เขียนหลักคือ Yuan Danlong นักศึกษาปริญญาโทจากสถาบันวิทยาศาสตร์และวิศวกรรมศาสตร์ข้ามสาขา มหาวิทยาลัยปักกิ่ง
ในขณะที่ตัวแทนวิศวกรรมซอฟต์แวร์ (SWE Agent) ได้รับความสนใจอย่างมากเนื่องจากมีแนวทางการประยุกต์ใช้และคุณค่าที่ชัดเจน ผู้ปฏิบัติงานกลับเผชิญกับความท้าทายเมื่อพยายามฝึกฝนตัวแทนของตนเอง วิธีการฝึกฝนหลักในปัจจุบันอาศัยเทคโนโลยีคอนเทนเนอร์ (เช่น Docker) เพื่อสร้างการแยกสภาพแวดล้อมและการทำซ้ำ แต่ต้นทุนโครงสร้างพื้นฐานและการดำเนินงานที่สูง โดยเฉพาะเมื่อต้องการขยายขนาดการฝึกฝน ก่อให้เกิดอุปสรรคที่สำคัญ
เพื่อแก้ไขปัญหานี้ ทีมวิจัยได้เปิดตัว SWE-MiniSandbox ซึ่งเป็นเฟรมเวิร์กการฝึกฝนแบบน้ำหนักเบาที่ไม่ต้องใช้คอนเทนเนอร์ โดยมีเป้าหมายเพื่อเป็นทางเลือกต้นทุนต่ำสำหรับนักพัฒนาและนักวิจัยที่มีทรัพยากรจำกัด ช่วยลดอุปสรรคในการฝึกฝน SWE Agent ลงอย่างมาก

- ชื่อบทความ: SWE-MiniSandbox: Container-Free Reinforcement Learning for Building Software Engineering Agents
- ลิงก์บทความ: https://arxiv.org/abs/2602.11210
- ที่เก็บโค้ด: https://github.com/lblankl/SWE-MiniSandbox
- เอกสารโครงการ: https://lblankl.github.io/SWE-MiniSandbox/
- เดโมเส้นโค้งการฝึกฝน: https://wandb.ai/open_source_blank/SWE-MiniSandbox
ภาพรวมเฟรมเวิร์ก
SWE-MiniSandbox เป็นสภาพแวดล้อมแซนด์บ็อกซ์วิศวกรรมซอฟต์แวร์ที่ไม่ใช้คอนเทนเนอร์ มันแก้ไขจุดสำคัญของโซลูชันแบบคอนเทนเนอร์ดั้งเดิม นั่นคือความจำเป็นในการสร้างและบำรุงรักษาอิมเมจจำนวนมากที่มีน้ำหนักมาก และการพึ่งพาคลัสเตอร์เซิร์ฟเวอร์คอนเทนเนอร์ประสิทธิภาพสูง ซึ่งนำไปสู่ต้นทุนและความซับซ้อนในการดำเนินงานที่สูง ในสถานการณ์ที่มีทรัพยากรจำกัดหรือขาดสิทธิ์ในการจัดการคอนเทนเนอร์ สิ่งนี้มักกลายเป็นอุปสรรคหลักในการขยายการฝึกฝน
เฟรมเวิร์กนี้บรรลุการแยกแบบน้ำหนักเบาด้วยวิธีต่อไปนี้:
1. กลไกการแยกโดยไม่ใช้คอนเทนเนอร์: ใช้ประโยชน์จากเนมสเปซการติดตั้ง (mount namespaces) และการแยกระบบไฟล์แบบ chroot เพื่อสร้างเซสชันเทอร์มินัลและไดเรกทอรีทำงานส่วนตัวที่แยกจากกันสำหรับแต่ละอินสแตนซ์การฝึกฝน ซึ่งข้ามการพึ่งพาเครื่องยนต์คอนเทนเนอร์
2. ไปป์ไลน์การแคชสภาพแวดล้อมล่วงหน้า: สร้างสภาพแวดล้อมแบบไฮบริดโดยใช้ Conda และ Python venv แบบน้ำหนักเบา ติดตั้งการพึ่งพางานล่วงหน้าและแพ็คเป็นแคช ใช้ไฟล์แคชที่บีบอัดซ้ำระหว่างอินสแตนซ์การรันที่ต่างกัน ลดค่าใช้จ่ายในการเตรียมสภาพแวดล้อมลงอย่างมาก
3. การจัดการ I/O แบบละเอียด: ผ่านการควบคุมทรัพยากรและกลไกเซมาโฟร์ที่ใช้ Ray จำกัดจำนวนงานแตกไฟล์ที่ทำงานพร้อมกัน จัดการกับคอขวดของดิสก์ I/O ภายใต้การทำงานพร้อมกันสูงได้อย่างมีประสิทธิภาพ
SWE-MiniSandbox ผสานรวมกับเครื่องมือหลัก SWE ที่มีอยู่ (เช่น SWE-Rex, SWE-agent, SkyRL) อย่างลึกซึ้ง และสามารถใช้เป็นทางเลือกแทนแบ็กเอนด์คอนเทนเนอร์ได้อย่างราบรื่นและพร้อมใช้
วิธีการหลัก

I. กลไกการแยกโดยไม่ใช้คอนเทนเนอร์
การปรับปรุงหลัก: Chroot + เนมสเปซการติดตั้ง + การแยกเทอร์มินัล
- Chroot: เปลี่ยนเส้นทางไดเรกทอรีรูทของแต่ละงานไปยังไดเรกทอรีที่กำหนดค่าล่วงหน้าและแยกจากกัน สร้างระบบไฟล์รูทเสมือน เพื่อให้เกิดการแยกการเข้าถึงไฟล์
- เนมสเปซการติดตั้ง: แต่ละงานมีมุมมองการติดตั้งของตัวเอง สามารถติดตั้งระบบไฟล์ที่จำเป็นโดยไม่ส่งผลกระทบต่อโฮสต์ และหลีกเลี่ยงความขัดแย้งผ่านโหมดแบบอ่านอย่างเดียว/เขียนได้แบบผสม
- การแยกเทอร์มินัล: ใช้ SWE-Rex เพื่อจัดสรรและจัดการเทอร์มินัลปลอมที่แยกจากกันสำหรับแต่ละงาน รับประกันความสมบูรณ์ของการดำเนินการแบบโต้ตอบ
ข้อได้เปรียบ: เมื่อเทียบกับคอนเทนเนอร์แบบเต็ม มีค่าใช้จ่ายเคอร์เนลน้อยกว่าและเร็วกว่า
II. ไปป์ไลน์การแคชสภาพแวดล้อมล่วงหน้า

โซลูชันดั้งเดิมสร้างอิมเมจคอนเทนเนอร์แยกกันสำหรับแต่ละงานและติดตั้งสภาพแวดล้อม Conda แบบเต็ม ซึ่งมีขนาดใหญ่
โซลูชันของ SWE-MiniSandbox:
1. สร้างสภาพแวดล้อม Python แบบน้ำหนักเบา: เตรียมสภาพแวดล้อมพื้นฐาน Conda ของ Python เวอร์ชันต่างๆ แต่ละงานตามความต้องการ สร้างสภาพแวดล้อมเสมือน venv ที่มีเฉพาะการพึ่งพาที่จำเป็นโดยอิงจากสภาพแวดล้อม Conda เฉพาะอย่างรวดเร็ว (ปริมาณเฉลี่ย < 100MB) ละทิ้งสภาพแวดล้อม Conda แบบเต็มที่ใหญ่โต (ปกติ > 500MB) venv ที่สร้างขึ้นจะถูกแพ็คเป็นไฟล์บีบอัด และงานถัดไปสามารถแตกไฟล์ได้โดยตรงเมื่อเริ่มต้น
2. การจัดการคอขวด I/O และการควบคุมการทำงานพร้อมกัน: เพื่อแก้ไขปัญหาการแออัดของดิสก์ I/O ที่เกิดจากการแตกไฟล์แคชภายใต้การทำงานพร้อมกันสูง เฟรมเวิร์กใช้กลไกเซมาโฟร์และแท็กทรัพยากร Ray เพื่อควบคุมจำนวนงานแตกไฟล์ที่ทำงานพร้อมกัน และกำหนดขีดจำกัดบนสำหรับปริมาณการรับส่งข้อมูล I/O รวม

(สูตร: ขีดจำกัดบนของปริมาณการรับส่งข้อมูล I/O รวม = ปริมาณการรับส่งข้อมูล I/O เฉลี่ยต่องาน × จำนวนงานที่ทำงานพร้อมกัน)
III. การผสานรวมกับเครื่องมือที่มีอยู่

เฟรมเวิร์กนี้สร้างขึ้นโดยใช้ Ray รองรับการจัดสรรทรัพยากรและการจัดตารางงานหลายโหนด สามารถปรับให้เข้ากับความต้องการของการฝึกฝนการเรียนรู้แบบเสริมแรงขนาดใหญ่ และทำงานร่วมกับเครื่องมือต่างๆ เช่น SWE-Rex (การจัดการเทอร์มินัล), SWE-agent (การแก้ไขงาน) ได้อย่างราบรื่น
ผลการทดลอง
I. ปริมาณสภาพแวดล้อมที่เล็กกว่า

วิธีการคอนเทนเนอร์ดั้งเดิมต้องบำรุงรักษาอิมเมจที่มีขนาดระดับกิกะไบต์ SWE-MiniSandbox ต้องการเพียงแคช venv แบบน้ำหนักเบาประมาณ 100MB เท่านั้น ตัวอย่างเช่น ในชุดข้อมูล SWE-smith ขนาดแคชสภาพแวดล้อมมีเพียง 5% ของอิมเมจคอนเทนเนอร์ดั้งเดิม
II. ผลการฝึกฝนที่เทียบเคียงได้ ความเร็วในการเริ่มต้นที่เร็วกว่า

การทดลองแสดงให้เห็นว่า ในเกณฑ์มาตรฐาน SWE-bench Verified ประสิทธิภาพของตัวแทนที่ฝึกฝนโดยใช้ SWE-MiniSandbox เทียบเคียงได้กับผลลัพธ์ที่ฝึกฝนโดยใช้ Docker ในเวลาเดียวกัน เวลาเตรียมสภาพแวดล้อมมีเพียง 25% ของโซลูชัน Docker ลดค่าใช้จ่ายเวลาเฉลี่ยต่อรอบการฝึกฝนลงอย่างมีนัยสำคัญ
III. ความสามารถในการขยายหลายโหนดที่ดี

ในสถานการณ์การฝึกฝนหลายโหนด เมื่อโหลดถูกกระจายอย่างเหมาะสม ความเร็วในการเริ่มต้นสภาพแวดล้อมเฉลี่ยของ SWE-MiniSandbox ในแต่ละโหนดเกือบจะเหมือนกับสภาพแวดล้อมโหนดเดียว แสดงให้เห็นถึงความสามารถในการขยายในแนวนอนที่ยอดเยี่ยม
IV. การแสดงภาพกระบวนการฝึกฝน

จากการแยกย่อยค่าใช้จ่ายเวลาของการ rollout การเรียนรู้แบบเสริมแรงและการวิเคราะห์ด้วยภาพ พบว่า SWE-MiniSandbox ใช้เวลาน้อยกว่าอย่างมีนัยสำคัญในขั้นตอนการเตรียมสภาพแวดล้อม (ส่วนสีน้ำเงินในรูป) เมื่อเทียบกับสภาพแวดล้อม Docker
นอกจากนี้ ทีมวิจัยได้ฝึกฝนโมเดล SWE-Agent-LM-7B ด้วยข้อมูล 1600 ชิ้น เป็นจำนวน 200 ขั้น และเปรียบเทียบเส้นโค้ง Reward ระหว่างสภาพแวดล้อม SWE-MiniSandbox และ Docker ผลลัพธ์แสดงให้เห็นว่าเส้นโค้งทั้งสองมีแนวโน้มพื้นฐานที่เหมือนกัน ซึ่งเป็นการยืนยันเพิ่มเติมว่าสภาพแวดล้อมที่ไม่ใช้คอนเทนเนอร์ที่ SWE-MiniSandbox จัดให้สามารถบรรลุผลการฝึกฝนที่เทียบเท่ากับสภาพแวดล้อม Docker แบบดั้งเดิม

แนวโน้มในอนาคต
จากงานโอเพนซอร์สของ SWE-MiniSandbox ทีมงานเชื่อว่ามีทิศทางที่ควรค่าแก่การสำรวจในอนาคต:
- เสริมสร้างระบบอัตโนมัติของสภาพแวดล้อม: บนพื้นฐานของการสร้างสภาพแวดล้อมอัตโนมัติที่มีอยู่ นำเวิร์กโฟลว์ของตัวแทน (Agent) มาใช้ สร้างกระบวนการสร้างสภาพแวดล้อมอัตโนมัติที่ปรับให้เข้ากับเฟรมเวิร์ก SWE-MiniSandbox และขยายการรองรับชุดข้อมูลวิศวกรรมซอฟต์แวร์ (SWE) โอเพนซอร์สเพิ่มเติม
- ขยายระบบนิเวศการประยุกต์ใช้: ขยายขอบเขตการประยุกต์ใช้ของ SWE-MiniSandbox ไปยังสถานการณ์งานที่กว้างขึ้น เช่น การทดสอบมาตรฐาน Terminal Bench, Skill Bench เป็นต้น
- ปรับปรุงกลไกประสิทธิภาพ: ปรับปรุงกลไกการเริ่มต้นสภาพแวดล้อม เช่น การใช้ BranchFS เพื่อสร้างการแยกสาขาเพื่อหลีกเลี่ยงค่าใช้จ่ายในการแตกไฟล์และคัดลอกแคช ในขณะเดียวกันปรับปรุงกลไกการฝึกฝนการเรียนรู้แบบเสริมแรง โดยการทำให้การเริ่มต้นสภาพแวดล้อมและการแพร่ย้อนกลับของเกรเดียนต์ทับซ้อนกันแบบอะซิงโครนัส เพื่อเพิ่มประสิทธิภาพการฝึกฝนโดยรวม
⚠️ หมายเหตุ: เนื้อหาได้รับการแปลโดย AI และตรวจสอบโดยมนุษย์ หากมีข้อผิดพลาดโปรดแจ้ง
☕ สนับสนุนค่ากาแฟทีมงาน
หากคุณชอบบทความนี้ สามารถสนับสนุนเราได้ผ่าน PromptPay
本文来自网络搜集,不代表คลื่นสร้างอนาคต立场,如有侵权,联系删除。转载请注明出处:http://www.itsolotime.com/th/archives/26935
