본문 바로가기
C.W.K.
Lesson 03 of 06 · published

용량은 한 번에 정해져

~15 min · memory, capacity, soldered, configuration, dram-shortage, fit

Level 0스펙 시트 훑는 사람
0 XP0/91 lessons0/19 achievements
0/100 XP to next level100 XP to go0% complete
"맥에서 메모리 질문은 구성기가 딱 한 번 묻고, 기계 수명 내내 그 답으로 가."

구성기가 유일한 슬롯이야

2025년 Mac Studio의 애플 기술 사양 페이지엔 M3 Ultra에 대해 이렇게 적혀 있어. "96GB 통합 메모리. 구성 가능: 256GB." 2025년 3월에 같은 칩은 512 GB 옵션으로 출시됐고, 이 집은 두 대를 샀어. 2026년엔 512 GB 줄이 페이지에서 사라졌어. 애플은 아무 발표도 안 했고, 2026년 3월 언론 보도는 철회를 DRAM 부족 탓으로 돌렸는데, 그건 언론의 설명이지 벤더의 설명이 아니야. 2026년 8월에 발표된 M5 Ultra Mac Studio는 다시 512 GB를 올렸고, 각주가 하나 붙어. "512GB 통합 메모리 Mac Studio는 10월 말에 출시." 그러니 천장은 512 GB고, 18개월 동안 512 GB였고, 그 기간 일부엔 팔지 않았어.

산업 수준에서 '한 번에 정해진다'는 게 이 뜻이야. 산 뒤에 맥에 메모리를 못 더할 뿐 아니라, 원하는 구성을 원할 때 항상 살 수 있는 것도 아니야. 메모리가 다른 모두와 같은 시장에서 조달하는 납땜 부품이니까. 2026년 메모리 시장은 원인이 아니라 맥락이고, 라벨 붙은 줄 하나를 받을 만해. TrendForce는 LPDDR4X와 LPDDR5X 계약 가격이 "1Q26에 전분기 대비 약 90% 급등"하고 LPDDR5X가 2분기에 다시 "78-83%" 오를 거라고 전망했어. 애플 최고경영자는 2026년 7월 실적 발표에서 이걸 "메모리 가격의 100년 만의 홍수"라고 불렀고, NVIDIA는 "전 세계적으로 제한된 메모리 공급 때문에" DGX Spark 가격을 700달러 올렸어. 메모리를 납땜하는 모두가 값을 치르고 있고, 애플은 가격 홍수가 흐르는 동안 구성 하나를 거뒀어.

뭐가 들어가나, 추정 대신 실측으로

mlx 퀘스트가 모델이 들어가는지 보는 냅킨 산수를 가르쳐. 파라미터 수 곱하기 가중치당 바이트 곱하기 오버헤드 계수. 이 퀘스트는 그걸 반복하는 대신 링크해. 이 레슨이 더하는 건 측정이야. 실험 트랙은 모델마다 짧은 프롬프트에서, 그리고 office에선 32K 컨텍스트의 10, 50, 90%에서 피크 메모리를 기록했어. 구성기 결정은 그 숫자로 내려야 해. KV 캐시와 런타임의 작업 버퍼는 냅킨이 잊는 진짜 메모리니까.

모델 (4비트)디스크피크, 209토큰 프롬프트피크, 3.2K 컨텍스트피크, 16K 컨텍스트피크, 29K 컨텍스트증거
Qwen3.5-9B5.95 GB5.56 GB6.77 GB8.13 GB9.39 GB실측, office, 2026-09-15
Qwen3.5-27B16.05 GB15.85 GB18.21 GB20.46 GB22.57 GB실측
Qwen3.5-35B-A3B (MoE)20.39 GB19.90 GB———실측 (사다리만)
Llama-3.2-1B0.70 GB0.95 GB1.63 GB1.97 GB2.38 GB실측

