1 คะแนน โดย GN⁺ 2024-06-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

การสร้างโครงสร้างพื้นฐานและการตั้งค่าสคริปต์

บทนำ

  • ตลอดหลายเดือนที่ผ่านมา ทีมวิจัยขนาดเล็กและทีมวิศวกรได้ฝึกโมเดลขนาด 70B พารามิเตอร์จากศูนย์บนโครงสร้างพื้นฐานของตนเอง และทำผลงานเหนือกว่า zero-shot GPT-4o ในงานด้าน reasoning
  • วันนี้จะแชร์คู่มือแบบครบถ้วนสำหรับการตั้งค่าโครงสร้างพื้นฐานที่จำเป็น ตั้งแต่การตั้งค่าคลัสเตอร์เริ่มต้น การติดตั้งระบบปฏิบัติการ ไปจนถึงการกู้คืนอัตโนมัติจากข้อผิดพลาดที่เกิดขึ้นระหว่างการฝึก
  • อธิบายความท้าทายที่พบในแต่ละขั้นตอนและวิธีแก้ไขอย่างละเอียด พร้อมเปิดเผยสคริปต์โครงสร้างพื้นฐานเพื่อให้ทีมอื่นสามารถสร้างโครงสร้างพื้นฐานที่เสถียรได้ง่ายขึ้น

พื้นหลัง: ระบบนี้ทำงานอย่างไร

  • ต้องใช้ GPU ที่รวดเร็วเพื่อดำเนินการทดลองโมเดลภาษาขนาดใหญ่ได้อย่างรวดเร็ว
  • ใช้คลัสเตอร์ที่ประกอบด้วย GPU H100 จำนวน 4,092 ตัว กระจายอยู่บนคอมพิวเตอร์ 511 เครื่อง
  • ทำให้เกิดการสื่อสารความเร็วสูงระหว่าง GPU ผ่านเครือข่าย InfiniBand

กระบวนการ: จากเบร์เมทัลสู่คลัสเตอร์ที่ใช้งานได้เต็มรูปแบบ

การจัดเตรียมเครื่องแต่ละเครื่อง

  • ตั้งค่าการเชื่อมต่อ Ethernet เริ่มต้นเข้ากับคลัสเตอร์ผ่านเครือข่ายจัดการ และเข้าถึง BMC (Baseboard Management Controller)
  • ใช้ iDRAC ติดตั้ง Ubuntu 22.04 บนเซิร์ฟเวอร์เครื่องแรก และใช้เครื่องนั้นเป็นฐานสำหรับตั้งค่าเซิร์ฟเวอร์ที่เหลือ

การติดตั้ง OS บนทุกเครื่อง

  • ใช้ซอฟต์แวร์ MAAS เพื่อจัดเตรียมเซิร์ฟเวอร์ที่เหลือ
  • ใช้ PXE boot และเครื่องมือ iDRAC แบบอัตโนมัติเพื่อบูตผ่านเครือข่าย และกำหนดค่าให้ MAAS ตอบสนองต่อคำขอ PXE boot

การวินิจฉัยเครื่องที่มีปัญหา

  • ประมาณ 10% ของเครื่องบูตไม่สำเร็จ โดยส่วนใหญ่เกิดจากปัญหาทางกายภาพ
  • ใช้การตรวจสอบอัตโนมัติเพื่อค้นหาปัญหา จากนั้นขอให้ Dell ทดสอบซ้ำหรือออกทิกเก็ตให้เจ้าหน้าที่ดาต้าเซ็นเตอร์

การตั้งค่าเมทัลให้สังเกตการณ์ได้ในระดับขั้นต่ำ

  • ติดตั้ง Docker, ไดรเวอร์ GPU สำหรับดาต้าเซ็นเตอร์, Prometheus node exporter และอื่น ๆ บนทุกเซิร์ฟเวอร์
  • รันการวินิจฉัย GPU ขั้นพื้นฐานเพื่อตรวจสอบว่า GPU ส่วนใหญ่ทำงานได้ตามปกติ

การฝึก GPU บนโหนดเดียว

  • ตรวจสอบว่าทุกเครื่องสามารถจัดการงาน GPU ได้ด้วยตัวเอง
  • แก้ไขข้อผิดพลาดที่เกี่ยวข้องกับ GPU และแก้ปัญหาการเชื่อมต่อระหว่างบัส PCIe กับการ์ดเครือข่าย

การจัดเตรียม InfiniBand

  • ติดตั้ง UFM (Unified Fabric Manager) ตรวจพบสวิตช์เครือข่าย และตั้งชื่อสวิตช์ตามตำแหน่งทางกายภาพ
  • แก้ปัญหาการเดินสายเครือข่ายและจัดการปัญหาการแจ้งเตือนอุณหภูมิ

การรับประกันว่าเครื่องทั้งหมดมีสุขภาพสมบูรณ์

  • ใช้การตรวจสอบสุขภาพหลายรูปแบบเพื่อยืนยันโฮสต์ที่พร้อมใช้สำหรับการฝึก
  • ตรวจสอบ GPU, พื้นที่ดิสก์, Docker, dmesg, iDRAC, ดิสก์, InfiniBand, NVLink, GDR, VBIOS, Flint, PSB และอื่น ๆ

