16 คะแนน โดย GN⁺ 2024-12-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เริ่มต้นจากความสนใจใน ChatGPT และตัดสินใจลงมือฝึกเองเพื่อทำความเข้าใจหลักการทำงานของ LLM ให้ลึกซึ้งยิ่งขึ้น
  • ในช่วงแรกใช้ชิป M1 แต่รู้สึกถึงข้อจำกัด จึงประกอบเครื่องแบบคัสตอมโดยใช้ NVIDIA 4090 GPU

1. การตั้งเป้าหมายและวางแผนงบประมาณ

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

2. การเลือกฮาร์ดแวร์

  • เมนบอร์ด: แนะนำ SuperMicro M12SWA-TF ซึ่งมี PCIe lane เพียงพอสำหรับการใช้ GPU หลายตัว
  • CPU: เลือก AMD Threadripper PRO 5955WX ซึ่งรองรับ PCIe lane 128 เลน ช่วยแก้ปัญหาแบนด์วิดท์
  • RAM: แนะนำหน่วยความจำ 128GB เหมาะสำหรับชุดข้อมูลขนาดใหญ่และงานคำนวณ
  • GPU: NVIDIA 4090 GPU - เหมาะอย่างยิ่งสำหรับการฝึก LLM
    • VRAM 24GB ทำให้รองรับโมเดลและชุดข้อมูลขนาดใหญ่ได้
    • ประสิทธิภาพ BFloat16 ที่ปรับให้เหมาะกับงาน AI
    • CUDA core 16,384 คอร์ ช่วยเสริมความสามารถในการประมวลผลแบบขนาน
  • สตอเรจ: ใช้ NVMe SSD 6TB และ HDD 8TB
  • พาวเวอร์ซัพพลาย: PSU 1500W จำนวน 2 ตัวเพื่อจ่ายไฟอย่างเสถียร
  • เคสและระบบระบายความร้อน: ใช้เคสที่รองรับ GPU หลายตัวและระบบระบายความร้อนที่มีประสิทธิภาพ

3. การประกอบเครื่อง

  • การตั้งค่า dual PSU: PSU ตัวหนึ่งจ่ายไฟให้เมนบอร์ดและ CPU ส่วนอีกตัวจ่ายไฟให้ GPU
  • การตรวจสอบความเข้ากันได้: ตรวจสอบความเข้ากันได้ระหว่างชิ้นส่วนต่าง ๆ อย่างละเอียด
  • วิธีฝึกโมเดล LLM ของคุณเองด้วย GPU 4090 จำนวน 4 ตัว
  • จัดสายเคเบิลให้เรียบร้อยเพื่อปรับปรุงการไหลเวียนอากาศและทำให้บำรุงรักษาง่ายขึ้น

4. การตั้งค่าซอฟต์แวร์

  • ระบบปฏิบัติการ: ใช้ Linux-based OS (เช่น Ubuntu) เพื่อสภาพแวดล้อมการฝึกที่เสถียร
  • ไดรเวอร์และ dependencies: ติดตั้งไดรเวอร์ GPU ล่าสุด พร้อม CUDA และไลบรารี cuDNN
  • เฟรมเวิร์กสำหรับการฝึก: ติดตั้ง PyTorch หรือ TensorFlow
  • เคอร์เนลแบบคัสตอม: ใช้เคอร์เนลจาก Tinygrad เพื่อเปิดใช้การสื่อสาร P2P ระหว่าง GPU

5. การฝึก LLM

  • การเตรียมข้อมูล: ทำความสะอาดและ preprocess ชุดข้อมูลเพื่อให้ได้ข้อมูลนำเข้าคุณภาพสูง
  • การเลือกโมเดล: เลือกโมเดลที่เหมาะกับฮาร์ดแวร์ เช่น Llama2 หรือ GPT
  • กระบวนการฝึก: เฝ้าติดตามและปรับการใช้ทรัพยากรให้เหมาะสม

6. การเพิ่มประสิทธิภาพและการขยายระบบ

  • การฝึกแบบหลาย GPU: ใช้ Distributed Data Parallel (DDP) หรือเทคนิค ZeRO
  • ใช้ kernel patch ที่เปิดให้ NVIDIA 4xxx GPU สามารถสื่อสารแบบ P2P ได้
  • การจูนประสิทธิภาพ: ปรับ hyperparameter, batch size และ learning rate เพื่อให้การลู่เข้าและประสิทธิภาพดีขึ้น

