6

การขยายขอบเขตของวัตถุวิวัฒนาการ จากพารามิเตอร์เชิงตัวเลขสู่ระบบซอฟต์แวร์

AI999第1课:智能演化的源流与 EvoX 的诞生背景
00:00

ในการปฏิบัติช่วงเริ่มต้นของการคำนวณเชิงวิวัฒนาการ สิ่งที่ถูก "วิวัฒนาการ" แทบทั้งหมดคือพารามิเตอร์เชิงตัวเลข— อัตราการเรียนรู้ ขนาดแบตช์ ความเข้มของการทำ regularization วิธีการตั้งค่าเริ่มต้นของน้ำหนัก พื้นที่การค้นหาก็คือกลุ่มตัวเลข ส่วนการประเมินผลก็คือการฝึกหนึ่งครั้งบวกการตรวจสอบหนึ่งครั้ง เมื่อพลังประมวลผลเพิ่มขึ้นและความสามารถของโมเดลขนาดใหญ่เติบโตเต็มที่ วัตถุที่สามารถวิวัฒนาการได้ก็ขยายออกไปอย่างชัดเจน ทั้งโปรแกรม โครงสร้างโมเดล กลไกอัลกอริทึม ไปจนถึงสถานะทางวิศวกรรมซอฟต์แวร์ทั้งชุด (การตั้งค่า เวอร์ชันของ dependencies สัญญาส่วนติดต่อ และกลยุทธ์การดีพลอยและการทำงาน)

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

การขยายตัวของวัตถุวิวัฒนาการ: จากพารามิเตอร์เชิงตัวเลขสู่ระบบซอฟต์แวร์ยิ่งระดับสูงขึ้น ความสามารถในการแสดงออกยิ่งแข็งแกร่ง ภาระในการประเมินก็เพิ่มขึ้นตามกัน1พารามิเตอร์เชิงตัวเลขอัตราการเรียนรู้ขนาดแบตช์ความเข้มของ regularizationการตั้งค่าเริ่มต้นของน้ำหนักตัวเลือก = กลุ่มตัวเลขการประเมิน = การฝึกหนึ่งครั้งบวกการตรวจสอบหนึ่งครั้งความสามารถในการแสดงออกเพิ่มขึ้น2โปรแกรมและโครงสร้างโมเดลโครงสร้างเครือข่ายการผสมตัวดำเนินการเวิร์กโฟลว์พรอมป์แพตช์โค้ดตัวเลือก = โปรแกรมหนึ่งชุดการประเมิน = การรันในแซนด์บ็อกซ์และการทดสอบแบบรีเกรสชันความสามารถในการแสดงออกเพิ่มขึ้น3สถานะทางวิศวกรรมซอฟต์แวร์และตัวเลือกในระดับระบบการตั้งค่าเวอร์ชันของ dependencyสัญญาส่วนติดต่อกลยุทธ์การดีพลอยและการทำงานตัวเลือก = สถานะของระบบหนึ่งชุดการประเมิน = การเทียบกับ基準และการทำซ้ำได้การกลั่นกรองด้วยการรันและการประเมินตัดสินว่าการเปลี่ยนแปลงใดควรค่าแก่การเก็บไว้การรันแบบแยกในแซนด์บ็อกซ์รันตัวเลือกที่ล้มเหลวแบบแยกส่วนการทดสอบแบบรีเกรสชันปกป้องฟังก์ชันการทำงานที่มีอยู่เดิมการเทียบเคียงกับตัวชี้วัด基準ตัดสินว่ามีการปรับปรุงจริงหรือไม่ข้อจำกัดด้านต้นทุนและความเสี่ยงควบคุมค่าใช้จ่ายในการประเมินการบันทึกเพื่อการทำซ้ำได้ผลลัพธ์สามารถทำซ้ำได้อย่างเสถียรยิ่งความสามารถในการแสดงออกสูง ภาระในการประเมินก็ยิ่งหนักขยายแหล่งที่มาของการสร้างรันและกลั่นกรองด้วยการประเมินเก็บไว้ / คัดออก

วัตถุวิวัฒนาการสามระดับ แต่ละระดับมีต้นทุนที่แตกต่างกัน

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

การเปลี่ยนจุดเน้น: จาก "จะสร้างตัวเลือกอย่างไร" สู่ "จะรันและประเมินอย่างไร"

เมื่อตัวเลือกเปลี่ยนจากตัวเลขเป็นโปรแกรม ขั้นตอน "การสร้างตัวเลือก" กลับไม่ใช่คอขวดอีกต่อไป เพราะโมเดลขนาดใหญ่สามารถผลิตโครงสร้าง กลไก และแพตช์ออกมาเป็นจำนวนมากได้ สิ่งที่กำหนดว่าวิวัฒนาการจะได้ผลจริงหรือไม่คือกลไกการรันและการประเมิน— ใครสามารถรันตัวเลือกให้ทำงานได้จริง ใครสามารถตัดสินได้ภายในต้นทุนที่ยอมรับได้ว่ามันควรค่าแก่การเก็บไว้หรือไม่

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

การ权衡ทางวิศวกรรม: ตัวเลือกมากขึ้นไม่ได้แปลว่าวิวัฒนาการดีขึ้น

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

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