거대 언어 모델을 쓰려면 결국 클라우드 API에 의존하거나, 수백 기가바이트의 메모리를 갖춘 서버를 마련해야 한다는 것이 지금까지의 상식이었다. sqliteai가 공개한 WASTE는 이 전제를 정면으로 흔든다. 이 프로젝트는 무닌티팀 K3(Kimi K3)의 완전한 오픈 웨이트 모델, 즉 2.78조 파라미터짜리 원본을 증류하거나 가지치기하지 않은 그대로 64GB 램의 맥북 프로에서 구동해 보였다. 속도는 초당 0.49~0.54토큰. 위 한 문장을 뱉는 데 30초가 걸리는 셈이다. 느리다는 사실 자체보다 중요한 것은, 이만한 규모의 모델이 데스크 위 노트북 한 대에서 '도달 가능한' 범위 안으로 들어왔다는 점이다.
유휴 가중치는 메모리가 아니라 제때 닿기만 하면 된다
WASTE의 핵심 통찰은 전문가 혼합(MoE) 구조의 특성에서 나온다. K3는 발표 시점 1.42TB, 변환 후 982GiB에 이르지만, MoE 모델은 토큰 하나를 처리할 때 전체의 약 4%만 활성화한다. 나머지 대부분의 가중치는 매 순간 놀고 있고, 노는 가중치는 램에 상주할 필요 없이 필요할 때 디스크에서 빨리 읽어오기만 하면 된다. WASTE는 모델의 몸통(trunk)만 램에 상주시키고, 각 토큰이 실제로 요구하는 전문가만 NVMe에서 직접 스트리밍하며, 남은 램 전부를 유한한 크기의 전문가 캐시로 쓴다. 엔진은 제3자 런타임 의존성이 없는 순수 C로 작성됐고, 다른 소프트웨어에 임베드할 수 있는 형태다.
변환된 컨테이너의 설계는 이 발상에 맞춰 촘촘하다. 각 전문가 레코드는 4KiB 정렬 상태로 게이트·업·다운 행렬이 인접 배치돼, 특정 전문가로 라우팅하는 비용이 정확히 한 번의 pread로 끝난다. 세 번의 읽기도, 행렬마다의 탐색도 아니다. 읽기는 운영체제 페이지 캐시를 우회한다(맥OS의 F_NOCACHE, 리눅스의 O_DIRECT, 윈도우의 FILE_FLAG_NO_BUFFERING). 램보다 작은 컨테이너라면 커널이 전부 캐시해 버려 측정된 적중률이 실제 982GB 모델에서는 성립하지 않는 허구가 되기 때문이다. 전문가 가중치는 잔차 벡터 양자화로 저장돼 가중치당 3.00비트를 쓰고, 행렬은 아예 전개되지 않는다. 반면 몸통은 4·8비트를 유지하는데, 실제로 3비트 몸통을 만들어 측정하자 출력이 붕괴했다. 학습 단계의 양자화 인식 훈련이 전문가에만 적용됐기 때문이다.
병목은 산술이 아니라 저장장치와 램이다
WASTE는 정확성 면에서 엄격히 검증됐다. 모든 레이어가 파이토치 레퍼런스와 대조됐고, 최종 로짓은 3.6e-06까지, 비전 타워는 자체 오라클과 2.3e-06까지 일치한다. 성능의 실체는 명확하다. 토큰 하나가 92개 레이어에서 각각 16명의 전문가, 총 17GB를 읽는다. 내장 SSD는 12.78GB/s로 무리 없이 스트리밍하지만, 같은 데이터를 USB 외장 인클로저(0.94GB/s)로 읽으면 토큰 하나에 13초가 걸린다. 변환은 반드시 내장 NVMe에 하고 외장 디스크는 다운로드 용도로만 쓰라는 권고가 나오는 이유다. 전문가 읽기를 산술 연산과 겹쳐 처리해 약 1.6배를 벌었지만, 그래도 읽기가 디코드 한 단계의 55%를 차지하고 산술은 27%에 그친다. 남은 개선은 커널을 다시 손보는 것이 아니라 더 빠른 디스크나 더 많은 램이다.
램 활용에는 뜻밖에 좁은 창이 있다. 27.28GB의 상주 몸통이 사실상 램 하한선을 결정하며, 64GB 기기에서 엔진은 스스로 46GB 예산에 17.56GB의 전문가 캐시를 잡는다. 실용적 처리량은 캐시가 한 토큰의 작업 집합을 겨우 담아내는 46GB 부근에서 열리지만, 52GB에 이르면 기기가 페이징을 시작하며 닫힌다. 예산 안에 있어도 OS가 캐시를 페이지 아웃하면 '적중'이 디스크 읽기가 아니라 페이지 폴트로 바뀌기 때문이다. 통제할 수 없는 캐시는 캐시가 아니라는 것, 그래서 엔진은 램을 아끼기보다 비워 확보하려 애쓴다는 것이 이 설계의 교훈이다. 32GB 기기도 모델을 열 수는 있으나 심하게 페이징하므로, 현실적 요구 사양은 64GB다.
실무자에게 남는 질문은 실현 가능성이 아니라 엔지니어링
K3의 어텐션도 이 스트리밍 전략과 맞물려 있다. 3:1 하이브리드 구조로, 커지는 KV 캐시 대신 고정 크기의 순환 상태를 유지하는 킴 델타 어텐션과, 512폭 잠재 벡터만 캐시하는 게이트형 다중 헤드 잠재 어텐션(MLA)을 섞었다. 이 덕분에 로짓은 1.2e-05까지 동일하면서 캐시는 53배 줄어, 4K 문맥에서 11.25GB가 0.21GB가 된다. 128K 토큰에서 확장 레이아웃이 360GB를 요구하는 반면 잠재 방식은 7.2GB로 끝나, 긴 문맥이 애초에 가능해진다. 이미지 입력은 별도의 마법이 아니라 같은 길이의 텍스트로 과금된다. 1024개 패치 인코딩에 15.7초, 그렇게 생긴 256개 위치가 92개 MoE 레이어를 통과하는 데 731초가 든다.
WASTE의 포맷과 엔진은 K3에 깊게 종속돼 있지 않다. 테라바이트급 디스크를 내주기 전에 시험해 보고 싶다면 같은 엔진으로 Kimi-Linear-48B-A3B-Instruct를 19GB 컨테이너, 1.87GB 하한선에서 초당 10.7토큰으로 돌릴 수 있다. 2.78조에서 스트리밍되는 구조라면 48B에서는 여유롭게 흐른다는 뜻이다. 실무 관점에서 이 프로젝트가 여는 것은 분명하다. 네트워크도, 토큰당 청구서도 없이, 어떤 데이터도 기기를 떠나지 않는 상태로 최전선급 모델을 돌리는 선택지다. 'API로 그 데이터를 보내면 안 된다'와 '여기서 돌려라'의 차이다. 물론 초당 반 토큰이라는 속도, 좁은 램 활용 창, 저장장치 대역폭에 대한 강한 의존은 오늘의 실무 배치를 제약하는 명백한 한계다. 다만 저자들의 표현대로, 이제 남은 문제는 실현 가능성이 아니라 엔지니어링이라는 점이 이 시연의 진짜 메시지다.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공