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