AI바라기의 인공지능

VLM : 논문리뷰 : InternLM-XComposer2.5-OmniLive: A Comprehensive Multimodal System for Long-term Streaming Video and Audio Interactions 본문

논문리뷰

VLM : 논문리뷰 : InternLM-XComposer2.5-OmniLive: A Comprehensive Multimodal System for Long-term Streaming Video and Audio Interactions

AI바라기 2024. 12. 16. 13:45

Abstract

 

환경과 장기간 상호 작용할 수 있는 AI 시스템을 만드는 것은 인간의 인지와 유사하게 오랜 연구 목표였습니다. 최근 multimodal large language models (MLLMs)의 발전은 open-world understanding에 상당한 진전을 이루었습니다. 그러나 continuous and simultaneous streaming perception, memory, and reasoning이라는 과제는 아직까지 크게 탐구되지 않은 영역입니다. 현재 MLLMs는 sequence-to-sequence architecture에 의해 제약을 받는데, 이는 마치 인지하는 동안 생각할 수 없는 것처럼 입력을 처리하고 동시에 응답을 생성하는 능력을 제한합니다. 또한 long context에 의존하여 과거 데이터를 저장하는 것은 모든 정보를 유지하는 것이 비용이 많이 들고 비효율적이기 때문에 장기적인 상호 작용에는 적합하지 않습니다. 따라서 모든 기능을 수행하기 위해 단일 foundation model에 의존하는 대신, 이 프로젝트는 Specialized Generalist AI의 개념에서 영감을 얻어 disentangled streaming perception, reasoning, and memory 메커니즘을 도입하여 streaming video 및 audio input과의 실시간 상호 작용을 가능하게 합니다. 제안된 프레임워크인 InternLM-XComposer2.5-OmniLive (IXC2.5-OL)은 세 가지 주요 모듈로 구성됩니다. (1) Streaming Perception Module: multimodal 정보를 실시간으로 처리하고, 주요 세부 정보를 메모리에 저장하고, 사용자 쿼리에 대한 응답으로 reasoning을 트리거합니다. (2) Multimodal Long Memory Module: short-term memory와 long-term memory를 통합하고, 효율적인 검색과 향상된 정확도를 위해 short-term memory를 long-term memory로 압축합니다. (3) Reasoning Module: 쿼리에 응답하고 reasoning 작업을 실행하며, perception 및 memory 모듈과 조정합니다. 이 프로젝트는 인간과 유사한 인지를 시뮬레이션하여 multimodal large language models이 시간 경과에 따라 continuous and adaptive service를 제공할 수 있도록 합니다.

 

 

 

Figure 1. 인간과 유사한 인지와 Specialized Generalist AI에서 영감을 받아, 우리는 다음과 같은 기능을 통해 실시간 상호 작용을 가능하게 하는 시스템인 InternLM-XComposer2.5-OmniLive (IXC2.5-OL)을 소개합니다. (1) streaming video 및 audio input을 지원하는 streaming perception module; (2) short-term memory를 long-term memory로 압축하는 multi-modal long memory module; (3) 검색된 메모리를 기반으로 쿼리에 답변하는 reasoning module.

 

Abstract 정리 노트

목표: 인간처럼 환경과 장기간 상호작용하는 AI 시스템 만들기

핵심 문제:

  • 기존 MLLM은 동시에 인지하고 생각하는 능력 부족 (sequence-to-sequence architecture 한계)
  • 장기간 상호작용 위한 효율적인 정보 저장 및 활용 어려움 (long context 의존)

해결 방안:

  • Specialized Generalist AI 개념 기반으로 InternLM-XComposer2.5-OmniLive (IXC2.5-OL) 프레임워크 제안
    • Streaming Perception Module: 실시간 멀티모달 정보 처리, 중요 정보 저장, 추론 트리거
    • Multimodal Long Memory Module: 단기/장기 기억 통합 및 압축, 효율적 검색 및 정확도 향상
    • Reasoning Module: 질문 답변, 추론 수행, 인지 및 기억 모듈과 협업

기대 효과:

  • 인간과 유사한 인지 시뮬레이션
  • 멀티모달 LLM의 지속적이고 적응적인 서비스 제공

참고:

  • MLLM: Multimodal Large Language Model (멀티모달 대규모 언어 모델)
  • Open-world understanding: 실제 세계의 다양한 상황과 정보를 이해하는 능력

