Audio-030, MiniCPM-o 4.5: Towards Real-Time Full-Duplex Omni-Modal Interaction, Preprint 2026

Abstract

최근 멀티모달 대규모 언어 모델(MLLM)의 발전으로 AI의 능력은 정적인 오프라인 데이터 처리에서 실시간 스트리밍 상호작용으로 확장되었지만, 여전히 인간 수준의 멀티모달 상호작용과는 큰 격차가 존재한다. 핵심적인 병목은 더 이상 모달리티의 범위나 지연 시간 자체가 아니라, 상호작용 패러다임 그 자체에 있다. 첫째, 지각과 응답은 여전히 번갈아 수행되는 단계로 분리되어 있어, 모델이 생성 중 새롭게 들어오는 입력을 반영하여 적시에 조정하는 것을 방해한다. 둘째, 현재 대부분의 모델은 여전히 반응적으로 동작하며, 변화하는 멀티모달 환경에서 능동적으로 행동하기보다는 사용자의 명시적인 요청에만 응답한다. 우리는 인간과 유사한 멀티모달 상호작용을 향한 최신 시도인 MiniCPM-o 4.5를 제시하며, 이는 실시간 full-duplex omni-modal interaction을 통해 이러한 격차를 완화한다. MiniCPM-o 4.5는 실시간으로 동시에 보고, 듣고, 말할 수 있으며, 실시간 장면에 대한 지속적인 이해를 바탕으로 리마인더를 제공하거나 코멘트를 하는 등의 능동적인 행동도 수행한다. MiniCPM-o 4.5의 핵심 기술은 Omni-Flow로, omni-modal 입력과 출력을 하나의 공유된 시간축을 따라 정렬하는 통합 스트리밍 프레임워크이다. 이러한 구성은 기존의 turn-based 상호작용을 full-duplex의 시간 정렬된 프로세스로 변환하여, 지각과 응답을 동시에 수행할 수 있게 하고 동일한 프레임워크 내에서 능동적 행동이 나타날 수 있도록 한다. 총 9B 파라미터를 갖는 MiniCPM-o 4.5는 vision-language 능력에서 Gemini 2.5 Flash에 근접하며, 해당 규모의 오픈소스 모델 중 state-of-the-art 성능을 달성한다. 또한 omni-modal understanding에서 Qwen3-Omni-30B-A3B를 능가하고, 훨씬 높은 계산 효율성과 함께 더 나은 speech generation 성능을 제공한다. 효율적인 아키텍처 설계와 추론 최적화에 힘입어, 이 모델은 12GB 미만의 RAM을 사용하는 edge device에서도 실시간 full-duplex omni-modal interaction을 수행할 수 있다. 더 중요하게는, MiniCPM-o 4.5는 유망한 흐름의 대표적인 사례로 볼 수 있다(Figure 2). 멀티모달 파운데이션 모델은 인간과 유사한 상호작용 패러다임을 향해 나아가고 있으며, 가까운 미래에는 동적으로 변화하는 omni-modal 세계와 상호작용할 수 있을 것으로 기대된다.

1 Introduction

멀티모달 대규모 언어 모델(MLLM)의 발전으로 이미지, 음성, 비디오, 텍스트를 아우르는 점점 더 풍부한 상호작용이 가능해졌으며, AI 시스템은 보다 자연스러운 형태의 의사소통에 가까워지고 있다 [1, 2, 3, 4] (Figure 2). 

인간과 유사한 상호작용을 향한 주요 과제는 이제 더 이상 모달리티의 범위나 응답 지연 시간 자체가 아니라, 그 기반이 되는 상호작용 패러다임이다. 현재 모델에서는 지각과 응답이 여전히 번갈아 수행되는 단계에 제한되어 있어, Figure 3에 나타난 것처럼 생성 중 새롭게 들어오는 정보를 지속적으로 반영하여 적시에 조정하기 어렵다. 또한 모델의 행동은 계속해서 엄격하게 요청에 의해 주도되며, 변화하는 멀티모달 환경으로부터 능동적으로 시작되지는 않는다.

