h3-metal: Apple Silicon을 위한 네이티브 MiniMax-H3 추론

h3-metal은 Apple Silicon을 위한 네이티브 MiniMax-H3 추론을 제공하며, 결정론적 호스트/모델 메타데이터, 이식 가능한 Metal 블록 패리티, 그리고 프롬프트-to-비디오/오디오, 첫/마지막 프레임 조건부 지정, 순서가 지정된 참조를 위한 엔드-투-엔드 지원을 포함한 최적화된 수직 슬라이스 시퀀스를 구현합니다. 이 프로젝트는 M3 Max 및 M5 Max 하드웨어에서 성능과 메모리 효율성을 극대화하는 데 중점을 둡니다.

고성능 추론 프리셋

사용자는 여러 독립적인 제어 기능을 통해 생성 속도와 출력 품질의 균형을 맞출 수 있습니다. 기본 구성은 50개의 transformer 블록과 재사용 계수(reuse factor) 1을 사용하는 20회의 denoising 패스입니다.

속도 및 품질 트레이드오프

제어 항목 느린 참조 기본값 공격적 주요 영향
Denoising Passes --steps 50 --steps 20 --steps 4..7 실제 denoising 패스의 총 횟수.
Whole Denoiser Reuse --reuse 1 --reuse 2 --reuse 3 새로운 DiT 평가를 줄임 (예: 20 steps $\to$ 11 또는 8).
Active DiT Blocks --layers 50 --layers 45 --layers 40 연산 및 상주하는 transformer weights를 줄임.
Core Residual Reuse --core-reuse 1 --core-reuse 4 --core-reuse 6 매 스텝마다 patch/head 작업을 갱신하지만 비용이 큰 core를 덜 자주 실행함.
Token Reduction Off Optional --token-reduction 중간 블록에서 수평 비디오 토큰을 쌍으로 묶음; 더 빠르지만 구성을 영향을 줄 수 있음.
Internal Canvas Output Size 384x384 320x320 DiT/VAE를 더 작게 실행한 후 vImage를 통해 업스케일함.

성능 벤치마크

M5 Max에서 512-square, 22-frame 테스트를 위한 4회 패스 denoising은 약 3.5초가 소요되었으며, 이는 29회 패스 참조값인 26.4초와 비교됩니다. 512-square 캔버스에서 token reduction을 사용하면 denoising 시간을 16.69초에서 12.60초로 줄일 수 있습니다.

고급 조건부 지정 및 미디어 지원

h3-metal은 단순한 텍스트 프롬프트를 넘어 비디오 생성을 제어하기 위한 여러 조건부 지정 경로를 지원합니다.

프레임 앵커링 및 참조

  • FL2VA Path: --first-frame--last-frame을 사용하여 비디오 시퀀스의 시작과 끝을 고정합니다.
  • Ref2VA Path: --ref-image, --ref-silent-video, 및 --ref-video를 통한 순서가 지정된 참조를 사용하여 피사체 및 배경의 일관성을 유지합니다.
  • Audio Integration: --ref-audio를 통한 독립형 오디오 참조 또는 비디오 참조에 포함된 오디오를 지원합니다. 오디오 입력은 최대 3개의 입력에 걸쳐 총 15초로 제한됩니다.

해상도 및 지속 시간

너비와 높이는 32의 배수여야 하며, 최대 곱은 $768 \times 1344$ 픽셀입니다. 모델은 프레임 요청을 특정 시간적 형태($5 + 17n$)로 상향 조정합니다. 예를 들어, 22프레임은 24 fps에서 약 0.917초의 비디오를 생성하며, 243프레임은 10.125초를 생성합니다.

기술적 구현 및 Metal 최적화

h3-metal 엔진은 Apple Silicon에서 메모리 사용량을 줄이고 처리량을 높이기 위해 여러 심층 수준의 최적화를 적용합니다.

메모리 및 가중치 관리

M5-class GPU에서 transformer weights는 safetensor shards로부터 직접 매핑되어 37 GiB 모델 파일을 파일 백킹(file-backed) 상태로 유지하고 회수 가능하게 만듭니다. Qwen 텍스트 인코더는 인코딩과 Metal 실행을 중첩시키기 위해 I/O 워커가 채워 넣는 미래 레이어 버퍼 링을 사용하는 스트리밍 방식을 사용합니다.

Metal 4 및 TensorOps

M5 GPU는 DiT QKV 및 attention-output 프로젝션을 위해 네이티브 BF16 Metal 4/TensorOps를 활용합니다. 구현 방식은 compact Morton schedule을 사용하여 Q/K/V를 head-major attention 입력으로 직접 라우팅하여, 세 번의 MPSGraph 입력 전치(transpose)를 피합니다.

Int8 양자화

기본 M5 경로는 동적 활성화 양자화 및 출력 채널별 가중치 스케일을 사용하는 네이티브 int8 MLP 엔진을 사용합니다. 이는 피크 텐서 저장 공간을 36.4 GiB (BF16)에서 25.9 GiB로 크게 줄여줍니다. 추가 최적화는 다음과 같습니다:

  • Quantized QKV: M5에서 denoising 시간을 25.80초에서 19.32초로 줄입니다.
  • Fused Kernels: QKV 및 MLP 활성화 양자화를 이전의 gated AdaLN 커널에 통합하여, 50-layer forward 패스당 99개의 독립적인 quantizer dispatch를 제거합니다.

커뮤니티 인사이트 및 대안

사용자들 사이의 논의는 네이티브 Metal 구현과 범용 프레임워크 간의 상당한 성능 차이를 강조합니다.

"128GB M4 Max Mac Studio를 사용 중인데, ComfyUI에서 MiniMax H3를 사용하여 15초 480p 비디오를 생성하는 데 한 시간 반이 걸립니다."

사용자들은 고메모리 구성(예: 128GB)이 최적의 성능을 위해 이상적이지만, 전문화된 CUDA 하드웨어보다 빠르지는 않더라도 Mac 하드웨어에서 이러한 모델을 로컬컬처(local-first) 워크플로우를 위해 로컬로 실행할 수 있다는 점이은 중요한 진전임을 언급했습니다.

Sources

관련

  • 프로젝트
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch