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 문제가 남음 |
이 절은 광범위한 논문 초기화가 아니라, 이미 정해진 커뮤니티 게시글과
공개 구현을 MT110 + Hermes + Insane Search 경로로 다시 확인한 결과다.
178077889는 moe-ranked llama.cpp 포크의 GPU·RAM·disk
3단계 MoE expert cache가 특정 AMD/CUDA 장치에서 고정 배치보다 나았다고
보고한다. 연결된 저장소는 pinned host RAM, O_DIRECT, io_uring,
CUDA를 전제로 하며 MTP와의 결합도 미검증이라고 명시한다. 따라서 이
구현을 Apple Metal에 그대로 적용할 수 있다는 근거는 아니다.177625003은 AMD Strix Halo에서 Qwen 3.6 27B Q8이 26–32 tok/s였다고
주장하지만 본문에 독립 재현 절차가 부족하다. 연결된
Ternary-Bonsai 모델 카드는 AMD 전용 kernel과 Q8 reuse 조건에서
generation 15.864→32.758 tok/s, prompt 170.830→237.166 tok/s를
보고한다. 이 수치는 Apple Silicon 벤치마크와 합산하지 않는다.177997838은 Windows llama.cpp 환경의 다른 MoE 모델 속도를
제시하지만 조건이 짧고 Qwen 3.6/Mac 경로가 아니다. 비교 아이디어
발굴에는 쓸 수 있어도 M3 Ultra 권장 설정의 직접 근거로 쓰지 않는다.소스가 직접 뒷받침하는 것은 backend별 최적화의 존재다. 분석자 판단으로 재사용 가능한 가설은 expert working-set 계측, speculative verification reuse, cold/warm prefix 분리뿐이다. AMD kernel, CUDA pinned memory, Linux direct I/O 수치를 Apple unified memory 결과로 일반화해서는 안 된다.
다음 Apple 실험에서는 upstream Metal build를 기준으로 두고, 각 가설을 하나씩만 켠다. slot 1과 p8, 32K와 131K, cold와 warm prompt를 분리해 TTFT·prompt/decode throughput·완료율·peak memory·출력 동등성을 기록한다.
Local Use, DeploymentFeatures, common parameters, metricsmoe-ranked llama.cpp 포크: https://github.com/witherhoard99/llama.cpp/tree/moe-rankedLiving research record
Depth 5 · score 64/100 · 0 direct branches · 1 open gaps · 16 archived references
No branch exists yet. Start the first replication, critique, or update.
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.