이 문제를 해결하려면 turn-based의 수동적인 응답 생성에서 벗어나 지속적이고 능동적인 상호작용으로 나아가야 한다. 

  • 첫째, 지각과 응답은 시간에 따라 token-level에서 지속적으로 결합되어 있어야 하며, 이를 통해 듣기, 보기, 말하기, 쓰기가 직렬화된 파이프라인으로 강제되는 대신 병렬로 진행될 수 있어야 한다. 
  • 둘째, 상호작용은 순수하게 반응적인 방식보다는 문맥에 의해 더 많이 주도되어야 한다. 명시적인 사용자 트리거를 기다리는 대신, 보다 인간과 유사한 모델은 실시간 장면 설명을 제공하거나 리마인더를 제시하는 것처럼 지속적으로 주어지는 문맥을 바탕으로 적절한 행동을 스스로 시작할 수 있어야 한다. 이는 특히 장시간에 걸친 지원과 ambient interaction에서 중요하다.

우리는 인간과 유사한 멀티모달 상호작용을 향한 최신 시도인 MiniCPM-o 4.5를 제시한다. 이 모델은 실시간으로 동시에 보고, 듣고, 말할 수 있으며, 실시간 장면에 대한 지속적인 이해를 바탕으로 리마인더를 제공하거나 코멘트를 하는 등의 능동적인 행동도 수행한다. 이 모델의 핵심 기술은 Omni-Flow로, 멀티모달 입력과 출력을 하나의 공유된 시간축을 따라 정렬하는 통합 스트리밍 프레임워크이다. Omni-Flow는 상호작용을 서로 구분된 여러 turn의 연속으로 취급하는 대신, 지각과 응답이 병렬로 전개되고 지속적으로 주어지는 문맥으로부터 능동적인 행동이 동일한 상호작용 루프 안에서 발생할 수 있는 연속적인 full-duplex 프로세스로 정의한다. 학습 과정에서 풍부한 omni-modal 지식을 충분히 활용하기 위해 MiniCPM-o 4.5는 token-level continuous connection을 갖는 end-to-end 멀티모달 아키텍처를 기반으로 구축된다. 또한 출력 음성이 동시에 변화하는 환경 문맥과 긴밀하게 정렬되도록 time-aligned interleaving speech generation 전략을 설계한다.

기존 인프라 및 애플리케이션과의 더 나은 호환성을 위해 MiniCPM-o 4.5는 기존의 turn-based 상호작용 역시 지원하며, full-duplex omni-modal streaming mode와 기존 사용 방식(MiniCPM-o 2.6 및 MiniCPM-V 4.5와 유사하지만 성능이 향상된 방식) 사이를 유연하게 전환할 수 있다. 광범위한 평가 결과, 이 모델은 vision-language 및 omni-modal 능력에서 선도적인 성능을 달성한다. 총 9B 파라미터를 갖는 MiniCPM-o 4.5는 vision-language 능력에서 Gemini 2.5 Flash에 근접하며, 해당 규모의 오픈소스 모델 중 state-of-the-art 성능을 달성한다. 또한 omni-modal understanding에서 Qwen3-Omni-30B-A3B를 능가하고, 더 높은 품질의 speech generation도 제공한다. End-to-end continuous connection의 장점을 활용하여 MiniCPM-o 4.5는 text와 reference audio를 모두 포함하는 multimodal system prompt를 입력으로 받을 수 있으며, 이를 통해 voice cloning과 같은 고급 speech generation 기능을 지원한다. 또한 MiniCPM-o 4.5는 강력한 OCR, 낮은 hallucination, 다국어 지원을 포함하여 MiniCPM 계열의 강력한 vision 능력도 유지한다.

