GN⁺: 4개의 4090 GPU로 나만의 LLM 모델을 훈련하는 방법
(sabareesh.com)- ChatGPT에 대한 흥미에서 시작해 LLM의 작동 원리를 깊이 이해하기 위해 직접 학습을 진행하기로 결심
- 초기에는 M1 칩을 사용했지만 한계를 느끼고, NVIDIA 4090 GPU를 활용한 커스텀 장비를 구축
1. 목표 설정 및 예산 계획
- 목표 설정: 학습하려는 모델의 크기와 유형에 따라 장비 요구사항이 달라짐
- 예산 계획: 성능과 비용의 균형을 고려하며 고성능 구성 요소의 비용을 명심
2. 하드웨어 선택
- 메인보드: SuperMicro M12SWA-TF 추천. 다수 GPU 사용을 위해 충분한 PCIe 레인을 제공
- CPU: AMD Threadripper PRO 5955WX 선택. 128개의 PCIe 레인을 지원해 대역폭 문제 해결
- RAM: 128GB 메모리 권장. 대규모 데이터셋 및 계산 작업에 적합
- GPU: NVIDIA 4090 GPU - LLM 훈련에 이상적
- 24GB VRAM으로 대규모 모델과 데이터셋 처리 가능
- BFloat16 성능으로 AI 작업 최적화
- CUDA 코어 16,384개로 병렬 처리 능력 강화
- 스토리지: 6TB NVMe SSD와 8TB HDD 구성
- 파워 서플라이: 2개의 1500W PSU로 안정적인 전력 공급
- 케이스 및 냉각 시스템: 다수 GPU를 지원하는 케이스와 효과적인 냉각 장치 사용
3. 장비 조립
- 듀얼 PSU 설정: PSU 하나는 메인보드와 CPU를, 나머지는 GPU를 전원 공급
- 호환성 확인: 구성 요소 간의 호환성 철저히 검토
- 4개의 4090 GPU로 나만의 LLM 모델을 훈련하는 방법
- 케이블을 깔끔하게 정리하여 공기 흐름을 개선하고 유지보수를 간소화함
4. 소프트웨어 구성
- 운영 체제: 안정적인 학습 환경을 위한 Linux 기반 OS(예: Ubuntu) 사용
- 드라이버 및 의존성: 최신 GPU 드라이버, CUDA, cuDNN 라이브러리 설치
- 학습 프레임워크: PyTorch 또는 TensorFlow 설치
- 커스텀 커널: Tinygrad에서 제공하는 커널로 GPU 간 P2P 통신 활성화
5. LLM 학습
- 데이터 준비: 고품질 입력 데이터를 위한 데이터셋 정리 및 전처리
- 모델 선택: Llama2 또는 GPT와 같은 하드웨어에 맞는 모델 선택
- 학습 과정: 리소스 활용 모니터링 및 최적화
6. 최적화 및 확장
- 다중 GPU 학습: Distributed Data Parallel (DDP) 또는 ZeRO 기술 활용
- NVIDIA 4xxx GPU의 P2P 통신을 가능하게 하는 커널 패치를 활용
- 성능 튜닝: 하이퍼파라미터, 배치 크기, 학습률을 최적화하여 더 나은 수렴과 효율성을 달성함
7. 유지보수 및 모니터링
- 정기 업데이트: 시스템 및 소프트웨어 최신 상태 유지
- 시스템 모니터링: nvidia-smi, Prometheus 등을 사용해 시스템 상태 점검
핵심 통찰 및 팁
- 하드웨어 대안: A100 또는 H100과 같은 GPU는 더 높은 VRAM을 제공하지만, 4090과 같은 소비자 GPU는 비용 효율적인 설정에 훌륭한 성능을 제공함
- 클라우드 사용 고려: 장기 프로젝트에는 온프레미스, 단기 작업에는 클라우드 적합
- 커뮤니티 자료 활용: Hugging Face 및 Andrej Karpathy의 가이드 참고
LLM 학습을 위한 장비를 구축하는 것은 도전적이지만 보람 있는 작업으로, AI 개발의 새로운 가능성을 탐구하는 강력한 도구가 될 것
Hacker News 의견
-
이 빌드는 훌륭하며, 6개의 RTX 4090을 사용한 최고의 빌드임
- 사양: 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 메모리 선택이 흥미로우며, 1TB RAM을 목표로 할 수도 있음
- 비용은 천문학적임
-
이 글은 AI 모델로 작성된 것 같으며, 마지막 부분이 AI 느낌이 강함
- 하드웨어 선택보다 데이터 정리, 청소, 훈련 부분에 대한 후속 기사가 더 흥미로울 것임
-
이와 같은 장비로 어떤 훈련을 할 수 있는지에 대한 글이 더 흥미로울 것임
-
개인적으로 ML 장비를 집에서 구축하여 LLM을 사전 훈련한 경험을 공유함
-
중간 크기의 모델을 미세 조정하려면 어떤 하드웨어가 필요한지 궁금함
- 많은 가이드가 있지만, 도구 체인 설정에 집중하고, 좋은 미세 조정을 위한 데이터셋에 대한 정보는 부족함
-
대부분의 사람들에게 모델 훈련의 소프트웨어 측면이 더 흥미롭고 접근 가능해야 함
- GPU의 "완전한" 활용은 여전히 열려 있는 주제이며, 클라우드에서 임대하여 작업하는 것이 더 유익할 수 있음
- 이 과정은 영감을 주는 좋은 자료였으며, https://efficientml.ai/를 추천함
-
AI 모델이 아닌 직접 작성한 글을 읽고 싶음
-
라이저 케이블에 대해 이야기하고 싶음
- PCIe 4.0을 지원한다고 주장하는 라이저 커넥터가 성능이 떨어지는 문제를 겪고 있음
- NVMe 드라이브를 연결하면 문제가 발생하여 부팅이 안 됨
- NVMe가 높은 비트 오류율을 잘 견디지 못하는 것 같음
-
부유한 취미가에게는 재미있지만, 실제 작업을 하려면 Runpod에서 임대하는 것이 더 나음
- 좋은 블로그임
-
4개의 4090 GPU와 전용 30암페어 회로만 필요함