การปฏิวัติความน่าเชื่อถือในการฝึกโมเดลขนาดใหญ่: Decoupled DiLoCo เพิ่มพลังการคำนวณที่มีประสิทธิภาพจาก 40% เป็น 86% ทฤษฎีบท CAP พลิกโฉมกระบวนทัศน์ SPMD

หนึ่ง วิกฤตความน่าเชื่อถือของการฝึกอบรมล่วงหน้าโมเดลขนาดใหญ่: จากจุดบกพร่องร้ายแรงของ SPMD

1.1 ลักษณะการผูกติดแน่นของกระบวนทัศน์ SPMD และคอขวดด้านความน่าเชื่อถือ

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

เมื่อคลัสเตอร์การฝึกอบรมขยายจากชิปหลายพันตัวไปเป็นหลายแสนหรือหลายล้านตัว กลไกการซิงโครไนซ์ทั่วโลกที่กระบวนทัศน์ Single Program Multiple Data (SPMD) แบบดั้งเดิมต้องพึ่งพา ได้เปลี่ยนจากการรับประกันประสิทธิภาพมาเป็นคอขวดด้านความน่าเชื่อถือ ความล้มเหลวของฮาร์ดแวร์เพียงจุดเดียวหรือโหนดที่ทำงานช้า อาจทำให้คลัสเตอร์ทั้งหมดหยุดชะงัก สถาปัตยกรรมแบบ “เสียหายทั้งหมดหากเสียหายเพียงจุดเดียว” นี้ ไม่สามารถดำรงอยู่ได้ในระดับที่ใหญ่เกินขีดจำกัด

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

หมายเหตุ: H คือช่วงเวลาการซิงโครไนซ์ (inner steps หรือจำนวนรอบการทำซ้ำในเครื่อง) ในกรอบงาน DiLoCo ซึ่งหมายถึงจำนวนขั้นตอนการฝึกในเครื่องที่ผู้เรียนแต่ละคน (worker/learner) ดำเนินการอย่างต่อเนื่องบนชิ้นส่วนข้อมูลอิสระ โดยใช้ตัวปรับแต่งภายใน (เช่น AdamW) ก่อนที่จะทำการซิงโครไนซ์พารามิเตอร์ทั่วโลกทุกๆ H ขั้นตอน SPMD เปรียบเสมือน “รวมพลทุกครั้งที่ก้าวเดิน” DiLoCo เปรียบเสมือน “รวมพลทุกๆ H ก้าว” แต่เมื่อรวมพลก็ยังต้องรอทุกคน ส่วน Decoupled DiLoCo คือ “ต่างคนต่างเดิน ไม่ต้องรอ ถึงเวลาก็ค่อยมาพบกันแบบอะซิงโครนัส”

การฝึกอบรมล่วงหน้าของโมเดลภาษาขนาดใหญ่สมัยใหม่แทบจะพึ่งพากระบวนทัศน์ SPMD เพียงอย่างเดียว โดยใช้เทคนิคต่างๆ เช่น Data Parallelism, Tensor Parallelism และ Sequence Parallelism เพื่อกระจายงานคำนวณไปยังตัวเร่งความเร็วนับพันถึงล้านตัว ลักษณะสำคัญของกระบวนทัศน์นี้คือการซิงโครไนซ์ทั่วโลก: ในแต่ละขั้นตอนการฝึก ตัวเร่งความเร็วทั้งหมดต้องคำนวณส่วนของตนให้เสร็จ และรวมเกรเดียนต์ผ่านการดำเนินการสื่อสารแบบรวม (เช่น all-reduce) ก่อนจึงจะสามารถดำเนินการในขั้นตอนต่อไปได้

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