개인적인 생각:

  • 마치 사람처럼 보고 듣고 생각하는 AI 시스템을 만드는 것이 목표인 것 같다.
  • 기존 모델의 한계를 극복하기 위해 다양한 모듈을 결합하고, 장기 기억을 효율적으로 활용하는 방법을 제시하는 것이 흥미롭다.
  • 이러한 시스템이 개발된다면, AI가 실시간으로 상황에 대응하고, 과거 경험을 바탕으로 더욱 지능적인 서비스를 제공할 수 있을 것으로 기대된다.
 
 

1. Introduction

 

인간의 인지와 유사하게 환경을 이해하고 장기간 상호 작용할 수 있는 AI 시스템을 개발하는 목표는 수십 년 동안 연구의 중심 주제였습니다. 대규모 데이터 코퍼스와 multimodal large language models의 등장은 자유 형식의 multimodal question answering에서 상당한 발전을 이끌었습니다. 최근 개발은 보다 자연스럽고 몰입감 있는 온라인 상호 작용을 가능하게 하는 데 주목할 만한 진전을 이루었습니다. 그러나 단일 decoder-only large language model architecture의 고유한 한계로 인해 continuous interaction이 가능한 시스템을 만드는 데 어려움이 있습니다.

기존 아키텍처는 real-time 및 long-term streaming perception, reasoning, memory에서 상당한 제약에 직면합니다. 현재 MLLM에 사용되는 sequence-to-sequence decoder-only architecture는 perception (예: 보고 듣는 것)과 thinking 사이를 전환해야 하므로 입력과 출력의 동시 처리를 제한합니다. 또한 기존 연구는 context window 내에서 multimodal memories의 통합에 의존합니다. long context에 의존하여 과거 정보를 저장하는 것은 장기적인 사용, 특히 continuous AI assistance가 필요한 시나리오에서는 비실용적입니다. 비디오 스트림과 같은 Multimodal 데이터는 몇 시간 안에 수백만 개의 토큰을 빠르게 축적할 수 있으므로 여러 날 동안 서비스를 제공하는 동안 context를 유지하는 것은 비현실적입니다. context 내에 모든 과거 단서를 저장하는 비용과 비효율성은 시스템이 continuous and long-term service를 제공하는 능력을 더욱 제한합니다. 반대로 인간의 뇌는 perception과 cognition을 쉽게 통합하여 long-term multimodal memories를 보존할 수 있습니다. 이는 인간 뇌 피질의 기능적 분할 설계와 밀접한 관련이 있는 것으로 여겨지는데, 피질의 다른 영역이 perception, memory, cognition과 같은 서로 다른 작업을 담당합니다.

Specialized Generalist AI의 패러다임에서 영감을 받아, 우리는 streaming perception, reasoning, memory를 위해 융합된 specialized generalist models로 구성된 시스템인 InternLM-XComposer2.5-OmniLive (IXC2.5-OL)을 제안합니다. 이 시스템은 AI 모델이 시간 경과에 따라 observation을 유지하면서 환경과 지속적으로 상호 작용할 수 있도록 설계되었습니다. short-term 및 long-term multimodal memory를 통합함으로써, 우리의 접근 방식은 인간과 유사한 인지를 모방하여 보다 역동적이고 지속적인 상호 작용을 가능하게 합니다.

그림 1에서 볼 수 있듯이 IXC2.5-OL 시스템은 세 가지 주요 모듈로 구성됩니다. (1) Streaming Perception Module: 이 모듈은 multimodal 정보 스트림을 즉석에서 처리합니다. perception의 정확성과 효율성을 보장하기 위해 비디오 및 오디오 스트림은 별도로 처리됩니다. live video perception model은 비디오 스트림을 처리하여 정보를 인코딩하고 주요 세부 정보를 메모리에 저장합니다. 한편, audio model은 사람의 말과 짖는 소리, 노크 소리, 휘파람 소리와 같은 다른 소리의 내용을 인식합니다. 사람의 쿼리가 발생하면 reasoning process를 트리거합니다. (2) Multi-modal Long Memory Module: 이 구성 요소는 long-term memory와 short-term memory를 모두 통합하여 자세한 short-term 정보와 long-term historical cues를 검색할 수 있도록 합니다. 검색 효율성과 정확성을 높이기 위해 short-term memories를 정보가 더 풍부한 long-term memories로 지속적으로 압축합니다. (3) Reasoning Module: perception module에 의해 활성화되는 reasoning module은 쿼리를 처리하고 reasoning 작업을 수행합니다. 가장 많은 모델 매개변수를 가진 구성 요소로서 시스템의 심층적인 cognitive processes의 핵심 역할을 합니다.

