คู่มือทางเทคนิค

การสะสมไล่ระดับ

การสะสมการไล่ระดับสีช่วยให้คุณจำลองขนาดแบทช์ขนาดใหญ่บนหน่วยความจำ GPU ที่จำกัด โดยการสรุปการไล่ระดับสีบนมินิแบทช์เล็กๆ หลายชุดก่อนอัปเดตน้ำหนัก

ภาพรวม

การสะสมการไล่ระดับสีช่วยให้คุณจำลองขนาดแบทช์ขนาดใหญ่บนหน่วยความจำ GPU ที่จำกัด โดยการสรุปการไล่ระดับสีบนมินิแบทช์เล็กๆ หลายชุดก่อนอัปเดตน้ำหนัก ซึ่งเป็นวิธีแก้ปัญหามาตรฐานสำหรับการฝึกโมเดลขนาดใหญ่เมื่อหน่วยความจำเป็นจุดคอขวด

Gradient Accumulation เป็นองค์ประกอบทางเทคนิคที่ส่งผลต่อคุณภาพของโมเดล ต้นทุนโครงสร้างพื้นฐาน เวลาแฝง และความน่าเชื่อถือในวงกว้าง

เจาะลึก

โดยปกติแล้ว ขั้นตอนการฝึกจะประมวลผลหนึ่งชุด คำนวณการไล่ระดับสี และอัปเดตพารามิเตอร์ทันที ด้วยการสะสมการไล่ระดับสี คุณจะดำเนินการส่งต่อและย้อนกลับหลายครั้งบนชุดไมโครที่มีขนาดเล็กลง โดยเพิ่มการไล่ระดับสีเข้าด้วยกันในบัฟเฟอร์พารามิเตอร์ และเรียกเฉพาะขั้นตอนของเครื่องมือเพิ่มประสิทธิภาพ (และทำให้การไล่ระดับสีเป็นศูนย์) หลังจากไมโครชุด N ชุด ขนาดแบทช์ที่มีประสิทธิภาพจะกลายเป็นขนาดไมโครแบทช์คูณ N แม้ว่าหน่วยความจำสูงสุดจะเก็บการเปิดใช้งานไมโครแบทช์ได้เพียงหนึ่งชุดเท่านั้น สิ่งนี้สำคัญเนื่องจากสูตรการฝึกอบรมจำนวนมากใช้แบตช์จำนวนมากเพื่อให้ได้สถิติที่เสถียร และเนื่องจากรุ่นเช่นหม้อแปลงขนาดใหญ่ไม่สามารถใส่แบตช์เป้าหมายทั้งหมดบนอุปกรณ์เครื่องเดียวได้ สิ่งที่จับได้: สถิติการทำให้เป็นมาตรฐานแบบแบทช์จะถูกคำนวณต่อไมโครแบทช์ ดังนั้นบรรทัดฐานของเลเยอร์หรือบรรทัดฐานกลุ่มจึงจับคู่กับการสะสมได้ดีขึ้น และคุณต้องปรับขนาดการสูญเสียอย่างถูกต้องเพื่อรักษาอัตราการเรียนรู้ที่มีประสิทธิผลให้ถูกต้อง

ข้อมูลเชิงลึกทางเทคนิค

เนื่องจากการไล่ระดับสีของการสูญเสียแบบรวมเป็นการบวก การสะสมการไล่ระดับสีในไมโครแบทช์ N จึงเทียบเท่าทางคณิตศาสตร์กับแบทช์ขนาดใหญ่หนึ่งชุด หากคุณหาค่าเฉลี่ยอย่างเหมาะสม โดยทั่วไปการใช้งานจะแบ่งการสูญเสียไมโครแบทช์แต่ละรายการด้วย N ก่อนย้อนกลับ ดังนั้นการไล่ระดับสีที่สะสมจะเท่ากับค่าเฉลี่ยของแบทช์ที่มีผลเต็มรูปแบบ คุณข้าม Optimizer.step() และ Zero_grad() ไปจนถึงไมโครแบทช์ N โดยแลกเวลาประมวลผลเพิ่มเติมเพื่อลดหน่วยความจำสูงสุด

การเรียนรู้การสะสมไล่ระดับ

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

ในทางปฏิบัติ ทีมที่แข็งแกร่งที่ใช้ Gradient Accumulation จะปรับสถาปัตยกรรม ข้อมูล และตัวเลือกโครงสร้างพื้นฐานให้เหมาะสมโดยเทียบกับความน่าเชื่อถือและต้นทุน โดยจะบันทึกเกณฑ์ความสำเร็จที่ชัดเจน ทดสอบกับข้อมูลและขั้นตอนการทำงานที่สมจริง และทำซ้ำตามรูปแบบความล้มเหลวที่สังเกตได้ แทนที่จะชนะการวัดประสิทธิภาพเพียงครั้งเดียว นี่คือจุดที่ความเข้าใจทางทฤษฎีกลายเป็นความสามารถที่คงทนของผลิตภัณฑ์ นโยบาย และการดำเนินงาน

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

