TL;DR
Hybrid Compute는 Cloud 모델이 연구와 추론을 맡고 Mac의 Local 모델이 개인 파일과 앱을 처리하는 구조이며, 두 작업이 자연스럽게 이어지려면 Local Inference의 Prompt 처리와 Token 생성 속도가 충분히 높아야 합니다. Lily는 Qwen3.6-35B-A3B와 Apple silicon에 맞춘 Rust Runtime, Custom Metal Kernel을 한 프로세스에 결합하고 PyTorch와 MLX를 실행 경로에서 제외했습니다. M5 Max에서 256~128K 토큰의 10개 길이를 평균한 결과 MLX-LM보다 Prefill은 1.23배, Decode는 1.35배 높았고, 4K 조건에서는 각각 초당 5,749.9토큰과 186.6토큰을 기록했습니다. 핵심은 MoE Routing과 Gated DeltaNet State를 GPU에 남기고, Q4 Weight를 필요한 순간에만 복원하며, GQA의 KV 데이터를 재사용하고, Prefill과 Decode를 서로 다른 GPU 경로로 실행한 데 있습니다.
빠른 이해
새로운 점
범용 MLX-LM 스택 대신 Qwen3.6-35B-A3B의 구조와 Apple silicon의 Matrix·Vector·Memory 경로를 하나의 Rust Runtime에서 조정하는 전용 Local Inference Engine입니다.
핵심 메커니즘
Prompt 단계에서는 여러 Token Row에 Weight를 재사용하는 Matrix-Matrix 경로와 Neural Accelerator를 사용하고, Q4 Weight를 Grouped GEMM 내부에서 Tile 단위로 Dequantization합니다. GPU가 MoE Histogram·Prefix Scan·Scatter를 연속 처리하며 Expert Routing을 유지하고, Gated DeltaNet State를 Register에 남겨 순차 Scan을 수행합니다. Token 생성 단계에서는 Batch-1 Matrix-Vector 경로와 GPU 상주 Token Slot을 사용하고, Kernel Fusion·Concurrent Scheduling·Coalesced KV Load·GQA Packing으로 Token당 Memory Traffic과 동기화를 줄입니다.
핵심 수치
- 평균 Prefill 처리량: Lily 4,156토큰/s, MLX-LM 3,388토큰/s, 1.23배- 256~128K 토큰의 동일 가중치 Checkpoint와 10개 Prompt 길이 평균
- 평균 Decode 처리량: Lily 170.0토큰/s, MLX-LM 126.4토큰/s, 1.35배- 256~128K 토큰의 10개 Context 길이 평균
- 4K Prompt Prefill: Lily 5,749.9토큰/s, MLX-LM 4,737.5토큰/s- M5 Max 40코어 GPU, 128GB Unified Memory
- 4K Context Decode: Lily 186.6토큰/s, MLX-LM 140.9토큰/s- M5 Max 40코어 GPU, 128GB Unified Memory
- 긴 Context Decode 개선: 32K 7.7%, 64K 27.4%, 128K 40.2%- Fixed-Block Attention Path를 General Path와 비교
- 출력 일관성: Perplexity 0.04% 증가, Top-ranked Token 일치율 96.35%- 동일 Reference Prefix의 192개 위치 Teacher-Forced 비교
섹션별 상세
Lily와 실행 구조
Qwen 구조와 Prefill 경로
GPU 상주와 메모리 절감
Decode의 토큰 단위 최적화
한계와 전체 성능
용어 해설
- Mixture-of-Experts
- — 하나의 거대한 신경망 전체를 매번 실행하지 않고 여러 Expert 중 일부만 선택하는 구조입니다. Qwen3.6-35B-A3B는 256개 Expert 중 토큰마다 8개와 공유 Expert 1개를 활성화해 계산량을 줄입니다.
- Gated DeltaNet
- — 이전 정보를 고정 크기 Recurrent State에 압축하고 Gate와 현재 토큰의 Delta Update로 갱신하는 구조입니다. 토큰이 앞선 토큰의 상태에 순차적으로 의존하므로 GPU Register에 상태를 유지하는 최적화가 중요합니다.
- Grouped-Query Attention
- — 여러 Query Head가 하나의 Key-Value Head를 공유하는 Attention 방식입니다. Qwen은 Query Head 16개와 KV Head 2개를 사용하며, KV Cache를 공유해 저장량과 반복 읽기를 줄입니다.
- Prefill과 Decode(Prefill and Decode)
- — Prefill은 입력 Prompt의 여러 토큰을 한꺼번에 처리하는 단계이고, Decode는 한 번에 새 토큰 하나를 생성하는 단계입니다. 전자는 행렬-행렬 연산, 후자는 행렬-벡터 연산과 메모리 대역폭의 영향을 크게 받습니다.
- 그룹 단위 Affine 4비트 양자화(Groupwise Affine 4-bit Quantization)
- — 가중치를 4비트 정수 코드로 저장하고 64개 단위 그룹마다 bfloat16 Scale과 Bias를 함께 두는 방식입니다. Qwen의 가중치 규모를 약 70GB에서 19.4GB Checkpoint로 줄여 Mac 통합 메모리에 상주시키는 기반이 됩니다.
- 통합 메모리(Unified Memory)
- — CPU와 GPU가 하나의 물리적 메모리 풀을 함께 사용하는 구조입니다. 모델을 별도 GPU 복사본 없이 유지할 수 있지만 가중치와 중간값을 읽고 쓰는 작업은 여전히 메모리 대역폭을 소비합니다.
기술
- Apple silicon
- Lily
- Qwen3.6-35B-A3B
- MLX
- MLX-LM
- Rust
- Metal
- Metal 4
- Mixture-of-Experts (MoE)
- Gated DeltaNet
- Grouped-Query Attention (GQA)
- Q4 quantization
- M5 Max
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.