제안된 시스템은 AI에 동시에 perceive, think, memorize 할 수 있는 능력을 부여합니다. perception과 reasoning을 번갈아 가며 수행해야 하는 한계를 극복함으로써 IXC2.5-OL은 continuous, adaptive service 및 long-term AI service를 제공하고자 합니다. 제안된 시스템은 AI 비서의 성능을 향상시킬 뿐만 아니라 동적 환경과 지속적으로 상호 작용하고 적응할 수 있는 광범위한 AI 애플리케이션에도 기여할 것입니다.

IXC2.5-OL은 오디오 및 비디오 벤치마크 모두에서 강력한 성능을 보여줍니다. open-source 모델 중에서 IXC2.5-OL은 audio recognition (ASR) 벤치마크에서 경쟁력 있는 결과를 달성합니다. video understanding 벤치마크의 경우 IXC2.5-OL은 모델 중에서 최첨단 결과를 달성하여 에서 의 M-Avg를, 에서 의 overall accuracy를 얻습니다. 또한 에서 경쟁력 있는 성능을 보여줍니다. 최근 streaming video 벤치마크인 에서 IXC2.5-OL은 open-source 모델에서 새로운 SOTA 결과를 달성하여 실시간 비디오 상호 작용에 대한 탁월한 기능을 강조합니다.

multimodal streaming interaction 커뮤니티의 개발을 촉진하기 위해 모델 매개변수와 함께 웹 프런트엔드 및 백엔드 코드를 모두 포함하는 inference 및 deployment source code도 공개되었습니다.

 

 

1. Introduction 정리 노트

목표: 인간처럼 환경을 이해하고 장기간 상호작용하는 AI 시스템 개발

기존 연구의 한계:

  • 단일 모델의 한계: 기존 MLLM은 decoder-only architecture 기반으로, '인지'와 '사고'를 동시에 수행하기 어려움
  • 장기 기억 활용의 어려움: long context에 모든 정보를 저장하는 방식은 비효율적이며 장기간 서비스에 부적합

새로운 접근 방식:

  • Specialized Generalist AI: 전문화된 기능을 가진 여러 모델들을 결합하여 인간의 인지 능력을 모방
  • InternLM-XComposer2.5-OmniLive (IXC2.5-OL): 실시간 상호작용, 장기 기억, 추론 기능을 통합하는 새로운 시스템

IXC2.5-OL의 핵심 구성 요소:

  • Streaming Perception Module: 실시간 멀티모달 정보 처리 (비디오, 오디오), 중요 정보 추출 및 저장
  • Multi-modal Long Memory Module: 단기/장기 기억 통합 및 압축, 효율적인 정보 검색 및 활용
  • Reasoning Module: 질문 답변, 추론 수행, 다른 모듈과의 협력

IXC2.5-OL의 장점:

  • 동시 처리: 인지와 사고를 동시에 수행하여 실시간 상호작용 가능
  • 장기간 서비스: 효율적인 기억 관리를 통해 장기간 지속적인 서비스 제공
  • 적응성: 변화하는 환경에 맞춰 적응적인 서비스 제공

기대 효과:

  • AI 비서 성능 향상
  • 다양한 환경에서 지속적으로 상호작용하며 적응하는 AI 애플리케이션 개발에 기여

개인적인 생각:

  • 인간의 뇌처럼 각 기능을 분담하는 specialized model을 통해 AI 시스템의 효율성을 높이는 아이디어가 흥미롭다.
  • 실시간 상호작용과 장기 기억 활용은 AI가 인간과 더욱 자연스럽게 소통하는 데 중요한 역할을 할 것으로 예상된다.
  • IXC2.5-OL 시스템이 다양한 분야에서 활용되어 AI 기술 발전에 기여할 수 있기를 기대한다.

 

 

 

2. Related Works