본 연구의 기여는 다음 세 가지이다. 

  • (1) 우리는 최초의 full-duplex omni-modal LLM인 MiniCPM-o 4.5 9B를 제시한다. 이 모델은 12GB 미만의 RAM을 사용하는 edge device에서도 효율적으로 실행될 수 있다. 
  • (2) 광범위한 평가를 통해 MiniCPM-o 4.5가 vision-language 능력에서 Gemini 2.5 Flash에 근접하며, 해당 규모의 오픈소스 모델 중 state-of-the-art 성능을 달성함을 보인다. 또한 훨씬 높은 계산 효율성을 유지하면서 omni-modal understanding과 speech generation 품질에서 Qwen3-Omni-30B-A3B를 능가한다. 
  • (3) 우리는 지속적인 full-duplex 및 능동적인 멀티모달 상호작용이 보다 인간과 유사한 interactive intelligence로 나아가기 위한 핵심 단계임을 제시하고, full-duplex interaction modeling을 위해 멀티모달 입력과 출력을 공유된 시간축을 따라 정렬하는 Omni-Flow 프레임워크를 제안한다.

omni streaming full-duplex 모델인거 같음. vision-language 성능은 gemini 2.5 flash에 근접하다고 함.

omni-modal understanding / speech generation은 qwen3-omni-30b-a3b보다 좋다고 함

2 End-to-End Omni-Modal Architecture

MiniCPM-o 4.5는 Omni-Flow 하에서의 full-duplex 상호작용과 기존의 turn-based 추론을 모두 지원하는 end-to-end omni-modal 아키텍처를 기반으로 한다. 

Figure 4에 나타난 것처럼, 이 아키텍처는 세 가지 주요 구성요소로 이루어진다. 

  • (1) visual 및 audio 입력을 streaming 방식으로 처리하는 multimodal encoder, 
  • (2) omni-modal understanding과 text generation을 수행하는 LLM backbone, 
  • (3) discrete speech token을 autoregressive하게 생성하는 interleaved speech token decoder와 speech token을 audio waveform으로 변환하는 streaming flow-matching decoder를 포함하는 speech decoder이다. 
  • Multimodal encoder부터 LLM backbone, speech token decoder까지의 모든 학습 가능한 구성요소는 총 약 9B개의 파라미터로 이루어져 있으며, token-level에서 미분 가능하게 연결되어 있다. 이를 통해 학습 중 modality 전반에 걸쳐 end-to-end gradient propagation과 joint optimization이 가능하다. 상세한 아키텍처 설정은 Appendix A에 제시한다.

Visual Encoding. 

  • MiniCPM-o 4.5는 임의의 aspect ratio를 갖는 고해상도 이미지를 인코딩하고 resampler module을 통해 compression rate를 향상시키기 위해 LLaVA-UHD [5]의 image partitioning strategy를 사용한다. Full-duplex streaming mode에서는 최대 해상도로 448×448을 사용하고, 그 외의 경우에는 2240×2240을 사용한다. 구체적으로 각 이미지를 먼저 여러 slice로 나눈 뒤, 각 slice를 SigLIP ViT [6] (0.4B)를 통해 1024개의 token으로 인코딩하고, resampler module을 통해 64개의 token으로 압축한다. 이를 통해 16× token compression ratio를 얻으며, 이는 일반적으로 사용되는 4× compression [7, 3, 4]보다 높은 값으로, 훨씬 더 효율적인 visual processing을 가능하게 한다.
  • 비디오 프레임이 계속 들어오고, 그때그때 이미지를 LLaVA-UHD 방법으로 continuous embedding 만드는거라 보면 됨 
  • 이미지를 여러개 slice로 쪼개고 slice당 64개 visual embeddings
  • visual encoding에서는 컨텍스트 개념이 없이 이미지 장당으로 처리하는 듯

