16 điểm bởi GN⁺ 2024-12-30 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bắt đầu từ sự hứng thú với ChatGPT, tác giả quyết định tự mình tiến hành huấn luyện để hiểu sâu hơn về cách LLM hoạt động
  • Ban đầu sử dụng chip M1 nhưng sớm nhận ra giới hạn, sau đó xây dựng một hệ thống tùy chỉnh dùng GPU NVIDIA 4090

1. Xác định mục tiêu và lập kế hoạch ngân sách

  • Xác định mục tiêu: yêu cầu phần cứng sẽ khác nhau tùy theo kích thước và loại mô hình muốn huấn luyện
  • Lập kế hoạch ngân sách: cân nhắc sự cân bằng giữa hiệu năng và chi phí, đồng thời lưu ý giá của các linh kiện hiệu năng cao

2. Lựa chọn phần cứng

  • Bo mạch chủ: khuyến nghị SuperMicro M12SWA-TF. Cung cấp đủ làn PCIe để dùng nhiều GPU
  • CPU: chọn AMD Threadripper PRO 5955WX. Hỗ trợ 128 làn PCIe để giải quyết vấn đề băng thông
  • RAM: khuyến nghị 128GB bộ nhớ. Phù hợp cho tập dữ liệu lớn và các tác vụ tính toán
  • GPU: NVIDIA 4090 GPU - lý tưởng cho việc huấn luyện LLM
    • 24GB VRAM cho phép xử lý mô hình và tập dữ liệu lớn
    • Hiệu năng BFloat16 được tối ưu cho các tác vụ AI
    • 16.384 lõi CUDA giúp tăng cường khả năng xử lý song song
  • Lưu trữ: cấu hình gồm SSD NVMe 6TB và HDD 8TB
  • Nguồn điện: 2 bộ PSU 1500W để cung cấp điện ổn định
  • Vỏ máy và hệ thống làm mát: dùng case hỗ trợ nhiều GPU và giải pháp làm mát hiệu quả

3. Lắp ráp hệ thống

  • Thiết lập PSU kép: một PSU cấp điện cho bo mạch chủ và CPU, PSU còn lại cấp điện cho GPU
  • Kiểm tra khả năng tương thích: rà soát kỹ tính tương thích giữa các linh kiện
  • Cách huấn luyện mô hình LLM của riêng bạn với 4 GPU 4090
  • Sắp xếp cáp gọn gàng để cải thiện luồng không khí và đơn giản hóa việc bảo trì

4. Cấu hình phần mềm

  • Hệ điều hành: dùng OS nền tảng Linux (ví dụ: Ubuntu) để có môi trường huấn luyện ổn định
  • Driver và phụ thuộc: cài đặt driver GPU mới nhất, CUDA và thư viện cuDNN
  • Framework huấn luyện: cài đặt PyTorch hoặc TensorFlow
  • Kernel tùy chỉnh: dùng kernel do Tinygrad cung cấp để kích hoạt giao tiếp P2P giữa các GPU

5. Huấn luyện LLM

  • Chuẩn bị dữ liệu: làm sạch và tiền xử lý tập dữ liệu để có dữ liệu đầu vào chất lượng cao
  • Chọn mô hình: chọn mô hình phù hợp với phần cứng như Llama2 hoặc GPT
  • Quá trình huấn luyện: theo dõi và tối ưu việc sử dụng tài nguyên

6. Tối ưu hóa và mở rộng

  • Huấn luyện đa GPU: sử dụng Distributed Data Parallel (DDP) hoặc kỹ thuật ZeRO
  • Tận dụng bản vá kernel cho phép giao tiếp P2P trên GPU NVIDIA 4xxx
  • Tinh chỉnh hiệu năng: tối ưu hyperparameter, batch size và learning rate để đạt hội tụ và hiệu quả tốt hơn

7. Bảo trì và giám sát

  • Cập nhật định kỳ: duy trì hệ thống và phần mềm ở trạng thái mới nhất
  • Giám sát hệ thống: dùng nvidia-smi, Prometheus, v.v. để kiểm tra tình trạng hệ thống

Những điểm rút ra và mẹo quan trọng

  • Phương án phần cứng thay thế: các GPU như A100 hoặc H100 cung cấp VRAM lớn hơn, nhưng GPU tiêu dùng như 4090 vẫn mang lại hiệu năng rất tốt cho cấu hình tối ưu chi phí
  • Cân nhắc dùng cloud: dự án dài hạn phù hợp với on-premise, còn tác vụ ngắn hạn phù hợp với cloud
  • Tận dụng tài liệu cộng đồng: tham khảo hướng dẫn từ Hugging Face và Andrej Karpathy

Việc xây dựng một hệ thống để huấn luyện LLM là thử thách nhưng cũng rất xứng đáng, và có thể trở thành công cụ mạnh mẽ để khám phá những khả năng mới trong phát triển AI

1 bình luận

 
GN⁺ 2024-12-30
Ý kiến trên Hacker News
  • Bản dựng này rất xuất sắc, và là bản dựng tốt nhất dùng 6 chiếc RTX 4090

    • Cấu hình: 6 x 24GB NVIDIA GeForce RTX 4090, Intel Xeon W7-3465X, 256GB DDR5 ECC, 2TB Samsung 980 PRO NVMe SSD, 4TB Samsung 870 EVO SSD, Ubuntu 20.04
    • Việc chọn bộ nhớ 256GB DDR5 ECC khá thú vị, và cũng có thể nhắm tới 1TB RAM
    • Chi phí ở mức khổng lồ
  • Bài này có vẻ như được viết bởi mô hình AI, và phần cuối đặc biệt mang cảm giác do AI tạo ra

    • Một bài viết tiếp theo về phần tổ chức dữ liệu, làm sạch và huấn luyện sẽ thú vị hơn là chuyện chọn phần cứng
  • Một bài viết về việc có thể thực hiện kiểu huấn luyện nào với dàn máy như thế này sẽ thú vị hơn

  • Có người chia sẻ trải nghiệm cá nhân tự dựng thiết bị ML tại nhà để tiền huấn luyện LLM

  • Thắc mắc cần phần cứng nào để fine-tune một mô hình cỡ trung bình

    • Có nhiều hướng dẫn, nhưng chúng tập trung vào thiết lập toolchain và lại thiếu thông tin về dataset cho việc fine-tune tốt
  • Với đa số mọi người, khía cạnh phần mềm của việc huấn luyện mô hình có lẽ thú vị và dễ tiếp cận hơn

    • Việc tận dụng GPU một cách "trọn vẹn" vẫn là một chủ đề còn bỏ ngỏ, và thuê trên cloud để làm việc có thể hữu ích hơn
    • Quá trình này là tư liệu truyền cảm hứng tốt, và họ đề xuất https://efficientml.ai/
  • Muốn đọc những bài do con người tự viết chứ không phải bởi mô hình AI

  • Muốn nói về cáp riser

    • Đang gặp vấn đề với các đầu nối riser tuyên bố hỗ trợ PCIe 4.0 nhưng hiệu năng lại kém
    • Khi gắn ổ NVMe thì phát sinh sự cố khiến máy không khởi động được
    • Có vẻ NVMe không chịu được tỷ lệ lỗi bit cao tốt lắm
  • Với những người có thú chơi dư dả thì đây khá vui, nhưng nếu để làm việc thực tế thì thuê trên Runpod sẽ tốt hơn

    • Blog hay
  • Chỉ cần 4 GPU 4090 và một mạch điện chuyên dụng 30 amp