# 4개의 4090 GPU로 나만의 LLM 모델을 훈련하는 방법

> Clean Markdown view of GeekNews topic #18502. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18502](https://news.hada.io/topic?id=18502)
- GeekNews Markdown: [https://news.hada.io/topic/18502.md](https://news.hada.io/topic/18502.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-12-30T17:04:43+09:00
- Updated: 2024-12-30T17:04:43+09:00
- Original source: [sabareesh.com](https://sabareesh.com/posts/llm-rig/)
- Points: 16
- Comments: 1

## Summary

ChatGPT에 대한 흥미로 시작하여 LLM의 작동 원리를 이해하기 위해 NVIDIA 4090 GPU를 활용한 커스텀 장비를 구축하고, 이를 통해 모델을 훈련하는 과정을 설명합니다. 장비에는 SuperMicro 메인보드, AMD Threadripper PRO CPU, 128GB RAM, 6TB NVMe SSD, 8TB HDD, 2개의 1500W PSU 등이 포함되며, 소프트웨어 구성에는 Linux 기반 OS, 최신 GPU 드라이버, PyTorch 또는 TensorFlow 등을 이용합니다. LLM 학습을 위해 데이터 준비, 모델 선택, 학습 과정 최적화 등을 수행하며, 다중 GPU 학습과 성능 튜닝을 통해 효율성을 높일 수 있습니다.

## Topic Body

- 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 개발의 새로운 가능성을 탐구하는 강력한 도구가 될 것

## Comments



### Comment 32788

- Author: neo
- Created: 2024-12-30T17:04:43+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42535453) 
- 이 빌드는 훌륭하며, 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암페어 회로만 필요함
