TECH 으로 돌아가기
TECH GITHUB 오늘 17분 읽기 22 READS

[심층분석] 7,440억 파라미터 모델을 메모리 9.9GB로? Colibrì가 SSD를 VRAM처럼 쓰는 법

[심층분석] 7,440억 파라미터 모델을 메모리 9.9GB로? Colibrì가 SSD를 VRAM처럼 쓰는 법
SOURCE IMAGE · GITHUB
[심층분석] 7,440억 파라미터 모델을 메모리 9.9GB로? Colibrì가 SSD를 VRAM처럼 쓰는 법

들어가며: '그 모델, 우리 장비로는 못 돌려요'의 시대가 흔들리고 있어요

요즘 나오는 오픈 웨이트 모델들, 스펙 보면 좀 아찔하죠. GLM-5.2가 7,440억 파라미터, Kimi K3는 무려 2.8조 파라미터예요. 이런 모델을 돌리려면 보통 H100 같은 고가 GPU를 여러 장 묶은 서버가 필요하다고 알려져 있었거든요. 그래서 '오픈 모델이면 뭐해, 어차피 못 돌리는데'라는 자조가 개발자들 사이에 꽤 퍼져 있었어요.

그런데 Colibrì(콜리브리, 이탈리아어로 벌새라는 뜻이에요)라는 프로젝트가 이 전제를 정면으로 흔들고 있어요. 주장은 단순해요. '당신이 이미 가진 하드웨어로 프론티어급 MoE 모델을 돌릴 수 있다.' 순수 C로 작성됐고, 외부 의존성이 하나도 없고, 모델의 무거운 부분은 디스크에서 그때그때 읽어온다는 거예요.

README에 실린 실행 예시가 인상적인데요. 7,440억 파라미터 GLM-5.2를 int4로 양자화해서 CPU 스트리밍 모드로 띄웠더니 32초 만에 준비 완료, 메모리 상주량은 9.9GB였다고 해요. 물론 속도에 대한 보장은 없다는 걸 프로젝트 스스로 명시하고 있지만, 이게 어떤 원리로 가능한 건지, 그리고 우리한테 어떤 의미인지 차근차근 풀어볼게요.

기술 분석: MoE라는 구조가 만들어준 틈새

먼저 MoE가 뭔지부터

MoE는 Mixture of Experts, 우리말로 '전문가 혼합'이에요. 이게 뭐냐면, 하나의 거대한 신경망이 모든 계산을 다 하는 게 아니라, 여러 개의 작은 '전문가' 네트워크로 쪼개놓고 입력 토큰마다 그중 몇 개만 골라서 쓰는 구조예요.

비유하자면 이래요. 큰 종합병원에 의사가 100명 있다고 해볼게요. 환자 한 명이 오면 100명이 다 진료하는 게 아니라, 접수처(이걸 라우터라고 불러요)에서 '이 분은 정형외과랑 재활의학과만 가시면 돼요' 하고 2~3명한테만 보내는 거죠. 병원 전체 규모는 엄청나지만, 환자 한 명당 실제로 일하는 의사는 소수예요.

Qwen3.6이 '35B-A3B'라고 표기되는 게 바로 이 뜻이에요. 전체 파라미터는 350억인데, 토큰 하나를 처리할 때 실제로 활성화되는(Active) 파라미터는 30억뿐이라는 거죠. 7,440억짜리 GLM-5.2도 마찬가지로, 매 토큰마다 실제로 쓰이는 전문가는 전체의 극히 일부예요.

그럼 안 쓰는 전문가는 어디에 두면 될까?

여기서 Colibrì의 핵심 아이디어가 나와요. 기존 추론 엔진들은 '모델 전체를 VRAM(GPU 메모리)에 올려야 한다'는 전제로 설계됐어요. 그러니까 744B 모델이면 int4 양자화를 해도 370GB 정도가 필요하고, 이건 소비자용 하드웨어로는 꿈도 못 꾸는 크기죠.

Colibrì는 이렇게 생각해요. '어차피 토큰 하나 처리할 때 전문가 몇 개만 쓰는데, 나머지를 왜 비싼 VRAM에 올려놓고 있어야 해?' 그래서 VRAM, RAM, 그리고 SSD 같은 스토리지를 하나의 계층적 메모리로 취급해요. 프로젝트에서는 이걸 'AI 메모리 멀티티어링'이라고 부르는데요.

컴퓨터 구조 수업 들으신 분이라면 CPU 캐시 계층이 떠오를 거예요. L1 캐시는 아주 빠르지만 작고, L2, L3로 갈수록 느리지만 커지고, 그 뒤에 RAM이 있잖아요. 자주 쓰는 데이터는 위쪽 빠른 층에, 가끔 쓰는 데이터는 아래쪽 큰 층에 두는 식이죠. Colibrì는 이 개념을 모델 가중치에 그대로 적용한 거예요.

학습 로드맵

1. MoE 구조의 기본 개념 익히기 (Switch Transformer, Mixtral 논문의 개요 정도면 충분해요)
2. llama.cpp로 GGUF 모델 한 번 돌려보면서 양자화와 오프로딩 감 잡기
3. Colibrì로 OLMoE 7B 띄워보고, 해당 C 파일 읽어보기
4. RAM 용량을 바꿔가면서 상주 메모리와 속도 변화 직접 측정해보기
5. 관심 있으면 CONTRIBUTING.md 읽고 벤치마크 재현으로 기여해보기

마무리

Colibrì가 던지는 메시지는 '하드웨어 부족은 소프트웨어로 상당 부분 우회할 수 있다'는 거예요. GPU가 귀하고 비싼 상황이 당분간 계속될 텐데, 스토리지-RAM-VRAM을 하나의 계층으로 보는 접근은 앞으로 다른 엔진들에도 영향을 줄 가능성이 커요. 'MoE 전문가 오프로딩'은 이미 여러 연구에서 다루던 주제인데, 이걸 프론티어급 모델에서 실제로 동작하는 코드로 보여줬다는 점이 의미 있어요.

동시에 한계도 분명해요. 속도는 보장이 안 되고, 초거대 모델은 디스크 공간부터 만만치 않아요. 하지만 '아예 못 돌린다'와 '느리지만 돌아간다' 사이의 간극은 생각보다 커요. 후자가 되는 순간, 평가도 해보고, 프롬프트도 다듬어보고, 파인튜닝할 가치가 있는지 판단도 해볼 수 있으니까요.

여러분은 어떠세요? 지금 팀에서 '모델은 좋은데 장비가 없어서' 포기한 실험이 있으신가요? 아니면 이미 llama.cpp나 다른 도구로 오프로딩을 써보셨다면, 실제 속도가 어느 정도였는지 경험을 공유해주시면 다른 분들께 큰 도움이 될 것 같아요.


🔗 출처: GitHub

SOURCE · GITHUB
원문 전체 보기 → https://github.com/JustVugg/colibri
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...