1 điểm bởi GN⁺ 2024-06-29 | 1 bình luận | Chia sẻ qua WhatsApp

Xây dựng hạ tầng và thiết lập script

Giới thiệu

  • Trong vài tháng, một nhóm nghiên cứu nhỏ và đội ngũ kỹ sư đã huấn luyện từ đầu một mô hình 70 tỷ tham số trên hạ tầng riêng của mình và vượt qua zero-shot GPT-4o trong các tác vụ liên quan đến reasoning.
  • Hôm nay, họ chia sẻ một hướng dẫn tổng hợp về các thiết lập hạ tầng cần thiết, từ cấu hình cụm ban đầu, cài đặt hệ điều hành cho đến tự động khôi phục lỗi phát sinh trong quá trình huấn luyện.
  • Bài viết giải thích chi tiết những thách thức gặp phải ở từng bước và cách giải quyết, đồng thời công bố các script hạ tầng để những nhóm khác có thể dễ dàng xây dựng hạ tầng ổn định.

Bối cảnh: hệ thống này hoạt động như thế nào

  • Cần GPU tốc độ cao để thực hiện nhanh các thí nghiệm mô hình ngôn ngữ lớn.
  • Sử dụng một cụm gồm 4.092 GPU H100 được phân tán trên 511 máy tính.
  • Cho phép giao tiếp tốc độ cao giữa các GPU thông qua mạng InfiniBand.

Quy trình: từ bare metal đến một cụm vận hành hoàn chỉnh

Provisioning từng máy riêng lẻ

  • Thiết lập kết nối Ethernet ban đầu tới cụm thông qua mạng quản trị và truy cập BMC (Baseboard Management Controller).
  • Dùng iDRAC để cài Ubuntu 22.04 lên máy chủ đầu tiên, rồi dùng máy này để cấu hình các máy chủ còn lại.

Cài đặt hệ điều hành cho toàn bộ máy

  • Dùng phần mềm MAAS để provisioning các máy chủ còn lại.
  • Sử dụng PXE boot và các công cụ iDRAC tự động để khởi động qua mạng, đồng thời cấu hình để MAAS phản hồi các yêu cầu PXE boot.

Chẩn đoán máy bị lỗi

  • Khoảng 10% số máy bị lỗi khởi động, chủ yếu do các vấn đề vật lý.
  • Phát hiện sự cố bằng các kiểm tra tự động, rồi yêu cầu Dell kiểm tra lại hoặc tạo ticket cho nhân viên trung tâm dữ liệu.

Thiết lập bare metal có khả năng quan sát ở mức tối thiểu

  • Cài Docker, driver GPU cho data center, Prometheus Node Exporter và các thành phần khác trên mọi máy chủ.
  • Chạy chẩn đoán GPU cơ bản để xác nhận phần lớn GPU hoạt động bình thường.

Huấn luyện GPU trên một node đơn

  • Xác nhận mọi máy đều có thể tự xử lý workload GPU.
  • Khắc phục các lỗi liên quan đến GPU và giải quyết các vấn đề kết nối giữa bus PCIe và card mạng.

Provisioning InfiniBand

  • Cài UFM (Unified Fabric Manager), phát hiện các switch mạng và đặt tên theo vị trí vật lý.
  • Giải quyết các vấn đề về đi dây mạng và xử lý các cảnh báo nhiệt độ.

Đảm bảo máy hoàn toàn khỏe mạnh

  • Xác nhận các host đủ khỏe để dùng cho huấn luyện thông qua nhiều bài kiểm tra sức khỏe khác nhau.
  • Thực hiện nhiều kiểm tra như GPU, dung lượng đĩa, Docker, dmesg, iDRAC, đĩa, InfiniBand, NVLink, GDR, VBIOS, Flint, PSB, v.v.

Chẩn đoán các vấn đề huấn luyện phổ biến

  • Khi phần cứng bắt đầu hoạt động ổn định, tiến hành huấn luyện.
  • Giải quyết các vấn đề như crash khi khởi động, crash giữa chừng, treo mà không có thông tin stack trace, và tốc độ huấn luyện bị chậm.

