ภาพรวม
การคำนวณการเปิดใช้งานใหม่ (การไล่ระดับสีหรือจุดตรวจสอบการเปิดใช้งาน) จะบันทึกหน่วยความจำ GPU ในระหว่างการฝึกโดยละทิ้งการเปิดใช้งานระดับกลางในการส่งต่อ และคำนวณใหม่ในระหว่างการย้อนกลับ โดยจะแลกการประมวลผลเพิ่มเติมกับความสามารถในการฝึกฝนโมเดลขนาดใหญ่หรือลำดับที่ยาวกว่าบนฮาร์ดแวร์ตัวเดียวกัน
การแลกเปลี่ยนการคำนวณการเปิดใช้งานใหม่เป็นองค์ประกอบทางเทคนิคที่ส่งผลต่อคุณภาพของโมเดล ต้นทุนโครงสร้างพื้นฐาน เวลาแฝง และความน่าเชื่อถือในวงกว้าง
เจาะลึก
Backpropagation จำเป็นต้องมีการเปิดใช้งาน Forward-Pass เพื่อคำนวณการไล่ระดับสี ดังนั้นตามค่าเริ่มต้นแล้ว ทุกเอาต์พุตของเลเยอร์จะถูกจัดเก็บ — ค่าใช้จ่ายหน่วยความจำมหาศาลที่เพิ่มขึ้นตามขนาดโมเดล ขนาดแบตช์ และความยาวของลำดับ การคำนวณการเปิดใช้งานใหม่จะเก็บเทนเซอร์ 'จุดตรวจสอบ' เพียงไม่กี่ตัว (มักเป็นเพียงขอบเขตของเลเยอร์) และโยนส่วนที่เหลือทิ้งไป ในระหว่างการย้อนกลับ ระบบจะรันการคำนวณไปข้างหน้าระหว่างจุดตรวจสอบอีกครั้งเพื่อสร้างการเปิดใช้งานที่ถูกละทิ้งใหม่ตามความต้องการ ผลลัพธ์แบบคลาสสิกก็คือเมื่อวางจุดตรวจสอบทุกชั้น sqrt(N) หน่วยความจำจะลดลงเหลือประมาณ O(sqrt(N)) ในขณะที่เพิ่มการส่งต่อเพิ่มเติมประมาณหนึ่งรอบ (คำนวณเพิ่มขึ้น ~33%) รูปแบบที่เลือกจะคำนวณใหม่เฉพาะการดำเนินการราคาถูกแต่มีหน่วยความจำหนักมาก (เช่น ความสนใจหรือการหยุดกลางคัน) ในขณะที่แคชสิ่งที่มีราคาแพง ทำให้ประหยัดหน่วยความจำได้มากที่สุดโดยมีค่าใช้จ่ายในการคำนวณใหม่น้อยกว่ามาก
ข้อมูลเชิงลึกทางเทคนิค
ข้อดีข้อเสียพื้นฐานคือหน่วยความจำกับ FLOP การคำนวณใหม่ทั้งหมดจะเพิ่มการส่งต่อเพิ่มเติมหนึ่งครั้งโดยประมาณต่อขั้นตอน (ช้ากว่าประมาณ 30-40%) แต่สามารถลดหน่วยความจำการเปิดใช้งานตามลำดับความสำคัญ การเคลื่อนไหวที่ชาญฉลาดคือจุดตรวจสอบแบบเลือกสรร: ระบุการดำเนินการที่มีหน่วยความจำขนาดใหญ่แต่มีราคาถูกในการประมวลผล (softmax, layernorm, GELU, คะแนนความสนใจ) และคำนวณใหม่เฉพาะสิ่งเหล่านั้น ในขณะเดียวกันก็เก็บผลลัพธ์ของ GEMM ที่มีราคาแพงไว้ในแคช — ช่วยลดการสูญเสียการประมวลผล
ความเชี่ยวชาญในการแลกเปลี่ยนการคำนวณการเปิดใช้งานใหม่
การคำนวณการเปิดใช้งานใหม่ (การไล่ระดับสีหรือจุดตรวจสอบการเปิดใช้งาน) จะบันทึกหน่วยความจำ GPU ในระหว่างการฝึกโดยละทิ้งการเปิดใช้งานระดับกลางในการส่งต่อ และคำนวณใหม่ในระหว่างการย้อนกลับ โดยจะแลกการประมวลผลเพิ่มเติมกับความสามารถในการฝึกฝนโมเดลขนาดใหญ่หรือลำดับที่ยาวกว่าบนฮาร์ดแวร์ตัวเดียวกัน ข้อดีข้อเสียในการคำนวณการเปิดใช้งานใหม่เป็นองค์ประกอบทางเทคนิคที่ส่งผลต่อคุณภาพของโมเดล ต้นทุนโครงสร้างพื้นฐาน เวลาแฝง และความน่าเชื่อถือในวงกว้าง เพื่อสร้างความเข้าใจอย่างลึกซึ้ง ให้ถือว่า Activation Recomputation Tradeoffs เป็นรูปแบบการดำเนินงาน ไม่ใช่คุณลักษณะเดียว: กำหนดผลลัพธ์ที่ต้องการ ชี้แจงสมมติฐาน และแยกสิ่งที่ระบบสามารถทำได้อย่างน่าเชื่อถือจากสิ่งที่ยังต้องใช้วิจารณญาณจากผู้เชี่ยวชาญ
ในทางปฏิบัติ ทีมที่แข็งแกร่งที่ใช้ Activation Recomputation Tradeoffs จะปรับสถาปัตยกรรม ข้อมูล และตัวเลือกโครงสร้างพื้นฐานให้เหมาะสมโดยเทียบกับความน่าเชื่อถือและต้นทุน โดยจะบันทึกเกณฑ์ความสำเร็จที่ชัดเจน ทดสอบกับข้อมูลและขั้นตอนการทำงานที่สมจริง และทำซ้ำตามรูปแบบความล้มเหลวที่สังเกตได้ แทนที่จะชนะการวัดประสิทธิภาพเพียงครั้งเดียว นี่คือจุดที่ความเข้าใจทางทฤษฎีกลายเป็นความสามารถที่คงทนของผลิตภัณฑ์ นโยบาย และการดำเนินงาน
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี ในเวลาเดียวกัน การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้ แนวทางที่ยืดหยุ่นที่สุดคือการรวมความเร็วของการทดลองเข้ากับวินัยในการกำกับดูแล: ดำเนินการนำร่อง จับหลักฐาน เผยแพร่บันทึกการตัดสินใจ และอัปเดตการป้องกันอย่างต่อเนื่องเมื่อพฤติกรรมของโมเดล ความคาดหวังของผู้ใช้ และข้อกำหนดด้านกฎระเบียบมีการเปลี่ยนแปลง
ผลกระทบเชิงกลยุทธ์
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ
การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด
การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ
ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต
ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต ในการปรับใช้คุณภาพสูง สิ่งนี้จะถูกแปลเป็นกฎการปฏิบัติงานที่วัดผลได้ ขอบเขตความเป็นเจ้าของ และขั้นตอนการตรวจสอบที่เกิดซ้ำ เพื่อให้ทีมสามารถปรับขนาดความมั่นใจแทนที่จะปรับขนาดความคลุมเครือ
การใช้งานจริงในโลกแห่งความเป็นจริง
การฝึกอบรมหม้อแปลงไฟฟ้าขนาดใหญ่ที่ไม่พอดีโดยการตรวจสอบแต่ละเลเยอร์บล็อก
การใช้ torch.utils.checkpoint ของ PyTorch เพื่อพันบล็อก Transformer และตัดหน่วยความจำการเปิดใช้งาน
การคำนวณความสนใจ/ซอฟต์แม็กซ์แบบเลือกสรรใน Megatron-LM เพื่อประหยัดหน่วยความจำโดยมีการชะลอตัวน้อยที่สุด
เปิดใช้งานความยาวลำดับที่ยาวขึ้นบนงบประมาณ GPU คงที่โดยคำนวณการเปิดใช้งานใหม่แทนที่จะจัดเก็บไว้
รูปแบบการดำเนินงาน
ข้อดีข้อเสียของการคำนวณการเปิดใช้งานในทางปฏิบัติ
การฝึกอบรมหม้อแปลงไฟฟ้าขนาดใหญ่ที่ไม่พอดีโดยการตรวจสอบแต่ละเลเยอร์บล็อก
การฝึกอบรมหม้อแปลงขนาดใหญ่ที่ไม่เหมาะกับการตรวจสอบแต่ละเลเยอร์บล็อก ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการผลิตที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป
ข้อดีข้อเสียของการคำนวณการเปิดใช้งานในทางปฏิบัติ
การใช้ torch.utils.checkpoint ของ PyTorch เพื่อพันบล็อก Transformer และตัดหน่วยความจำการเปิดใช้งาน
การใช้ torch.utils.checkpoint ของ PyTorch เพื่อพันบล็อก Transformer และลดหน่วยความจำในการเปิดใช้งาน โดยปกติแล้วทีมจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับ Edge Case และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป
ข้อดีข้อเสียของการคำนวณการเปิดใช้งานในทางปฏิบัติ
การคำนวณความสนใจ/ซอฟต์แม็กซ์แบบเลือกสรรใน Megatron-LM เพื่อประหยัดหน่วยความจำโดยมีการชะลอตัวน้อยที่สุด
การคำนวณความสนใจ/ซอฟต์แม็กซ์แบบเลือกสรรใน Megatron-LM เพื่อประหยัดหน่วยความจำโดยมีการชะลอตัวน้อยที่สุด ทีมมักจะได้รับผลลัพธ์ที่ดีกว่าเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป
ข้อดีข้อเสียของการคำนวณการเปิดใช้งานในทางปฏิบัติ
เปิดใช้งานความยาวลำดับที่ยาวขึ้นบนงบประมาณ GPU คงที่โดยคำนวณการเปิดใช้งานใหม่แทนที่จะจัดเก็บไว้
การเปิดใช้งานความยาวลำดับที่นานขึ้นบนงบประมาณ GPU คงที่โดยการคำนวณการเปิดใช้งานใหม่แทนที่จะจัดเก็บไว้ ทีมมักจะได้รับผลลัพธ์ที่ดีขึ้นเมื่อพวกเขากำหนดเกณฑ์คุณภาพล่วงหน้า รักษาเส้นทางการยกระดับโดยมนุษย์สำหรับกรณี Edge และติดตามทั้งประสิทธิภาพการทำงานที่เพิ่มขึ้นและต้นทุนข้อผิดพลาดเมื่อเวลาผ่านไป
ความเสี่ยงและรั้ว
การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้
ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป
ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น
แผนงานการดำเนินงาน
กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน
กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น
เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง
เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น
การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้
การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้ ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น
เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด
เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด ถือว่าแต่ละขั้นตอนเป็นเหมือนประตูหลักฐาน: หากไม่ตรงตามเกณฑ์ ให้หยุดการเปิดตัวชั่วคราว ปิดช่องว่าง จากนั้นจึงขยายการใช้งานเท่านั้น