-
DFlash 1 M4 Max 실측 — 27B 1.83×AI Agent 2026. 8. 24. 19:38728x90반응형

DFlash 1 suite summary에서 27B는 28.33에서 52.84 tok/s로 집계됐습니다. 50은 10문항×5회 paired prompt-run 관측치이며 Greedy parity는 측정하지 않았습니다. DFlash 1을 Apple M4 Max에서 직접 돌렸습니다. Qwen3.5 4B는 1.29배, 9B는 1.23배, 27B는 1.83배 빨라졌습니다. 모델이 커질수록 일정하게 좋아진 결과는 아니었고, 눈에 띄는 차이는 27B에서 나왔습니다.
27B의 디코딩 속도는 28.33 tok/s에서 52.84 tok/s로 올랐습니다. 피크 메모리는 15.36GB에서 19.88GB로 늘었습니다. 다만 이번 실행에서는 Greedy token parity를 검사하지 않았습니다. 그래서 이 결과를 출력 동일성이 확인된 가속이라고 부르지는 않습니다.
측정 대상은
dflash-mlx==0.1.8의 DFlash 1입니다. Inco AI가 발표한 DFlash 2 서버 수치를 재현한 글은 아닙니다. 당시 model·dataset revision을 기록하지 못했기 때문에 공개본도 exact reproduction이 아닌 protocol replay로 표시했습니다. 재실행 자료는 DFlash 1 공개 runner에 있습니다.무엇을 확인했나
추측 디코딩(speculative decoding)은 작은 draft model이 다음 토큰을 먼저 제안하고, 큰 target model이 여러 토큰을 한 번에 검증하는 방식입니다. 제안이 잘 맞으면 target 호출 횟수를 줄일 수 있습니다.
확인할 질문은 하나였습니다. 같은 M4 Max에서 baseline과 DFlash 1을 같은 prompt token IDs로 차례대로 실행했을 때 Qwen3.5 4B·9B·27B의 디코딩 속도, 수락 길이, 메모리가 얼마나 달라지는지 봤습니다.
어떻게 측정했나
항목 조건 하드웨어 Apple M4 Max, 64GB 통합 메모리, 40-core GPU 운영체제 macOS 26.6.2, build 25G83 런타임 Python 3.14.6, dflash-mlx==0.1.8,mlx==0.32.1,mlx-lm==0.31.3target mlx-community/Qwen3.5-4B-4bit,9B-4bit,27B-4bitdraft 크기별 z-lab/Qwen3.5-*B-DFlash체크포인트prompt GSM8K test 첫 10문항, 고정 순서, chat template 생성 max_tokens=256, block 16, adaptive verify반복 prompt마다 baseline→DFlash 한 쌍을 5회, 모델당 50 paired prompt-runs 첫 실행은 모델별 probe로 돌린 뒤 결과에서 뺐습니다. 본 측정은 10문항에 대해 5회 반복했고, 각 반복 사이 cooldown은 20초였습니다. 50개 행은 같은 10문항을 다섯 번 관측한 값이므로 독립 n=50으로 보지 않았습니다.
당시 target·draft model revision과 GSM8K dataset revision은 기록하지 못했습니다. 공개본에서도 이 사실을
NOT_RECORDED로 남겼습니다. 현재 dataset에서 받은 10문항이 당시 SHA-256과 다르면 runner가 중단되지만, 모델 bytes까지 같은 exact reproduction은 보장할 수 없습니다.기록하지 못한 값과 집계 규칙은 DFlash 1 protocol에도 그대로 적었습니다.
결과
속도 점 추정치는 실험 도구가 저장한 suite summary입니다. prompt별 5회 중앙값을 구한 다음 10개 prompt의 중앙값을 다시 계산합니다.
모델 baseline DFlash 1 speedup (row SD) 확정 tokens/cycle 피크 메모리 baseline → DFlash 1 Qwen3.5-4B 148.58 tok/s 192.80 tok/s 1.29× (0.10) 5.714 2.65 → 3.88GB Qwen3.5-9B 89.57 tok/s 109.65 tok/s 1.23× (0.09) 5.333 5.15 → 7.88GB Qwen3.5-27B 28.33 tok/s 52.84 tok/s 1.83× (0.24) 6.170 15.36 → 19.88GB 괄호 안 표준편차는 50개 paired row speedup의 population SD입니다. suite summary와 집계 단위가 다르므로 독립 실험의 불확실성으로 해석하지 않았습니다.
tokens/cycle은 한 verification cycle에서 최종 출력으로 확정된 토큰 수입니다. draft 수락 비율은 0.81–0.84였으며 정답률을 뜻하지 않습니다.27B에서만 차이가 크게 보였습니다
4B와 9B의 speedup은 1.3배 안팎이었습니다. 27B는 1.83배로 차이가 컸습니다. 세 모델의 순서가 단조롭지 않았기 때문에 모델 크기만 보고 DFlash 이득을 예상하기는 어렵습니다.
메모리도 같이 늘었습니다. DFlash 1을 켰을 때 피크 메모리 증가는 4B 1.23GB, 9B 2.73GB, 27B 4.52GB였습니다. 제 M4 Max 64GB에서는 27B를 올릴 여유가 있었지만, 메모리가 빠듯한 장비라면 속도 숫자만 보고 켜기 어렵습니다.
남은 것
이번 결과는 M4 Max 64GB,
dflash-mlx0.1.8, Qwen3.5 int4, GSM8K 10문항에 한정됩니다. 긴 context, code task, 다른 Apple Silicon 세대는 측정하지 않았습니다. 모든 raw run의 thermal 상태도UNKNOWN이어서 발열 영향을 배제할 수 없습니다.가장 큰 빈칸은 Greedy parity입니다. baseline과 DFlash 1의 token IDs 또는 hash를 저장하지 않았습니다. 다음에 같은 프로토콜을 다시 돌린다면 속도표보다 먼저 token sequence 비교를 붙일 생각입니다.
728x90반응형'AI Agent' 카테고리의 다른 글
나의 AI 사용량 체크 - Tokscale AI 사용량 점검 - Claude Code·Codex 사용량 확인하는 법 (0) 2026.08.25 DFlash 2 M4 Max 디코딩 실측 — 2.02배, Greedy 5/8 불일치 (0) 2026.08.24 DeepSeek는 왜 유명해졌나? 557.6만 달러의 범위부터 봤습니다 (0) 2026.08.24 되돌릴 수 없는 일을 맡기기 전에 그은 선 (0) 2026.08.12 인수인계 메모가 요약으로 끝나면 다시 시작 못 한다 (0) 2026.08.11