Cải tiến công cụ hạ tầng

  • Phát triển nhiều công cụ và hệ thống khác nhau để quá trình huấn luyện diễn ra trơn tru.
  • Tự động vô hiệu hóa các máy hỏng và thành phần mạng lỗi, đồng thời tự động hóa việc gửi yêu cầu sửa chữa.
  • Xây dựng mirror file system cục bộ và local distributed Docker registry.
  • Thiết lập công cụ giám sát hiệu năng, phát hiện các batch huấn luyện chậm và viết công cụ để hiểu nguyên nhân.

Ý kiến của GN⁺

  • Bài viết này rất hữu ích vì cung cấp kinh nghiệm thực tế và cách giải quyết trong việc thiết lập và quản lý các cụm quy mô lớn.
  • Nội dung giải thích rõ độ phức tạp của việc xây dựng hạ tầng cần thiết cho huấn luyện mô hình ngôn ngữ lớn.
  • Bài viết cung cấp nhiều script và công cụ để các nhóm khác có thể tham khảo khi xây dựng hạ tầng tương tự.
  • Tầm quan trọng của mạng InfiniBand và những vấn đề có thể phát sinh trong quá trình thiết lập được mô tả rất rõ.
  • Bài viết cũng giải thích tốt các điểm cần cân nhắc cùng ưu và nhược điểm khi áp dụng công nghệ mới hoặc mã nguồn mở.

1 bình luận

 
GN⁺ 2024-06-29
Ý kiến trên Hacker News
  • Một nhóm nghiên cứu nhỏ đã huấn luyện mô hình 70B tham số trên hạ tầng riêng của họ và vượt qua GPT-4 zero-shot trong các tác vụ liên quan đến reasoning

    • Mọi thành phần như InfiniBand, Ethernet, GPU, node đều phải hoạt động hoàn hảo
    • Chỉ cần một trong hơn 12.000 kết nối không ổn định là toàn bộ quá trình huấn luyện có thể bị chậm lại
    • Họ chia sẻ bộ script mã nguồn mở và hướng dẫn toàn diện về thiết lập hạ tầng
    • Đây là một trong ba phần về việc huấn luyện mô hình 70B; hai phần còn lại tập trung vào đánh giá và tối ưu siêu tham số CARBS
  • Một cụm có 4.092 GPU H100 được phân tán trên 511 máy tính

    • Con số này tương đương chi phí GPU hơn 100 triệu USD
    • Tò mò liệu có thể làm việc này với ngân sách của một dàn PC gaming hay không
  • Chủ đề này đã được thảo luận trên podcast Latent Space vài ngày trước

    • Đây là một tập hay để nghe bối cảnh đằng sau các quyết định
  • Tò mò vì sao lại cần nhiều phần cứng PC đến vậy

    • Nghĩ rằng có thể xây dựng bằng backend PCI + InfiniBand cùng GPU và các bộ điều khiển ARM nhỏ
    • Tò mò liệu đây là do quán tính từ các thiết kế trước đó hay vì thị trường thiếu các bộ điều khiển GPU chuyên dụng
  • Sẽ rất thú vị nếu lặp lại việc huấn luyện trên cùng phần cứng nhưng dùng Unicode thô thay vì dữ liệu huấn luyện đã được token hóa

    • Muốn xem sự khác biệt về hiệu năng chính tả và vần điệu
  • 4.092 GPU H100

    • Đang làm việc theo kiểu "self-coding"
    • Có thể là một giải pháp no-code hoặc minimal code
    • Trên trang web có nhiều bài viết và tài liệu thú vị
  • Quan tâm đến tổng mức tiêu thụ điện cần thiết để xây dựng mô hình

    • Tò mò liệu có con số nào về điện năng và làm mát hay không
    • Mark Zuckerberg đã nhắc đến kế hoạch cho mô hình 1GW tiếp theo
  • Tò mò tổng chi phí là bao nhiêu

    • Bao gồm chi phí phần cứng, thời gian phát triển, điện và làm mát
  • Cisco đang triển khai hợp tác mới với NVIDIA ở tốc độ mỗi cổng 800G

    • Tò mò liệu InfiniBand có thể được GPU truy cập trực tiếp hay không
    • Một ý kiến cảm ơn vì đã chia sẻ
  • Tò mò sau khi mô hình được huấn luyện xong thì phần cứng và hạ tầng sẽ ra sao