NVIDIA Parakeet(음성 인식) 모델을 ggml로 포팅함: NeMo와 동일한 결과, 더 빠른 속도, GGUF 양자화, 파이썬 불필요
I ported NVIDIA Parakeet (speech-to-text) to ggml: same output as NeMo, faster, GGUF-quantized, no Python
핵심 요약
NVIDIA Parakeet 모델을 ggml 기반으로 포팅하여 파이썬 없이도 더 빠르고 효율적인 음성 인식 환경을 구현함.
- 성능 최적화 — NeMo 대비 최대 5배 빠른 속도와 2배 적은 메모리 사용량 기록
- GGUF 지원 — 다양한 양자화 옵션을 제공하며 토크나이저가 모델 파일에 포함됨
- 범용성 확보 — C-API를 통해 어디서든 임베딩 가능하며 LocalAI 백엔드로도 사용 가능
- 실시간 처리 — GPU 환경에서 1시간 분량 오디오를 6초 만에 처리하는 고성능 달성
NVIDIA의 Parakeet 음성 인식 모델을 순수 C++/ggml(llama.cpp와 whisper.cpp의 엔진)로 포팅했습니다. 파이썬이나 PyTorch 없이도 CPU와 GPU(CUDA, HIP, Vulkan, Metal)에서 FastConformer TDT / CTC / RNNT / 하이브리드 모델을 실행할 수 있습니다.
목표는 NeMo와 동일한 결과를 내면서 어디서든 배포 가능하게 만드는 것이었습니다. 결과는 다음과 같습니다:
-
출력값은 NeMo와 바이트 단위로 동일합니다(f32/f16 경로에서 WER 0).
-
NeMo의 자체 PyTorch 런타임보다 빠릅니다: 대형 TDT/하이브리드 모델에서 GPU 기준 최대 ~5배, CPU 양자화 시 최대 ~1.86배 빠르며 메모리는 약 2배 적게 사용합니다.
-
23초 클립 기준 GPU에서 실시간 대비 약 600배 속도(1시간 분량 오디오를 약 6초 만에 처리).
-
모든 변형 모델에 대해 GGUF 양자화 지원: f16, q8_0, q6_k, q5_k, q4_k.
또한 실시간 발화 종료 감지, 신뢰도를 포함한 단어 단위 타임스탬프, 캐시 인식 스트리밍을 지원하며, 어디에나 임베딩할 수 있도록 간단한 C-API를 제공합니다. GGUF는 독립형으로, 토크나이저/어휘 사전이 모델 파일에 내장되어 있어 외부 파일이 필요 없습니다.
LocalAI의 백엔드로도 제공되므로, 완전 로컬 환경에서 OpenAI 호환 /v1/audio/transcriptions 엔드포인트를 사용할 수 있습니다. (참고: 저는 LocalAI 개발자입니다.)
링크:
Parakeet 모델을 제공한 NVIDIA와 런타임을 제공한 ggml에 모든 공을 돌립니다. 벤치마크, 방법론, 모델별 그래프는 저장소에 있습니다. 포팅, 디코더, 수치에 대해 궁금한 점이 있으면 언제든 물어봐 주세요.