Audio Encoding. 

  • Whisper Medium [8] encoder(0.3B)는 입력 audio를 chunk-based streaming 방식 [9]으로 인코딩하여 초당 50개의 feature token을 생성한다. 이후 two-layer MLP projector를 사용해 5× temporal compression을 수행하며, 그 결과 LLM backbone에는 초당 10개의 audio token이 입력되어 token budget을 줄인다.
  • 오디오가 들어오면, 초당 50개의 feature continuous embedding을 뽑는다.
  • 이 50개를 two-layer MLP 태워서 10개의 continuous embedding을 만들어서 LLM에 넣는다. 10Hz 느낌
  • 근데 오디오 인코더는 앞의 컨텍스트를 볼텐데 몇초씩 윈도우 슬라이딩을 하는건가? (이건 안나와있음)

Text Decoding. 

  • LLM backbone(Qwen3-8B [10])은 text output과 speech generation을 위한 hidden state를 생성한다. LLM backbone은 text domain의 token만 생성하므로, 실시간 full-duplex interaction 동안 초당 3~4번의 decoding step, 즉 사람의 speech speed 정도만 필요하다. 반면 최근 연구 [11, 12]처럼 backbone이 직접 speech token을 생성해야 하는 경우에는 일반적으로 초당 약 25개의 token을 생성해야 하므로 efficiency가 크게 저하될 수 있으며, core language capability 또한 감소하는 경향이 있다 [13, 14]. 본 연구의 설계는 speech token 생성을 아래에서 설명하는 lightweight speech decoder에 위임함으로써 이러한 문제를 피한다.
  • Qwen3 8B가 텍스트 토큰을 생성하고
  • 생성된 각 text token에 대응하는 LLM hidden state를 speech decoder에 넘긴다
    • 25 speech token/sec을 생성함
    • 아래에서 이어서 설명
  • 여기서 텍스트 토큰 생성과 speech 토큰 생성 시간을 고려하면, 텍스트 생성은 초당 3-4 텍스트 토큰이 생성되야함. 
    • 학습데이터가 텍스트와 speech 토큰을 시간으로 얼라인 하는 포맷인거 같음 (word align 같은)

Speech Token Generation. 

  • Speech generation에는 정확한 pronunciation뿐 아니라 context와 instruction에 의해 결정되는 prosody와 style도 필요하다. 우리는 LLM backbone의 contextual understanding capability를 활용하여 이를 해결한다. Lightweight Llama speech token decoder(약 0.3B)에 전달되는 각 text token에 대해, LLM backbone의 hidden state를 MLP layer를 통해 reshape한 뒤 speech decoder의 representation과 더하여 추가적인 S3 [15] token generation을 수행한다. Prosodic decision이 LLM backbone에 의해 미리 인코딩되므로, 작은 speech decoder는 자신의 capacity를 speech modeling에 집중할 수 있다. 또한 input text token과 output speech token을 time-aligned 방식으로 interleave하여, Section 3.4에서 자세히 설명하는 것처럼 output speech가 동시에 주어지는 environment context와 긴밀하게 결합되도록 한다.
  • 위에서 말한대로 생성된 text token이랑 그 직전 hidden state 을 넘겨서 speech 생성하는 식
    • text token + 대응 LLM hidden state를 작은 0.3B speech decoder에 전달
  • 여기서 사용하는 토큰은 cosyvoice에서 언급하는 s3 token이라고 함
    • s3=semantic token이라 보면되는듯
    • 걍 cosyvoice tokenizer 썼다고 이해하면 될거 같은데

Waveform Synthesis. 

  • Streaming flow-matching decoder [16, 12]는 multimodal system prompt에 포함된 reference audio를 기반으로, 생성된 S3 speech token을 audio waveform으로 변환한다.

부분표현
Visual inputcontinuous embedding
Audio inputcontinuous embedding
Text input/outputdiscrete text token
Speech outputdiscrete S3 speech token
최종 audiocontinuous waveform