MLLMs for Text-Image Conversation. Large Language Models (LLMs)은 언어 이해 및 생성 능력으로 큰 주목을 받았습니다. 이러한 성공을 기반으로 Large Vision-Language Models (LVLMs)은 LLM과 vision encoder를 통합하여 개발되었으며, 시각적 콘텐츠를 이해하는 능력을 확장하여 텍스트-이미지 대화와 같은 애플리케이션을 가능하게 합니다. 초기 LVLMs는 주로 단일 이미지, 다중 라운드 대화를 위해 설계되었지만, 최근 발전은 다중 이미지 입력을 처리하고 이해하는 능력을 확장했습니다.

 

MLLMs for Video Understanding. 이미지 이해의 발전과 더불어 MLLMs 분야에서는 비디오 분석에 대한 노력이 증가하고 있습니다. 비디오 입력의 복잡성을 해결하기 위해 기존 접근 방식은 sparse sampling 또는 temporal pooling, compressed video tokens, memory banks와 같은 기술을 활용합니다. 또한 일부 방법은 언어를 비디오 이해를 위한 bridge로 사용합니다. 이러한 비디오 관련 전략 외에도 비디오 분석은 샘플링된 비디오 프레임에서 생성된 고해상도 합성 이미지를 해석하는 것으로 구성될 수 있습니다. 최근 발전은 online video understanding에 점점 더 중점을 두고 있으며, AI가 비디오 스트림을 실시간으로 처리하여 즉석에서 환경을 이해하는 실제 시나리오를 시뮬레이션하는 것을 목표로 합니다. 그러나 기존 솔루션은 여전히 perception, memory, reasoning을 동시에 수행하는 기능이 부족하여 일관되고 장기적인 인간-AI 상호 작용에 대한 적용 가능성이 제한됩니다.

 

MLLMs for Audio Understanding. 오디오 이해는 sequence-to-sequence (Seq2Seq) 작업으로 효과적으로 모델링할 수 있으며, 이는 오디오 토크나이저와 인코더를 통합하여 large language model과 강력하게 통합할 수 있도록 합니다. 오디오 입력을 수신하는 것 외에도 최근 연구에서는 화자가 자유롭게 중단할 수 있는 streaming duplex speech model을 조사합니다. 오디오-텍스트 모델 외에도 새로운 연구는 오디오-비주얼 모델과 오디오, 비주얼 및 텍스트 양식을 처리하는 unified architecture를 탐구합니다.

 

MLLMs for Omni-Modal Understanding. 여러 양식을 단일 omni-modal foundation model로 통합하는 것은 유망한 연구 방향입니다. 기존 연구는 일반적으로 비디오와 오디오를 결합하여 omni-modal 입력을 처리할 수 있는 모델을 탐구하여 텍스트, 오디오 및 omni-modal 콘텐츠를 포함한 다양한 형식으로 출력을 생성합니다. IXC2.5-OL의 현재 설계에서는 joint training 중에 잠재적인 영향을 완화하기 위해 오디오 및 비디오 양식을 별도로 처리합니다. 향후 버전에서는 모델에 모든 양식에 대한 joint training을 통합하여 seamless omni-modality integration을 가능하게 할 것입니다.

 

 

 

 

 

 

Table 1. Audio Translation Module의 pretraining 및 supervised fine-tuning (SFT)에 사용된 데이터 세트 개요. pretraining 단계는 GigaSpeech 및 WenetSpeech 데이터 세트를 활용하여 automatic speech recognition (ASR) 작업에만 중점을 둡니다. SFT 단계에는 ASR 및 audio classification (CLS) 작업이 모두 포함되며 다양한 데이터 세트를 활용합니다. CommonVoice의 경우 영어 및 중국어 분할만 사용합니다. 또한 CLS 작업에는 자체 구성된 "Silence" 샘플 475개가 사용됩니다.

 

 

 

2. Related Works 정리 노트

주제: 다양한 양식을 이해하는 MLLM 관련 연구 동향

