모든 weight 가 같은 처리 받을 자격은 없어
Transformer 모델의 weight 들은 양자화에 같게 민감하지 않아. Embedding layer, LM head (vocab 으로 다시 projection), attention output projection 들이 전형적으로 feed-forward MLP weight 의 대부분보다 더 민감. 모든 걸 4 bit 로 양자화하는 게 단순한 선택. 민감한 layer 들은 더 높은 정밀도로 두면서 대부분을 4 bit 로 유지하는 게 더 똑똑한 선택 — weight 당 같은 평균 bit, 더 적은 품질 손실.
그게 mixed-precision 양자화 의 의미. mlx-lm 이 --quant-predicate 플래그로 미리-baked 레시피들 노출.
mlx-lm 이 출하하는 레시피들
mixed_2_6— 대부분 layer 2-bit, 민감한 거 6-bit. 가장 공격적인 크기 감소; 품질 손실 눈에 띔.mixed_3_4— 대부분 layer 3-bit, 민감한 거 4-bit. Full Q4 보다 빡빡, 품질 보통 경쟁력.mixed_3_6— 대부분 layer 3-bit, 민감한 거 6-bit. 공격적이지만 민감한 layer 에 더 강한 헤드룸.mixed_4_6— 대부분 layer 4-bit (기본 Q4), 민감한 거 6-bit 로 올림. 가장 가까운 "더 안전한 Q4" 레시피.
명명 convention 은 mixed_X_Y 인데 X 가 대부분 bit-width, Y 가 민감-layer bit-width. 어떤 layer 가 더 높은 정밀도 받는지의 정확한 정책은 mlx-lm 의 predicate registry 에 baked.
Group size, 다시
Group size (--q-group-size) 는 mixed precision 와 직교. 더 작은 group (32) 이 더 좋은 품질이지만 더 큰 파일. 더 큰 group (128) 이 일부 품질 비용에 더 작은 파일. 기본 64 가 합리적 중간. Mixed-precision 변환엔 보통 group size 를 64 에 두고 bit-width predicate 가 차별화 하게 둬.
Mixed-precision 손 뻗을 때
- 메모리 천장에 있고 full Q4 가 허용하는 것보다 약간 더 큰 모델 fit 시키고 싶을 때.
mixed_3_4또는mixed_2_6가 효과 bit 더 떨어뜨릴 수 있어. - specific 작업의 full Q4 품질에 실망 했고 Q8 까지 가지 않고 일부 정확도 회복하고 싶을 때.
mixed_4_6이 자연스러운 step. - Scale 로 배포 하고 모델 당 작은 크기 절약이 많은 머신에 걸쳐 compound 될 때.
1-사용자 laptop 배포엔 full Q4 가 보통 괜찮아. Mixed-precision 은 측정된 이유 있을 때 손 뻗는 레버 — 기본 시작점이 아냐.