3 Omni-Flow

기존의 상호작용 패러다임에서는 지각과 응답이 번갈아 수행되는 단계로 제한되어 있으며, 그 결과 Figure 3에 나타난 것처럼 I/O가 차단되고 수동적으로 응답하는 문제가 발생한다. 모델이 지각과 발화를 동시에 수행할 수 있도록, 우리는 omni-modal 입력 및 출력 스트림을 하나의 공유된 시간축을 기준으로 조정하는 Omni-Flow 프레임워크를 제안한다. Time-division multiplexing 기법에서 영감을 받아, Omni-Flow는 연속적인 상호작용을 길이 tt의 세밀한 시간 윈도우로 나눈다. 각 윈도우 내에서 모델은 새롭게 도착한 신호를 반영하는 동시에 다음 출력을 생성하며, 기존의 turn-taking 방식을 시간적으로 국소적인 업데이트들의 스트림으로 변환한다. 이는 Figure 4에 나타나 있다. tt가 충분히 작아질수록 지각과 응답은 시간적으로 더욱 긴밀하게 결합되며, 자연스럽게 full-duplex 동작에 가까워진다.

3.1 Time-Aligned Streams

우리는 상호작용 과정에서 시간적으로 정렬되는 세 가지 스트림을 정의한다. env-visual은 환경에 대한 실시간 시각적 관찰을 전달하고, env-audio는 사용자의 음성이 존재하는 경우 이를 포함하여 주변의 음향 장면을 전달하며, out-stream은 assistant의 text 및 speech 출력을 나타낸다.

이러한 관점에서는 사용자 요청을 더 이상 특별한 conversational role로 취급하지 않는다. 대신 사용자 요청은 지속적으로 관찰되는 world state의 일부가 되며, 주로 env-audio를 통해 입력된다. 마찬가지로 모델은 응답하기 전에 명시적인 사용자 요청을 trigger로 필요로 하지 않는다. 대신 out-stream은 지속적으로 들어오는 지각 정보와 결합된 상태로 변화한다.

따라서 모델은 항상 켜져 있는(always-on) 멀티모달 환경 속에 위치하게 되며, 모델은 무엇을 출력할 것인지뿐만 아니라, 스스로 출력할지 여부와 언제 출력할지도 결정해야 한다.

3.2 통합 직렬화 (Unified Serialization)

이러한 스트림들이 주어졌을 때, 우리는 이들을 표준 causal language model에 입력할 수 있는 하나의 통합 시퀀스로 구성한다. kk번째 시간 청크(time chunk)에 대해, env-visual과 env-audio에서 들어오는 입력은 각각 시각 토큰 시퀀스 vkv^k와 오디오 토큰 시퀀스 aka^k로 인코딩되며, out-stream의 업데이트는 출력 토큰 시퀀스 oko^k로 표현된다. 출력이 생성되지 않아야 하는 경우, oko^k는 특수한 [listen] 토큰 하나만을 포함한다.

우리는 시간적으로 정렬된 이러한 토큰들을

gk=[vk;ak;ok]g^k = [v^k; a^k; o^k]

로 묶고, 연속된 그룹들을 하나의 시퀀스로 이어 붙여 전체 상호작용을 직렬화한다.

각 청크 내에서 모델은 먼저 새롭게 도착한 지각 토큰들을 처리한 다음 출력 토큰을 생성한다. 따라서 모든 출력은 가장 최근의 관측 정보에 조건화된다. 청크 크기 tt를 줄이면 모델이 지각 정보를 갱신하는 빈도가 증가하며, 이를 통해 변화하는 환경과 더욱 긴밀하게 정렬된 상태를 유지할 수 있다.

또한 모델이 각 시간 구간마다 출력 여부를 스스로 결정하기 때문에, 자연스럽게 능동적인(proactive) 행동을 지원할 수 있으며 외부 VAD [17] 모듈에 대한 의존도도 줄어든다.