7. การบำรุงรักษาและการมอนิเตอร์

  • การอัปเดตเป็นประจำ: รักษาระบบและซอฟต์แวร์ให้อยู่ในเวอร์ชันล่าสุด
  • การมอนิเตอร์ระบบ: ใช้ nvidia-smi, Prometheus เป็นต้น เพื่อตรวจสอบสถานะของระบบ

ข้อคิดสำคัญและเคล็ดลับ

  • ทางเลือกด้านฮาร์ดแวร์: GPU อย่าง A100 หรือ H100 ให้ VRAM สูงกว่า แต่ consumer GPU อย่าง 4090 ก็ให้ประสิทธิภาพที่ยอดเยี่ยมในชุดประกอบที่คุ้มค่า
  • การพิจารณาใช้คลาวด์: โปรเจ็กต์ระยะยาวเหมาะกับ on-premise ส่วนงานระยะสั้นเหมาะกับคลาวด์
  • ใช้ประโยชน์จากทรัพยากรของชุมชน: ดูคู่มือจาก Hugging Face และ Andrej Karpathy

การประกอบเครื่องสำหรับฝึก LLM เป็นงานที่ท้าทายแต่คุ้มค่า และจะเป็นเครื่องมือทรงพลังในการสำรวจความเป็นไปได้ใหม่ ๆ ของการพัฒนา AI

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

 
GN⁺ 2024-12-30
ความเห็นจาก Hacker News
  • ชุดประกอบนี้ยอดเยี่ยม และเป็นชุดประกอบระดับท็อปที่ใช้ RTX 4090 จำนวน 6 ใบ

    • สเปก: 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
    • การเลือกใช้หน่วยความจำ 256GB DDR5 ECC น่าสนใจ และอาจตั้งเป้าไปถึง RAM 1TB ได้
    • ค่าใช้จ่ายสูงลิ่ว
  • บทความนี้ดูเหมือนเขียนโดยโมเดล AI และช่วงท้ายให้ความรู้สึกแบบ AI อย่างมาก

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

  • มีการแชร์ประสบการณ์ส่วนตัวในการประกอบอุปกรณ์ ML ที่บ้านเพื่อพรีเทรน LLM

  • อยากรู้ว่าถ้าจะฟाइनจูนโมเดลขนาดกลางต้องใช้ฮาร์ดแวร์แบบไหน

    • มีไกด์จำนวนมาก แต่เน้นการตั้งค่า toolchain และมีข้อมูลไม่มากพอเกี่ยวกับชุดข้อมูลสำหรับการฟाइनจูนที่ดี
  • สำหรับคนส่วนใหญ่ ด้านซอฟต์แวร์ของการฝึกโมเดลน่าจะน่าสนใจและเข้าถึงได้มากกว่า

    • การใช้งาน GPU ให้ "เต็มประสิทธิภาพ" ยังเป็นหัวข้อที่เปิดกว้าง และการเช่าจากคลาวด์เพื่อทำงานอาจคุ้มค่ากว่า
    • กระบวนการนี้เป็นแหล่งข้อมูลที่สร้างแรงบันดาลใจได้ดี และขอแนะนำ https://efficientml.ai/
  • อยากอ่านบทความที่มนุษย์เขียนเอง ไม่ใช่โดยโมเดล AI

  • อยากพูดถึงสาย riser cable

    • กำลังเจอปัญหาที่คอนเน็กเตอร์ riser ซึ่งอ้างว่ารองรับ PCIe 4.0 กลับให้ประสิทธิภาพต่ำ
    • เมื่อเชื่อมต่อไดรฟ์ NVMe จะเกิดปัญหาจนบูตไม่ขึ้น
    • ดูเหมือนว่า NVMe จะทนต่ออัตราความผิดพลาดของบิตที่สูงได้ไม่ดีนัก
  • สำหรับนักเล่นงานอดิเรกที่มีเงินก็สนุกดี แต่ถ้าจะทำงานจริง การเช่าจาก Runpod จะดีกว่า

    • เป็นบล็อกที่ดี
  • แค่ต้องมี GPU 4090 จำนวน 4 ใบ และวงจรไฟเฉพาะ 30 แอมป์