메뉴
BL
r/LocalLLaMA 32일 전

Qwen 3.6 27B 양자화별 평가: BF16 vs Q4_K_M

IMP
7/10
핵심 요약

오픈소스 모델인 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 평가 설정을 구축하고 체크포인트 실행을 처리하며 벤치마크 결과를 취합했습니다. 저 또한 결과를 수동으로 직접 검토했습니다.

벤치마킹 결과, 접근 방식 및 코드 스니펫을 포함한 전체 사례 연구는 아래 댓글에서 확인하실 수 있습니다 👇

원문 보기
원문 보기 (영어)
Evaluated Qwen 3.6 27B across BF16, Q4\_K\_M, and Q8\_0 GGUF quant variants with llama-cpp-python using Neo AI Engineer. Benchmarks used: * HumanEval: code generation * HellaSwag: commonsense reasoning * BFCL: function calling Total samples: * HumanEval: 164 * HellaSwag: 100 * BFCL: 400 Results: **BF16** * HumanEval: 56.10% 92/164 * HellaSwag: 90.00% 90/100 * BFCL: 63.25% 253/400 * Avg accuracy: 69.78% * Throughput: 15.5 tok/s * Peak RAM: 54 GB * Model size: 53.8 GB **Q4\_K\_M** * HumanEval: 50.61% 83/164 * HellaSwag: 86.00% 86/100 * BFCL: 63.00% 252/400 * Avg accuracy: 66.54% * Throughput: 22.5 tok/s * Peak RAM: 28 GB * Model size: 16.8 GB **Q8\_0** * HumanEval: 52.44% 86/164 * HellaSwag: 83.00% 83/100 * BFCL: 63.00% 252/400 * Avg accuracy: 66.15% * Throughput: 18.0 tok/s * Peak RAM: 42 GB * Model size: 28.6 GB **What stood out:** Q4\_K\_M looks like the best practical variant here. It keeps BFCL almost identical to BF16, drops about 5.5 points on HumanEval, and is still only 4 points behind BF16 on HellaSwag. The tradeoff is pretty good: * 1.45x faster than BF16 * 48% less peak RAM * 68.8% smaller model file * nearly identical function calling score Q8\_0 was a bit underwhelming in this run. It improved HumanEval over Q4\_K\_M by \~1.8 points, but used 42 GB RAM vs 28 GB and was slower. It also scored lower than Q4\_K\_M on HellaSwag in this eval. For local/CPU deployment, I would probably pick Q4\_K\_M unless the workload is heavily code-generation focused. For maximum quality, BF16 still wins. Evaluation setup: * GGUF via llama-cpp-python * n\_ctx: 32768 * checkpointed evaluation * HumanEval, HellaSwag, and BFCL all completed * BFCL had 400 function calling samples This evaluation was done using Neo AI Engineer, which built the GGUF eval setup, handled checkpointed runs, and consolidated the benchmark results. I manually reviewed the outcome as well. Complete case study with benchmarking results, approach and code snippets in mentioned in the comments below 👇
관련 소식