NVIDIA Nemotron Omni가 Mac에서 텍스트 부분만 로드되기에, MLX로 비전 및 오디오 타워를 직접 구현했습니다
요약
NVIDIA Nemotron Omni 모델의 비전 및 오디오 타워를 MLX로 직접 구현하여 Mac 환경에서 멀티모달 기능을 완벽하게 지원하도록 만들었습니다. PyTorch 레퍼런스와의 비교 테스트를 통해 높은 정확도를 검증했으며, M5 Max에서 효율적인 추론 속도를 기록했습니다.
핵심 포인트
- 표준 MLX 도구의 텍스트 전용 로드 한계를 직접 구현으로 해결
- 비전 및 오디오 타워를 순수 MLX로 포팅하여 멀티모달 기능 구현
- NVIDIA PyTorch 레퍼런스와 비교 시 매우 높은 코사인 유사도 및 정확도 달성
- M5 Max 기준 이미지/오디오 포함 시에도 안정적인 토큰 생성 속도 확보
- MIT 라이선스로 공개된 오픈 소스 구현체
NVIDIA의 Nemotron Omni는 오픈 웨이트 (open weights) 모델이며, 보고, 듣고, 추론할 수 있습니다. 이미 Hugging Face에 4bit MLX 양자화 (quant) 버전이 올라와 있지만, 표준 MLX 도구로는 텍스트 백본 (backbone)만 로드됩니다. 모델 카드에는 c-radio vit-h 및 parakeet conformer의 포워드 패스 (forward passes)를 구현하는 런타임 (runtime)이 비전 및 오디오 타워에 필요하다고 명시되어 있습니다. 그래서 저는 이를 순수 MLX로 작성했습니다. 비전 타워 (vision tower), 오디오 타워 (audio tower), 프로세서 (processor) 및 토큰 스플라이싱 (token splicing) 모두 NVIDIA의 레퍼런스 구현 (reference implementation)에서 포팅했습니다. 언어 모델을 위한 mlx-community 4bit 양자화 버전을 사용하며, 두 타워는 bf16으로 실행됩니다. 이것이 실제로 맞는지 추측하고 싶지 않았기에, 모든 구성 요소를 동일한 입력과 동일한 웨이트 (weights)를 사용하여 NVIDIA의 PyTorch 레퍼런스와 비교 테스트했습니다. 23개 중 23개 모두 통과했습니다. 오디오 타워 코사인 유사도 (cosine similarity)는 프레임당 최소 0.99999130, 비전 타워는 토큰당 최소 0.99996227이며, MLX CPU 스트림에서 비전 타워는 그래프 정확도 (graph exact) 1.0을 기록했습니다. 제 M5 Max에서 이미지가 있을 때 67.7 tok/s, 오디오가 있을 때 147 tok/s, 텍텍스트만 있을 때 152 tok/s의 속도를 보여줍니다. 테스트 내내 Wi-Fi는 꺼져 있었습니다. 스크린샷을 주면 읽고, 오디오 클립을 주면 듣습니다. 이 코드는 제 소유이며 MIT 라이선스를 따릅니다. https://github.com/nicedreamzapp/nemotron-omni-mlx 이미지 경로에서의 피크 메모리는 22.1GB였으므로 32GB Mac에는 들어갈 것입니다. 다만 제가 테스트할 수 있는 기기는 M5 Max뿐입니다. 더 낮은 사양에서 실행해 보신다면 어떤 결과가 나오는지 듣고 싶습니다. 오픈 웨이트를 공개한 NVIDIA와 4bit 변환을 해준 yayr에게 감사를 표합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기