[
text{MTBF}{text{คลัสเตอร์}} = frac{text{MTBF}
]}}}{N

โดยที่ (text{MTBF}_{text{ชิปเดี่ยว}}) คือค่า MTBF ของชิปตัวเดียว และ (N) คือจำนวนชิปทั้งหมดในคลัสเตอร์

สูตรนี้เผยให้เห็นความจริงที่โหดร้าย: ความน่าเชื่อถือโดยรวมของคลัสเตอร์จะลดลงเป็นเส้นตรงเมื่อจำนวนชิปเพิ่มขึ้น

  • สมมติว่า MTBF ของชิปตัวเดียวคือ 1 ปี (ซึ่งเป็นระดับความน่าเชื่อถือชั้นนำของอุตสาหกรรม) ดังนั้นคลัสเตอร์ที่มี 100,000 ชิป จะมี MTBF โดยรวมเพียง 5.256 นาที
  • คลัสเตอร์ที่มี 1.2 ล้านชิป จะมี MTBF โดยรวมเพียง 26.28 วินาที
  • และคลัสเตอร์ที่มี 2.4 ล้านชิป จะมี MTBF โดยรวมเพียง 13.14 วินาที

Decoupled DiLoCo (Distributed Low-Communication Training) สำหรับการฝึกอบรมล่วงหน้าแบบกระจายที่ยืดหยุ่น
ที่อยู่บทความ: https://arxiv.org/pdf/2604.21428
เนื้อหา 16,000 คำ อ่านประมาณ 80 นาที พอดแคสต์ประมาณ 20 นาที


สอง การออกแบบหลักของ Decoupled DiLoCo: สถาปัตยกรรมอะซิงโครนัสที่ทำลายการซิงโครไนซ์แบบล็อกสเต็ป

2.1 จาก DiLoCo สู่ Decoupled DiLoCo: จากการซิงโครไนซ์เป็นช่วงๆ สู่การทำงานแบบอะซิงโครนัสโดยสมบูรณ์

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

ข้อมูลการทดลองในบทความน่าทึ่งมาก:

  • ในคลัสเตอร์จำลองขนาด 2.4 ล้านชิป แม้ว่า MTBF ของชิปตัวเดียวจะนานถึง 1 ปี Elastic Data Parallelism แบบดั้งเดิมก็มีประสิทธิภาพการคำนวณที่มีประสิทธิผล (Effective Goodput) เพียง 40% และเวลาทำงานปกติของระบบ (System Uptime) เพียง 42%
  • ในขณะที่ Decoupled DiLoCo ที่ใช้ผู้เรียน 16 คน มีประสิทธิภาพการคำนวณที่มีประสิทธิผลถึง 86% และเวลาทำงานปกติของระบบสูงถึง 99%

ที่สำคัญกว่านั้น ภายใต้สภาวะความล้มเหลวที่รุนแรงเช่นนี้ ประสิทธิภาพของโมเดลที่ฝึกด้วย Decoupled DiLoCo ในงานข้อความและมัลติโมดัลนั้นเกือบจะเหมือนกันกับการฝึกแบบ Data Parallelism ในสภาพแวดล้อมที่ไม่มีข้อบกพร่อง

บทความนี้จะตีความการออกแบบหลัก รายละเอียดเทคนิคสำคัญ การใช้งานสถาปัตยกรรมระบบ และการตรวจสอบการทดลองที่ครอบคลุมของ Decoupled DiLoCo พร้อมวิเคราะห์ผลกระทบอันลึกซึ้งต่อกระบวนทัศน์การฝึกอบรมโมเดลขนาดใหญ่ในอนาคต


สารบัญบทความนี้

  • หนึ่ง วิกฤตความน่าเชื่อถือของการฝึกอบรมล่วงหน้าโมเดลขนาดใหญ่: จากจุดบกพร่องร้ายแรงของ SPMD
  • 1.1 ลักษณะการผูกติดแน่นของกระบวนทัศน์ SPMD และคอขวดด้านความน่าเชื่อถือ
  • 1.2 ภาวะกลืนไม่เข้าคายไม่ออกในการแลกเปลี่ยนของการฝึกอบรมล่วงหน้าจากมุมมองของทฤษฎีบท CAP
  • 1.3 ข้อจำกัดของวิธีการฝึกอบรมแบบยืดหยุ่นที่มีอยู่
  • สอง การออกแบบหลักของ Decoupled DiLoCo: สถาปัตยกรรมอะซิงโครนัสที่ทำลายการซิงโครไนซ์แบบล็อกสเต็ป
  • 2.1 จาก DiLoCo สู่ Decoupled DiLoCo: จากการซิงโครไนซ์เป็นช่วงๆ สู่การทำงานแบบอะซิงโครนัสโดยสมบูรณ์
  • 2.2 สถาปัตยกรรมหลัก: ผู้เรียนอิสระและตัวซิงโครไนซ์กลาง
  • 2.3 ภาพรวมขั้นตอนการฝึกอบรม: การทำงานร่วมกันของอัลกอริทึม 1 และอัลกอริทึม 2
  • สาม รายละเอียดเทคนิคสำคัญ: จากองค์ประชุมขั้นต่ำสู่การเฉลี่ยทิศทางแนวรัศมี
  • 3.1 องค์ประชุมขั้นต่ำและช่วงเวลาผ่อนผันแบบปรับตัว
  • 3.2 กลไกการรวมแบบถ่วงน้ำหนัก Token แบบไดนามิก
  • 3.3 การเฉลี่ยทิศทางแนวรัศมี (RDA): แก้ปัญหาการลดทอนเกรเดียนต์ในการรวมผู้เรียนหลายคน
  • 3.4 การแบ่งส่วนเทนเซอร์แบบสมดุล: เพิ่มประสิทธิภาพการใช้แบนด์วิธ
  • สี่ การใช้งานสถาปัตยกรรมระบบ: การออกแบบเซิร์ฟเวอร์พารามิเตอร์บนพื้นฐาน Pathways
  • 4.1 การจัดระเบียบทรัพยากรบนพื้นฐาน Pathways
  • 4.2 การแยกหน้าที่ของผู้เรียนและตัวซิงโครไนซ์
  • 4.3 การประสานสถานะและจุดตรวจสอบแบบกระจาย
  • 4.4 กลไกการกู้คืนผู้เรียนแบบกระจาย
  • ห้า การตรวจสอบการทดลอง: ความทนทานสูงสุดและความเท่าเทียมของประสิทธิภาพภายใต้วิศวกรรมเคออส
  • 5.1 การออกแบบการทดลองวิศวกรรมเคออส: จำลองความล้มเหลวของชิประดับล้าน
  • 5.2 การตรวจสอบความทนทาน: ประสิทธิภาพการคำนวณที่มีประสิทธิผลและเวลาทำงานปกติของระบบ
  • 5.3 ความเท่าเทียมของประสิทธิภาพโมเดล: การประเมินงานข้อความและมัลติโมดัล
  • 5.4 ความสามารถในการขยาย: ฮาร์ดแวร์ต่างชนิดและการเก็บเกี่ยวทรัพยากรการคำนวณ (Scavenging)
  • 5.5 ความสามารถในการปรับขนาด: การตรวจสอบขนาดตั้งแต่ 2B ถึง 9B พารามิเตอร์
  • หก งานที่เกี่ยวข้อง: วิวัฒนาการและข้อจำกัดของกระบวนทัศน์การฝึกอบรมแบบกระจาย
  • 6.1 วิธีการฝึกอบรมแบบกระจายแบบดั้งเดิม: จาก Data Parallelism สู่ Tensor Parallelism
  • 6.2 DiLoCo และรูปแบบต่างๆ: วิวัฒนาการของการฝึกอบรมแบบใช้การสื่อสารต่ำ
  • 6.3 งานวิจัยที่เกี่ยวข้องกับการฝึกอบรมแบบอะซิงโครนัสและทนทานต่อข้อบกพร่อง
  • 6.4 ข้อได้เปรียบเชิงเปรียบเทียบของงานนี้
  • เจ็ด บทสรุปและแนวโน้มในอนาคต
  • 7.1 สรุปผล
  • 7.2 การวิเคราะห์เชิงลึก: เงื่อนไขขอบเขตและข้อจำกัดที่อาจเกิดขึ้นของวิธีการ
  • 7.3 งานในอนาคต

ซึ่งหมายความว่า ในคลัสเตอร์ที่มีชิประดับล้านตัว โดยเฉลี่ยทุกๆ สิบกว่าวินาที จะมีฮาร์ดแวร์หนึ่งตัวเกิดข้อบกพร่อง

สำหรับการฝึกอบรมล่วงหน้าโมเดลขนาดใหญ่ที่ต้องทำงานต่อเนื่อง 3 ถึง 6 เดือน ความถี่ของข้อบกพร่องที่สูงเช่นนี้ย่อมทำให้เกิดการสิ้นเปลืองพลังการคำนวณอย่างหายนะ ทุกครั้งที่เกิดข้อบกพร่อง ระบบ SPMD แบบดั้งเดิมต้องหยุดการคำนวณทั้งหมด ค้นหาโหนดที่เสีย ปรับโครงสร้างคลัสเตอร์ใหม่ แล้วจึงเริ่มการฝึกจากจุดตรวจสอบล่าสุด กระบวนการนี้มักใช้เวลาหลายนาทีถึงหลายสิบนาที และในคลัสเตอร์ขนาดใหญ่พิเศษ ความถี่ของข้อบกพร่องนั้นสูงเกินกว่าความเร็วในการกู้คืนของระบบ ส่งผลให้อัตราการใช้ประโยชน์จากพลังการคำนวณที่มีประสิทธิผลลดลงอย่างรวดเร็ว

1.2 ภาวะกลืนไม่เข้าคายไม่ออกในการแลกเปลี่ยนของการฝึกอบรมล่วงหน้าจากมุมมองของทฤษฎีบท CAP

ผู้เขียนบทความได้ประยุกต์ใช้ทฤษฎีบท CAP ในระบบกระจายกับสถานการณ์การฝึกอบรมล่วงหน้าโมเดลขนาดใหญ่อย่างสร้างสรรค์ โดยให้กรอบแนวคิดทางทฤษฎีที่ชัดเจนสำหรับการทำความเข้าใจการแลกเปลี่ยนระหว่างกระบวนทัศน์การฝึกอบรมต่างๆ ในสถานการณ์การฝึกอบรมล่วงหน้า คำจำกัดความของคุณสมบัติ CAP ทั้งสามมีดังนี้:

  • ความสอดคล้อง (C): ตัวเร่งความเร็วแต่ละตัวจะคงมุมมองน้ำหนักโมเดลที่ซิงโครไนซ์ทั่วโลกไว้
  • ความพร้อมใช้งาน (A): เมื่อเกิดข้อบกพร่องของฮาร์ดแวร์ การฝึกอบรมสามารถดำเนินต่อไปได้
  • ความทนทานต่อการแบ่งพาร์ติชัน (P): ในกรณีที่การเชื่อมต่อระหว่างกันไม่เสถียรหรือมีความหน่วงในการสื่อสาร การฝึกอบรมสามารถดำเนินต่อไปได้

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

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

รูปที่ 1: การเปรียบเทียบระหว่าง Elasticity แบบ Slice Granularity และการแยกส่วน: เมื่อเกิดข้อบกพร่องเฉพาะที่ ระบบจะใช้ชิป TPU “Slice” น้อยลงเพื่อฝึกอบรมต่อ เมื่อข้อบกพร่องส่งผลกระทบต่อ 1 ใน M สำเนา วิธีการแยกส่วนอนุญาตให้สำเนาอื่นๆ M-1/M ในระบบดำเนินขั้นตอนต่อไปได้ รูปนี้แสดงให้เห็นถึงความแตกต่างโดยพื้นฐานระหว่าง Elastic Data Parallelism และ Decoupled DiLoCo ในการจัดการข้อบกพร่อง Elastic Data Parallelism หลังจากเกิดข้อบกพร่อง ต้องหยุดการคำนวณทั้งหมด กำหนดค่าคลัสเตอร์ใหม่ แล้วจึงฝึกอบรมต่อ ทำให้เกิดช่องว่างในการฝึกอบรมที่ชัดเจน ในขณะที่ Decoupled DiLoCo อนุญาตให้ผู้เรียนที่สมบูรณ์คนอื่นๆ ฝึกอบรมต่อไปได้ โดยไม่มีเวลาหยุดทำงานเลย มีเพียงผู้เรียนที่เสียเท่านั้นที่หยุดให้การสนับสนุนชั่วคราว

1.3 ข้อจำกัดของวิธีการฝึกอบรมแบบยืดหยุ่นที่มีอยู่

แม้ว่าวิธีการฝึกอบรมแบบยืดหยุ่นจะช่วยเพิ่มความพร้อมใช้งานของระบบได้ในระดับหนึ่ง แต่ก็ยังมีข้อจำกัดพื้นฐานอยู่หลายประการ

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

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

สอง การออกแบบหลักของ Decoupled DiLoCo: สถาปัตยกรรมอะซิงโครนัสที่ทำลายการซิงโครไนซ์แบบล็อกสเต็ป

2.1 จาก DiLoCo สู่ Decoupled DiLoCo: จากการซิงโครไนซ์เป็นช่วงๆ สู่การทำงานแบบอะซิงโครนัสโดยสมบูรณ์

Decoupled DiLoCo พัฒนามาจากกรอบงาน DiLoCo (Distributed Low-Communication Training) DiLoCo ถูกเสนอครั้งแรกโดย Google ในปี 2024 แนวคิดหลักคือการลดความต้องการแบนด์วิธการสื่อสารผ่านการซิงโครไนซ์เป็นช่วงๆ

ในการฝึกอบรมแบบ Data Parallelism แบบดั้งเดิม ทุกขั้นตอนต้องซิงโครไนซ์เกรเดียนต์ ใน DiLoCo การฝึกอบรมจะถูกแบ่งออกเป็น “วงรอบภายใน” และ “วงรอบภายนอก” หลายรอบ

  • ผู้เรียนแต่ละคน (learner) ดำเนินขั้นตอนวงรอบภายใน H ขั้นตอนในเครื่อง โดยใช้ข้อมูลในเครื่องและตัวปรับแต่งภายใน (เช่น AdamW) เพื่ออัปเดตพารามิเตอร์โมเดลในเครื่อง
  • จากนั้น ณ จุดซิงโครไนซ์วงรอบภายนอกทุกๆ H ขั้นตอน ผู้เรียนทุกคนจะส่งการเปลี่ยนแปลงของพารามิเตอร์ในเครื่อง (เรียกว่าเกรเดียนต์ภายนอก) ไปยังผู้เรียนคนอื่นๆ และอัปเดตพารามิเตอร์โมเดลทั่วโลกผ่านตัวปรับแต่งภายนอก (เช่น SGD ที่มีโมเมนตัม)

สูตรดั้งเดิมของ DiLoCo มีดังนี้:

โดยที่ (theta_m^{(t)}) คือพารามิเตอร์ในเครื่องของผู้เรียน m ที่ขั้นตอน t, (Delta_m^{(t)}) คือเกรเดียนต์ภายนอกของผู้เรียน m ในช่วง H ขั้นตอนที่ผ่านมา, (Delta^{(t)}) คือเกรเดียนต์ภายนอกทั่วโลกที่รวมกันแล้ว และ OuterOptimizer คือตัวปรับแต่งภายนอก

DiLoCo ลดความต้องการแบนด์วิธการสื่อสารโดยรวมลง H เท่า โดยการลดความถี่ในการซิงโครไนซ์จากทุกขั้นตอนเหลือทุกๆ H ขั้นตอน Streaming DiLoCo ที่เสนอในภายหลัง ได้แบ่งพารามิเตอร์โมเดลออกเป็น P ส่วน (fragment) โดยแต่ละส่วนจะซิงโครไนซ์ในขั้นตอนที่แตกต่างกัน ซึ่งช่วยลดความต้องการแบนด์วิธสูงสุดลง H เท่าเช่นกัน

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

ความก้าวหน้าครั้งสำคัญของ Decoupled DiLoCo คือการทำลายกลไกการซิงโครไนซ์แบบล็อกสเต็ปนี้อย่างสิ้นเชิง โดยเปลี่ยนการซิงโครไนซ์จากการแลกเปลี่ยนทั่วโลกแบบบล็อกกิ้ง เป็นการสื่อสารแบบอะซิงโครนัสที่ไม่บล็อกกิ้ง ผู้เรียนไม่ต้องรอซึ่งกันและกันอีกต่อไป แต่ดำเนินขั้นตอนการฝึกในเครื่องอย่างอิสระ และแลกเปลี่ยนส่วนพารามิเตอร์กับตัวซิงโครไนซ์กลาง (syncer) แบบอะซิงโครนัส

2.2 สถาปัตยกรรมหลัก: ผู้เรียนอิสระและตัวซิงโครไนซ์กลาง

สถาปัตยกรรมโดยรวมของ Decoupled DiLoCo นั้นเรียบง่ายมาก ประกอบด้วยผู้เรียนอิสระ M คนและตัวซิงโครไนซ์กลางหนึ่งตัว

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

ตัวซิงโครไนซ์กลางมีหน้าที่รับการอัปเดตส่วนพารามิเตอร์จากผู้เรียนแต่ละคน รวมการอัปเดตเหล่านี้ จากนั้นจึงกระจายส่วนพารามิเตอร์ทั่วโลกที่รวมแล้วกลับไปยังผู้เรียนทุกคนแบบอะซิงโครนัส ตัวซิงโครไนซ์ไม่ได้มีส่วนร่วมในการคำนวณการฝึกอบรมใดๆ มีหน้าที่ รวมและกระจายพารามิเตอร์เท่านั้น ดังนั้นค่าใช้จ่ายในการคำนวณและหน่วยความจำจึงน้อยมาก สามารถทำงานบนเซิร์ฟเวอร์ CPU ทั่วไปได้

รูปที่ 2: แผนภาพ Decoupled DiLoCo เพื่อความสะดวกในการอธิบาย ที่นี่แสดงตัวอย่างง่ายๆ โดยมี M=2 ผู้เรียน, P=3 ส่วน, ซิงโครไนซ์ทุกขั้นตอน (H=3) และซ้อนทับกันที่ τ=2 ขั้นตอน ผู้เรียนคนที่สองหยุดชะงักไปสามขั้นตอน แต่การฝึกอบรมโดยรวมไม่เคยหยุด เมื่อผู้เรียนที่เสียกลับมาฝึกต่อ การอัปเดตที่พลาดไปทั้งหมดจะถูกนำไปใช้กับสถานะของมัน รูปนี้แสดงให้เห็นถึงความสามารถในการทนต่อข้อบกพร่องของ Decoupled DiLoCo อย่างชัดเจน ผลกระทบของข้อบกพร่องถูกจำกัดอย่างเคร่งครัดภายในผู้เรียนแต่ละคน ผู้เรียนที่สมบูรณ์คนอื่นๆ สามารถฝึกอบรมต่อไปได้โดยไม่ได้รับผลกระทบเลย เมื่อผู้เรียนที่เสียกู้คืน มันจะรับพารามิเตอร์ล่าสุดจากตัวซิงโครไนซ์โดยอัตโนมัติและเข้าร่วมการฝึกอบรมอีกครั้งอย่างราบรื่น

ดังแสดงในรูปที่ 2 นี่คือตัวอย่างง่ายๆ โดยมี M=2 ผู้เรียน, P=3 ส่วนพารามิเตอร์, ช่วงเวลาซิงโครไนซ์ H=3, การซ้อนทับการสื่อสาร τ=2 ขั้นตอน เมื่อผู้เรียนคนที่สองหยุดชะงักไป 3 ขั้นตอน กระบวนการฝึกอบรมทั้งหมดไม่ได้หยุดลง ผู้เรียนคนแรกดำเนินขั้นตอนในเครื่องต่อไปและแลกเปลี่ยนส่วนพารามิเตอร์กับตัวซิงโครไนซ์ เมื่อผู้เรียนคนที่สองกู้คืน มันจะรับการอัปเดตที่พลาดไปทั้งหมดจากตัวซิงโครไนซ์ แล้วฝึกอบรมต่อ

2.3 ภาพรวมขั้นตอนการฝึกอบรม: การทำงานร่วมกันของอัลกอริทึม 1 และอัลกอริทึม 2

ขั้นตอนการฝึกอบรมของ Decoupled DiLoCo ดำเนินการโดยอัลกอริทึมอิสระสองตัวทำงานร่วมกัน: อัลกอริทึม 1 อธิบายกระบวนการฝึกในเครื่องของผู้เรียน อัลกอริทึม 2 อธิบายกระบวนการรวมทั่วโลกของตัวซิงโครไนซ์

ขั้นตอนหลักของอัลกอริทึม 1 (ผู้เรียน) มีดังนี้:

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

อัลกอริทึม 1: Decoupled DiLoCo – ขั้นตอนผู้เรียน

  1. กำหนดสถานะเริ่มต้นของพารามิเตอร์โมเดลในเครื่อง ตัวปรับแต่งภายใน และตัวนับต่างๆ
  2. ดำเนินการวนซ้ำขั้นตอนย่อยต่อไปนี้จนกว่าจะถึงจำนวนขั้นตอนการฝึกทั่วโลกที่กำหนดไว้:
    a. สุ่มตัวอย่างข้อมูลหนึ่งชุดจากชิ้นส่วนข้อมูลในเครื่อง
    b. ดำเนินการ forward propagation และ backward propagation เพื่อคำนวณเกรเดียนต์
    c. ใช้ตัวปรับแต่งภายในเพื่ออัปเดตพารามิเตอร์โมเดลในเครื่อง
    d. อัปเดตตัวนับขั้นตอนในเครื่อง ตัวนับขั้นตอนของแต่ละส่วนพารามิเตอร์ และตัวนับ token
    e. ส่งข้อมูลเมตาในเครื่อง (รวมถึงจำนวนขั้นตอน จำนวนขั้นตอนของแต่ละส่วน และจำนวน token) ไปยังตัวซิงโครไนซ์แบบอะซิงโครนัส
    f. ตรวจสอบว่าได้รับส่วนพารามิเตอร์ที่อัปเดตจากตัวซิงโครไนซ์หรือไม่ หากได้รับ ให้อัปเดตพารามิเตอร์โมเดลในเครื่องและรีเซ็ตตัวนับที่เกี่ยวข้อง
    g. อัปเดตตัวนับขั้นตอนทั่วโลกที่จัดหาโดยตัวซิงโครไนซ์

ตรรกะหลักของอัลกอริทึมนี้คือ “การปรับให้เหมาะสมในเครื่องแบบอิสระ + การสื่อสารแบบอะซิงโครนัส” ผู้เรียนดำเนินการปรับให้เหมาะสมภายใน เช่น AdamW อย่างอิสระ โดยไม่ต้องรอโหนดอื่น ส่งข้อมูลเมตาเป็นระยะ และรับการอัปเดตจากตัวซิงโครไนซ์แบบอะซิงโครนัส ตัวนับในเครื่องจะติดตามจำนวนขั้นตอนและ token เพื่อควบคุมจังหวะการซิงโครไนซ์แบบไดนามิก อัลกอริทึมนี้ทำลายการพึ่งพาแบบ “ล็อกสเต็ป” ในการฝึกแบบซิงโครนัส แยกโดเมนข้อบกพร่อง ทำให้แน่ใจว่าความล้มเหลวของผู้เรียนแต่ละคนจะไม่ส่งผลกระทบต่อทั่วโลก เป็นตรรกะการดำเนินการหลักที่ทำให้สถาปัตยกรรมแบบแยกส่วนเกิดขึ้นได้ และรับประกันความพร้อมใช้งานสูงในการฝึกอบรม

ขั้นตอนหลักของอัลกอริทึม 2 (ตัวซิงโครไนซ์)

  1. กำหนดสถานะเริ่มต้นของพารามิเตอร์โมเดลทั่วโลก ตัวปรับแต่งภายนอก และตัวนับขั้นตอนทั่วโลก
  2. ดำเนินการวนซ้ำขั้นตอนย่อยต่อไปนี้จนกว่าจะถึงจำนวนขั้นตอนการฝึกทั่วโลกที่กำหนดไว้:
    a. สำหรับแต่ละส่วนพารามิเตอร์ i หากขั้นตอนปัจจุบัน t เป็นไปตาม t % S_i == 0 (โดยที่ S_i คือค่าชดเชยการซิงโครไนซ์ของส่วน i) ให้ดำเนินการ:
    i. รอให้ผู้เรียนอย่างน้อย K คนส่งข้อมูลเมตา (K คือองค์ประชุมขั้นต่ำ)
    ii. ดึงส่วนพารามิเตอร์ที่เกี่ยวข้องจากผู้เรียน K คนนี้
    iii. คำนวณน้ำหนักแบบไดนามิก w ตามจำนวน token n_t และจำนวนขั้นตอน n_s ของผู้เรียนแต่ละคน
    iv. รวมส่วนพารามิเตอร์เหล่านี้เพื่อคำนวณเกรเดียนต์ภายนอกทั่วโลก G
    v. ใช้ตัวปรับแต่งภายนอกเพื่ออัปเดตส่วนพารามิเตอร์ทั่วโลก: θ_global = Optimizer(θ_global, G)
    vi. กระจายส่วนพารามิเตอร์ทั่วโลกที่อัปเดตแล้ว θ_global ไปยังผู้เรียนทุกคนแบบอะซิงโครนัส
    b. เพิ่มตัวนับขั้นตอนทั่วโลก: t = t + 1

การออกแบบที่สำคัญที่นี่คือองค์ประชุมขั้นต่ำ K ตัวซิงโครไนซ์ไม่จำเป็นต้องรอผู้เรียนทั้งหมด M คน เพียงแค่รวบรวมข้อมูลเมตาจากผู้เรียนอย่างน้อย K คนก็สามารถดำเนินการรวมได้ ผู้เรียนที่ออฟไลน์หรือทำงานช้าจะถูกแยกออกจากการรวมครั้งนี้ จึงรับประกันว่าการฝึกอบรมทั่วโลกจะไม่ถูกบล็อก

ตรรกะหลักของอัลกอริทึมนี้คือ “การอนุญาโตตุลาการขั้นต่ำ + การรวม


⚠️ หมายเหตุ: เนื้อหาได้รับการแปลโดย AI และตรวจสอบโดยมนุษย์ หากมีข้อผิดพลาดโปรดแจ้ง

☕ สนับสนุนค่ากาแฟทีมงาน

หากคุณชอบบทความนี้ สามารถสนับสนุนเราได้ผ่าน PromptPay

PromptPay QR
SCAN TO PAY WITH ANY BANK

本文来自网络搜集,不代表คลื่นสร้างอนาคต立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/th/archives/35651

Like (0)
Previous 1 day ago
Next 21 hours ago

相关推荐