3.3 설계 트레이드오프 (Design Tradeoffs)

Omni-Flow에는 모델의 안정성과 반응성에 직접적인 영향을 미치는 여러 가지 설계 선택지가 존재한다. 따라서 우리는 시간적 세분성(temporal granularity), 경계의 명시성(boundary explicitness), 제어 방식(control formulation)의 세 가지 측면에서 ablation 실험을 수행한다.

시간적 세분성은 각 시간 청크의 길이를 의미하며, 1.0초, 0.2초, 0.1초를 비교한다. 경계의 명시성은 연속된 그룹 사이를 명시적인 특수 토큰으로 구분하는지 여부를 의미한다. 제어 방식은 모델이 발화 여부를 어떻게 결정하는지를 나타낸다. Listen-Speak (LS) 방식에서는 모델이 콘텐츠를 생성하기 전에 먼저 listen/speak 중 하나를 나타내는 이진 제어 토큰을 예측한다. Listen-Text (LT) 방식에서는 모델이 하나의 공유 출력 공간에서 [listen] 또는 일반 텍스트 토큰을 직접 예측한다. 결과는 Table 1에 제시되어 있다.

시간적 세분성은 지연 시간과 모델링 용량 사이의 핵심적인 트레이드오프를 결정한다. 청크 크기를 줄이면 시간적인 반응성은 향상되지만, 동시에 각 청크 내에서 제어와 생성을 수행하는 데 사용할 수 있는 모델링 예산은 줄어든다. 청크가 지나치게 짧아지면 모델은 각 시간 구간에서 안정적인 결정을 내리고 일관된 출력을 생성하기에 충분한 정보를 확보하지 못하게 되며, 그 결과 성능이 크게 저하된다. 본 실험 설정에서는 1.0초의 청크 크기가 가장 좋은 균형을 제공한다.

경계를 명시적으로 표현하는 것은 일관되게 유리하다. 그룹 사이의 경계를 명시적으로 표시하는 방식이 더 좋은 성능을 보인다. 이는 새롭게 관측된 입력과 새롭게 생성된 출력을 구분하는 것이 단순하지 않은 문제이며, 이러한 구조를 명시적으로 제공함으로써 모델이 부담해야 하는 학습 난이도를 줄일 수 있음을 시사한다.

상호작용 제어와 콘텐츠 생성을 분리하면 보다 안정적인 모델링이 가능하다. LS는 LT보다 더 좋은 성능을 보이며, 이는 발화할지 여부를 결정하는 것과 무엇을 말할지를 결정하는 것을 분리해야 함을 나타낸다. 두 가지 결정을 하나의 예측 단계에 결합하면 full-duplex 상호작용을 학습하기가 더 어려워진다.

  • 3.2을 보면 이미지/오디오/텍스트가 하나의 1d grid로 들어오게끔 되어있는데 이걸 몇 초 단위로 판단할지에 대한 실험을 했다는것임
  • 결과론적으로 너무 빠르게 하면 반응은 빨라지나 정보가 너무 적어서 성능이 떨어져서 1초가 안정적이란 이야기
  • Grid 사이사이 스페셜 토큰으로 아래처럼 explicit 처리하면 바운더리가 더 잘 구분된다는것
    • <chunk> V A output </chunk> <chunk> V A output </chunk>
  • LT는
    • [listen] 또는 "그 선수가 슛을 했네요" 이 둘중 하나 선택
    • 즉 토큰으로 listen할지 말할지를 한꺼번에 결정
  • LS는
    • 1단계: [listen] vs [speak] 
    • 2단계: [speak]라면 실제 텍스트 생성 "그 선수가 슛을 했네요"
    • 이렇게 [speak]토큰을 추가하여 명확히 구분하는거 같음
  • LS가 더 성능이 좋다고함











Reference

댓글