GN⁺: 베어 메탈에서 70B 모델을 훈련하기 위한 인프라 설정 및 오픈 소스 스크립트
(imbue.com)인프라 구축 및 스크립트 설정
소개
- 몇 달 동안 소규모 연구팀과 엔지니어 팀이 자체 인프라에서 70B 파라미터 모델을 처음부터 훈련하여 reasoning 관련 작업에서 zero-shot GPT-4o를 능가함.
- 오늘은 초기 클러스터 설정부터 운영 체제 설치, 훈련 중 발생하는 오류 자동 복구까지 필요한 인프라 설정에 대한 종합 가이드를 공유함.
- 각 단계에서 겪은 도전과 해결 방법을 자세히 설명하고, 다른 팀이 안정적인 인프라를 쉽게 구축할 수 있도록 인프라 스크립트를 공개함.
배경: 이 시스템이 어떻게 작동하는지
- 대규모 언어 모델 실험을 빠르게 수행하기 위해 빠른 GPU가 필요함.
- 4,092개의 H100 GPU가 511대의 컴퓨터에 분산되어 있는 클러스터를 사용함.
- InfiniBand 네트워크를 통해 GPU 간의 고속 통신을 가능하게 함.
프로세스: 베어 메탈에서 완전한 운영 클러스터로 가는 방법
개별 머신 프로비저닝
- 관리 네트워크를 통해 클러스터에 초기 이더넷 연결을 설정하고, BMC(베이스보드 관리 컨트롤러)에 접근함.
- iDRAC를 사용하여 첫 번째 서버에 Ubuntu 22.04를 설치하고, 이를 통해 나머지 서버를 설정함.
모든 머신에 OS 설치
- MAAS 소프트웨어를 사용하여 나머지 서버를 프로비저닝함.
- PXE 부팅 및 자동화된 iDRAC 도구를 사용하여 네트워크를 통해 부팅하고, MAAS가 PXE 부팅 요청에 응답하도록 구성함.
고장난 머신 진단
- 약 10%의 머신이 부팅 실패, 주로 물리적 문제로 인해 발생함.
- 자동화된 체크를 통해 문제를 발견하고, Dell에 재테스트를 요청하거나 데이터 센터 직원에게 티켓을 발행함.
최소한의 관찰 가능한 메탈 설정
- 모든 서버에 Docker, 데이터 센터 GPU 드라이버, Prometheus 노드 익스포터 등을 설치함.
- 기본 GPU 진단을 실행하여 대부분의 GPU가 정상 작동하는지 확인함.
단일 노드 GPU 훈련
- 모든 머신이 단독으로 GPU 작업을 처리할 수 있는지 확인함.
- GPU 관련 오류를 해결하고, PCIe 버스와 네트워크 카드 간의 연결 문제를 해결함.
InfiniBand 프로비저닝
- UFM(통합 패브릭 관리자)을 설치하고, 네트워크 스위치를 감지하고 물리적 위치에 따라 이름을 지정함.
- 네트워크 배선 문제를 해결하고, 온도 경고 문제를 해결함.
완전히 건강한 머신 보장
- 다양한 건강 체크를 통해 훈련에 사용할 수 있는 건강한 호스트를 확인함.
- GPU, 디스크 공간, Docker, dmesg, iDRAC, 디스크, InfiniBand, NVLink, GDR, VBIOS, Flint, PSB 등 다양한 체크를 수행함.
일반적인 훈련 문제 진단
- 하드웨어가 제대로 작동하기 시작하면 훈련을 시작함.
- 시작 시 충돌, 중간에 충돌, 스택 트레이스 정보 없이 멈춤, 훈련 속도 저하 등의 문제를 해결함.
인프라 도구 개선
- 훈련이 원활하게 진행되도록 다양한 도구와 시스템을 개발함.
- 고장난 머신 및 네트워크 구성 요소를 자동으로 비활성화하고 수리 요청을 자동화함.
- 로컬 미러 파일 시스템 및 로컬 분산 Docker 레지스트리를 구축함.
- 성능 모니터링 도구를 설정하고, 느린 훈련 배치를 감지하고 원인을 이해하기 위한 도구를 작성함.
GN⁺의 의견
- 이 기사는 대규모 클러스터 설정 및 관리에 대한 실질적인 경험과 해결 방법을 제공하여 매우 유용함.
- 대규모 언어 모델 훈련에 필요한 인프라 구축의 복잡성을 잘 설명하고 있음.
- 다른 팀이 유사한 인프라를 구축할 때 참고할 수 있는 다양한 스크립트와 도구를 제공함.
- InfiniBand 네트워크의 중요성과 설정 과정에서 발생할 수 있는 문제를 잘 설명하고 있음.
- 새로운 기술이나 오픈 소스를 채택할 때 고려해야 할 사항과 장단점을 잘 설명하고 있음.
Hacker News 의견
-
소규모 연구팀이 자체 인프라에서 70B 파라미터 모델을 훈련하여 reasoning 관련 작업에서 zero-shot GPT-4를 능가함
- InfiniBand, Ethernet, GPU, 노드 등 모든 구성 요소가 완벽하게 작동해야 함
- 12,000개 이상의 연결 중 하나라도 불안정하면 전체 훈련이 느려질 수 있음
- 오픈 소스 스크립트와 인프라 설정에 대한 종합 가이드를 공유함
- 70B 모델 훈련에 대한 세 부분 중 하나로, 다른 두 부분은 평가와 CARBS 하이퍼파라미터 최적화에 초점을 맞춤
-
한 클러스터에 4,092개의 H100 GPU가 511대의 컴퓨터에 분산되어 있음
- 이는 1억 달러 이상의 GPU 비용에 해당함
- 게이밍 PC 예산으로 이러한 작업이 가능할지 궁금함
-
Latent Space 팟캐스트에서 며칠 전에 이 주제가 논의됨
- 결정의 배경을 듣기에 좋은 에피소드임
-
왜 이렇게 많은 PC 하드웨어가 필요한지 궁금함
- PCI + 인피니밴드 백엔드와 GPU, 작은 ARM 컨트롤러로 구성할 수 있지 않을까 생각함
- 이전 디자인의 관성이나 특수 GPU 컨트롤러의 시장 부족 때문인지 궁금함
-
동일한 하드웨어로 토큰화된 훈련 데이터 대신 원시 유니코드로 훈련을 반복하는 것이 흥미로울 것임
- 철자와 운율 성능의 차이를 보고 싶음
-
4,092개의 H100 GPU
- "self-coding" 작업 중임
- No-code 또는 minimal code 솔루션일 가능성이 있음
- 웹사이트에 흥미로운 기사와 자료가 많음
-
모델 구축에 필요한 총 전력 소비량에 관심이 있음
- 전력과 냉각에 대한 숫자가 있는지 궁금함
- 마크 저커버그가 다음 1GW 모델을 계획 중이라고 언급함
-
전체 비용이 얼마인지 궁금함
- 하드웨어 비용, 개발 시간, 전기 및 냉각 비용 포함
-
Cisco가 800G 포트당 속도로 새로운 NVIDIA 협업을 진행 중임
- 인피니밴드가 GPU에 접근 가능한지 궁금함
- 공유해줘서 고맙다는 의견
-
모델이 훈련된 후 하드웨어와 인프라는 어떻게 되는지 궁금함