세부 분야:

  • MLLMs for Text-Image Conversation: 텍스트와 이미지를 함께 이해하는 모델. 초기에는 하나의 이미지에 대한 텍스트 기반 대화에 집중했지만, 최근에는 여러 이미지를 동시에 이해하는 방향으로 발전.
  • MLLMs for Video Understanding: 비디오를 이해하는 모델. 다양한 기술 (sparse sampling, temporal pooling, compressed video tokens, memory banks 등) 을 활용하여 비디오의 복잡성을 처리하고, 실시간으로 비디오를 이해하는 online video understanding 연구가 증가하는 추세. 하지만 아직 perception, memory, reasoning을 동시에 수행하는 데는 어려움을 겪고 있음.
  • MLLMs for Audio Understanding: 오디오를 이해하는 모델. Seq2Seq 방식으로 모델링하여 large language model과 통합하고, 화자의 자유로운 중단을 허용하는 streaming duplex speech model 연구도 진행 중. 오디오-텍스트 모델 뿐 아니라 오디오-비주얼 모델, 그리고 텍스트까지 포함하는 unified architecture 연구도 등장.
  • MLLMs for Omni-Modal Understanding: 다양한 양식 (omni-modal) 을 하나의 모델로 통합하는 연구. 비디오와 오디오를 결합하여 텍스트, 오디오, omni-modal 콘텐츠 등 다양한 형식의 출력을 생성하는 모델 연구가 진행 중.

IXC2.5-OL과의 관련성:

  • IXC2.5-OL은 위에서 언급된 다양한 연구 분야의 성과를 바탕으로 개발되었으며, 특히 online video understanding, streaming duplex speech model, omni-modal understanding 연구와 밀접한 관련이 있음.
  • 현재 IXC2.5-OL은 오디오와 비디오 양식을 별도로 처리하지만, 향후 joint training을 통해 모든 양식을 통합하는 seamless omni-modality integration을 목표로 함.

개인적인 생각:

  • 다양한 양식을 이해하는 MLLM 연구는 AI가 인간과 더욱 풍부하고 자연스러운 상호작용을 하는 데 필수적이라고 생각됨.
  • 각 분야의 연구가 발전하고 서로 융합되면서, 궁극적으로는 인간처럼 종합적인 사고를 할 수 있는 AI 개발에 기여할 것으로 기대됨.
  • IXC2.5-OL이 omni-modal understanding 연구를 통해 더욱 발전하여 다양한 분야에서 활용될 수 있기를 기대함.

 

 

 

3. Method

1장에서 간략하게 소개했듯이 IXC2.5-OL에는 세 가지 분리된 모듈이 있습니다. 1) 즉석에서 시각 및 청각 정보를 처리하기 위한 Streaming Perception Module, 2) 메모리 통합 및 검색을 위한 Multi-modal Long Memory Module, 3) perception 및 memory 모듈에서 정보를 수집하고 쿼리를 처리하며 추론 작업을 수행하는 Reasoning Module. 모든 모듈은 동시에 작동하고 비동기적으로 상호 작용합니다.

3.1. Streaming Perception Module

자연어 외에도 IXC2.5-OL은 비디오와 오디오를 기본적으로 처리할 수 있습니다. 이를 위해 Streaming Perception Module에는 Audio Translation Module과 Video Perception Module이 포함되어 있습니다.

Audio Translation Module에는 audio encoder, audio projector, Small Language Model (SLM)이 포함됩니다. audio encoder는 입력 오디오 샘플을 고차원 feature로 인코딩하고 audio projector는 feature를 SLM의 입력 공간에 매핑합니다. SLM은 오디오의 클래스(예: 웃음, 박수 또는 비)와 오디오 내의 자연어(즉, automatic speech recognition)를 모두 출력합니다. 실제로 Whisper 모델을 audio encoder로 사용하고 Qwen2-1.8B를 SLM으로 사용합니다. training에는 두 단계가 있으며 표 1에 training 데이터를 나열합니다.

Video Perception Module은 Multi-modal Long Memory Module에 coarse-grained 시각 정보를 제공합니다. 실시간 비디오 입력 스트림을 처리하고 각 프레임을 semantic feature로 인코딩합니다. 효율성을 위해 OpenAI CLIP-L/14를 사용합니다.

3.2. Multi-modal Long Memory Module

