티스토리 뷰
Abstract
- 현재의 VLM은 image captioning과 visual question answering과 같은 task에서는 뛰어나지만, 긴 영상에서는 과도한 visual tokens로 인한 계산량이 많아지는 문제를 가지고 있다.
- 이 논문에서는 비디오 및 이미지 이해에 대한 토큰 생성 문제를 해결하기 위한 LLaMA-VID를 제안한다.
- LLaMA-VID는 각 프레임을 context token, content token 토큰을 사용하여 나타낸다.
- Context token은 사용자의 입력을 기반으로한 전반적인 image context를 인코딩한다.
- Content token은 각 프레임의 시각적 단서를 요약한다.
- 두가지 토큰을 사용함으로써 긴 비디오에 대한 계산적인 과부하를 줄이면서 중요한 정보를 보존한다.
- LLAMA-VID는 기존 프레임워크가 1시간 이상의 비디오를 처리할 수 있도록 하고, 추가적인 context token을 사용하여 이전의 한계를 뛰어넘도록 한다.
- 이 방법은 대부분의 비디오 또는 이미지 기반 벤치마크에서 이전 방법을 능가한다.
- https://github.com/dvlab-research/LLaMA-VID
Introduction
- LLMs의 문맥적으로 정확한 답변을 생성할 수 있는 능력을 활용하여 Visual Language Models가 개발되었고, visual data에 대하여 image captioning과 visual question answering에 대한 능력을 확장하였다.
- 그러나 긴 영상의 경우 연속된 프레임을 표현하기 위한 과도한 수의 토큰이 필요하며 이는 계산량의 증가로 이어지는 문제로 이어진다.
- 이 문제를 완화하기 위해 쿼리를 활용하거나 temporal compression를 적용하였으나 긴 비디오의 문제는 해결하지 못하였다.
- 가장 큰 문제는 비디오의 각 프레임에는 토큰이 많이 필요하다는 것이다.
- 또한, 단순한 temporal compression은 긴 비디오에서의 표현을 손상시킬 수 있다.
- 긴 비디오에서의 토큰 생성 문제를 효과적으로 관리하기 위한 LLaMA-VID를 제안한다.
- LLaMA-VID는 각 비디오 프레임을 두 개의 토큰으로 표현한다. Context token, Contents token.
- Context token은 사용자 입력을 기반으로 이미지의 전반적인 맥락을 인코딩하는데 사용되며, 이를 통해 넓은 그림을 하나의 토큰으로 효율적으로 요약한다.
- Contents token은 각 프레임의 디테일한 측면을 포착한다.
(콘텐츠 토큰의 길이는 더 많은 세부 정보를 포함할 수 있도록 확장될 수 있음.) - 이러한 방법으로 긴 비디오의 과부하를 줄이면서도 중요한 정보를 보존하도록 한다.
- 각 프레임에서 먼저, 다른 VLMs와 유사하게 pre-trained Vision transformer를 사용하여 이미지의 feature를 추출한다.
- **사용자의 지시에 따라 context-related 토큰을 어떻게 생성하는지**
- 사용자의 상호작용 의도를 나타내는 instruction-guided queries에 대한 cross modality 활용한다.
- context token의 경우, 이러한 쿼리가 설계된 attention module에서 이전에 생성된 image feature과 상호작용하며, 이를 context attention이라고 부른다.
- content token을 생성하기 위해 image feature은 평균 풀링되어 다양한 설정에 적응하는 토큰으로 구성된다.
- 예를 들어, 비디오 입력의 경우 전역 풀링이 채택되어 효율성을 유지하면서, 단일 이미지 입력의 경우 더 많은 토큰으로 세부 정보가 보존된다.
- context, content 토큰은 간단한 linear layer를 사용하여 LLMs 공간으로 투영되어 예측을 수행한다.
- VLMs에서 긴 비디오를 더 잘 지원하기 위해, 줄거리 추론과 세부 이해를 위핸 9,000개의 영화 수준 대화를 포함하는 지시어 기반 데이터셋을 구축한다.
- LLaMA-VID는 일반적을 두 가지 측면에서 구별될 수 있다.
- dual token 패러다임을 통해 각 프레임을 단 두개의 토큰으로 효율적으로 인코딩할 수 있어 기존의 LLMs가 긴 비디오를 지원할 수 있게 된다.
- context token은 각 이미지의 가장 정보가 풍부한 특징을 합하여 VLMs의 한계를 추가 토큰으로 더욱 확장한다.
- LLaMA-VID는 다양한 디코더와 LLMs로 구현될 수 있다.
Related Work
2.1 Large Language Model
- ChatGPT, GPT-4, LLaMA 등의 모델은 많은 양의 텍스트 데이터로 훈련되어 복잡한 langage task에서도 좋은 성능을 보인다.
- 사전 훈련된 LLMs을 활용하기 위해, 고품질 출력을 위한 중요한 구성 요소인 instruction tuning이 필수적이다.
- Instruction Tuning이란 구글의 FLAN(Finetuned Language Models are Zero-Shot Learners) 논문에서 처음 나온 개념으로
LLM 모델을 Instruction 데이터셋을 통해 fine-tuning을 진행하고 이를 통해 zero-shot 성능을 높이는 방법 - 이는 Alpaca 및 Vicuna와 같은 오픈 소스 모델에서 널리 채택되어 특별히 설계된 instruction 쌍을 사용하여 LLaMA보다 더 나은 결과를 얻는다.
- 이 논문에서는 텍스트, 이미지 및 비디오를 포함하는 multi modality instruction 데이터를 수집하여 LLMs를 장기 비디오 처리에 활용한다.
2.2 Vision Language Model
- LLMs에서 비디오에 대한 이해를 위해, Video-LLaMA, VideoChat은 BLIP-2를 활용하여 비디오 임베딩 추출을 시도하였고, Video-ChatGPT는 공간, 시간 풀링을 제안한다.
- 이러한 작업은 LLMs에서 1시간을 초과하는 비디오 시퀀스를 표현하지는 못한다. 각 프레임에 필요한 토큰 수가 너무 많아서
- 이 문제를 해결하기 위해 각 프레임을 단 2개의 토큰을 활용하여 인코딩하는 것을 제안한다.
LLaMA-VID
- LLaMA-VID의 인코더와 디코더는 visual embedding과 text guided features를 생성하기 위해 사용한다.
- Context, Content token은 맞춤형 토큰 생성.
- 이미지와 비디오에 대한 LLMs을 위해 instruction tuning을 진행한다.
- 사용자 지시에 따라 LLaMA-VID는 단일 이미지 또는 비디오 프레임을 입력으로 받아 LLM에서 응답을 생성한다.
- Visual Encoder : visual encoder에서 input frame을 visual embedding으로 변환한다.
- Text Decoder : 사용자 입력을 기반으로 text query를 생성한다.
- Context Attention : context attention에서 text query는 visual embedding에서 텍스트 관련 시각적 단서를 요약한다.
- visual embedding의 token size를 down sampling하거나 하나의 token으로 선택할 수 있는 옵션 제공.
- Projector : text-guided context token과 visually-enriched content token은 각 시간 t의 프레임을 나타내기 위해 linear projector를 사용한다.
- LLM : 사용자의 지시와 모든 visual token을 입력으로 받아 응답을 생성한다.
3.1 Encoder and Decoder
- LLaMA-VID는 단일 이미지 또는 긴 영상과 상호작용할 수 있다.
- 명확성을 위해, 입력 이미지는 동영상 시퀀스에서 캡처된 것으로 가정한다.
- $V_{t} \in \mathbb{R}^{h\times w\times 3}$ 시간 t에서의 비디오 프레임이 주어지면, visual encoder에서 visual embedding $ X_{t} \in \mathbb{R}^{N\times C} $ 를 생성한다.
- N은 이미지 패치 수. $N = \frac{H}{p} \times \frac{W}{p}$ 패치 크기 p는 ViT기반 backbone의 경우 일반적으로 14로 설정됨.
- C는 임베딩 채널 수.
- user instruction을 입력으로하고 생성된 $ X_{t}$로 text-guided query $Q_{t} \in \mathbb{R}^{M \times C} $를 생성한다.
- M은 쿼리 수
- Cross-modality interaction을 통해 text query $Q_{t}$는 user instruction과 가장 관련있는 시각적 단서를 강조한다.
3.2 Token Generation
- text query $Q_{t}$와 visual embedding $X_{t}$를 사용하여 토큰을 생성할 수 있다.
- Context Attention은 text관련 visual feature를 합치고 이를 single context token으로 나타내도록 되어있다.
- context-related embedding $E_{t} \in \mathbb{R}^{1 \times C}$
- $E_{t}= Mean(Softmax(Q_{t}\times X_{t}^{T})\times X_{t})$
- 소프트맥스 함수와 평균 연산은 각각 N및 M 차원을 따라 수행된다.
- input instructions에 대한 high response score를 갖는 text query $Q_{t}$를 활용하여 visual features를 모은다.
- 결과적으로, 사용자 입력과 관련된 가장 중요한 시각적 신호는 압축된 임베딩 $E_{t}$에 효율적으로 보존된다.
- Linear Projector를 사용하여 $E_{t}$를 LLMs의 language space와 일치하는 context token $E_{t}^{T} \in \mathbb{R}^{1 \times C}$로 변환한다.
- Adaptive Pooling을 사용하는데 이는 시각적 임베딩에 대한 계산 제약에 따라 content token $E_{t}^{V} \in \mathbb{R}^{n \times C}$를 생성하기 위함이다. $n \in [1,N]$
- 예를 들어, 단일 이미지를 입력할 때는 visual embedding $X_{t}$의 원래 해상도를 유지하고, 긴 영상의 경우 $X_{t}$를 1개의 토큰으로 다운샘플링한다.
- 이러한 접근 방식은 각 프레임에 대한 LLMs의 과부하를 크게 줄여, 긴 영상을 효과적으로 지원할 수 있다.
- 마지막으로 생성된 context token $E_{t}^{T}$와 content token $E_{t}^{V}$를 concat 하여 시간 t의 프레임을 나타낸다.
- 다른 타임스탬프의 프레임과 함께 전체 비디오 시퀀스가 토큰 형식으로 language space에 변환되어 LLMs로 부터 응답을 생성하는데 사용된다.
3.3 Training Strategy
Modality Alignment
- 각 비디오 프레임은 LLMs 공간으로 투영되기 때문에 visual features가 langauage space에 잘 맞아 떨어지도록 하는 것이 중요하다.
시각적 정보와 언어적 정보 간의 일치를 보장하여, 시각적 정보를 언어 모델이 이해할 수 있는 형태로 변환하는 것이 중요함 - 이를 위해 790k개의 고품질 이미지 및 비디오 캡션 쌍을 포함하는 데이터셋을 구축하였고, 이 데이터셋은 주로 LLaVA-filtered CC3M데이터셋으로부터 558K개의 이미지 캡션 쌍과 WebVid 2.5M 데이터셋에서 샘플링된 232K개의 비디오 캡션 쌍으로 구성된다.
- 이 단계에서는 context attention과 projector를 최적화하고, visual encoder, text decoder와 같은 pre-trained 모듈을 freeze시킨다.
Instruction Tuning
- LLMs의 multi modality 이해를 향상시키기 위해, 지시어 쌍을 구축한다.
- 이는 주로 ShareGPT에서 가져온 40k개의 대화, 625k개의 단일 또는 다중의 visual QA쌍, 98k개의 비디오 QA쌍으로 구성된다.
- instruction에 대해서는 텍스트, 이미지, 비디오 입력에 대해 각각 다른 형식을 채택한다.
- 입력 프롬프트와 대답은 데이터셋에 따라 다르다.
- 이미지 토큰 <image-i>는 훈련 중 사용자 입력의 시작 또는 끝에 무작위로 삽입된다.
- Instruction tuning 단계에서는 visual encoder를 제외한 모든 모듈이 최적화 된다.
visual encoder는 pre-train 되어있기 때문에 이는 freeze 상태이고, text decoder와 같은 다른 모듈들이 최적화된다. 이렇게 함으로써 이미지와 비디오와 같은 시각적 정보를 처리하는데 필요한 모든 정보를 보존하면서, 지시어를 향상시키는 데 집중할 수 있다.
Long Video Tuning.
- 총 15K개의 긴 QA쌍을 구축
9K는 영화 장면에서 추출, 6K는 LongLoRA에서 샘플링된 데이터 - MovieNet에서 400개 이상의 장편 영화와 해당 대본을 활용하여 training set 구축
- 일반적으로 생성된 데이터셋은 비디오 요약, 영화 줄거리 및 상세 추론 의 측면에서 QA쌍을 가지고 있다.
- 비디오 요약의 경우, GPT-4를 사용하여 각 영화에 대한 간단하고 상세한 요약을 생성하기 위해 영화 시놉시스 수집
1K개의 요약 수준의 지시어 쌍 생성 - 줄거리 데이터의 경우, 전체 영화 시놉시스를 입력으로 하고 GPT-4를 활용하여 줄거리 관련 및 캐릭터 관련 QA쌍을 생성
줄거리 이해, 설명, 분석, 캐릭터 관계, 성격 및 행동 등을 포함 - 각 영화마다 5개의 줄거리 관련 쌍과 5개의 캐릭터 관련 쌍을 생성하여 4K개의 QA 데이터를 생성.
- 상세 추론 데이터의 경우, 장편 영화 대본을 Claude-2에 입력하여 각 영화마다 5개의 줄거리 관련 추론 쌍과 5개의 상세 설명을 생성한다. 4k
- 긴 비디오와 생성된 쌍을 사용하여 각 프레임에 대해 시각적 토큰과 자막 토큰을 연결하여 instruction tuning을 수행한다.
- 이렇게 함으로써, LLaMA-VID는 3시간 이상의 비디오를 입력으로 지원하면서 64K 토큰을 충분히 지원할 수 있다.
Experiments
4.1 Experimental Setup
Implementation Details
- visual encoder에 대해 사전 훈련된 EVA-G 및 text encoder에 대해 기본적으로 QFormer를 사용하여 모델을 인스턴화 한다.
- 훈련중에는 visual encoder는 모든 단계에서 고정시키고 text decoder와 LLM을 freeze 시킨다.
- 데이터와 instruction에 따라 1 epoch동안 각 단계에서 학습 가능한 매개변수를 최적화한다.
- 비디오 입력의 경우, 프레임을 1FPS의 속도로 추출한다.
Datasets
- 비디오 입력의 경우, MSVD, MSRVTT, ActivityNet 및 최근 제안된 생성 성능 벤치마크와 같은 QA 벤치마크에서 제로샷 성능을 평가한다.
- 이미지 기반 평가의 경우, GQA, MMB, MME, POPE , SEED, SQAI, VQAT , VizWiz 및 VQAv2와 같은 여러 벤치마크에서 실험을 수행한다.
4.2 Main Results
Results on Video-based Benchmarks.
- MSVD-QA
Microsoft Research Video Description Question Answering
비디오 설명에 관련된 질문에 대한 답변을 예측하는 벤치마크. 비디오에 대한 설명과 관련된 질문에 대한 답변 - MSRVTT-QA
Microsoft Research Video-to-Text Question Answering
비디오에서 텍스트로의 변환과 관련된 질문에 대한 답변을 예측하는 벤치마크.비디오에서 텍스트로의 변환과 관련된 질문에 대한 답변 - ActivityNet-QA
활동과 관련된 질문에 대한 답변을 예측하는 벤치마크.다양한 종류의 활동과 관련된 질문에 대한 답변을 포함 - 각 프레임에 대해 단 2개의 토큰을 사용한 결과
- LLaMA-VID는 Vicuna-7B, Vicuna-13B를 LLM으로 사용하여 모든 데이터셋에서 일관된 우수한 성능을 보인다.
- LLaMA-VID는 모든 평가 지표에서 최고 성능을 달성하는 것을 볼 수 있고, 또한 LLM이 확장됨에 따라 성능을 더욱 향상시킬 수 있다는 것을 발견했다.
- LLaMA-VID는 모든 벤치마크에서 좋은 성능을 보여줬고 비디오 처리에 대해 효과적이고 효율적인 성능을 보이고 있다.
Results on Image-based Benchmarks.
- 다양한 LLMs로 인해 LLaMA-VID가 대부분의 벤치마크에서 가장 좋은 성능을 보인다.
(공정한 비교를 위해 LLaVA-1.5와 동일한 훈련 데이터와 이미지 해상도를 유지함)
모델 구조에 따른 성능 차이를 보여주기 위함? 모델간의 성능 차이를 데이터셋의 영향을 배제하고 비교하여 모델 자체의 특성을 더 잘 이해하고자 하는 의도인 것 같음. - GQA(Visual Genome Question Answering)
: 이미지와 관련된 질문에 대한 답변을 예측하는 데이터셋 - MMB(MovieQA: Multiple-Choice QA)
: 영화 클립에서 질문에 대한 답변을 예측하는 데이터셋. 각각의 질문은 다중 선택지로 구성 - MME(MovieQA: Open-Ended QA)
: 영화 클립에서 질문에 대한 답변을 예측하는 데이터셋. 각각의 질문은 개방형 형식(여러 답변이 가능한 형식)으로 구성 - POPE(Partially Observed Part Entities)
: 이미지에서 부분적으로 관찰된 객체에 대한 질문에 대한 답변을 예측하는 데이터셋 - SEED(Structured Egocentric Events Dataset)
: 일상적인 활동을 수행하는 사람의 시점에서 촬영된 비디오에서 질문에 대한 답변을 예측하는 데이터셋 - SQA(ScienceQA)
: 과학적인 지식을 이용한 이미지와 관련된 질문에 대한 답변을 예측하는 데이터셋 - VizWiz
: 시각 장애인을 위한 이미지와 관련된 질문에 대한 답변을 예측하는 데이터셋 - VQA(Visual Question Answering)
: 이미지와 관련된 질문에 대한 답변을 예측하는 데이터셋
Qualitative Results.
- LLaMA-VID에 단일 이미지, 짧은 비디오, 긴 비디오 데이터를 적용한다.
- 각 이미지를 단일 이미지에 대해 577개의 토큰으로, 비디오에 대해 2개의 토큰으로 표현한다.
- 단일 이미지의 경우, 세부 사항에 초점을 맞추고 어떠한 텍스트 단서도 없이 캐릭터를 정확하게 인식한다.
- 또한 이미지 내용을 게임의 줄거리와 연결하고 다중 대화에서 게임 줄거리와 관련하여 이야기 할 수 있다.
- 짧은 예고편 비디오가 주어지면, LLaMA-VID는 전체 줄거리를 요약하고 영화 제목, 제작자 그리고 영화의 유형을 추론한다.
- 3시간짜리 영화의 경우, 제안된 모델은 스토리를 능숙하게 설명하고 줄거리와 관련된 추론과 상세한 이해를 보여준다.
4.3 Component-wise Analysis
Generated Token Types
- LLMs에서 각 이미지는 context token과 content token으로 표현된다.
- Context토큰이 없는 경우, 각 이미지를 1개의 토큰으로 인코딩하는 압축된 content token은 input instruction에 맞출 수 없어 성능이 저하된다.
- 단일 content token과 비교하면 instruction에 따른 context token은 1개의 토큰으로 모든 데이터셋에서 성능 향상을 보인다.
- 각 이미지에 대해 두 토큰을 사용하는 경우, 모든 벤치마크에서 최고 성능을 달성한다.
- 이는 context token의 instruction cues와 content token의 이미지 내용이 모두 중요하다는 것을 보여준다.
Generated Token Numbers
- Table5. content token 수를 다양하게 설정하여 실험한 결과
- 이미지 크기가 224x224인 경우, $n = \left (\frac{224}{14}\right )^{2}=256$ n content token으로 실험
- 1시간 이상의 비디오를 생각하고 n=1이면 content token을 1/256로 압축한 것.
- context token이 없는 원래 설정과 비교하면, computational buget을 1/128로 줄일 수 있으며, 약간의 성능 하락이 있지만 이는 일반적으로 허용할 수 있는 수준
- 성능이 토큰의 수에 비례하여 증가함으로써, 효율적인 토큰 압축이 가능하다. 이는 더 적은 수의 토큰을 사용하여도 성능을 유지하거나 향상시킬 수 있다는 가능성을 내포한다.
모델이 효율적으로 토큰을 압축하여 더 적은 계산 비용으로도 높은 성능을 유지할 수 있음을 시사한다.
Text Decoder
- text decoder는 instruction-guided context cues를 생성하는데 중요한 역할을 한다.
- BERT와 QFormer를 사용하여 text decoder를 구현한다.
- BERT의 경우, cross modal decoder로 무작위로 초기화하고 첫 두 레이어만 유지한다.
- Q-Former의 경우, pre-train된 모듈을 사용.
- 아래 표를 보면 간단한 2-레이어 BERT로도 생성된 컨텍스트 토큰은 대부분의 벤치마크에서 상당한 성능 향상을 보인다.
- 이는 context token 생성을 위한 패러다임의 효과적인 성능을 입증한다.
- Q-Former와 같은 pre-train된 text decoder를 사용하면 모델을 더욱 향상시킬 수 있다.
Response in Context Attention.
- $E_{t}= Mean(Softmax(Q_{t}\times X_{t}^{T})\times X_{t})$ 이 식에서 softmax를 적용하기 전 $Q_{t}$의 첫 번째 두 쿼리에 대한 히트맵
- 텍스트로 주어진 쿼리 $Q_{t}$는 입력 질문과 관련이 있는 중요한 영역에 집중한다.
Conclusion
- LLaMA-VID의 핵심은 이미지를 context token과 content token으로 표현하는 것이다.
- Context token은 input instruction에 따라 생성되고, Content token은 이미지 콘텐츠 기반으로 생성된다.
- Content token은 하나의 토큰으로 압축되거나 압축 없이 표현될 수 있다.
- 이를 통해 각 비디오 프레임을 두 개의 토큰으로 효율적인 인코딩이 가능하다.
'부스트캠프' 카테고리의 다른 글
Visual Instruction Tuning (LLaVA) (0) | 2024.02.04 |
---|---|
Active Retrieval Augmented Generation (0) | 2024.01.28 |
Do PLMs Know and Understand Ontological Knowledge? (0) | 2024.01.06 |
[논문 읽기] Fine-Tuning Pre trained Language Models:Weight Initializations, Data Orders, and Early Stopping (0) | 2023.12.25 |
[논문 읽기] RoBERTa: A Robustly Optimized BERT Pretraining Approach (0) | 2023.12.18 |