고급 Core ML 양자화를 이용한 Mac용 Stable Diffusion XL

Hugging Face와 Apple은 Stable Diffusion XL의 Core ML 포트를 공개하여 Apple Silicon Mac에서 고품질 1024x1024 이미지 생성을 가능하게 했습니다. 이번 릴리스에서는 혼합 비트 팔레트화(mixed‑bit palettization)를 도입했으며, 이는 모델 크기와 메모리 요구량을 크게 줄이면서 균일 양자화에서 발생하는 심각한 품질 손실을 방지하는 압축 기법입니다.

Core ML 구현 및 성능

Stable Diffusion XL은 이제 Core ML 형식으로 제공되어 macOS 14 공개 베타를 실행 중인 Apple Silicon Mac의 Swift 애플리케이션에서 네이티브로 실행될 수 있습니다. 현재 구현은 CPU와 GPU 연산 유닛을 위해 설계된 ORIGINAL 어텐션 구현을 사용합니다. Refiner 단계는 아직 포팅되지 않았습니다.

하드웨어 성능 벤치마크

CPU_AND_GPU 연산 유닛과 ORIGINAL 어텐션 구현을 사용할 때 장치별 엔드‑투‑엔드 지연 시간 및 확산 속도는 다음과 같습니다:

장치 엔드‑투‑엔드 지연 시간 (s) 확산 속도 (iter/s)
MacBook Pro (M1 Max) 46 0.46
MacBook Pro (M2 Max) 37 0.57
Mac Studio (M1 Ultra) 25 0.89
Mac Studio (M2 Ultra) 20 1.11

혼합 비트 팔레트화 기법

혼합 비트 팔레트화는 사후 훈련 양자화 방법으로, 각 레이어가 출력 품질에 미치는 영향을 기반으로 서로 다른 비트 깊이를 할당하여 모델 크기를 최적화합니다. 균일한 6‑bit 팔레트화와 달리, 혼합 비트 팔레트화는 품질 저하를 최소화하기 위해 레이어별 최적 비트 수를 결정합니다.

혼합 비트 팔레트화 작동 방식

이 과정은 두 가지 주요 단계로 구성됩니다:

  1. 분석 단계: 시스템은 각 레이어를 검사하고 다양한 비트 깊이(1, 2, 4, 8 비트)를 테스트합니다. 품질 저하는 양자화된 모델과 원본 float16 모델 간의 PSNR(Peak Signal‑to‑Noise Ratio)을 입력 집합을 사용해 비교함으로써 측정됩니다. 목표는 PSNR이 특정 임계값 이상을 유지하도록 레이어당 가장 낮은 비트 깊이를 찾는 것입니다.
  2. 적용 단계: 분석 중에 생성된 "레시피"(각 레이어의 비트 깊이를 지정하는 JSON 사전)가 모델 가중치에 적용됩니다.

압축 결과

Stable Diffusion XL UNet에 평균 4.5‑bit 레시피를 적용하면 크기가 71% 감소하여 4.8 GB에서 1.4 GB로 줄어듭니다.

기술 분석에 따르면, 혼합 비트 팔레트화는 동일한 모델 크기에서 선형 8‑bit 양자화보다 뛰어난 성능을 보이며(1‑bit 양자화를 제외), 높은 압축(예: 3.41‑bit)에서는 특정 프롬프트 세부 사항이 손실될 수 있습니다(예: "서핑하는 개" 프롬프트에서 서핑보드가 사라짐). 그러나 4.50‑bit 및 6.55‑bit 버전은 사실감 면에서 원본 16‑bit 품질에 가깝습니다.

배포 및 변환 리소스

사용자와 개발자는 다음 리소스를 통해 Mac에서 Stable Diffusion XL을 배포할 수 있습니다:

  • 사전 변환 모델: Hugging Face는 전체 정밀도 파이프라인(apple/coreml-stable-diffusion-xl-base)과 혼합 비트 팔레트화 파이프라인(apple/coreml-stable-diffusion-mixed-bit-palettization)을 모두 제공합니다.
  • 변환 도구: Apple의 ml-stable-diffusion 리포지토리를 사용하면 사용자가 직접 파인‑튜닝한 모델을 변환할 수 있습니다. XL 모델의 경우 --attention-implementation ORIGINAL 플래그를 사용해야 합니다.
  • 맞춤 양자화: mixed_bit_compression_pre_analysis.pymixed_bit_compression_apply.py 스크립트가 제공되어 자체 양자화 레시피를 생성하고 적용할 수 있습니다.
  • 사전 계산 레시피: 긴 분석 단계를 피하기 위해 Stable Diffusion 1.5, 2.1 및 XL 1.0 베이스에 대한 사전 계산 레시피가 커뮤니티에 공개되어 있습니다.

Sources