ความเท่าเทียมของข้อมูล
ความเท่าเทียมของข้อมูลฝึกโมเดลหนึ่งให้เร็วขึ้นด้วยการจำลองข้อมูลบน GPU หลายตัว โดย GPU แต่ละตัวจะประมวลผลชุดข้อมูลที่แตกต่างกัน
ภาพรวม
It is the workhorse technique that lets teams scale to dozens or thousands of accelerators.
เจาะลึก
ในการทำงานแบบขนานของข้อมูล GPU ทุกตัวจะเก็บสำเนาน้ำหนักของโมเดลที่เหมือนกัน แต่ประมวลผลตัวอย่างการฝึกชุดย่อยที่แตกต่างกัน อุปกรณ์แต่ละชิ้นจะคำนวณการส่งไปข้างหน้าและข้างหลังอย่างอิสระ โดยสร้างชุดการไล่ระดับสีของตัวเอง ก่อนการอัปเดตน้ำหนัก การไล่ระดับสีจะถูกเฉลี่ยทั่วทั้ง GPU โดยใช้การดำเนินการสื่อสารแบบลดขนาดทั้งหมด ดังนั้นแบบจำลองทุกตัวจึงซิงค์กันและทำงานเหมือนกับว่าได้รับการฝึกฝนในชุดรวมขนาดใหญ่ชุดเดียว สิ่งนี้จะช่วยเพิ่มปริมาณงานได้อย่างมีประสิทธิภาพ: GPU 8 ตัวสามารถประมวลผลข้อมูลได้ประมาณ 8 เท่าต่อขั้นตอน ประเด็นสำคัญก็คือ GPU แต่ละตัวจะต้องพอดีกับโมเดลทั้งหมด การไล่ระดับสี และสถานะเครื่องมือเพิ่มประสิทธิภาพในหน่วยความจำ ดังนั้นการขนานข้อมูลแบบธรรมดาจึงไม่ช่วยอะไรเมื่อโมเดลมีขนาดใหญ่เกินไปสำหรับอุปกรณ์เครื่องเดียว
ข้อมูลเชิงลึกทางเทคนิค
การดำเนินการหลักคือการย่อทั้งหมด ซึ่งจะรวมการไล่ระดับสีบนอุปกรณ์ต่างๆ และกระจายผลลัพธ์อีกครั้ง Ring all-reduce ซึ่งใช้โดยไลบรารี เช่น NCCL และ Horovod จะส่งผ่านส่วนไล่ระดับไปรอบๆ วงแหวนลอจิคัล ดังนั้นการสื่อสารทั้งหมดจึงไม่ขึ้นอยู่กับจำนวน GPU DistributedDataParallel ของ PyTorch ซ้อนทับการสื่อสารนี้ด้วยการย้อนกลับ โดยเริ่มต้นการซิงค์แบบไล่ระดับสำหรับเลเยอร์แรกๆ ในขณะที่เลเยอร์ต่อมายังคงประมวลผลอยู่ ซึ่งซ่อนเวลาแฝงของเครือข่ายไว้มาก
ผลกระทบเชิงกลยุทธ์
ต้นทุนและงบประมาณ
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี
การตัดสินใจที่ชัดเจนยิ่งขึ้น
การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด
การควบคุมคุณภาพ
ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต
อนาคตของความเท่าเทียมของข้อมูล
ความเท่าเทียมของข้อมูลบริสุทธิ์ถูกรวมเข้ากับการแบ่งส่วนและการจำลองความเท่าเทียมมากขึ้นในกลยุทธ์ 'nD ความเท่าเทียม' แบบไฮบริดสำหรับแบบจำลองล้านล้านพารามิเตอร์ คาดหวังการบีบอัดแบบไล่ระดับที่ชาญฉลาดยิ่งขึ้น การสื่อสารแบบอะซิงโครนัสและแบบทับซ้อนกัน และการลดทอนการรับรู้โทโพโลยีทั้งหมดซึ่งใช้ประโยชน์จาก NVLink ที่รวดเร็วภายในโหนดและ InfiniBand ที่ช้ากว่าข้ามโหนด เมื่อคลัสเตอร์เติบโตขึ้น การลดอัตราส่วนการสื่อสารต่อการคำนวณยังคงเป็นความท้าทายทางวิศวกรรมส่วนกลางในการทำให้ GPU นับพันมีงานยุ่ง
การใช้งานจริงในโลกแห่งความเป็นจริง
การฝึกอบรมตัวแยกประเภทรูปภาพ ResNet ใน GPU 8 ตัวในเซิร์ฟเวอร์เดียวโดยใช้ PyTorch DistributedDataParallel โดย GPU แต่ละตัวจะจัดการ 32 ชุดจาก 256 อิมเมจ
ปรับขนาด BERT ฝึกอบรมล่วงหน้ากับ GPU หลายร้อยตัวด้วย Horovod โดยใช้วงแหวนลดขนาดทั้งหมดเพื่อซิงโครไนซ์การไล่ระดับสีในแต่ละขั้นตอน
การปรับแต่งโมเดลการแนะนำอย่างละเอียดบนคลัสเตอร์หลายโหนด โดยแต่ละโหนดจะประมวลผลชาร์ดการโต้ตอบของผู้ใช้ที่แตกต่างกัน
การใช้ MirroredStrategy ของ TensorFlow เพื่อกระจายการฝึกโมเดลการมองเห็นไปยัง 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 Data Parallelism 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
คำแนะนำต่อไป
การกำกับดูแลข้อมูล AI
คำถามที่พบบ่อย
What is Data Parallelism?
ความเท่าเทียมของข้อมูลฝึกโมเดลหนึ่งให้เร็วขึ้นด้วยการจำลองข้อมูลบน GPU หลายตัว โดย GPU แต่ละตัวจะประมวลผลชุดข้อมูลที่แตกต่างกัน เป็นเทคนิคที่ช่วยให้ทีมสามารถปรับขนาดตัวเร่งความเร็วได้หลายสิบหรือหลายพันตัว
ในการขนานข้อมูลมาตรฐาน GPU แต่ละตัวเก็บข้อมูลเท่าใด
GPU แต่ละตัวจะเก็บแบบจำลองที่สมบูรณ์ของโมเดลไว้และประมวลผลส่วนที่แตกต่างกันของชุดข้อมูล ซึ่งเป็นสิ่งที่ทำให้มีความคล้ายคลึงกันของ 'ข้อมูล' มากกว่าที่จะมีความขนานของแบบจำลอง
การดำเนินการสื่อสารใดที่ทำให้แบบจำลองแบบจำลองซิงค์กันในแต่ละขั้นตอน
หลังจากผ่านการย้อนกลับแต่ละครั้ง การไล่ระดับสีจะถูกรวมเข้าด้วยกันในอุปกรณ์ต่างๆ ผ่านทางการลดทั้งหมด (โดยทั่วไปแล้วจะสรุปแล้วเฉลี่ย) เพื่อให้ทุกแบบจำลองใช้การอัปเดตเดียวกัน
ข้อจำกัดหลักของความเท่าเทียมของข้อมูลธรรมดาคืออะไร?
เนื่องจาก GPU ทุกตัวเก็บสำเนาทุกอย่างไว้อย่างครบถ้วน ความขนานของข้อมูลจึงไม่สามารถช่วยอะไรได้เมื่อโมเดลมีขนาดใหญ่เกินกว่าจะใส่ลงในอุปกรณ์เครื่องเดียวได้
เหตุใดการลดวงแหวนจึงน่าดึงดูดสำหรับการนับ GPU ขนาดใหญ่
ส่งเสียงวงแหวนลดระดับการส่งผ่านทั้งหมดรอบ ๆ วงแหวนลอจิคัล ดังนั้นแบนด์วิดท์ทั้งหมดที่ GPU แต่ละตัวส่งจะคงที่ไม่ว่า GPU จะเข้าร่วมกี่ตัวก็ตาม
PyTorch DistributedDataParallel ซ่อนเวลาแฝงในการสื่อสารอย่างไร
DDP เริ่มซิงโครไนซ์การไล่ระดับสีสำหรับเลเยอร์ก่อนหน้าในขณะที่เลเยอร์หลังยังคงถูกคำนวณ ซึ่งเป็นการทับซ้อนการสื่อสารเครือข่ายกับการคำนวณ