Multi-modal Long Memory Module은 매우 긴 비디오 입력을 처리하는 핵심 설계이며 Reasoning Module이 context window에서 수백만 개의 토큰을 제거하는 데 도움이 됩니다. 비디오 클립을 short-term memories로 인코딩하고 long-term memory에 통합하는 VideoStreaming과 유사한 아이디어를 공유합니다. 주어진 질문을 통해 Reasoning Module에 가장 관련성이 높은 비디오 클립을 검색했습니다. 공식적으로 Multi-modal Long Memory Module은 세 가지 작업으로 학습됩니다.

Video Clip Compression. Perception Module에서 추출한 k번째 비디오 클립의 feature를 사용하여 spatial down-sampling과 global memory를 통해 short-term memory를 초기화합니다. LLM의 auto-regressive 및 feature aggregation 특성을 통해 압축을 실현합니다.

Memory Integration. short-term memory는 각 짧은 비디오 클립의 자세한 정보를 나타내지만 모델은 여전히 비디오에 대한 거시적인 관점이 부족합니다. 이를 위해 비디오 클립 목록의 short-term 및 global memory를 사용하여 다음 형식으로 Compressor를 통해 long-term memory에 통합합니다. H¯ = [H¯ 1 , H¯ 2 , ..., H¯ k ] ∈ R k×C 는 비디오를 고압축 방식으로 나타내며 이를 long-term memory로 나타냅니다.

Video Clip Retrieval. 사용자가 질문을 제기하면 Multi-modal Long Memory Module은 질문과 관련된 비디오 클립을 검색하고 비디오 클립과 short-term memory를 모두 Reasoning Module에 제공합니다. 실제로 먼저 질문을 memory의 feature 공간으로 인코딩합니다. long-term memory와 토큰화된 질문을 Compressor 입력으로 연결하고 출력 feature의 마지막 토큰을 memory-space-aligned question feature로 간주합니다. 그런 다음 question feature와 각 비디오의 global memory 간의 유사성을 계산하고 Reasoning Module에 가장 관련성이 높은 클립을 선택합니다.

Implementation Detail. Qwen2-1.8B를 LLM으로 사용하고 앞서 언급한 세 가지 작업에 대한 여러 종류의 training 데이터를 구성합니다. 표 2에서 볼 수 있듯이 VideoStreaming에서 설계된 것과 동일한 prefix captioning 작업을 사용하여 여러 소스의 짧은 비디오 캡션 데이터로 Video Clip Compression 작업을 학습시킵니다. Memory Integration 작업 및 Video Clip Retrieval 작업의 경우 기성품 비디오 접지 데이터 외에도 'Semantics Implicit Question' 및 'Reference Implicit Question'이라는 두 가지 고유한 작업에 대한 데이터도 구성합니다.

'Semantics Implicit Question'은 질문이 일부 객체를 직접 가리키는 것이 아니라 객체의 용도 또는 의미를 언급하고 모델이 암시적 질문을 이해하여 객체를 찾아야 함을 의미합니다. 예를 들어 사용자가 '오늘 날씨 어때요?'라고 질문하면 모델은 우산, 선글라스 등 과거 비디오 스트림에서 날씨와 관련된 객체를 찾아야 합니다. 또 다른 예는 '배고픈데 샌드위치를 어디에서 데울 수 있나요?'입니다. 모델은 이전에 본 전자레인지를 찾아야 합니다.

'Reference Implicit Question'은 질문에서 명사가 아닌 대명사를 사용함을 의미합니다. 예를 들어 '이게 뭐야'는 정확한 객체를 언급하지 않더라도 모델이 현재 프레임을 검색해야 함을 의미합니다. 두 종류의 암시적 질문은 모두 실제 의사 소통에서 일반적으로 사용되지만 현재 모델은 이를 처리하지 못하므로 해당 training 데이터를 구성하여 모델에 이러한 기능을 제공합니다.

 

 

3.3. Reasoning Module

Reasoning Module은 개선된 버전의 InternLM-XComposer2.5 (간략하게 IXC2.5)로 초기화되며 memory feature를 IXC-2.5와 정렬하기 위해 memory projector를 추가합니다. Memory Module에서 제공하는 주어진 질문과 시각 및 메모리 정보 모두에 대해 입력을 다음과 같이 공식화합니다.

Question: < |Que| >, Here is the question related video clip < |Img| >; Here is the question related memory < |Mem| >

