처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.09.02 37

104GB 모델을 48GB 맥에서 돌린다: SSD에서 전문가를 스트리밍하는 slotstream

Hacker News 원문 보기

대형 언어 모델을 로컬에서 돌리려면 모델 전체가 메모리에 들어가야 한다는 것이 오랫동안 상식이었다. slotstream은 이 전제를 정면으로 흔든다. 125B 규모의 MoE(전문가 혼합) 모델인 Qwen3.8-Flash-Next는 4비트 양자화 상태에서도 디스크에서 103.8GB를 차지하지만, slotstream은 이 가중치를 SSD에서 필요한 만큼만 스트리밍하는 방식으로 그보다 훨씬 적은 메모리를 가진 맥에서 모델을 구동한다. Swift와 애플의 머신러닝 프레임워크 MLX로 짜인 단일 바이너리이며 파이썬 의존성이 없다. Ollama와 OpenAI 챗 API를 그대로 구현하기 때문에 Open WebUI, Ollama CLI, OpenAI SDK 같은 기존 도구가 수정 없이 붙는다.

메모리가 아니라 디스크가 먼저 문제다

요구 사양은 애플 실리콘, macOS 14 이상, 그리고 약 110GB의 여유 디스크다. 흥미로운 지점은 병목이 램이 아니라 저장 공간이라는 사실이다. 메모리가 얼마든 간에 가중치 파일을 담으려면 512GB 맥이 현실적인 하한선이 된다. 제작자는 이 점을 분명히 하기 위해 slotstream doctor 명령을 먼저 돌리라고 권한다. 이 명령은 다운로드를 시작하기 전에 해당 머신이 어떤 메모리 계획으로 돌아갈지, 그리고 디스크가 가중치를 담을 수 있는지를 출력한다. 다만 공개된 성능 표에서 실제 하드웨어로 측정된 값은 48GB 램(M5 Pro) 한 줄뿐이며, 더 작은 티어의 수치는 그 곡선에서 추정한 값이라는 점은 감안해야 한다. 작은 맥일수록 SSD 속도도 느리기 때문에 추정과 실제의 격차가 벌어질 수 있다.

가중치 다운로드 자체도 만만치 않다. 24개 파일 총 103.8GB를 한 번 받아야 하는데, 허깅페이스가 연결 수와 무관하게 전송 속도를 대략 36~57MB/s로 제한하기 때문에 약 400Mbps를 넘는 회선에서는 대기 시간이 내 인터넷이 아니라 허깅페이스에 달려 있다. 실제 설치에 35분이 걸렸고, 100Mbps 환경에서는 약 2시간 20분, 25Mbps에서는 약 9시간을 잡아야 한다. 다행히 중단은 안전하다. 재개하면 정확히 멈춘 지점부터 이어받고, 모든 파일은 바이너리에 컴파일된 sha256 해시로 검증되므로 잘리거나 손상된 다운로드가 엔진에 도달하지 못한다.

스트리밍 구조와 자동 크기 조정

핵심 아이디어는 모델 바이트의 분포에서 나온다. 전체 중 68GB는 라우팅되는 전문가(레이어당 512개, 토큰당 10개 활성)이고 32GB는 n그램 테이블이며, 상주해야 하는 밀집 트렁크는 3.8GB에 불과하다. slotstream은 전문가를 pread로 읽어 48개 레이어가 공유하는 고정 캐시 슬롯 풀에 올린다. 그래서 자주 쓰이는 레이어가 쉬는 레이어의 슬롯을 빌려 쓸 수 있다. 단순히 파일을 mmap하지 않는 이유도 명확하다. MLX는 메모리 매핑된 텐서의 일부만 실체화하지 못해 상위 10개 전문가를 고르는 연산이 512개 전문가 전체를 평가하게 되고, 결국 100GB가량을 통째로 로드하다 죽는다. 실제로 표준 로더는 48GB 머신을 48GB 스왑으로 몰아넣고도 토큰 하나 내놓지 못했다.

아무 플래그 없이 실행하면 slotstream이 스스로 크기를 정한다. 33GB, 램의 70%, Metal 작업 집합 한계에서 2GB 뺀 값 중 가장 낮은 것을 취하고, 다른 앱이 메모리를 실제로 점유하는 동안에는 더 줄인다. 33GB라는 상한은 인심이 아니라 측정된 곡선의 무릎이다. 1GB 단위로 훑어봤을 때 34~84GB 구간에서 디코딩이나 프리필이 더 빨라지지 않았기 때문에, 128GB 맥도 48GB 맥과 같은 계획을 받는다. 실행 중에는 15초마다 다시 점검해 요청 사이에 캐시를 늘리거나 줄이는데, 중요한 것은 출력이 캐시 크기와 무관하게 바이트 단위로 동일하다는 점이다. 4GB 캐시와 24GB 캐시의 그리디 디코딩 결과가 같다는 것이 상시 테스트로 걸려 있다. 캐시는 속도를 바꿀 뿐 출력을 바꾸지 않는다.

실무에서 따져야 할 한계

실제로 쓸 때 체감하는 축은 긴 프롬프트다. 첫 토큰이 나오기 전에 프롬프트 전체를 처리하기 때문에 8,000토큰짜리 입력은 48GB 맥에서 약 1분, 16GB 맥에서는 3분 넘게 기다려야 한다. 대신 한 대화 안에서는 이 비용을 한 번만 낸다. 후속 턴은 새로 추가된 부분만 프리필하므로 첫 토큰까지의 시간이 대화가 길어져도 평평하게 유지된다(8번째 턴에서 25.8초가 아니라 6.0초). 다만 재사용된 상태가 재계산과 비트 단위로 동일하지는 않아 두 토큰이 근소하게 겨루던 지점에서 응답이 달라질 수 있고, 정확한 재현이 필요하면 --no-prefix-cache로 끌 수 있다. 여유 있는 머신에서는 --mtp 투기적 디코딩도 켤 수 있는데, 모델에 딸린 드래프트 헤드가 다음다음 토큰을 예측해 한 번에 검증하며 첫 초안 적중률이 86%로 측정됐다. 이 헤드는 1.6GB를 고정으로 먹고 커뮤니티 체크포인트에서 해당 텐서가 빠져 있어 1.5GB짜리 일회성 변환이 필요하다.

컨텍스트는 프롬프트와 완성을 합쳐 32,768토큰으로 제한되고 한 번에 하나의 모델 프로세스만 돈다. 도구 호출, 이미지, JSON 스키마 출력, logprobs는 지원하지 않으며 조용히 무시되는 대신 명확한 400 오류를 돌려준다. 라이선스는 MIT이지만 가중치는 Qwen 커뮤니티 라이선스를 따른다. 요약하면 slotstream은 고사양 워크스테이션 없이도 100GB급 MoE 모델을 맥에서 실험할 길을 여는 도구이되, 넉넉한 SSD와 긴 프롬프트 대기 시간이라는 대가를 분명히 요구한다. 검증 배터리(Tools/verify.sh)로 가중치 출처, 파이썬 레퍼런스 대비 골든 값, 캐시 크기 간 바이트 동일성 등을 자동 확인한다는 점은 단일 하드웨어 측정이라는 한계를 어느 정도 보완해 준다.

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

파이썬으로 자동화를 시작해보세요

파이썬 기초부터 자동화까지 실전 강의.

파이썬 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.