Slurm สำหรับกลุ่มการฝึกอบรม AI
Slurm เป็นตัวจัดการปริมาณงานแบบโอเพ่นซอร์สที่จัดกำหนดการและรันงานบนคลัสเตอร์การประมวลผลประสิทธิภาพสูง และกลายเป็นตัวเลือกเริ่มต้นสำหรับการฝึกอบรม AI ขนาดใหญ่
ภาพรวม
It matters because it reliably distributes massive training runs across thousands of GPUs.
เจาะลึก
Slurm (ยูทิลิตี้ Linux อย่างง่ายสำหรับการจัดการทรัพยากร) มีต้นกำเนิดในซูเปอร์คอมพิวเตอร์ และปัจจุบันขับเคลื่อนคลัสเตอร์การฝึกอบรม AI ที่ใหญ่ที่สุดในโลกหลายแห่ง ผู้ใช้ส่งชุดสคริปต์ด้วย sbatch ขอทรัพยากร เช่น โหนดและ GPU ด้วยคำสั่ง เช่น --gres=gpu:8 และคิว Slurm จัดลำดับความสำคัญ และเริ่มต้นงาน ตัวเรียกใช้งานแบบ srun จะสร้างกระบวนการที่ประสานกันข้ามโหนด ซึ่งจับคู่ตามธรรมชาติกับเฟรมเวิร์กแบบกระจาย เช่น PyTorch DDP และ NCCL Slurm ติดตามการบัญชีทรัพยากร บังคับใช้ส่วนแบ่งที่ยุติธรรมและขีดจำกัดของพาร์ติชัน และจัดการการกำหนดเวลาทดแทนเพื่อแบ่งงานขนาดเล็กลงในช่องว่าง สำหรับการฝึกโมเดลแนวชายแดน ทีมต่างๆ อาศัย Slurm ในการจัดการ GPU นับพัน รีสตาร์ทจากจุดตรวจสอบหลังจากโหนดล้มเหลว และสงวนความจุเฉพาะไว้สำหรับการรันที่ยาวนานหลายสัปดาห์
ข้อมูลเชิงลึกทางเทคนิค
Slurm controller daemon (slurmctld) จะทำการตัดสินใจเกี่ยวกับกำหนดเวลา ในขณะที่ตัวแทน slurmd ในแต่ละโหนดจะเรียกใช้งานและสถานะรายงาน ปลั๊กอิน Generic Resource (GRES) ติดตาม GPU เพื่อให้งานร้องขออย่างชัดเจน srun ตั้งค่าตัวแปรสภาพแวดล้อม (อันดับ ขนาดโลก ที่อยู่หลัก) ซึ่งจะกระจายไลบรารีการฝึกอบรมที่อ่านเพื่อบูตการสื่อสาร NCCL การตั้งเวลาทดแทนช่วยให้งานที่สั้นลงทำงานได้เร็วตราบใดที่ไม่ทำให้การจองที่มีลำดับความสำคัญสูงกว่าล่าช้า และทำให้การใช้งานอยู่ในระดับสูง
ผลกระทบเชิงกลยุทธ์
ต้นทุนและงบประมาณ
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี
การตัดสินใจที่ชัดเจนยิ่งขึ้น
การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด
การควบคุมคุณภาพ
ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต
อนาคตของ Slurm สำหรับกลุ่มการฝึกอบรม AI
Slurm ยังคงเพิ่มการรองรับระบบคลาวด์อย่างต่อเนื่อง การรองรับคอนเทนเนอร์ผ่าน Pyxis และ Enroot และฟีเจอร์ที่รับรู้ถึง GPU ที่เข้มงวดยิ่งขึ้น เมื่อคลัสเตอร์ AI ขยายไปสู่ GPU กว่า 100,000 ตัว คาดว่าจะมีความทนทานต่อข้อผิดพลาดมากขึ้น การรวมจุดตรวจสอบอัตโนมัติ-รีสตาร์ท และงานยืดหยุ่นที่จะปรับขนาดหลังจากเกิดความล้มเหลว ขณะนี้หลายองค์กรใช้งาน Slurm ควบคู่ไปกับหรือใต้ Kubernetes และเครื่องกำหนดเวลาแบบไฮบริดมีเป้าหมายที่จะผสมผสานประสิทธิภาพแบบ HPC เข้ากับความยืดหยุ่นแบบเนทีฟบนคลาวด์เพื่อการฝึกซ้อมที่ใหญ่ขึ้นกว่าเดิม
การใช้งานจริงในโลกแห่งความเป็นจริง
ห้องปฏิบัติการชายแดนเปิดตัวการฝึกอบรมหลายสัปดาห์กับ GPU หลายพันตัวด้วยสคริปต์ชุดเดียวที่ร้องขอโหนดหลายร้อยโหนด
นักวิจัยส่ง 'srun --gres=gpu:8' เพื่อดึง GPU แปดตัวบนโหนดเดียวสำหรับการทดลอง PyTorch DDP
การกำหนดเวลาทดแทนจะสล็อตงานการประเมินผลสั้นๆ ลงใน GPU ที่ไม่ได้ใช้งาน ในขณะที่การดำเนินการฝึกอบรมที่สงวนไว้จำนวนมากกำลังรอให้เริ่มต้น
หลังจากที่โหนดล้มเหลวระหว่างการรัน Slurm จะจัดคิวงานใหม่และดำเนินการต่อจากจุดตรวจสอบล่าสุดแทนที่จะเริ่มต้นใหม่
ความเสี่ยงและรั้ว
การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้
ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป
ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น
แผนงานการดำเนินงาน
กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน
เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง
การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้
เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด
สำรวจต่อไป
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Slurm for AI Training Clusters quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
คำแนะนำต่อไป
สแต็คการฝึก DeepSpeed และ Megatron
คำถามที่พบบ่อย
What is Slurm for AI Training Clusters?
Slurm เป็นตัวจัดการปริมาณงานแบบโอเพ่นซอร์สที่จัดกำหนดการและรันงานบนคลัสเตอร์การประมวลผลประสิทธิภาพสูง และกลายเป็นตัวเลือกเริ่มต้นสำหรับการฝึกอบรม AI ขนาดใหญ่ สิ่งสำคัญคือสามารถกระจายการฝึกซ้อมจำนวนมากไปยัง GPU นับพันได้อย่างน่าเชื่อถือ
โดยทั่วไปผู้ใช้ใช้คำสั่งใดในการส่งงานแบทช์ไปที่ Slurm
sbatch ส่งสคริปต์ชุดที่อธิบายทรัพยากรและคำสั่งสำหรับงานไปยังคิว Slurm
งาน Slurm ขอ GPU ได้อย่างไร
ระบบ Generic Resource (GRES) ช่วยให้งานร้องขอ GPU ได้อย่างชัดเจน เช่น --gres=gpu:8
องค์ประกอบ Slurm ใดที่เป็นตัวกำหนดการตัดสินใจส่วนกลาง
slurmctld เป็นตัวควบคุม daemon ที่จัดตารางเวลางาน ในขณะที่ slurmd ทำงานบนแต่ละโหนดเพื่อเริ่มงาน
เหตุใด srun จึงเข้ากันได้ดีกับเฟรมเวิร์กการฝึกอบรมแบบกระจายเช่น PyTorch DDP
srun เปิดตัวงานที่ซิงโครไนซ์ระหว่างโหนดและให้ข้อมูลอันดับและที่อยู่หลักที่ไลบรารีแบบกระจายใช้ในการบูตสแตรป
จุดประสงค์ของการตั้งเวลาทดแทนใน Slurm คืออะไร
โฆษณาทดแทนปรับปรุงการใช้งานโดยปรับงานขนาดเล็กลงในช่องว่างของกำหนดการ ตราบใดที่งานเหล่านั้นไม่เลื่อนงานที่จองไว้กลับคืน