3P by GN⁺ | ★ favorite | 댓글 2개
  • 개인 LLM 실험 규모가 커지면서 8x RTX 3090과 총 192GB VRAM을 갖춘 전용 AI 서버를 집에 직접 구축함
  • 기존 48GB VRAM 환경으로는 실험을 따라가기 어려워져, Meta의 Llama-3.1 405B 실행까지 염두에 둔 멀티 GPU 노드로 확장함
  • 구성은 Asrock Rack ROMED8-2T, AMD Epyc Milan 7713, 512GB DDR4-3200 RDIMM, 1600W 전원공급장치 3개, 4x NVLink로 묶은 8개 RTX 3090이 중심임
  • NVLink는 GPU 쌍마다 112GB/s 전송률을 제공하며, PCIe 레인·라이저·추론 엔진·파인튜닝 같은 병목도 후속 글의 주요 주제로 남아 있음
  • 가정용 대형 LLM 서버 구축은 가능하지만, 조립 난점과 비용이 큰 실수가 많아 하드웨어 선택과 검증 과정이 성패를 좌우함

지하실 LLM 서버의 목표

  • 최신 사이드 프로젝트인 AI from The Basement는 전용 LLM 서버로, 8x RTX 3090 그래픽카드와 총 192GB VRAM을 갖춤
  • 목표 중 하나는 Meta의 Llama-3.1 405B 실행임
  • 기존에는 LLM 실험에 48GB VRAM을 사용했지만, 2024년 3월 무렵 이 용량으로는 실험을 따라가기 어렵다고 판단함
  • 하드웨어 선택 과정에서는 CPU와 플랫폼, 메모리 속도, PCIe 레인 수, 2^n 개 GPU 구성, 텐서 병렬성, 추론 엔진 선택을 함께 검토함

하드웨어 구성과 구축 과정의 쟁점

  • 최종 플랫폼은 서버급 메인보드와 EPYC CPU, 대용량 메모리, 다중 전원공급장치, 8개 GPU 조합으로 구성됨
    • Asrock Rack ROMED8-2T 메인보드: 7x PCIe 4.0 x16 슬롯, 128 PCIe 레인
    • AMD Epyc Milan 7713 CPU: 2.00GHz, 부스트 3.675GHz, 64코어/128스레드
    • 512GB DDR4-3200 3DS RDIMM 메모리
    • 1600W 전원공급장치 3개
    • 8x RTX 3090 GPU와 4x NVLink
  • NVLink는 각 GPU 쌍 사이에서 112GB/s 데이터 전송률을 제공함
  • 실제 조립에서는 금속 프레임 구멍 가공, 30A 240V 차단기 추가, CPU 소켓 핀 휨 같은 물리적 문제가 발생함
  • PCIe 라이저 문제와 오류 없는 PCIe 연결을 위해 SAS Device Adapter, Redriver, Retimer의 중요성도 다뤄짐
  • 후속 글에서는 NVLink 속도, PCIe 레인 대역폭, VRAM 전송 속도, Nvidia가 소프트웨어 수준에서 P2P 네이티브 PCIe 대역폭을 차단한 결정이 이어질 예정임
  • TensorRT-LLM, vLLM, Aphrodite Engine 같은 텐서 병렬성 지원 추론 엔진 벤치마크와 자체 LLM 학습·파인튜닝도 다음 주제로 남아 있음
  • 2004년에 60GB HDD를 갖고 기뻐했던 경험과 비교해, 20년 뒤 한 머신의 그래픽카드에 그 세 배가 넘는 용량을 갖게 된 점을 기술 발전의 예로 듦
  • 프로젝트의 목적은 미래에 등장할 멋진 것들을 만드는 데 기여하는 것이며, 언젠가 192GB VRAM도 많지 않았다고 돌아볼 수 있다고 봄
  • Part II of this Blogpost Series가 이어지는 글로 제공됨

댓글과 토론

그저 부러울 뿐입니다..

