Gemini 3.1 Flash Live 출시 — 그리고 넥스테인이 준비하고 있던 것
오늘 Gemini 3.1 Flash Live가 출시됐습니다. 타이밍이 묘하게 맞아서, 준비하고 있던 기술을 불완전하지만 지금 공개하기로 했습니다. naia-os는 Naia 계정과 Google 프로바이더를 통해 Gemini Live를 지원하고 있었고 바로 제미나이 3.1플래시 라이브의 적용을하였습니다. 아래 영상에서 확인하실 수 있습니다.
이러한 모델은 사실 S2S, 혹은 옴니 모델이라고 부르는데 기존의 STT, LLM, TTS 파이프라인 대비 빠르고 자연스러운 대화를 지원합니다.
사람의 말을 배우는 과정과 유사한 실시간 음성 대화 모델 (S2S, omni model)
GPT-4o 음성 모드, Gemini Live, MiniCPM-o가 대표적이며, 텍스트가 아니라 음성으로, 실시간으로, 감정까지 담아서 대화하는 모델입니다. 영어로는 보통 Speech to Speech(S2S), Omni Model이라고 합니다. 이는 기존의 단방향의 STT(음성을 텍스트로 전환하는 모델)이나 TTS(텍스트를 음성으로 전환하는 모델)과 달리 훨씬 사람을 닮았다고 생각했습니다. 듣지 못하는 청각장애인들이 말을 배우기 어려워하는 이유는 자신의 발화를 듣지 못하니 말을 배우는데 어려움을 겪기 때문입니다.
그래서 전 이를 음성대화모델의 미래고, 대세가 될 것이라고 판단하여 STT/TTS의 개별 설정 옵션을 제거하고 '라이브 대화 모델'로 통합하고, Gemini Live api와 gpt-4o-realtime-preview 를 추가했습니다. 하지만 두 API 모두 유료기에 무료 사용자를 위해 TTS Only로 표기하고 Edge를 대화 모델 선택에 넣었고, 이렇게 최근(어제) 버전 0.1.2 버전이 나갔습니다. Gemini Live api는 Naia계정과 통합도 하고 실 테스트로 이야기를 해봤는데 대화 반응이 감정 피드백과 반응속도면에서 굉장히 만족스러웠습니다.
그냥 STT/TTS의 모델이라고 생각했던 실시간 음성 대화 모델에 대한 오해
하지만 그런데 여기에는 큰 오해가 있었습니다. 저는 Gemini Live API를 차세대 STT/TTS통합 모델로 이해했었는데 알고보니 특정 LLM모델, 곧 Gemini 2.5 flash가 내장되어있고, LLM을 바꿀 수 없다는 것을 나중에 알았습니다.
로컬에서 쓸수 있는 실시간 음성 대화 모델 MiniCPM-o-4.5
이 오해를 깨닫게 된 이유는 Naia가 유저가 사용가능한 범위의 로컬 모델 지원을 지향하는 만큼 RTX-3090급에서 돌릴수 있는 실시간 음성 대화모델을 찾아서 적용하면서 알게 되었습니다. 먼저 그 대상이 되었던건 Moshi, Qwen3-Omni-30b, MiniCPM-o-4.5 였습니다. Moshi는 오픈소스에서 이 분야의 선구자지만 지원 언어가 영어/프랑스 위주고 커뮤니티 활성화가 안되어 선택하지 않았고, Qwen3-omni-30b는 가장 최근에 우수한 성능이지만 RTX 3090 한 대의 24GB VRAM으로는 어림없고 검증되지 않아서 제외했습니다. 마지막으로 결정된 게 MiniCPM-o 였습니다. 한국어를 현재 지원하지는 않지만, 어느정도의 자본 투입이 가능하다면 언어를 추가 파인튜닝 할 수 있고, 오디오는 레퍼런스 오디오를 지원하므로 사용자가 원하는 TTS까지 구현 가능하겠다는 판단을 했습니다.
또한 그 크기가 작아서 24GB에서 남는 VRAM으로 Qwen3-omni-30b-a3b와 함께 돌리면 RTX-3090급에서도 LLM 성능을 크게 올릴 수 있다고 생각했거든요. Qwen3-omni는 앞서 말한 실시간 음성 대화(Omni모델)이지만 채택을 안 한 이유는 양자화하면 음성출력이 깨져서 소비자 GPU의 24GB에서는 돌릴 수 없었지만 LLM으로서는 양자화 모델이 좋은 성능을 보여준다고 합니다.
그래서 MiniCPM-o를 로컬 GPU(RunPod RTX 3090)에 올려서 Websocket 브릿지 서버를 만들어 Naia앱에 붙였습니다. 하다가 알게 된 사실은 모델이 들은걸 뱉지 않는다는 것이었습니다. 그런데 여기서 결정적으로 알게된 사실이 내장된 Qwen3-8B모델이 응답을 하고 있고, omni모델은 end-to-end로 학습하여 교체 불가능하다는 사실이었습니다. 그러니까 MiniCPM-o는 사실 Qwen3-8b-omni 라고 부르는게 더 어울리겠죠. 정확히는 듣기는 Whisper-medium, 뇌는 Qwen3-8b를, 음성합성은 CosyVoice2를, 비전은 SigLip2를 쓰고 있다고 합니다. 이 다른 모델들을 이어붙여서 멀티모달 데이터로 재훈련하는 과정을 거친다고 합니다. 크게 보면 파인튜닝인데, 이때 멀티모달 데이터의 규모가 워낙 크기 때문에 그 비용은 수십에서 수백억원이 들 수 있다고 합니다. 얼마전 한국의 독파모에서 프롬스크래치냐 아니냐 말이 많았는데, 실제 도달해야 할 산은 프롬스크래치만은 아님을 이야기하는 것 같습니다.
MiniCPM-o-4.5, vllm-omni 지원을 위한 클로드 코드 도전기
하지만 내장된 Qwen3-8b만 해도 GPT-4o급이라 하니 그냥 넘어갈 수 없었습니다. 더군다나 음성 레퍼런스, llm의 파인튜닝 가능성까지 가지고 있기에 주권ai를 추구하는 넥스테인이 꼭 추구해야 하는 모델이라고 판단했습니다.
vllm을 fork 받아서 RunPod에 올렸는데, VRAM이 48GB나 필요하더군요. 거의 이틀을 돌렸습니다. 그러다 뒤늦게 알게 된 게 vllm-omni 라는 별도 프로젝트가 따로 있다는 것, 그리고 MiniCPM-o-4.5 작업을 이미 누군가 진행 중이라는 것이었습니다. 그래서 저희가 l3 테스트를 지원하겠다고 코멘트를 달았습니다. (→ vllm-omni #1182) 아직 응답은 없었고, 기다리는 동안 내부적으로 vllm-omni 기반으로 시도를 계속했습니다.
이번엔 특히 신중하게 접근했습니다. 이전에 AI 분석을 불완전하게 검증한 채로 다른 오픈소스 프로젝트에 클로드코드로 만든 PR을 올렸다가 신랄하게 비판당한 적이 있거든요. 코드 분석이 불완전했고, 커뮤니티 룰도 지키지 않았고, 심지어 그 프로젝트의 범위 밖의 것을 만들어 냈으니 당연한 일이었습니다. 그래서 이번엔 레포지토리의 업스트림 관점에서 컨텍스트를 수집하고, 적대적 리뷰를 반복하는 과정을 거쳤습니다. 그제 클린패스를 선언했고, 실제 naia-os에 붙여서 대화가 되는 것도 확인하고 업스트림에 기여를 위한 문서도 만들어서 리뷰했습니다.
(한글) PR 초안 — MiniCPM-o vLLM-omni
그런데 RunPod이 내려갔다가 오늘 다시 올리려니 또 안 됩니다. 작업하면서 불완전하게 기록해둔 것들이 발목을 잡았습니다. 런타임을 확인할 수 없으니 재현 자체가 안 되는 거죠. 이전 세션 기록들을 다 뒤져서 찾아내게 하고, 지금 다시 재현하며 또 기록을 수정해나가고 있었는데 결국 또 크리티컬 이슈를 발견하고 결국 중지를 시켰습니다. vllm-omni의 다른 모델의 패턴이 아닌 새롭다는 이유로 특정 패턴을 사용 했고, vllm-omni가 업데이트됨에 따라 모두 깨져버린겁니다. 분석 결과는 하네스, 컨텍스트 통제 실패로 또 중간 보고서를 쓰게 했고, 이를 기반으로 다시 컨텍스트, 하네스 수정을 시키고 비싼 런팟 대신 코드 반복 분석을 시켰습니다. ㅜㅜ
https://github.com/nextain/vllm-omni/blob/main/.agents/docs/minicpm-o-midterm-review.md
오늘 재미나이 3.1플래시 라이브의 런칭 소식에 맞춰 MiniCpm4.5-o의 구동 영상을 공개해드리고 싶었습니다. 하지만 한번에 가기는 참 힘드네요. 현재 시간 새벽 3시 반을 향해 갑니다.무엇보다도 이 작업의 목적은 AI-native Opensource 생태계의 실현, AI가 ai slop 없이 오픈소스에 올바르게 기여할 수 있다는 것이 가능해하게 하고 싶어 하는 실험입니다. 다음주에는 그래픽카드를 좀 빌려서 하기로 했으니 좀 상황이 쉬워지리라 생각합니다.
이어서 추가 작업이 되면 오디오레퍼런스나 llm파인튜닝이 되는지도 공유드리겠습니다.
참고
- Gemini 3.1 Flash Live — Model Card (Google DeepMind)
- Speech-to-Speech Models in 2026: Three Architectural Bets — 음성 통합 모델 아키텍처 비교
- Introducing gpt-realtime — Simon Willison — gpt-realtime 모델 분석
- GPT-4o vs. GPT-4.1: All the differences — 모델 간 역할 차이
- MiniCPM-o 실험 결과 (GitHub Issue)
- 설정 UI 재설계 (GitHub Issue)
- STT/TTS 파이프라인 설계 (GitHub Issue)