실제 사용에서 답변해서는 안 되는 노이즈 입력(예: 사용자가 'enn...' 또는 'ok...'라고 말하는 경우)이 있는 경우 모델은 눈에 띄게 유지하고 다음 질문을 기다려야 합니다. 이를 위해 각 질문에 대한 추가 'Instruction Prediction' 프로세스를 추가하여 답변해야 할지 여부를 결정합니다.

 

 

Figure 3. IXC2.5-OL의 시스템 파이프라인. 이 시스템은 Frontend, SRS Server 및 Backend Server로 구성됩니다. Frontend는 비디오 및 오디오 스트림을 캡처하고 Backend Server에서 오디오를 재생하는 데 사용됩니다. SRS Server는 라이브 스트림을 관리하는 데 사용됩니다. Backend Server는 오디오 및 비디오를 읽고, 메모리를 추출하고, 질문에 답하는 역할을 합니다. 그림의 녹색 상자는 스레드 또는 프로세스를 나타냅니다.

 

 

3.4. System Pipeline

그림 3에 나와 있듯이 시스템은 Frontend, SRS Server 및 Backend Server로 구성됩니다.

Frontend. JavaScript로 개발된 프런트엔드 애플리케이션을 사용하면 카메라와 마이크가 비디오 및 오디오 스트림 입력을 캡처하여 SRS 서버로 푸시할 수 있습니다. 동시에 백엔드와 WebSocket 연결을 설정하여 오디오 출력 및 인터럽트 신호를 수신합니다. 오디오 데이터가 수신되면 프런트엔드에서 재생합니다. 인터럽트 신호를 수신하면 프런트엔드는 오디오 재생을 일시 중단하고 보류 중인 오디오를 삭제합니다.

SRS Server. SRS (Simple Realtime Server)는 간단하고 효율적인 실시간 비디오 서버로 RTMP, WebRTC, HLS, HTTP-FLV, SRT 등과 같은 수많은 실시간 스트리밍 프로토콜을 지원하는 데 능숙합니다. 오디오 및 비디오 스트림을 안정적으로 수신하고 전달하는 기능으로 유명합니다.

Backend Server. 프런트엔드와 WebSocket 연결을 설정한 후 백엔드는 SRS 서버에서 스트리밍을 가져오고 오디오와 비디오를 읽기 위해 별도의 스레드를 시작합니다.

오디오 읽기 스레드는 오디오 스트림을 4096비트 청크로 분할하고 오디오 큐에 넣습니다. Voice Activity Detection (VAD) 스레드는 오디오 큐에서 지속적으로 데이터를 읽고 음성 활동의 시작과 끝을 감지합니다. 음성 활동 시작을 감지하면 백엔드는 프런트엔드에 인터럽트 신호를 보내 현재 재생 중인 오디오를 일시 중지하는 동시에 비디오 프로세스에 백업 신호를 보내 현재 메모리 상태를 저장하도록 지시합니다. 음성 활동의 끝을 감지하면 전체 음성 세그먼트가 ASR Todo Queue에 넣습니다. ASR 스레드는 ASR Todo Queue에서 오디오 세그먼트를 지속적으로 읽고 배경 소음 분류 및 음성 인식을 수행한 다음 LLM에서 사용할 수 있도록 결과를 LLM Todo Queue에 넣습니다.

비디오 읽기 스레드는 초당 1프레임의 속도로 비디오 프레임을 읽고 프레임 큐에 넣습니다. 압축기 프로세스는 큐에서 비디오 프레임을 읽고 인식하고 관련 메모리를 추출하여 저장합니다. VAD 스레드에서 백업 신호를 수신하면 압축기 프로세스는 나중에 검색할 수 있도록 현재 메모리 상태를 저장합니다.

LLM 프로세스는 LLM Todo Queue에서 텍스트를 읽고 모델의 응답이 필요한 명령인지 여부를 결정합니다. 명령으로 식별된 텍스트의 경우 압축기 프로세스는 현재 명령과 백업된 메모리를 사용하여 메모리 접지를 수행하여 명령과 관련된 메모리를 검색합니다. 그런 다음 LLM 프로세스는 검색된 메모리와 명령을 기반으로 응답을 생성하고 결과 출력을 TTS Todo Queue에 넣습니다. 추가 TTS 스레드(예: F5-TTS, MeloTTS)는 TTS Todo Queue의 텍스트를 오디오로 변환하여 프런트엔드로 보냅니다.