ผลกระทบเชิงกลยุทธ์

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

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

การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด

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

ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต

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

อนาคตของการสะสมไล่ระดับ

การสะสมแบบไล่ระดับจะยังคงเป็นคันโยกเริ่มต้นเนื่องจากขนาดของโมเดลมีขนาดใหญ่กว่าหน่วยความจำในอุปกรณ์เครื่องเดียว โดยผสมผสานความแม่นยำแบบผสม การตรวจสอบการเปิดใช้งาน การแบ่งส่วน ZeRO และความขนานของไปป์ไลน์ในเฟรมเวิร์ก เช่น DeepSpeed ​​และ FSDP มากขึ้น คาดหวังระบบอัตโนมัติที่เข้มงวดยิ่งขึ้น โดยที่ไลบรารีจะปรับแต่งอัตโนมัติตามขั้นตอนในการจัดสรรงบประมาณหน่วยความจำ และยังคงมีความสำคัญอย่างต่อเนื่องในการปรับแต่งโมเดลขนาดใหญ่บนฮาร์ดแวร์ขนาดเล็ก รวมถึง GPU สำหรับผู้บริโภคซึ่งจะปลดล็อกการฝึกอบรมที่อาจเป็นไปไม่ได้

การใช้งานจริงในโลกแห่งความเป็นจริง

ปรับแต่งโมเดลภาษาขนาดใหญ่บน GPU สำหรับผู้บริโภครายเดียวโดยการสะสมไมโครแบทช์มากกว่า 8 หรือ 16 ชุดเพื่อให้ได้ชุดที่มีประสิทธิภาพหลายร้อยชุด

การฝึกอบรมโมเดลการมองเห็นหรือการแบ่งส่วนที่มีความละเอียดสูง โดยที่แม้แต่ชุด 2 ชุดก็พอดี แต่สูตรต้องใช้ชุดที่มีประสิทธิภาพ 32 ชุด

Hugging Face Trainer และ PyTorch Lightning เปิดเผยการตั้งค่าไล่ระดับ_accumulation_steps ที่ใช้เป็นประจำในการตั้งค่า VRAM แบบจำกัด

การสร้างผลลัพธ์ชุดใหญ่ของกระดาษบนฮาร์ดแวร์ขนาดเล็กโดยจับคู่ขนาดชุดงานที่มีประสิทธิภาพผ่านการสะสม

รูปแบบการดำเนินงาน

การสะสมไล่ระดับในทางปฏิบัติ

ปรับแต่งโมเดลภาษาขนาดใหญ่บน GPU สำหรับผู้บริโภครายเดียวโดยการสะสมไมโครแบทช์มากกว่า 8 หรือ 16 ชุดเพื่อให้ได้ชุดที่มีประสิทธิภาพหลายร้อยชุด

การปรับแต่งโมเดลภาษาขนาดใหญ่บน GPU สำหรับผู้บริโภคเพียงตัวเดียวโดยการสะสมไมโครแบทช์มากกว่า 8 หรือ 16 ชุดเพื่อเข้าถึงชุดที่มีประสิทธิภาพจำนวนหลายร้อยทีม มักจะได้รับผลลัพธ์ที่ดีกว่า เมื่อพวกเขากำหนดเกณฑ์คุณภาพไว้ล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

การสะสมไล่ระดับในทางปฏิบัติ

การฝึกอบรมโมเดลการมองเห็นหรือการแบ่งส่วนที่มีความละเอียดสูง โดยที่แม้แต่ชุด 2 ชุดก็พอดี แต่สูตรต้องใช้ชุดที่มีประสิทธิภาพ 32 ชุด

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

การสะสมไล่ระดับในทางปฏิบัติ

Hugging Face Trainer และ PyTorch Lightning เปิดเผยการตั้งค่าไล่ระดับ_accumulation_steps ที่ใช้เป็นประจำในการตั้งค่า VRAM แบบจำกัด

Hugging Face Trainer และ PyTorch Lightning เปิดเผยการตั้งค่าไล่ระดับ_accumulation_steps ที่ใช้เป็นประจำในการตั้งค่า VRAM ที่จำกัด ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

การสะสมไล่ระดับในทางปฏิบัติ

การสร้างผลลัพธ์ชุดใหญ่ของกระดาษบนฮาร์ดแวร์ขนาดเล็กโดยจับคู่ขนาดชุดงานที่มีประสิทธิภาพผ่านการสะสม

การสร้างผลลัพธ์ชุดใหญ่ของกระดาษบนฮาร์ดแวร์ที่มีขนาดเล็กลงโดยการจับคู่ขนาดชุดงานที่มีประสิทธิภาพผ่านการสะสม ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งการเพิ่มผลผลิตและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป

ความเสี่ยงและรั้ว

!

การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้

!

ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป

!

ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น

แผนงานการดำเนินงาน

1

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน

กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

2

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง

เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น

3

การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้

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

4

เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด

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

สำรวจต่อไป