파이톨치

[paper review] Shotluck Holmes: A Family of Efficient Small-Scale LargeLanguage Vision Models for Video Captioning andSummarization 본문

카테고리 없음

[paper review] Shotluck Holmes: A Family of Efficient Small-Scale LargeLanguage Vision Models for Video Captioning andSummarization

파이톨치 2025. 1. 22. 22:27
728x90

Shotluck Holmes: 셜록홈즈

Abstract

 비디오는 점점 더 중요한 정보 밀도가 높은 매체가 되고 있지만, 이는 언어 모델에 상당한 도전 과제를 제기합니다. 일반적인 비디오는 더 짧은 세그먼트 또는 쇼트로 구성된 시퀀스로, 이들이 모여 하나의 일관된 내러티브를 형성합니다. 각 쇼트는 문장에서 단어와 유사하며, 시각적 데이터와 청각적 데이터를 동시에 처리해야 하는 다중 데이터 스트림을 포함합니다. 전체 비디오를 이해하려면 각 쇼트의 시각-청각 정보를 이해하는 것뿐만 아니라, 각 쇼트 간의 아이디어를 연결하여 더 크고 포괄적인 이야기를 생성하는 것이 필요합니다.


  이 분야에서는 상당한 진전이 있었음에도 불구하고, 현재의 연구들은 비디오의 보다 세밀한 쇼트별 의미 정보를 종종 간과하고 있습니다.
본 프로젝트에서는 비디오 요약 및 캡셔닝 성능을 향상시키기 위해 Shotluck Holmes라 불리는 효율적인 대형 언어 비전 모델(LLVM) 계열을 제안합니다. 더 나은 사전 학습 및 데이터 수집 전략을 활용하여, 기존의 소규모 LLVM이 단일 이미지를 이해하는 능력을 프레임 시퀀스를 이해할 수 있도록 확장합니다. 특히, Shotluck Holmes가 Shot2Story 비디오 캡셔닝 및 요약 작업에서 최신 기술(state-of-the-art) 결과보다 더 작은 크기와 더 효율적인 계산 모델로 더 나은 성능을 달성했음을 보여줍니다.

Introduction

 지난 5년간 기계 학습 모델이 언어와 시각 데이터를 받아들이고 이해하며, 이를 바탕으로 비판적 추론을 수행하는 능력이 크게 발전했습니다. 이러한 발전은 주로 모델 아키텍처의 혁신 [22], 계산 성능의 향상, 그리고 사용 가능한 데이터의 급증 덕분입니다. 특히, 혁신적인 트랜스포머 아키텍처 [22]로 구동되는 다중 모달 대형 언어 모델(LLMs)은 자연어 및 시청각 데이터 이해에서 획기적인 성과를 달성했습니다. 이러한 분야에서의 성공 [17] 덕분에, LLM은 비디오를 이해하는 지능형 에이전트를 구축하는 데에도 선도적인 역할을 하고 있습니다.

비디오는 시각적 매체에서의 역동적인 움직임과 음성 내레이션, 소리, 텍스트를 결합한 매우 복잡한 데이터입니다. 이 네 가지 요소는 비디오의 진행 과정에서 서로 보완하거나 간섭하기도 합니다. 따라서 최첨단(State-of-the-Art, SOTA) 언어 모델이 이를 효과적으로 이해하고 추론하는 것은 여전히 어려운 과제입니다.

 

 현재 SOTA 접근법인 Shot2Story20K [8]은 시각적 신호와 청각적 신호를 결합한 새로운 벤치마크 데이터셋을 제안하며, 이를 세 단계의 모델 파이프라인을 통해 처리합니다. 이 벤치마크 데이터셋을 사용하여 맞춤형 모델 아키텍처를 훈련한 결과, 단일 쇼트 내레이션 캡셔닝, 다중 쇼트 비디오 요약, 비디오 Q&A, 비디오 검색 작업에서 성능이 크게 향상되었습니다. 이 연구는 다중 모달 입력을 통합하는 것이 언어 모델의 다중 모달 데이터 이해를 향상시키는 데 필수적임을 보여주었습니다.

 

 본 논문에서는 Shot2Story20K 논문에서 제안된 발전을 활용하고, 이를 소규모 다중 모달 모델 계열 중 하나인 TinyLLaVA와 통합합니다. 구체적으로, Shot2Story20K의 세 단계 비전-언어 모델 파이프라인 중 마지막 두 단계를 TinyLLaVA로 대체하는 것이 충분함을 보여줍니다. 이 대체는 메모리 사용량, 계산 부담, 지연 시간을 크게 줄이는 동시에, Shot2Story20K 데이터셋에서 미세 조정(finetuning)을 거친 후에도 훨씬 작은 모델 크기로 SOTA 성능을 달성할 수 있음을 증명합니다.

