Qwen 3.6 27B 양자화별 평가: BF16 vs Q4_K_M
오픈소스 모델인 Qwen 3.6 27B의 세 가지 포맷(BF16, Q4_K_M, Q8_0)에 대한 벤치마크 결과가 공유되었습니다. 로컬 환경에서는 BF16과 비교해 성능은 근소하게 저하되면서도 메모리와 용량을 절반 이상 아낄 수 있는 'Q4_K_M' 포맷이 가장 효율적인 선택지로 평가되었습니다. 최고의 성능을 원한다면 여전히 BF16이 최고이며, 코드 생성 작업이 많지 않은 일반적인 로컬 배포에는 Q4_K_M을 추천하고 있습니다.
Neo AI Engineer를 활용하여 llama-cpp-python 환경에서 Qwen 3.6 27B 모델의 BF16, Q4_K_M, Q8_0 GGUF 양자화(Quantization) 변형 버전들을 평가했습니다.
사용된 벤치마크:
- HumanEval: 코드 생성 능력 평가
- HellaSwag: 상식적 추론 능력 평가
- BFCL: 함수 호출(Function calling) 능력 평가
총 평가 샘플 수:
- HumanEval: 164개
- HellaSwag: 100개
- BFCL: 400개
평가 결과:
BF16
- HumanEval: 56.10% (92/164)
- HellaSwag: 90.00% (90/100)
- BFCL: 63.25% (253/400)
- 평균 정확도: 69.78%
- 처리 속도(Throughput): 초당 15.5 토큰 (tok/s)
- 최대 RAM 사용량: 54 GB
- 모델 용량: 53.8 GB
Q4_K_M
- HumanEval: 50.61% (83/164)
- HellaSwag: 86.00% (86/100)
- BFCL: 63.00% (252/400)
- 평균 정확도: 66.54%
- 처리 속도: 초당 22.5 토큰
- 최대 RAM 사용량: 28 GB
- 모델 용량: 16.8 GB
Q8_0
- HumanEval: 52.44% (86/164)
- HellaSwag: 83.00% (83/100)
- BFCL: 63.00% (252/400)
- 평균 정확도: 66.15%
- 처리 속도: 초당 18.0 토큰
- 최대 RAM 사용량: 42 GB
- 모델 용량: 28.6 GB
주요 인사이트:
Q4_K_M이 실용적인 측면에서 가장 좋은 변형으로 보입니다. BFCL 점수는 BF16과 거의 동일하게 유지하며, HumanEval에서는 약 5.5포인트 하락했지만 HellaSwag에서도 고작 4포인트 차이밖에 나지 않습니다.
이점은 매우 훌륭한 편입니다:
- BF16 대비 1.45배 더 빠른 처리 속도
- 48% 더 적은 최대 RAM 사용량
- 68.8% 더 작은 모델 파일 크기
- 함수 호출 점수는 거의 동일
이번 평가에서 Q8_0은 다소 실망스러운 결과를 보여주었습니다. HumanEval에서 Q4_K_M보다 약 1.8포인트 높은 성능을 보였지만, RAM을 28GB가 아닌 42GB나 사용했고 속도도 더 느렸습니다. 또한 이번 평가에서 HellaSwag 점수 역시 Q4_K_M보다 낮게 나타났습니다.
로컬 또는 CPU 환경에 배포할 예정이라면, 작업이 코드 생성에 집중되어 있지 않은 한 Q4_K_M을 선택할 것 같습니다. 최고의 품질을 원한다면 여전히 BF16이 승리합니다.
평가 설정 환경:
llama-cpp-python을 통한 GGUF 포맷 사용- n_ctx: 32768
- 체크포인트(Checkpointed) 방식의 평가 진행
- HumanEval, HellaSwag, BFCL 모두 완료
- BFCL은 400개의 함수 호출 샘플을 포함
이 평가는 Neo AI Engineer를 사용하여 진행되었으며, 이 도구가 GGUF 평가 설정을 구축하고 체크포인트 실행을 처리하며 벤치마크 결과를 취합했습니다. 저 또한 결과를 수동으로 직접 검토했습니다.
벤치마킹 결과, 접근 방식 및 코드 스니펫을 포함한 전체 사례 연구는 아래 댓글에서 확인하실 수 있습니다 👇