PyTorch 2.15 เปลี่ยนแบ็กเอนด์สื่อสาร NCCL สำหรับการฝึกแบบกระจายให้ใช้เวอร์ชันที่เขียนใหม่เป็นค่าเริ่มต้น หลังเปิดตัวเมื่อวันที่ 28 ตุลาคม พร้อมฟังก์ชันบันทึกสถานะเพื่อวินิจฉัยเมื่อการสื่อสารหยุดชะงักหรือหมดเวลา
Crypto Briefing รายงานว่าเวอร์ชันนี้กำหนดแบ็กเอนด์ NCCL ที่เขียนใหม่ให้เป็นค่าเริ่มต้นสำหรับกลุ่มโปรเซส nccl ทั้งหมด
เมื่อฝึกโมเดล AI บน GPU หลายตัว แต่ละตัวจะแบ่งกันทำงานและแลกเปลี่ยนข้อมูลเพื่อให้ผลลัพธ์สอดคล้องกัน การสื่อสารระหว่างอุปกรณ์จึงส่งผลต่อความคืบหน้าของงานฝึกแบบกระจาย
ไลบรารีสื่อสารแบบกลุ่ม NCCL ของเอ็นวิเดีย (NVIDIA, $NVDA) ทำหน้าที่แลกเปลี่ยนข้อมูลระหว่าง GPU ส่วนการสื่อสารที่ต้องให้อุปกรณ์หลายตัวเข้าร่วมพร้อมกันเรียกว่า collective
แบ็กเอนด์ใหม่จะถูกใช้เป็นค่าเริ่มต้นกับกลุ่มโปรเซส nccl ทั้งหมดใน PyTorch โดยกลุ่มโปรเซสคือชุดของ GPU ที่ทำงานบางอย่างร่วมกัน
การหาสาเหตุเมื่อการสื่อสารหยุดทำงานอาจทำได้ยาก แม้โปรเซสจะยังทำงานอยู่ แต่งานก็อาจหยุดชะงักได้หาก collective ไม่ดำเนินต่อ และเหตุการณ์นี้อาจไม่ทิ้งข้อผิดพลาดที่ชัดเจนเหมือนกรณีระบบขัดข้อง
ฟังก์ชันที่ PyTorch เรียกว่า ‘flight recorder’ จะบันทึกสถานะสำหรับการวินิจฉัยโดยอัตโนมัติเมื่อ collective หยุดหรือหมดเวลา ทีมปฏิบัติการสามารถตรวจสอบบันทึกเพื่อวิเคราะห์ว่าการสื่อสารติดขัดตรงจุดใด
ฟังก์ชันบันทึกนี้ไม่ขึ้นกับแบ็กเอนด์และไม่ได้จำกัดอยู่กับไลบรารีสื่อสารเฉพาะตัว จึงใช้ได้กับทีมที่ทำงานบนฮาร์ดแวร์นอกเหนือจาก NVIDIA หรือดูแลสภาพแวดล้อมแบบผสม
แบ็กเอนด์ NCCL ใหม่เริ่มเปิดให้เลือกใช้เป็นฟังก์ชันเสริมในเวอร์ชัน 2.14 ส่วนเวอร์ชัน 2.15 เปลี่ยนมาใช้เป็นเส้นทางเริ่มต้นและเพิ่ม flight recorder สำหรับวินิจฉัยปัญหา collective
PyTorch ยังเพิ่มเส้นทางสำหรับจัดคลัสเตอร์ฝึกขึ้นใหม่ได้เร็วขึ้นหลังเกิดปัญหา โดยช่วยลดเวลาที่ใช้สร้างกลุ่มการสื่อสารขึ้นใหม่
การใช้เส้นทางจัดระบบใหม่แบบรวดเร็วต้องใช้ NCCL 2.29 ขึ้นไป ส่วนสภาพแวดล้อม ROCm รองรับการจัดระบบใหม่เพื่อรับมือเหตุขัดข้องด้วย RCCL 2.30.7
การบันทึกเพื่อวินิจฉัยและการจัดงานขึ้นใหม่เป็นคนละฟังก์ชัน การติดตั้ง PyTorch 2.15 จึงไม่ได้ทำให้งานฝึกที่หยุดไปกลับมาทำงานต่อโดยอัตโนมัติ
ก่อนหน้านี้ TokenPost รายงานกรณี AMD และ Meta ปรับแต่งการประมวลผลของ GPU AMD บน PyTorch การเปลี่ยนแปลงในเวอร์ชัน 2.15 ครั้งนี้มุ่งเน้นการวินิจฉัยปัญหาการสื่อสารระหว่าง GPU หลายตัวและเส้นทางจัดระบบใหม่ ไม่ใช่การปรับแต่งการคำนวณ
การตั้งค่าเพื่อย้อนกลับไปใช้การทำงานแบบเดิมมีให้เฉพาะในเวอร์ชัน 2.15 และมีกำหนดนำออกในเวอร์ชันถัดไป ทีมปฏิบัติการจึงต้องตรวจสอบการเริ่มต้นและการทำงานของแบ็กเอนด์ใหม่ รวมถึงเวอร์ชันไลบรารีที่จำเป็นในสภาพแวดล้อมจริง
Comment 0