Relevant Work

대형 언어 모델(LLM)은 뛰어난 성능 덕분에 최근 몇 년간 많은 연구 관심을 받아왔습니다 [2–4, 7, 27]. 이에 더해 비전 인코더 [21, 26]의 발전은 멀티모달 대형 언어 모델 분야에서 중요한 연구 성과를 이끌어냈습니다. 최근 LLM인 LLaVA [14]와 InstructBLIP [5]는 시각적 명령 튜닝 데이터를 활용하여 기존 LLM 백본을 미세 조정(fine-tuning)함으로써 제로샷(zero-shot) 성능을 향상시키고 모델을 인간의 선호에 더 잘 맞도록 조정했습니다. 그러나 이 모델들은 각각 70억(7B) 및 82억(8.2B) 매개변수를 갖고 있어 비교적 대규모 모델로 분류됩니다.


TinyLLaVA 프레임워크는 소규모 LLM을 활용한 LLVM(대형 언어 비전 모델)의 활용 가능성을 분석하며, 동일한 시각적 명령 튜닝 데이터를 사용해 미세 조정을 수행합니다. 연구 [28]에서는 SigLIP [26]이 다양한 매개변수 크기를 가진 소규모 LLM(예: TinyLlama(11억 매개변수) [27], Phi-2(27억 매개변수) [11])과 결합될 때 CLIP보다 더 나은 성능을 발휘함을 발견했습니다. 소규모 LLVM(31억 매개변수)은 LLaVA-1.5Qwen-VL 등 기존 70억 매개변수 모델을 능가하며, 다양한 평가 벤치마크(TextVQA [19], SQA-I [16], GQA [9], VQAv2 [6], MMB [15], MME [24], LLaVAW [14], POPE [12], M-Vet [25])에서 더 나은 전반적인 성능을 달성했습니다. 하지만, TinyLLaVA의 기능은 이미지-텍스트->텍스트 생성으로 제한됩니다.

Shot2Story20K [8]은 HDvila100M [23] 데이터셋(자동 음성 인식(ASR) 콘텐츠가 풍부하게 포함됨)을 활용하며 엄격한 품질 검사를 통해 20023개의 풍부한 데이터셋을 수집했습니다. 최근에는 데이터셋 크기를 134K로 확장한 버전도 공개하며, 이 벤치마크의 쇼트 레벨 데이터셋은 경쟁 모델의 성능을 훨씬 뛰어넘는 수준에 도달했습니다.

앞서 언급했듯, Shot2Story20K [8]은 시각 및 청각 신호를 결합하여 세 단계의 모델을 통해 데이터셋을 생성합니다.

  1. TransNetV2 [20]를 사용해 비디오를 쇼트 단위로 분할합니다.
  2. MiniGPT-4 [29]가 개별 쇼트에 대한 비디오 캡셔닝을 수행하며, 결과는 사람 검토자가 수동으로 확인하고 개별 쇼트의 내레이션 캡션을 작성합니다.
  3. GPT-4 [17]가 모든 개별 쇼트 캡션과 ASR 데이터를 결합하여 인간의 프롬프트를 바탕으로 전체 비디오 요약을 수행합니다.

Method

Data-Preprocessing

Shot2Story20K 데이터셋을 TinyLLaVA와 호환되도록 조정하기 위해 여러 전처리 단계를 수행했습니다. Shotluck Holmes 전처리 절차에서는 Shot2Story20K 주석을 개별 쇼트로 분할하고, 각 쇼트를 해당 캡션 및 ASR(자동 음성 인식) 전사와 매칭했습니다. 이후, 주석 데이터를 처리하여 손상된 데이터를 식별하고 제거해, 데이터셋에서 이러한 손상된 쇼트를 배제했습니다. 결과적으로 Shotluck Holmes 데이터셋은 비디오 입력과 함께 인간 프롬프트와 LLM의 정답 출력 간의 대화 기록을 포함하는 구조로 만들어졌습니다.

Video to Tensor Conversion

LLM이 비디오 데이터를 처리할 수 있도록, 비디오는 먼저 텐서로 변환된 후 SigLIP [26]과 같은 비전 인코더에 입력됩니다. 비디오를 텐서로 변환하기 위해 LAVIS [10]에서 영감을 받은 두 가지 샘플링 방식을 실험했습니다:

  1. 균등 샘플링
  2. 헤드-테일 샘플링
    • 헤드-테일 샘플링은 비디오의 전반부와 후반부에서 동일한 수의 프레임을 무작위로 샘플링하는 방식입니다.

샘플링된 프레임들은 이어 붙여져 비전 인코더에 입력됩니다.

Shotluck Holmes Backbone

Shot2Story20K 모델 아키텍처는 비디오 요약(Video Summarization) 또는 질의응답(Q&A) 작업을 지원하기 위해 여러 언어 모델을 사용합니다.


