การแบ่งจุดตรวจและการฝึกอบรมต่อ
เทคนิคในการบันทึกสถานะการฝึกของโมเดลเป็นชิ้นๆ (ชิ้นส่วน) เพื่อให้โมเดลขนาดใหญ่สามารถบันทึกและโหลดซ้ำได้โดยไม่ทำให้หน่วยความจำหรือขีดจำกัดของดิสก์ติดขัด และการรันที่ขัดข้องสามารถรับตำแหน่งที่ค้างไว้ได้อย่างแม่นยำ
ภาพรวม
Essential for any training job that runs for days or weeks across many GPUs.
เจาะลึก
จุดตรวจสอบการฝึกอบรมคือภาพรวมของทุกสิ่งที่จำเป็นในการกลับมาทำงานต่อ: น้ำหนักโมเดล สถานะของเครื่องมือเพิ่มประสิทธิภาพ กำหนดอัตราการเรียนรู้ ตำแหน่งของตัวโหลดข้อมูล และเริ่มต้นการสร้างตัวเลขสุ่ม สำหรับรุ่นขนาดใหญ่ สแนปช็อตอาจมีขนาดหลายร้อยกิกะไบต์ ซึ่งใหญ่เกินไปสำหรับไฟล์เดียวหรือหน่วยความจำของเครื่องเดียว การแบ่งส่วนเช็คพอยต์จะแยกสแนปชอตนั้นออกเป็นหลายไฟล์และหลายอันดับ ดังนั้น GPU แต่ละตัวจึงเขียนเฉพาะสไลซ์ของตัวเองในแบบคู่ขนาน การฝึกต่อจะโหลดชิ้นส่วนเหล่านั้นซ้ำและฟื้นฟูสถานะเต็มอย่างแม่นยำ หากไม่มีสิ่งนี้ การวิ่งหลายสัปดาห์ที่ขัดข้องที่ชั่วโมง 200 จะต้องเริ่มต้นใหม่ตั้งแต่ต้น เฟรมเวิร์ก เช่น PyTorch Distributed Checkpoint, DeepSpeed และรูปแบบชาร์ดเซฟเทนเซอร์ของ Hugging Face Hub ทำให้สิ่งนี้เป็นกิจวัตร
ข้อมูลเชิงลึกทางเทคนิค
การแบ่งส่วนทำงานได้เนื่องจากการฝึกอบรมแบบกระจายได้แบ่งพาร์ติชันน้ำหนักและสถานะเครื่องมือเพิ่มประสิทธิภาพข้ามอันดับแล้ว (ผ่านข้อมูล เทนเซอร์ หรือความขนานของ ZeRO) แต่ละอันดับจะซีเรียลไลซ์เฉพาะพาร์ติชั่นเท่านั้น ซึ่งมักจะอยู่ในรูปแบบเช่นตัวป้องกันที่อนุญาตให้โหลดแบบขี้เกียจและแมปหน่วยความจำ ไฟล์ดัชนีแมปชื่อพารามิเตอร์กับไฟล์ชาร์ด หากต้องการดำเนินการต่อตามที่กำหนด ระบบจะคงสถานะ RNG จำนวนขั้นตอนของเครื่องมือเพิ่มประสิทธิภาพ และออฟเซ็ตตัวโหลดข้อมูลที่แน่นอน ดังนั้นการรันซ้ำจะสร้างลำดับของแบตช์เดียวกัน
ผลกระทบเชิงกลยุทธ์
ต้นทุนและงบประมาณ
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี
การตัดสินใจที่ชัดเจนยิ่งขึ้น
การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด
การควบคุมคุณภาพ
ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต
อนาคตของ Checkpoint Sharding และการฝึกอบรมที่กลับมาทำงานต่อได้
จุดตรวจกำลังเปลี่ยนจากเหตุการณ์หยุดโลกเป็นระยะไปเป็นเหตุการณ์ที่ไม่ตรงกันและเกือบจะฟรี คาดว่าจะมีจุดตรวจสอบในหน่วยความจำและทับซ้อนกันมากขึ้นซึ่งจะเขียนชาร์ดในเบื้องหลังในขณะที่การฝึกอบรมดำเนินต่อไป รวมถึงจุดตรวจสอบที่ใช้รหัสลบและทำซ้ำซึ่งรอดพ้นจากความล้มเหลวของโหนดซึ่งพบได้ทั่วไปในระดับพัน GPU การจัดเก็บออบเจ็กต์บนคลาวด์และระดับ NVMe ภายในที่เร็วขึ้นจะโฮสต์ชาร์ด และรูปแบบที่เป็นมาตรฐาน เช่น ตัวป้องกัน จะปรับปรุงการโหลดบางส่วนที่ปลอดภัย รวดเร็ว และต่อเนื่องสำหรับทั้งการเริ่มต้นการฝึกอบรมใหม่และการปรับใช้การอนุมาน
การใช้งานจริงในโลกแห่งความเป็นจริง
โมเดลชายแดนที่ทำงานบน GPU หลายพันตัวที่บันทึกจุดตรวจสอบที่แบ่งส่วนโดยอัตโนมัติทุกๆ สองสามร้อยก้าว ดังนั้นโหนดที่ล้มเหลวเพียงโหนดเดียวจะมีค่าใช้จ่ายเพียงไม่กี่นาที ไม่ใช่เป็นวัน
Hugging Face แจกจ่ายโมเดลเปิดขนาดใหญ่เป็นชาร์ดของตัวป้องกันหลายตัวพร้อมทั้ง index.json เพื่อให้ผู้ใช้สามารถดาวน์โหลดและโหลดทีละชิ้นได้
นักวิจัยกลับมาทำการปรับแต่งแบบละเอียดที่ถูกขัดจังหวะอีกครั้ง ซึ่งจะคืนค่าโมเมนตัมของเครื่องมือเพิ่มประสิทธิภาพ จำนวนก้าว และตำแหน่งตัวโหลดข้อมูลที่แน่นอนเพื่อดำเนินการต่ออย่างราบรื่น
การฝึกอบรมอินสแตนซ์เฉพาะจุดบน GPU บนระบบคลาวด์แบบยอมเสียชั่วคราวราคาถูก ซึ่งมีจุดตรวจสอบที่แยกส่วนบ่อยครั้งทำให้งานรอดจากการถูกไล่ออกและกำหนดเวลาใหม่
ความเสี่ยงและรั้ว
การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้
ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป
ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น
แผนงานการดำเนินงาน
กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน
เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง
การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้
เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด
สำรวจต่อไป
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 Checkpoint Sharding and Resumable Training 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
คำแนะนำต่อไป
Slurm สำหรับกลุ่มการฝึกอบรม AI
คำถามที่พบบ่อย
What is Checkpoint Sharding and Resumable Training?
เทคนิคในการบันทึกสถานะการฝึกของโมเดลเป็นชิ้นๆ (ชิ้นส่วน) เพื่อให้โมเดลขนาดใหญ่สามารถบันทึกและโหลดซ้ำได้โดยไม่ทำให้หน่วยความจำหรือขีดจำกัดของดิสก์ติดขัด และการรันที่ขัดข้องสามารถรับตำแหน่งที่ค้างไว้ได้อย่างแม่นยำ จำเป็นสำหรับงานฝึกอบรมใดๆ ที่ทำงานเป็นเวลาหลายวันหรือหลายสัปดาห์ใน GPU หลายตัว
เหตุใดจุดตรวจรุ่นใหญ่จึงแยกเป็นชิ้นๆ?
จุดตรวจสอบขนาดใหญ่ (หลายร้อย GB) นั้นไม่สามารถทำได้ในไฟล์เดียว การแบ่งส่วนช่วยให้หลายอันดับเขียนส่วนต่างๆ ของตนแบบขนานและเปิดใช้งานการโหลดแบบเป็นชิ้นๆ
นอกจากตุ้มน้ำหนักแบบจำลองแล้ว โดยทั่วไปจุดตรวจสอบที่กลับมาทำงานต่อได้จะต้องประหยัดอะไรอีกบ้าง
เพื่อให้กลับมาทำงานต่อได้อย่างถูกต้อง จุดตรวจสอบจะจัดเก็บสถานะของเครื่องมือเพิ่มประสิทธิภาพ สถานะของตัวสร้างตัวเลขสุ่ม จำนวนก้าว และตำแหน่งที่ตัวโหลดข้อมูลหยุดทำงาน
ประโยชน์หลักของการฝึกอบรมแบบกลับมาทำงานต่อได้สำหรับงานระยะยาวคืออะไร?
ด้วยจุดตรวจสอบที่กลับมาทำงานต่อได้ การรันที่ถูกขัดจังหวะจะรีโหลดสถานะที่บันทึกไว้ล่าสุดและดำเนินการต่อ แทนที่จะทิ้งการคำนวณไปหลายวัน
แต่ละอันดับของ GPU มีส่วนช่วยในการตรวจสอบจุดแบ่งส่วนอย่างไร
เนื่องจากการฝึกอบรมแบบกระจายจะแบ่งพาร์ติชันโมเดลตามระดับต่างๆ อยู่แล้ว แต่ละอันดับจะเขียนเพียงส่วนของตัวมันเอง ทำให้การบันทึกแบบขนานและมีประสิทธิภาพหน่วยความจำ
ไฟล์ดัชนีมีบทบาทอย่างไรในจุดตรวจที่แบ่งส่วน
ดัชนี (เช่น index.json) จะบันทึกว่าส่วนใดที่เก็บแต่ละพารามิเตอร์ไว้ เพื่อให้ตัวโหลดสามารถดึงและประกอบชิ้นส่วนที่ถูกต้องอีกครั้งได้