냅킨이 못 하는 말을 표가 둘 해. 첫째, 디스크 크기로는 24 GB Air에 '들어가는' 27B 모델, 그리고 실제로 짧은 프롬프트에선 피크 15.78 GB로 거기서 돌았던 모델이 29K 토큰 컨텍스트에선 22.6 GB가 필요해. Air의 17.8 GiB GPU 작업 집합 위야. 같은 모델이 대화가 얼마나 긴지에 따라 들어가기도 안 들어가기도 해. 둘째, 증가는 모델에 비례하지 않아. 209토큰 프롬프트에서 29K로 가면서 1B 모델은 1.4 GB, 27B는 6.7 GB 자라. 캐시는 가중치 개수가 아니라 아키텍처의 토큰당 KV 바이트에 달렸으니까. 물리 트랙이 그 기울기를 재. 여기선 용량은 디스크의 파일이 아니라 네가 붙들 제일 긴 컨텍스트에 맞춰 골라야 한다는 것만 알면 돼.

이 집이 쓰는 규칙

2년 뒤에 돌릴 걸로 예상하는 모델을, 실제로 쓰는 컨텍스트에서 돌릴 만한 풀을 사고, 운영체제의 예약분(다음 레슨)과 기계가 하는 다른 일을 위한 여유를 더해. 집주인의 버전은 더 직설적이고 모듈러 트랙에 나와. 봉인된 패키지는 미래를 틀린 값을 제값으로 받으니, 높게 잡아라. 이 집의 맥 두 대가 천장에 있는 건 제일 큰 오픈 체크포인트가 4비트로 들어가기 시작하는 자리가 천장이라서야. 큰 모델 트랙이 진짜 파일로 그 산수를 해.

Code

fits_at_context.py — 디스크 크기가 아니라 실측 피크에 대고 들어가는지 보기·python
#!/usr/bin/env python3
"""Which fleet Mac can hold which model at which context, judged against the
measured peak memory (office, 2026-09-15) and each Mac's recommended GPU
working set (read from mx.device_info() on the machine)."""

GIB = 2**30
WORKING_SET_GIB = {"office": 464.0, "music": 161.3, "pro2023": 107.5, "air": 17.8}   # measured

# peak GB observed: (short prompt, 3.2K, 16K, 29K tokens of a 32K window)
PEAK_GB = {
    "Qwen3.5-9B-4bit":  (5.56, 6.77, 8.13, 9.39),
    "Qwen3.5-27B-4bit": (15.85, 18.21, 20.46, 22.57),
    "Llama-3.2-1B-4bit": (0.95, 1.63, 1.97, 2.38),
}
CONTEXT = ("209 tok", "3.2K", "16K", "29K")

for model, peaks in PEAK_GB.items():
    print(model)
    for alias, ws in WORKING_SET_GIB.items():
        verdict = ["fits" if p * 1e9 / GIB <= ws else "NO" for p in peaks]
        print(f"  {alias:8} ws {ws:6.1f} GiB  " + "  ".join(f"{c}:{v}" for c, v in zip(CONTEXT, verdict)))

# air: the 27B fits at a short prompt (it ran: 6.09 tok/s) and does not at 16K or 29K.

External links

Exercise

네 맥의 작업 집합을 추가해서 fits_at_context.py를 돌려. 그다음 네가 제일 돌리고 싶은 모델을 골라, 실측 피크를 척도로 네가 실제로 쓰는 제일 긴 컨텍스트에서의 피크를 추정해. 질문 하나에 답을 적어. 구성기 앞에서 지금 가진 메모리 크기를 똑같이 골랐을까?
Hint
파라미터 수가 아니라 아키텍처로 스케일해. 순수 어텐션 모델의 캐시는 하이브리드보다 토큰당 몇 배 빨리 자라. 네 모델의 토큰당 KV 바이트를 모르면 물리 트랙이 config 파일에서 읽는 법을 보여줘. 그때까진 27B 줄이 보수적인 대리값이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.