TinyLLaVA와 같은 효율적인 소규모 LLVM을 활용함으로써, Shot2Story20K 전체를 대체하여 단일 쇼트 비디오 캡셔닝 및 다중 쇼트 비디오 요약에서 강력한 성능을 달성하는 동시에 계산 복잡성을 대폭 줄이는 것을 목표로 하고 있습니다.

Shotluck Holmes는 Shot2Story20K 데이터셋에 대해 미세 조정된 소규모 LLM 계열을 제공합니다. 첫 번째 두 모델은 각각 15억(1.5B) 및 31억(3.1B) 매개변수를 가진 LLM으로, TinyLLaVA를 기반으로 구축되었습니다(표 1 참고).

우리의 모델 아키텍처는 그림 1에 나와 있습니다. TinyLLaVA의 기존 파이프라인을 따르며, 비디오 데이터를 추가적으로 처리해 비전 인코더에 입력합니다. 이후 이를 MLP(Multi-Layer Perceptron)로 매핑하여 LLM 임베딩 공간으로 변환합니다.

미세 조정 중에는 비전 인코더의 처음 12개 층을 고정(freeze)하고 나머지 모델을 업데이트합니다.

Single-Shot Video Captioning

단일 쇼트 비디오 캡셔닝의 목표는 개별 비디오 쇼트(즉, 전체 비디오의 특정 구간)에 대한 설명을 생성하는 것입니다.
모델은 먼저 앞서 설명한 두 가지 샘플링 방식 중 하나를 사용하여 비디오 쇼트에서 𝑁 = 120 프레임을 샘플링합니다.

  • 𝑁 = 120은 훈련 하드웨어에서 처리 가능한 최대 프레임 수를 기준으로 선택되었습니다.

이 프레임들은 이어 붙여져 비전 인코더에 입력되고, 이를 통해 시각 토큰(visual tokens)이 생성됩니다.

  • 생성된 토큰은 MLP를 통해 처리되며, 사전 정의된 텍스트 프롬프트와 결합됩니다.
  • 이 프롬프트는 사용 중인 LLM의 유형(부록 A 참고)에 따라 결정되며, ASR(자동 음성 인식) 텍스트는 추가적인 맥락 단서로 제공됩니다.

마지막으로, 이 텐서는 주어진 크기의 소규모 LLM에 입력되어 비디오 쇼트에 대한 캡션을 생성합니다.

Multi-shot Video Summarization

다중 쇼트 비디오 요약은 동일한 비디오에서 촬영된 여러 쇼트를 바탕으로 사건의 진행 과정을 설명하는 합리적인 요약을 제공하는 작업입니다.

  • 단일 쇼트 비디오 캡셔닝과 동일한 접근 방식을 따릅니다.
  • 다른 점은 이번에는 비디오 전체에서 동일한 수의 프레임을 샘플링한다는 것입니다.
  • 또한, ASR 정보는 비디오 전체에서 검색됩니다.

이를 통해 비디오 전반에 걸친 여러 쇼트를 요약하는 설명을 생성합니다.

실험 결과

단일 쇼트 비디오 캡셔닝과 비디오 요약 작업 모두 부록 A에서 설명한 동일한 지침 템플릿을 따랐습니다.
모든 시나리오에서의 미세 조정(fine-tuning)은 지도 학습 방식으로 진행되었으며, 평가 중에는 정답 데이터(ground truth)가 제거되었습니다.
사용된 옵티마이저와 미세 조정 하이퍼파라미터는 부록 B에 나와 있습니다.

Single-Shot Video Captioning

ASR(자동 음성 인식)과 맥락 단서를 추가함으로써 결과는 매우 성공적이었습니다.
예를 들어, Figure 2에 나온 도전적인 쇼트에 대해 모델은 다음 문장을 생성했습니다:

"영상에는 검은색 정장과 넥타이를 입은 남자가 커다란 화면 앞에 서 있습니다. 화면에는 권투 경기가 표시되고 있으며, 그는 앞에 놓인 마이크에 대고 말을 하고 있습니다."

Multi-Shot Video Summarization

데이터셋에는 단일 쇼트와 다중 쇼트 비디오 예제가 모두 포함되어 있으며, 모델은 이 두 가지 작업을 동시에 학습하도록 미세 조정되었습니다.
학습 초점이 분산된 상황임에도 불구하고, 모델은 다중 쇼트 비디오에 대해 일관성 있는 요약을 생성하는 데 성공했습니다.

예를 들어, 한 비디오는 태블릿 컴퓨터의 사양과 기능을 설명하는 여러 쇼트를 포함하고 있었으며, 모델은 다음과 같은 요약을 생성했습니다:

