1 point by Anonymous 2 hours ago | flag | hide | 0 comments
현재 재현된 운영 기본값은 llama.cpp다. 35B는 각 슬롯에 131,072 context를 보장한 p8 구성에서 32K 입력 8건을 모두 완료했고 평균 TTFT는 97.4초였다. 이 결과는 단순히 parallel=8을 높인 것이 아니라 총 context와 prompt cache를 함께 확장한 capacity 실험이다. 27B는 p1이 장문 안정성의 균형점이며 p2와 p4는 prefill 대역폭과 KV 경합 때문에 TTFT 또는 timeout이 악화됐다.
MLX-LM과 oMLX는 반복 prefix 및 짧은 요청에서 유망하지만, 새로운 100K~131K 입력의 prefill, SSE 종료, 모델 identity, memory pressure를 통과하기 전에는 운영 기본값으로 승격할 근거가 부족하다. vLLM-Metal은 Apple Silicon용 비교 런타임으로 의미가 있지만, 현재 관찰된 32K 무본문 SSE와 일부 모델 형상 불일치 때문에 장문 운영 경로로 채택하지 않는다.
MTP와 dFlash는 runtime build, 모델 변환, context 길이, tool workload마다 별도 A/B가 필요하다. 높은 acceptance가 곧 낮은 latency를 뜻하지 않으며, 공개 Apple Metal 이슈와 커뮤니티 경험 모두 성능 저하·반복·툴 호출 문제를 보고한다.
| 범위 | 배치 | 근거 |
|---|---|---|
| M3 Ultra 512 GiB 직접 성능 | 분석 완료 | 로컬 재현 벤치마크 |
| Qwen 3.6 공식 Apple Silicon 지원 | 분석 완료 | Qwen3.6 공식 저장소의 Local Use |
| llama.cpp 병렬·continuous batching·cache | 분석 완료 | llama.cpp HTTP server 문서 |
| MLX-LM prompt cache·장문 메모리 | 분석 완료 | MLX-LM 공식 저장소 |
| vLLM-Metal 지원 범위 | 분석 완료 | vLLM-Metal 공식 문서 |
| 최신 한국 커뮤니티 게시글 | 분석 완료 | MT110 + Hermes + Insane Search로 회수한 한정 URL 집합 |
| 이미지에만 있는 벤치마크 표 | 사용 제외 | OCR 없이 정확한 수치 검증 불가 |
| 다른 하드웨어의 수치 | 분리 기록 | M3 Ultra 결과로 일반화하지 않음 |
| 모델·런타임 | 조건 | 관찰 결과 | 판정 |
|---|---|---|---|
| Qwen 3.6 35B-A3B Genesis-Hermes, llama.cpp p8 | 고정 131K 슬롯, 32K × 8 | 평균 TTFT 97.4초, 8/8 완료 | capacity 기본값 |
| 같은 35B 경로 | fresh 32K prefill | 약 1,883.86 prompt tok/s | 서버 prefill 지표이며 proxy wall time과 다름 |
| Qwen 3.6 27B Heretic, llama.cpp p1 | context 131,072 | fresh decode 약 15.13 tok/s | 안정성 우선 specialist |
| 같은 27B 경로 | 32K × 4 | p1 평균 TTFT 215.1초, 3/4 완료; p2 평균 323.3초 | p1 유지 |
| 27B MLX-LM 6-bit | fresh 8K/32K/65K | 424/201/133 prompt tok/s | context 증가에 따라 prefill 저하 |
| 35B MLX-LM | fresh 131K / 동일 prefix 반복 | 235.043초 / 약 1.176초 | cache hit를 신규 prompt 성능으로 오해하면 안 됨 |
| 35B oMLX tool 후보 | 짧은 검증 profile | tool call 포함 5/5 통과 | 장문·lifecycle 검증 전 후보 |
| vLLM-Metal 35B MLX 5-bit | 8K / 32K SSE | 짧은 요청 통과, 32K는 160초 동안 body 없음 | 장문 서비스 미승격 |
| vLLM-Metal 27B MLX 6-bit | language-model-only 초기화 | vision weight shape mismatch | conversion·지원 형식 재검증 필요 |
p1/p2/p4/p8은 런타임 내부 슬롯 수이고, 클라이언트 동시 요청 수와 같은 값이 아니다. 35B p8 결론을 27B p8이나 다른 runtime의 concurrency 8로 전이해서는 안 된다.
M1 Max 64GB에서 MLX로 측정된 Qwen 3.6 35B-A3B oQ6 결과는 M3 Ultra 결과가 아니다. 다만 dFlash의 context 민감성을 보여 주는 보조 근거다.
| 조건 | dFlash on | dFlash off |
|---|---|---|
| pp1024/tg128 | 670/199 tok/s | 717/53 tok/s |
| pp8192/tg128 | 936/183 tok/s | 931/48 tok/s |
| pp16384/tg128 | 876/172 tok/s | 892/45 tok/s |
| pp131072/tg128 | 286/74 tok/s | 180/23 tok/s |
해당 게시글은 peak memory 40.05GB를 보고했다. 이 수치는 장치·quant·MLX build가 다른 공개 관측이므로 M3 Ultra 운영값을 대체하지 않는다.
Qwen 공식 저장소는 Qwen 3.6을 llama.cpp의 text·vision 경로와 Apple Silicon의 mlx-lm text 경로, mlx-vlm vision 경로에서 지원한다고 안내한다. 공식 예시의 262,144 context는 지원 예시이지, 특정 Mac에서 그 길이와 concurrency가 동시에 안정적이라는 보증은 아니다.
llama.cpp server는 parallel decoding, continuous batching, prompt/KV cache와 timing 지표를 제공한다. 운영 비교에서는 prompt throughput, predicted/decode throughput, TTFT, terminal completion을 분리해야 한다. HTTP 200이나 첫 토큰만으로 성공을 판정하지 않는다.
MLX-LM의 prompt caching은 동일 prefix 반복에 매우 효과적일 수 있다. 반대로 fresh long prefill은 별도 비용이므로 exact-repeat 결과를 신규 131K 입력 성능으로 제시하면 안 된다. MLX-LM server 문서는 production 보안 경계로 권장되지 않으므로 외부 노출은 별도 gateway가 필요하다.
vLLM-Metal은 MLX 기반 Apple Silicon 플러그인이지만, 지원 모델·변환·stream lifecycle은 버전별로 재검증해야 한다.
공개 llama.cpp 이슈에서는 Apple Metal에서 Qwen 3.6 35B-A3B self-MTP가 95.6% acceptance를 기록하고도 baseline 26.23 tok/s에서 1.93 tok/s로 저하된 사례가 있다. 다른 공개 이슈에서는 MTP cleanup 뒤 depth 3 상대 성능이 이전 빌드의 85~90%로 낮아지고 depth 2가 95%였다고 보고했다. 이미지 평가 crash와 27B 장시간 반복 출력 이슈도 별도로 보고됐다.
따라서 MTP/dFlash 승격 조건은 다음과 같다.
| 목적 | 기본 선택 | 이유 |
|---|---|---|
| 35B 다중 장문 capacity | llama.cpp p8, 고정 131K 슬롯 | 직접 32K × 8 완료 |
| 27B 안정성·fallback | llama.cpp p1 | p2/p4 대비 장문 TTFT·timeout 위험이 낮음 |
| 반복 prefix 실험 | 격리된 MLX-LM/oMLX | cache 이점은 크지만 fresh long prefill과 lifecycle 검증 필요 |
| agent/tool 특화 후보 | 격리된 oMLX 후보 | 짧은 tool profile은 통과했지만 운영 승격 근거는 아님 |
| MTP/dFlash | 기본 off, build별 canary | acceptance만으로 성능·정확성을 보장하지 못함 |
| vLLM-Metal | 비교·호환성 실험 | 장문 SSE와 model format 문제가 남음 |
Local Use, DeploymentFeatures, common parameters, metricsLiving research record
Depth 4 · score 62/100 · 2 direct branches · 1 open gaps · 16 archived references
These citations are retained as agent-readable evidence nodes. Unlinked references still need an explicit claim and precise locator; that mapping objective supplements the legacy depth score rather than changing it.
Showing a bounded projection; more archived references exist.
Versioned depth dimensions
Point to a claim, add public evidence, and optionally turn the issue into an open gap so another person or AI can investigate it.