A 35B Hybrid-Attention Mixture-of-Experts Model on a 6GB 2011 GPU: Hand-Written 4-bit CUDA Inference for Fermi
이 논문은 GPU 프리필(prefill)을 위한 가중치 스트리밍과 CPU 디코딩을 위한 수작업으로 작성된 SSSE3 정수 커널을 활용하는 하이브리드 실행 전략을 구현함으로써, 2011년형 6GB Fermi GPU에서 350억 파라미터 규모의 Qwen3.6 MoE 모델에 대한 엔드 투 엔드 추론을 시연하고, 성능 향상과 구형 실리콘에서 프런티어급 AI를 구동할 때 발생하는 실제적인 하드웨어 한계를 모두 기록한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신에게 350억 권의 책을 가진 거대하고도 믿기지 않을 정도로 똑똑한 도서관(현대적인 AI 모델)이 있다고 상상해 보세요. 그런데 당신은 아주 작고 낡은 14년 된 창고 안에서, 작은 책상 하나와 매우 오래되고 느린 컴퓨터만을 가진 채 특정 이야기를 읽고 싶어 합니다.
이것이 바로 이 논문이 설명하는 내용입니다. 연구진들은 최첨단 AI 모델을 단 6GB의 메모리만 가진 2011년형 그래픽 카드(GPU)에서 구동하는 데 성공했습니다. 이는 모델 크기의 약 절반에 불과한 용량입니다.
그들이 어떻게 이 "불가능한" 일을 해냈는지, 쉬운 비유를 통해 설명해 드리겠습니다.
1. 문제점: 도서관이 창고보다 너무 큽니다
AI 모델은 거대한 백과사전와 같습니다. 압축(4비트 정밀도)을 하더라도 약 10.5GB의 공간을 차지합니다. 하지만 오래된 컴퓨터의 책상은 6GB뿐입니다.
- 문제: 책 전체를 책상 위에 올릴 수 없습니다.
- 기존 방식: 현대의 컴퓨터에는 이 작업을 처리할 수 있는 특수 계산기인 "텐서 코어(Tensor Coors)"와 빠른 메모리가 있습니다. 하지만 2011년형 카드는 그런 것이 전혀 없습니다. 이는 마치 덧셈과 뺄셈 버튼만 있는 계산기로 고급 수학 문제를 풀려는 것과 같습니다.
2. 해결책: 두 팀이 나누어 뛰는 계주 경주
모델 전체가 들어가지 않기 때문에, 연구진은 업무를 두 팀으로 나누었습니다. 바로 GPU 팀(오래된 그래픽 카드)과 CPU 팀(메인 컴퓨터 프로세서)입니다.
1단계: "프리필(Prefill)" (프롬프트 읽기)
- 비유: 시작하기 위해 긴 지시 사항(프롬프트)을 읽어야 한다고 상상해 보세요.
- 기술: GPU는 빠른 컨베이어 벨트 역할을 합니다. 메인 컴퓨터의 하드 드라이브에서 "책"(모델 가중치)의 작은 섹션을 가져와 작은 책상 위에 올려두고, 그 덩어리에 대한 수학 계산을 수행한 뒤, 다음 덩어리를 위해 기존 것을 교체합니다.
- 결과: 책 전체를 한 번에 읽는 대신, 연속적인 흐름 속에서 페이지 단위로 읽습니다. 이를 통해 초기 지시 사항을 이전보다 34% 더 빠르게 처리할 수 있었습니다.
2단계: "디코드(Decode)" (이야기 쓰기)
- 비유: 이제 AI가 한 번에 한 단어씩 이야기를 써 내려가야 합니다.
- 문제: 만약 GPU가 이 작업을 하려 한다면, 단어 하나를 쓸 때마다 하드 드라이브를 향해 왔다 갔다 해야 합니다. 이는 마치 러너가 도서관으로 전력 질주하여 책 한 권을 가져온 뒤, 다시 달려와서 단어 하나를 쓰고, 이 과정을 반복하는 것과 같습니다. 너무 느립니다.
- 기술: 연구진은 이 부분을 메인 컴퓨터의 두뇌(CPU)로 옮겼습니다. 그들은 숫자를 복잡한 소수가 아닌 단순한 정수(정수 형태)로 취급하는 매우 효율적인 "수제" 코드를 작성했습니다.
- 결과: 이 작업은 AI가 단어를 쓰는 속도를 3배 더 빠르게 만들어, 느릿한 기어가는 속도를 꾸준한 조깅 수준으로 바꾸어 놓았습니다.
3. "마법 같은" 지름길들
연구진은 단순히 업무를 나누는 것에 그치지 않고, 오래된 하드웨어가 새것처럼 느껴지도록 영리한 지름길들을 발명했습니다.
"스냅샷(Snapshot)" 캐시:
- 문제: AI는 읽는 과정에서 변화하는 "기억"을 가지고 있습니다. 보통은 기억의 상태가 달라지기 때문에 이전의 작업 내용을 재사용할 수 없습니다.
- 해결책: 그들은 특정 체크포인트에서 AI의 메모리 "스냅샷"을 찍었습니다. 만약 당신이 AI에게 이미 들었던 이야기를 다시 시킨다면, AI는 처음부터 다시 읽지 않습니다. 대신 저장된 마지막 스냅샷으로 바로 건너뜁니다.
- 결과: 긴 프롬프트를 반복할 때 걸리는 시간이 78초에서 단 0.5초로 줄었습니다. 이는 이미 본 영화를 처음부터 다시 보는 대신 결말 부분으로 바로 건너뛰는 것과 같습니다.
"핀 고정(Pinned)" 메모리:
- 비유: 보통 하드 드라이브에서 GPU로 데이터를 이동하는 것은 흔들리는 지게차로 상자를 옮기는 것과 같습니다.
- 해결책: 그들은 상자를 제자리에 "고정(pinned memory)"하여 지게차가 흔들림 없이 매끄럽게 움직일 수 있도록 했습니다. 이를 통해 데이터 이동 시간을 절반으로 단축했습니다.
4. 작동하지 않았던 것들 (막다른 길)
이 논문의 일부는 무엇이 실패했는지에 관한 것이며, 이는 실패 자체가 매우 중요합니다. 그것은 우리가 어디에서 벽에 부딪히는지 알려주기 때문입니다.
- 글쓰기에 GPU 사용하기: 그들은 GPU가 글을 쓰게 만들려고 시도했지만, 오래된 카드는 데이터를 주고받는 속도가 너무 느렸습니다. 실제로 CPU보다 더 느렸습니다.
- 컴퓨터의 모든 스레드 사용하기: 그들은 가용 가능한 모든 프로세싱 스레드를 사용하려고 시도했습니다(예: 12명의 인부 대신 24명을 고용하는 것). 이는 오히려 교통 체증을 유발하여 속도를 대폭 늦췄습니다.
- 수식 재작성: 그들은 수학 커널을 세 가지 방식으로 다시 작성해 보았지만, 오래된 하드웨어는 요구되는 특정 유형의 수학을 감당할 수 없었습니다.
핵심 요약
이 논문은 새로운 속도 기록을 세우기 위한 것이 아닙니다. 이것은 **"350억 개의 파라미터를 가진 AI를 실행하기 위해 반드시 20,000달러짜리 슈퍼컴퓨터가 필요한 것은 아니다"**라는 것을 보여주는 개념 증명입니다.
하드웨어를 하나의 퍼즐처럼 다루고, 소프트웨어 개발자들이 14년 전에 포기한 컴퓨터 아키텍처를 위한 맞춤형 엔진(수제 코드)을 밑바닥부터 구축함으로써, 그들은 공학적 기교가 있다면 낡은 하드웨어에서도 현대적인 AI를 실행할 수 있음을 증명했습니다.
요약하자면: 그들은 페라리 엔진(AI 모델)을 가져와서, 맞춤형 변속기를 만들고 연료 타입을 바꿈으로써 1990년대 자전거 프레임(2011년형 GPU) 위에서도 달릴 수 있게 만들었습니다. 이는 충분한 독창성만 있다면 오래된 기술로도 놀라울 정도로 멀리 갈 수 있다는 것을 보여줍니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.