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

M1은 ChatGPT보다 먼저 설계됐어

~13 min · mouse, history, m1, chatgpt, design-lead-time, model-sizes

Level 0스펙 시트 훑는 사람
0 XP0/91 lessons0/19 achievements
0/100 XP to next level100 XP to go0% complete
"750일. 배치가 워크로드를 기다린 시간이야."

2년, 거기에 설계 주기

M1은 2020-11-10에 출하됐어. ChatGPT는 2022-11-30에 공개됐어. 앞 레슨의 타임라인이 계산한 대로 750일 뒤. 그리고 칩은 출하되는 해에 설계되지 않아. M1만 한 복잡도의 프로세서는 출시 몇 년 전에 정의되니까, 맥에 메모리 풀 하나를 준 결정은 공개적으로 볼 수 있는 제일 큰 언어 모델이 연구 논문이던 때 내려졌어. GPT-3는 M1보다 여섯 달 전인 2020년 5월에 기술됐고, 데이터센터에서 도는 1750억 파라미터 모델이었어. 70억 파라미터 후손이 노트북에서 돌 거라는 생각은 생각으로도 존재하지 않았어. 누구나 돌려볼 그런 모델이 공개된 적이 없었으니까.

그 시절 애플 자체의 머신러닝 이야기는 온디바이스고 작았어. 뉴럴 엔진은 카메라 처리와 앱에 내장된 모델용으로 나왔고, 뉴럴 엔진에서 트랜스포머를 돌리는 애플의 2022년 연구는 폰 메모리에 들어가는 모델을 겨냥했어. 2020년부터 2023년까지 통합 메모리를 큰 모델을 담는 방법으로 규정하는 애플 문서는 없어. 그 규정은 2023년 12월 MLX와 함께 도착하고, 커뮤니티가 이미 아홉 달째 그러고 있던 뒤에 도착해.

뭐가 어디에, 언제 들어갔나

이 우연을 제일 분명하게 보는 방법은 메모리 용량을 연도별 모델 크기에 나란히 놓는 거야. 표는 공개된 날짜가 붙은 공개된 사실이야. 소비자 GPU 메모리, 맥 통합 메모리, 그리고 사람들이 돌리고 싶어 한 공개 모델의 크기.

연도최대 소비자 GPU 메모리최대 맥 통합 메모리사람들이 돌리고 싶어 한 공개 모델 (bf16 크기)어디에 들어갔나증거
202024 GB (RTX 3090)16 GB (M1)GPT-3 (미공개. 175B ≈ 350 GB)책상 위 어디에도벤더 스펙, OpenAI 논문
202124 GB64 GB (M1 Max)벤더 스펙
202224 GB (RTX 4090)128 GB (M1 Ultra)벤더 스펙
202324 GB192 GB (M2 Ultra)LLaMA 65B ≈ 130 GB, 7B ≈ 14 GB7B는 4비트로 어느 카드에나, 65B는 맥의 풀에만Meta 공개, 산수
202424 GB192 GB (M2 Ultra)405B 밀집 ≈ 810 GB, 4비트 ≈ 243 GB책상 위 어디에도 못 들어가. 이 해엔 맥도 졌어벤더 스펙, 산수
202532 GB (RTX 5090)512 GB (M3 Ultra)750B급 혼합 모델: GLM-5.3(753B) bf16 ≈ 1.5 TB, 4비트 ≈ 450 GB. DeepSeek-V4.1-Flash는 출하 그대로 510 GB512 GB 맥에만, 그것도 아슬아슬하게. 85% 어림은 안 된다고 하고 큰 모델 트랙의 실측 작업 집합은 된다고 해. 아니면 랙벤더 스펙, 이 집의 저장소 목록

메모리 칸 둘을 읽어. 소비자 GPU 메모리는 5년 동안 24 GB에 앉아 있었고 맥의 풀은 16에서 512로 갔어. 어느 벤더도 모델을 겨냥하지 않았어. NVIDIA 소비자 카드는 게임 제품이고, 애플의 풀은 비디오와 3D 때문에 자랐어. 하지만 2023년에 공개 모델이 그 둘 사이 크기로 도착했을 때, 메모리가 계속 자라 온 기계가 그게 들어가는 기계였어. 그게 쥐야. 2022년에 누구나 그릴 수 있었던 표에 보이고, 아무도 안 그렸어. 그걸 흥미롭게 만드는 줄이 아직 공개되지 않았으니까.

Code

what_fit_where.py — 연도별 메모리 용량 대 공개 모델 크기·python
#!/usr/bin/env python3
"""Which desk-class machine could hold which open model, by year, at bf16 and
at 4 bits (~0.6 bytes/param). Public specs and release sizes; the point is
the shape, not the exact byte."""

GPU_GB = {2020: 24, 2021: 24, 2022: 24, 2023: 24, 2024: 24, 2025: 32}     # RTX 3090 / 4090 / 5090
MAC_GB = {2020: 16, 2021: 64, 2022: 128, 2023: 192, 2024: 192, 2025: 512}  # M1 / M1 Max / M1 Ultra / M2 Ultra / M3 Ultra
MODELS = [  # year available to run, name, parameters (B)
    (2023, "LLaMA 7B", 7), (2023, "LLaMA 65B", 65), (2024, "a 405B dense", 405), (2025, "a 753B mixture (GLM-5.3)", 753),
]

for year, name, params in MODELS:
    bf16, q4 = params * 2, params * 0.6
    gpu, mac = GPU_GB[year], MAC_GB[year]
    fit = lambda gb, cap: "fits" if gb <= cap * 0.85 else "no"
    print(f"{year} {name:16} bf16 {bf16:6.0f} GB  4-bit {q4:6.0f} GB | "
          f"GPU {gpu:3d} GB: bf16 {fit(bf16, gpu):4} 4-bit {fit(q4, gpu):4} | "
          f"Mac {mac:3d} GB: bf16 {fit(bf16, mac):4} 4-bit {fit(q4, mac):4}")

print("\nconsumer GPU memory 2020->2025: 24 -> 32 GB; Mac unified memory: 16 -> 512 GB")

External links

Exercise

what_fit_where.py를 돌리고 네가 맥을 산 해의 줄을 추가해. 풀 크기, 그해 최대 소비자 GPU, 네가 실제로 돌리고 싶었던 제일 큰 공개 모델. 네 모델은 어느 칸에, 어느 정밀도로 들어갔어? 그다음 그 모델 때문에 기계를 샀는지, 아니면 모델을 나중에 찾았는지 한 문장으로 써.
Hint
대부분 소유자의 정직한 답은 '모델을 나중에 찾았다'야. 집 규모의 쥐지. 집주인의 512 GB 기계 두 대가 예외야. 2025년 3월에, 쥐가 이미 보인 뒤에, 다른 어디에도 안 들어가는 바로 그 줄을 위해 샀어.

Progress

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

댓글 0

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

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