*LLaVA-Video를 위한 논문 리뷰 글입니다! 궁금하신 점은 댓글로 남겨주세요!
LLaVA-Video paper: https://arxiv.org/abs/2410.02713
LLaVA-Video github: https://github.com/LLaVA-VL/LLaVA-NeXT/blob/main/docs/LLaVA_Video_1003.md
Contents
2. Background Knowledge: LLaVA-OneVision
- Video Detail Description (dataset)
- Video Question-Answering (dataset)
- LLaVA-Video-178K (dataset)
- Video Representation & Information (model architecture)
Simple Introduction
LLaVA-NeXT와 LLaVA-OneVision 모델은 LMM 오픈소스에서 하나의 근본으로(?) 자리를 잡았습니다!
하지만 우리는 이미지뿐만 아니라 video까지 범용적으로 이해할 수 있는 LMM을 원하지만, 이는 image-text보다 훨씬 더 어려운 문제입니다.
왜냐하면 video는 dataset size도 몇십 배나 더 크고, 하나의 데이터셋 안에 포함되어 있는 수많은 frame(image)의 간의 관계성과 그에 대한 이해를 모델이 종합적으로 갖춰야하기 때문입니다!
이러한 문제들을, 보다 적은 데이터셋으로 효율적으로 학습한 LLaVA-Video 모델을 리뷰해보고자 합니다!
데이터셋도 다 공개가 되어있으니, 한국어로 번역만 한다면(?) 충분히 한국어 기반 Video LMM을 만들어 볼 수 있지 않을까(?) 생각해봅니다..ㅎㅎ
Background Knowledge: LLaVA-OneVision
LLaVA-OneVision 논문리뷰: https://kyujinpy.tistory.com/159
*LLaVA-OneVision 모델을 base로 LLaVA-Video를 훈련시키기 때문에, 이해가 어느정도 필요합니다!
+) 추가적으로, 이번 LLaVA-Video 논문은 모델 구조보다 데이터셋 creation 관점에서 좀 더 진행됩니다..!
Method
Video Detail Description
LLaVA-Video는 high-quality dataset을 위해서, 3단계의 description 과정을 진행합니다!
아래 3단계의 과정을 간단하게 정리했습니다. (LMM은 GPT-4o 활용)
Level-1 Description
- 10초 단위로 description 진행
- 현재 clip frame + historical context + (t 시점을 기준으로) 마지막 level-2의 description을 input으로 넣음
- t 시점의 description 생성
Level-2 Description
- 30초 단위로 description 진행
- (t시점을 기준으로) 3초의 level-1 description + 마지막 level-2의 description을 input으로 넣음
- t 시점에서의 description 생성
Level-3 Description
- 최종 시점에서의 description 진행
- (마지막) 1초의 level-1 description + 마지막 level-2의 description을 input으로 넣음
- 마지막 description 생성
위의 description을 생성한 이유는, video description과 GPT-4o를 통해서 데이터셋을 효과적으로 생성하기 위함입니다!
(아래에서 계속)
Video Question Answering
위의 description을 바탕으로, GPT-4o를 통해 Question-Answering 데이터셋을 생성하게 됩니다!
이때, 각 video에서 각 task에 대해서 최대 1개의 데이터셋을 생성하도록 명령합니다. (Figure 3 참고)
추가적으로, GPT-4o에게 [task 정의, In-context 예시, video description]을 같이 제공하는 prompt을 활용합니다!
+) 또한 tasks를 만들 수 없으면, None return하도록 명령
마지막으로, 생성된 QA dataset에 대해서 2가지 filtering을 적용합니다!
(1) Sentence-transformer를 통해서, 중복 제거
(2) 특정한 phrases들을 삭제
LLaVA-Video-178K
마지막으로, 여러 video-caption 데이터셋에서 video를 어떻게 선별하여 178K를 확보했는지 살펴봅시다!
여기서 총 6가지의 filtering logic을 각 데이터셋마다 다르게 적용해서 데이터를 선별합니다!
1. Sorted by views
2. Scenes 2개 이상
3. Video 길이 [5, 180] 사이
4. Video의 길이에 대한 비율 0.5보다 작거나 같게 선별 (길이 다양성 고려)
5. Resolution 480p 이상
6. 각 카테고리에서 50개 samples
*참고로, 여기서의 178K는 video-caption의 개수를 의미합니다! (QA-dataset의 개수는 더 증가함; 밑에 Table 1참고)
데이터셋 분포는 저자들이 위와 같이 시각화를 해두었습니다!
더 자세한 내용과 이해는 논문의 [3.4 Dataset Statistics] 부분을 참고해주세요
Video Representations & Information
Video의 길이가 길면, LLM에 넣을 수 있는 sequence가 초과되는 문제가 발생할 수 있습니다
이러한 문제를 해결하기 위해서, LLaVA-Video에서는 slow-fast group을 설정하게 됩니다
Figure 8의 예시처럼, T개의 frames에서 각 frames이 M개의 tokens으로 변환된다고 가정해봅시다!
이때, s(=2)만큼의 group을 생성하게 됩니다. 여기서 각각의 group의 이름이 fast와 slow가 됩니다
Figure 8에서, 파란색 token은 slow group이고, 초록색 token은 fast group입니다.
각각의 group에 대해서 pooling layer를 적용하게 되는데, slow group은 pxp 적용하고 fast group은 2px2p을 적용합니다!
(아마 Figure 8에서는 예시로 p=1인 것 같습니다)
Video Representation 기법에 따른, tokens개수가 궁금하신 분들은
위 이미지의 #tokens를 참고하시길 바랍니다!
더불어서, LLaVA-Video 모델은, LLaVA-OneVision model을 기반으로 instruction-tuning을 진행된 모델입니다!
Vision Encoder는 SigLIP 모델 // LLM은 Qwen2를 기반으로 합니다!
(SigLIP 모델: https://huggingface.co/google/siglip-so400m-patch14-384)
Result
- 기존 모델와의 video dataset이 어떻게 다른지 표로 정리
- LLaVA-Video-72B, 7B는 Qwen2 모델을 기반으로 훈련되었습니다! (huggingface model 참고)
[lmms-lab/LLaVA-Video-7B-Qwen2 // lmms-lab/LLaVA-Video-72B-Qwen2]
- 2024.10.12 Kyujinpy 작성.
*광고 수익은 연말에 기부를 할 생각입니다!
(*가독성을 위해서, 광고를 상-하단에만 설정했는데 광고가 많이 노출되면 알려주세요!!)
'AI > Paper - Theory' 카테고리의 다른 글
[MoH 논문 리뷰] - MULTI-HEAD ATTENTION AS MIXTURE-OF-HEAD ATTENTION (1) | 2024.10.18 |
---|---|
[Dense Connector 논문 리뷰] - Dense Connector for MLLMs (2) | 2024.10.18 |
[LLaVA-OneVision 논문 리뷰] - LLaVA-OneVision: Easy Visual Task Transfer (3) | 2024.10.12 |
[LLaVA-NeXT 논문 리뷰] - Improved Baselines with Visual Instruction Tuning (2) | 2024.10.11 |
[LLaVA 논문 리뷰] - Visual Instruction Tuning (1) | 2024.10.09 |