9

การจัดการโมดูลเวิร์กโฟลว์และการมอนิเตอร์

AI999第4课:现代计算底座与张量化并行演化
00:00

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

การจัดการโมดูลเวิร์กโฟลว์และการมอนิเตอร์เวิร์กโฟลว์ตอบว่า "วิ่งตามลำดับใด" การมอนิเตอร์ตอบว่า "ตอนนี้วิ่งไปถึงไหน ดีไหม ต้องขยับหรือไม่"เวิร์กโฟลว์: ลำดับและขั้นตอนเริ่มต้นระบบประเมินค่า (แบบกลุ่ม)คัดเลือกกลายพันธุ์ / ผสมข้ามอัปเดตสถานะตัดสินยุติหรือไม่?เส้นทางย้อนกลับของการวนซ้ำขอบเขตขั้นตอน= จุดเก็บตัวอย่างของมอนิเตอร์= จุดสลับของตัวจัดตารางเช็กพอยต์: บันทึก / กู้คืนสถานะสามารถซีเรียลไลซ์ได้ · หยุดชั่วคราวแล้วรันต่อได้ · ทำการทดลองซ้ำได้มอนิเตอร์: สถานะและตัวชี้วัดค่าตัวชี้วัดจำนวนรุ่นความฟิตความหลากหลายจำนวนครั้งที่ประเมินเวลาต่อหนึ่งรุ่นหน่วยความจำ GPU / ปริมาณงานการสังเกตมีต้นทุน: ความถี่ในการเก็บตัวอย่าง · วิธีรวมข้อมูล · การเขียนดิสก์แบบอะซิงโครนัส ต้องชั่งน้ำหนักตัวชี้วัด → ตัดสิน → แทรกแซง

เวิร์กโฟลว์: การจัดลำดับและขอบเขตขั้นตอน

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

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

มอนิเตอร์: เก็บสถานะ เปิดเผยตัวชี้วัด ขับเคลื่อนการตัดสินใจ

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

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

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

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