"이 비디오는 다양한 기능을 가진 태블릿 컴퓨터에 대한 내용입니다.
64GB 하드 드라이브와 2GB 메모리를 가지고 있으며, 빠른 Intel Atom z3740 5F 쿼드 코어 데이터 프로세서를 탑재하고 있습니다.
이 태블릿은 키보드와 쉽게 연결할 수 있는 탈부착형 자기 힌지를 가지고 있으며, 래치 리스트(latch list)라는 기능도 있습니다.
이 기능은 태블릿을 키보드에 신속하고 쉽게 연결하거나 분리할 수 있도록 해줍니다."

결론

본 논문에서는 Shotluck-Holmes라는 모델 계열을 제안하며, 이 모델은 쇼트 단위 및 전체 길이 비디오 이해 작업에서 최신(state-of-the-art) 성능을 달성합니다.
이 결과는 Shot2Story [8]의 멀티모델 파이프라인(쇼트 단위 비디오 주석과 오디오-비주얼 요소를 통합)과 TinyLLaVA와 같은 소규모 언어 모델(LLM)을 결합함으로써 달성되었습니다.
또한, 이러한 작은 모델들이 비디오 캡셔닝 및 요약 작업에서 대형 모델과 경쟁할 수 있는 일반화 능력을 보여주었으며, 이는 제한된 하드웨어나 엣지 디바이스에서도 이러한 작업이 실행 가능함을 시사합니다.

제한 사항

그러나, 학습 파이프라인 및 계산 자원 측면에서 여전히 개선의 여지가 있습니다. 주요 제한 사항은 다음과 같습니다:

  1. 단일 쇼트와 다중 쇼트 비디오의 혼합 데이터셋 사용
    모델을 단일 쇼트와 다중 쇼트 비디오의 하이브리드 데이터셋으로 학습했습니다.
    • 이 방식은 적은 샘플로도 두 작업에 대해 잘 일반화할 수 있게 해주었지만,
    • 각 작업에 특화된 미세 조정을 수행하지 못해 성능 향상이 제한되었습니다.
  2. 컴퓨팅 자원의 제약
    • 학습 및 평가 과정에서 계산 자원의 접근 제한으로 인해, 데이터셋을 샤딩(shard)하여 여러 노드에 분산해 학습해야 했습니다.
    • 이로 인해 샤딩 과정에서 학습률 스케줄러가 적절히 설정되지 않았을 가능성이 있습니다.
  3. 전체 길이 비디오의 순차적 특성 반영 부족
    • 전체 길이 비디오를 단일 쇼트의 연속으로 제대로 표현하려면, 쇼트 간의 대화 흐름(conversation feed)이 필요합니다.
    • 이는 쇼트의 순차적 맥락을 올바르게 주의(attention)로 매핑할 수 있도록 합니다.
    • 현재 접근 방식은 다중 쇼트 비디오에서 단일 쇼트나 특정 쇼트 시리즈에 과도한 중요성을 부여할 가능성이 있습니다.

결론적으로, Shotluck-Holmes는 현재 상태에서도 효율적이고 강력한 성능을 보여주지만, 위와 같은 한계를 개선함으로써 추가적인 성능 향상을 기대할 수 있을 것입니다.

사용법 정리: 

1. 20k_test.json과 비슷한 형태로 맞춰준다.

2. 이를 shot2stroy-1.5sh를 통해서 실행을 시켜준다. 이는 사실 평가코드인데, 생성해서 저장만하고 평가를 하지 않으면 된다.

 

https://github.com/Skyline-9/Shotluck-Holmes/blob/main/model/tinyllava/eval/model_shot2story.py

 

Shotluck-Holmes/model/tinyllava/eval/model_shot2story.py at main · Skyline-9/Shotluck-Holmes

[ACM MMGR '24] 🔍 Shotluck Holmes: A family of small-scale LLVMs for shot-level video understanding - Skyline-9/Shotluck-Holmes

github.com

https://github.com/Skyline-9/Shotluck-Holmes/blob/main/scripts/run/eval/shot2story-1.5.sh

 

Shotluck-Holmes/scripts/run/eval/shot2story-1.5.sh at main · Skyline-9/Shotluck-Holmes

[ACM MMGR '24] 🔍 Shotluck Holmes: A family of small-scale LLVMs for shot-level video understanding - Skyline-9/Shotluck-Holmes

github.com

https://github.com/Skyline-9/Shotluck-Holmes/blob/main/data/processed/annotations/20k_test.json

 

Shotluck-Holmes/data/processed/annotations/20k_test.json at main · Skyline-9/Shotluck-Holmes

[ACM MMGR '24] 🔍 Shotluck Holmes: A family of small-scale LLVMs for shot-level video understanding - Skyline-9/Shotluck-Holmes

github.com

https://huggingface.co/RichardLuo/Shotluck-Holmes-1.5

 

728x90