Hacker News 의견들
  • 예전부터 공유하려던 내용이고, 이 구성을 계획하고 조립하는 데 시간이 꽤 걸렸으며, 이후 소프트웨어 쪽과 가능성을 탐색하는 데도 시간이 더 들었음
    주된 이유 중 하나는 데이터 프라이버시였고, 내 개인 데이터를 어떤 회사에 넘겨 폐쇄형 가중치 모델 학습에 쓰이게 하고 싶지 않았음. 최근 ChatGPT, Claude 등 여러 플랫폼의 출력 품질이 떨어진 것도 있어서, 이 구성에 돈을 쓴 걸 후회하지 않음
    이 서버로 텐서 병렬화와 배치 추론을 활용해 합성 데이터를 만들고, 개인 데이터로 모델 미세조정을 실험하는 등 꽤 재미있는 일을 많이 해볼 수 있었음. 지금은 학습 프로젝트에 가깝게 모델을 처음부터 만들고 있고, 그 과정에서 흥미로운 점도 찾는 중이라 문제를 정리할 수 있으면 공개하고 노트 기반 튜토리얼도 쓸 생각임
    이번 주말에 드디어 블로그를 띄웠고, 앞으로 배운 점과 발견한 내용을 연재할 계획임. 이 서버에서 실험해보고 싶은 주제나 아이디어도 열려 있으니, 하드웨어가 없어서 못 해본 게 있으면 대신 돌려보고 결과를 공유할 수 있음
    질문이 있으면 알려주면 되고, 개인 메시지도 열려 있으며 웹사이트에 올린 소셜 계정으로도 연락 가능함

    • 홈랩에서 2개 이상의 4090으로 넘어가지 못하게 막는 가장 큰 요인은 전력임. 단일 차단기에서 약 2kW 정도만 되어도 내려갈 수 있고, 며칠씩 학습을 돌릴 때 전기요금까지 고려하기 전부터 이미 문제임
      주거 환경으로 보이는 곳에서 이 부분을 어떻게 해결했는지 궁금함
    • 이걸 24시간 365일 돌리는지 궁금함
      kWh당 전기요금은 얼마이고, 이 구성의 월 유지비가 어느 정도인지 알고 싶음
    • 2비트/3비트 양자화 Llama 405B는 어떻다고 느끼는지 궁금함. 8비트나 16비트 Llama 70B보다 더 잘 동작하나?
    • 멋진 구성임. 판금 설계, 제작, 분체도장을 할 수 있어서, 이 구성용으로 괜찮은 인클로저를 설계하고 제작하는 데 협업해보고 싶음. 관심 있으면 알려주면 좋겠음
    • 정말 멋지고 조금 부러움
      약간 바보 같은 질문일 수 있지만, 단순히 만져보는 것 말고 실제로 실행하거나 만드는 모델로 무엇을 하는지 궁금함. 대부분의 실험은 더 작은 시스템에서도 가능할 것 같은데, 실제로 유용하거나 경쟁력 있는 모델을 만들려는 목적임?
  • “나중에 누군가 내 작업을 돌아보며 ‘192GB VRAM이 많다고 생각하던 시절 기억나?’라고 할지도 모른다”는 부분이 실제로 일어날지 궁금함
    이미 NAS용 대용량 HDD를 사기가 꽤 어려워졌는데, 외장 드라이브를 사는 사람이 줄어서 프로슈머 입장에서는 가격이 많이 올랐음
    AI도 비슷해질 것 같음. 대형 클라우드 업체들이 대형 언어 모델의 주요 선두주자이고, 이들의 목표는 우리를 클라우드 서비스에 묶어두는 것임. 실질적인 성능을 가진 저렴한 가정용 하드웨어는 이들이 관심 갖는 방향이 아니며, 우리가 계속 사용료를 내고 데이터를 채굴당하도록 손이 닿지 않는 곳에 두려 할 것 같음

    • 클라우드 제공자가 우리를 배제하려는 것이라기보다, NVIDIA가 AI 가능한 카드를 고급 엔터프라이즈 계층으로 밀어 넣고 싶어 하는 것에 가까움
      2024년에 게임 시장 매출은 104.4억 달러, 데이터센터 시장 매출은 475억 달러를 넘었고, 게임 쪽 이익률은 훨씬 낮을 것이라고 봄. 시장을 분리해두기 위해 게임용 카드에서 NVLink를 빼고, 최상위 GPU인 3090과 4090도 VRAM을 24GB로 제한했으며, 곧 나올 5090도 크게 나아 보이지 않음
      이익 극대화를 추구하는 회사이니 탓할 수는 없지만, 대형 AI 모델을 취미 사용자에게 실용적으로 만들려면 먼저 NVIDIA부터 봐야 함
      다만 취미 사용자에게 앞으로의 길이 VRAM을 최대한 늘리는 것이라고는 생각하지 않음. 작은 모델들이 훨씬 더 유능해지고 있고, 가속기도 가능성이 있으며, Mixtral 같은 전문가 혼합 모델이나 phi 같은 작고 유능한 모델이 있다면 굳이 700억 매개변수 모델 전체를 메모리에 올릴 필요가 없을 수도 있음
    • 그래서 리퍼비시/중고 엔터프라이즈 드라이브를 삼. 최근 대용량 드라이브는 보통 TB당 12달러 정도이고, 더 작은 드라이브는 TB당 6달러 정도임
      SAS 인터페이스만 있으면 되는데, 어렵거나 비싸지 않음. 예를 들어 25TB가 320달러, 12TB가 80달러 수준임
    • 내 경험으로는 20TB 드라이브는 쉽게 구할 수 있음
      클라우드 업체들이 우리보다 더 큰 드라이브에 접근할 수 있다거나 한 건 아니라고 봄. 마찬가지로 8개 A100도 살 수는 있고, 단지 개인이든 기업이든 근본적으로 비쌀 뿐임
      예전의 독점 하드웨어처럼 어떤 “벽”이 세워져 있는 것 같지는 않음
    • 클라우드 회사들이 하드웨어를 만드는 게 아니라 우리처럼 사는 것임. 다만 시장의 거의 전부를 차지하게 될 테니, 자연스럽게 제품도 그 시장을 기준으로 만들어지고 가격이 매겨질 것임
  • 8개 GPU를 쓰는 인접 프로젝트로, 중고 4K 모니터를 경계 없는 작은 픽셀 월로 바꿔 로컬 영상 합성에 활용할 수 있겠음. 렌더링되거나 AI 생성된 배경을 쓰는 방식임: https://theasc.com/articles/the-mandalorian
    후면 투사의 후계자처럼, 거대한 LED 비디오 월과 천장에 동적 실시간 사실적 배경을 재생해 이국적인 배경 콘텐츠를 픽셀 정확도로 보여줄 뿐 아니라 카메라 위치 데이터에 맞춰 렌더링하는 방식임. “미술팀이 만든 오브젝트를 가져와 각 항목에 사진측량을 적용해 게임 엔진으로 가져온다”는 설명도 있음

  • 이 경우 NVLink가 얼마나 도움이 되는지 궁금함
    대략 비용이 얼마나 들었는지도 궁금함. 방금 3090 2개짜리 장비를 만들었는데, 더 많은 카드를 꽂을 수 있게 EPYC으로 갈까 고민했음. 다만 비용 때문에 AM5에 머물렀음
    전체적으로 약 3,500달러를 썼음. 이 구성은 12,000~15,000달러에 가까울 것 같음. CPU는 eBay에서 약 800달러 정도임

    • EPYC으로 간 이유는 PCIe 레인과 U.3/2를 통한 저렴한 엔터프라이즈 SSD 때문임. AM5에서는 GPU 2개만 꽂아도 레인을 다 써버림
      Threadripper가 더 좋긴 하지만, EPYC은 가격이 절반 정도이거나 이전 세대로 가면 더 싸짐
    • 2023년 초에 중고 부품으로 만들었고, AM4/128GB/3090 2개를 PCIe 4.0 x8 + NVLink로 구성해 총 2,300유로가 들었음
    • NVLink가 어떤 차이를 만드는지, 어떤 애플리케이션이 지원하는지에 대해 좋은 답을 아직 못 찾았음
  • Tinybox와 비용이 어떻게 비교될지 궁금함. 4090 6개 구성은 25,000달러, 7900XTX 6개 구성은 15,000달러임
    물론 전원공급장치, CPU, 저장장치, 냉각, 조립, 배송 등을 포함한 전체 패키지 가격임. 이런 종류의 장비에서는 특히 중요한, 테스트된 정상 동작 하드웨어/소프트웨어 구성이라는 점도 있음

    • 단지 CUDA와 많은 VRAM이 필요할 뿐이라면, 비싼 4090 대신 중고 3090을 고르지 않을 이유가 없음
    • 원글 같은 구성은 여러 요소에 따라 약 1만 달러 정도로 만들 수 있음. 가장 중요한 건 GPU를 얼마에 구하느냐이고, 3090은 개당 700달러 정도가 합리적인 시세임
      어떤 CPU를 고르느냐도 중요하며, 코어 수가 많고 클럭이 높은 EPYC CPU는 더 비쌈
    • 대여 옵션이 나온다면, 그런 노드를 활용하는 더 수익성 높은 방법을 상상하기 어려움
  • 비슷한 구성을 지하실에 두고 있음. 다만 여러 노드로 나뉘어 있고, 총 3090 16개
    30A 240V 회로도 설치해야 했음

    • 마지막 부분이 자주 간과됨. 그래서 며칠 이상 그 정도 연산력이 필요하지 않다면, 로컬로 가는 게 가치 없을 때도 있음
  • 매우 흥미로움. 8개 GPU가 메인보드에 어떻게 연결되어 있는지 궁금함. 글과 사진을 보면 PCIe 라이저를 쓰는 것 같지는 않음
    RTX 3090 3개 구성으로 쓰고 있는데, PCIe 라이저가 큰 고통과 시스템 크래시의 원인임

    • 같은 질문이 있었음. 어떤 리타이머를 쓰는지 궁금했음
      한동안 이걸 눈여겨보고 있음: https://c-payne.com/
    • SlimSAS처럼 보임
  • 전형적인 암호화폐 채굴기 구성임. 1200W 전원공급장치와 PCIe 슬롯 6개, PCI 확장 케이블을 쓴 6GPU 구성 두 대를 갖고 있었음. 몇 달 뒤에는 가치가 Cybertruck보다 더 심하게 떨어졌음
    최악은 먼지였음. 매주 너무 많이 쌓여서 에어 컴프레서로 먼지를 불어내야 했음
    전기요금은 하루 약 4달러였음, 24시간에 0.20달러 정도 기준임. 온라인 GPU 대여가 더 비싸다면 초기 비용을 정당화할 수 있을지도 모름

    • 전형적인 암호화폐 채굴기 구성이라고 하기엔, 수상한 x1 PCIe 레인을 쓰지 않는다는 차이가 있음. 좋은 대형 언어 모델 구성에서 어려운 부분이 바로 그 지점임
  • 글에서는 Llama 3 405B를 돌리는 게 목적이라고 해놓고, 필요한 VRAM의 1/4도 안 된다는 사실을 다들 놓친 건가? 빌드 중간에 목표를 바꾼 건지 궁금함
    특정 매개변수 규모에 필요한 메모리는 널리 알려져 있음

    • 시스템 RAM이 512GB라서 추론은 느리겠지만, 가중치를 VRAM과 시스템 RAM에 나눠 올린다고 보면 실제로 모델 실행에 쓸 수 있는 메모리는 약 704GB임
  • 훌륭한 글이고, 첫 블로그 글치고는 정말 강력함
    한편으로 이게 가정용 서버에 NVIDIA 계열 VRAM 192GB를 넣으려면 필요한 구성이라는 뜻임
    궁금한 건, 현재 128GB 통합 메모리까지 올릴 수 있는 MacBook Pro에서도 흥미로운 작업을 할 희망이 있느냐는 것임. 가격은 고작 4,700달러지만
    MacBook에서 CUDA를 돌릴 희망이 없다는 건 알고 있고, 이 분야를 잘 모른다는 것도 분명함. 그래도 거대한 대형 언어 모델을 백팩에 넣는다는 순진한 몽상은 매력적임

    • koboldcpp를 내려받아 시도해보면 됨. 단일 실행 파일이고 Apple Arm CPU에서 Metal 가속을 사용함