การวินิจฉัยปัญหาการฝึกที่พบบ่อย

  • เมื่อฮาร์ดแวร์เริ่มทำงานได้อย่างถูกต้อง ก็เริ่มการฝึก
  • แก้ปัญหาเช่นล่มตั้งแต่เริ่มต้น ล่มระหว่างทาง ค้างโดยไม่มีข้อมูล stack trace และความเร็วการฝึกที่ลดลง

การปรับปรุงเครื่องมือโครงสร้างพื้นฐาน

  • พัฒนาเครื่องมือและระบบต่าง ๆ เพื่อให้การฝึกดำเนินไปอย่างราบรื่น
  • ปิดการใช้งานเครื่องที่เสียและองค์ประกอบเครือข่ายที่มีปัญหาโดยอัตโนมัติ พร้อมทำงานอัตโนมัติสำหรับคำขอซ่อม
  • สร้างระบบไฟล์มิเรอร์ในเครื่องและ local distributed Docker registry
  • ตั้งค่าเครื่องมือมอนิเตอร์ประสิทธิภาพ และเขียนเครื่องมือเพื่อตรวจจับแบตช์การฝึกที่ช้าและทำความเข้าใจสาเหตุ

ความเห็นของ GN⁺

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

1 ความคิดเห็น

 
GN⁺ 2024-06-29
ความคิดเห็นจาก Hacker News
  • ทีมวิจัยขนาดเล็กฝึกโมเดลขนาด 70B พารามิเตอร์บนอินฟราของตนเอง และทำผลงานเหนือกว่า GPT-4 แบบ zero-shot ในงานด้าน reasoning

    • องค์ประกอบทุกส่วนต้องทำงานได้อย่างสมบูรณ์ ทั้ง InfiniBand, Ethernet, GPU, โหนด ฯลฯ
    • หากมีการเชื่อมต่อที่ไม่เสถียรเพียงจุดเดียวจากมากกว่า 12,000 จุด ก็อาจทำให้การฝึกทั้งหมดช้าลงได้
    • มีการแชร์สคริปต์โอเพนซอร์สและคู่มือแบบครบถ้วนเกี่ยวกับการตั้งค่าอินฟรา
    • นี่เป็นหนึ่งในซีรีส์ 3 ตอนเกี่ยวกับการฝึกโมเดล 70B โดยอีกสองตอนเน้นที่การประเมินผลและการปรับจูนไฮเปอร์พารามิเตอร์ด้วย CARBS
  • ในคลัสเตอร์หนึ่งมี GPU H100 จำนวน 4,092 ตัว กระจายอยู่บนคอมพิวเตอร์ 511 เครื่อง

    • คิดเป็นต้นทุน GPU มากกว่า 100 ล้านดอลลาร์
    • มีคนสงสัยว่างานแบบนี้จะทำได้ด้วยงบระดับพีซีเกมมิงหรือไม่
  • มีการพูดถึงหัวข้อนี้ในพอดแคสต์ Latent Space เมื่อไม่กี่วันก่อน

    • เป็นตอนที่เหมาะสำหรับฟังที่มาของการตัดสินใจต่าง ๆ
  • มีคนสงสัยว่าทำไมถึงต้องใช้ฮาร์ดแวร์พีซีมากขนาดนี้

    • คิดว่าน่าจะประกอบเป็นแบ็กเอนด์ PCI + InfiniBand พร้อม GPU และคอนโทรลเลอร์ ARM ขนาดเล็กได้หรือไม่
    • สงสัยว่าเป็นเพราะแรงเฉื่อยจากดีไซน์เดิม หรือเพราะตลาดยังขาดคอนโทรลเลอร์ GPU เฉพาะทาง
  • น่าสนใจหากลองฝึกซ้ำบนฮาร์ดแวร์ชุดเดิมโดยใช้ Unicode ดิบแทนข้อมูลฝึกที่ผ่านการโทเคไนซ์

    • อยากเห็นความแตกต่างด้านการสะกดและความสามารถด้านจังหวะภาษา
  • GPU H100 จำนวน 4,092 ตัว

    • กำลังทำงานแนว "self-coding"
    • อาจเป็นโซลูชันแบบ no-code หรือ minimal code
    • บนเว็บไซต์มีบทความและแหล่งข้อมูลที่น่าสนใจจำนวนมาก
  • มีคนสนใจการใช้พลังงานรวมที่ต้องใช้ในการสร้างโมเดลนี้

    • สงสัยว่ามีตัวเลขเรื่องพลังงานและการระบายความร้อนหรือไม่
    • มีการอ้างถึงว่า Mark Zuckerberg พูดถึงแผนสำหรับโมเดลถัดไประดับ 1GW
  • มีคนสงสัยว่าต้นทุนรวมทั้งหมดอยู่ที่เท่าไร

    • รวมทั้งค่าฮาร์ดแวร์ เวลาในการพัฒนา ค่าไฟฟ้า และค่าระบายความร้อน
  • Cisco กำลังทำความร่วมมือใหม่กับ NVIDIA ที่ความเร็วระดับ 800G ต่อพอร์ต

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