긴 동영상 입력을 효과적으로 처리하기 위한 방법을 제시한 논문이다.
기존 LLM은 text뿐만 아니라 이미지, 동영상 등 visual data를 함께 처리할 수 있는데, 동영상을 처리할떄는 , 여러 frame을 LLM에 직접적으로 넣기에는 한계가 있었다.
우선 LLM은 한번에 처리할 수 있는 입력 길이에 제한이 있다. 예를 들면 ,Llama는 최대 2048 토큰만 처리할 수 있음.
그리고 가장 중요한 GPU문제..
기존의 해결책으로는 video-chatGPT처럼, 각 frame의 정보를 평균내는 방식이 있지만, 이 방법은 시간에 다른 변화를 제대로 반영하지 못해서 성능이 떨어진다.
MA-LMM은 이런 문제를 해결하기 위해 long-term memroy bank라는 개념을 도입했다. 이 메모리뱅큰느, 동영상의 각 frame에서 추출된 정보를 메모리 뱅크에 저장하고, 이 저장된 정보를 LLM이 이후 frame을 처리할 떄 참고할 수 있도록 한다.
Framework
프레임을 한꺼번에 처리하지 않고, 동영상을 autoregressive 하게 처리한다.
전체적으로 세부분으로 나눌 수 있는데
1. 동영상을 visual encdoer 를 통해 feature 를 추출
2. 동영상의 시각적 embedding이랑 text embedding을 정렬하는 역할 -> Q-former
3. Text Decoding - freeze 된 LLM으로 text 생성
하나씩 보자
Visual Feature Extraction
각 동영상 프레임을 미리 학습된 vision 인코더에 통과시켜 visual feature들을 뽑아낸다. V = [v1, v2, ..., vT]
여기에 positional embedding을 더해 frame 간의 시간적 순서를 모델이 인식할 수 있게 한다.
Long-term Temporal Modeling
우선 Q-Former는 시각적 정보를 텍스트 임베딩 공간에 맞추기 위해 사용된다.
visual feature extraction을 통해 나온 f1 f2 f3 -- ft 까지 모두 concat되어 corss attention의 key와 value로 쓰인다.
즉 key 와 value로 과거의 모든 시각적 특징을 포함하는거니까, 현재 frame의 쿼리가 과거 모든 frame의 시각적 정보랑 상호작용해서 의미있는 정보를 추출한다고 생각하면 됨.
그럼 어떤거를 쿼리로 쓰냐?는 query memory bank를 보자
Query Memory bank
Query memory bank는 각 시간 단계에서 입력 쿼리zt를 축적하고 저장하는 메모리이다.
q1, q2, q3 ,, qt 이거는 각 frame 의 쿼리가 저장되는거거
self attention layer 의 query는 해당 frame에서의 z쿼리가, key value는 q1 q2 q3,,,,,,,, qt까지 합친 즉 모든쿼리를 concat 시킨게 키랑 value로 사용됨.
이 query memory bank는 학습 과정에서 계속 업데이트 되고, 쿼리들이 점점 더 추상적인 수준에서 복잡한 수준으로, 동영상의 개념과 패턴을 포착하게됨.
Memory bank compression
근데 메모리 뱅크의 문제점이, 동영상이 길어질수록 gpu 사용량이나 계산 비용이 엄청 증가하게 됨.
그래서 메모리 뱅크를 압축해서 크기를 줄여야하는데
기존의 해결책이 FIFO (r근데 이건 first 들어간게 정보가 손실된다는 문제 가 있었구..)
Learnable pooling operators : 추가적인 학습 param 도입? 근데 이것도 복잡도가 높아짐.
논문에서 새로제시한건 Memory Bank Compression (MBC)라는 접근버.
동영상에 내재된 시간적 중복성을 활용해 메모리 뱅크 크기를 줄이는 방법이다. 인접한 frame 간의 유사성을 이용해 비슷한 시각적 특징을 통합하거나 압축하는것.
구체적으로 f1, f2, f3,,,, fn 이 있고, fn+1이 들어와야하면, (미리 정해진 임계값을 초과할 수 없음으로) 이때 메모리 뱅크의 길이르 1만큼 줄여야한다.
그럼 어떻게 줄이냐?
코사인 유사도 계산을 하는데
각 공간적 위치 i에서 인접한 시각적 특징들 사이의 코사인 유사도를 계산한다
가장 높은 유사도를 가진 index K를 선택하고
유사하다고 선택된 인텍스에서는 공간적 위치 i에서 k 랑 k+1를 평균내서 메모리 뱅크의 길이를 줄인다.
Text Decoding
일단 모델은 비디오 - text 페어되어있는 데이터셋을 이용해서 학습이 되고, 실제 text 토큰이랑 모델이 예측한 토큰간의 차이를 최소화하기 위해 학습된다
이때 사용되는 LLM은 freezed. Q-former가 업데이트되면서 loss를 줄이는 방향으로 학습되는듯함.