[UROP #3] PuMer: Pruning and Merging Tokens for Efficient Vision Language Models (1)

윤하은·2023년 10월 3일
0

UROP

목록 보기
3/14
post-thumbnail

Github : https://github.com/csarron/PuMer

Paper : https://aclanthology.org/2023.acl-long.721/

💡 로 표시된 부분은 제가 이해한 내용을 적은 부분입니다. 오류가 있다면 댓글로 남겨주세요 🙏🏻



PuMer


대규모 비전 언어(VL) 모델은 입력 텍스트와 이미지 사이의 교차 모달 상호작용을 수행하기 위해 트랜스포머를 사용한다.

이러한 교차 모달 상호 작용은 입력 이미지와 텍스트를 처리하는데 2차의 시간복잡성을 가지므로 계산 및 메모리 리소스가 많이 필요하다.


PuMer는 입력 이미지와 텍스트의 토큰 수를 점진적으로 줄이는 프레임워크로, 텍스트에 기반한 가지치기모달리티 인식 병합 전략을 사용한다. 이로써 모델 추론 속도를 향상시키고 메모리 사용량을 줄일 수 있다.

  • 입력 텍스트와 관련된 중요한 이미지 토큰을 유지하는 방법을 학습
  • VL 모델의 여러 교차 모달 레이어에 경량 토큰 감소기 모듈을 추가하여 유사한 텍스트 및 이미지 토큰을 병합

PuMer를 학습하는 것은 주로 원래의 VL 모델을 파인튜닝하는 것과 유사하지만 더 빠르다.

두 개의 비전 언어 모델에 대해 평가한 결과, 4개의 downstream VL task에서 PuMer가 추론 처리량을 최대 2배 증가시키고 메모리 사용량을 50% 이상 줄이면서 1% 미만의 정확도 감소를 보였다.




Introduction


deep VL 모델의 비효율성 원인

: 모든 레이어를 통해 전체 입력 이미지 및 텍스트 토큰을 처리해야 한다.

입력 이미지에 중복 정보가 포함되어 있으며 이미지의 일부 (텍스트에서 언급되는 중요 영역)만이 최종 작업과 관련이 있고 필요하다.

위 이미지에서 대다수의 이미지 콘텐츠(네 명의 사람, 경기장)는 "그들은 어떤 스포츠를 하고 있나요?"라는 시각적 질문에 답하기 위해 하단 중앙의 축구 지역만 필요하다.

따라서 VL 문제의 토큰을 줄이기 위해 이미지와 텍스트 모달리티 간의 상관 관계를 활용하는 것을 제안한다.



개선 방안

vision-only 또는 text-only 도메인에서, 이미지 또는 텍스트 토큰을 줄이면 모델의 계산 복잡성을 개선할 수 있다.

  • 가지치기(pruning)

    : 특정 작업에 대한 중요하지 않은 이미지 또는 텍스트 토큰을 제거하는 방식으로 학습

  • 병합(merging)

    : 의미론적으로 유사한 토큰을 그룹화


그러나 VL 문제 설정에서 이러한 축소 방법을 독립적으로 사용하는 것만으로는 충분하지 않다.

  • 주어진 다른 텍스트 입력에 따라 중요한 이미지 토큰이 다르다.

  • 가지치기만 사용하면 큰 정보 손실이 발생하여 성능을 저하시킨다.

  • 모달리티에 상관없이 토큰을 병합하면 VL 모델이 혼동된다.

    • 텍스트와 이미지 토큰 표현은 완벽하게 동일한 의미적 공간에 정확하게 맞추기 어렵기 때문이다.

따라서 이러한 토큰 축소 전략을 VL 모델에 효과적으로 통합하는 가벼운 프레임워크를 설계한다.



PuMer 설계

토큰 축소를 위한 Pruning과 Merging 작업으로 구성된 프레임워크로, 텍스트와 관련이 없는 이미지 토큰을 점진적으로 줄이고 이미지 및 텍스트 토큰을 각각 그들의 모달리티에 따라 병합한다.

구체적으로, 다음과 같은 설계가 있다:

  1. 텍스트 정보를 기반으로 한 이미지 토큰 가지치기: 텍스트와 관련 없으며 VL 작업 예측에 중요하지 않은 이미지 토큰을 제거하는 작업으로, Figure 1 예제의 "어떤 스포츠가 진행되고 있는가?"라는 질문에서 인물과 경기장을 묘사하는 토큰을 제거한다.

  2. 모달리티 인식 토큰 병합: 텍스트 및 이미지 토큰의 의미적으로 중복된 토큰을 모달리티에 독립적으로 병합하는 작업으로, Figure 1에서 "몇명의 사람들이 있는가?" 질문에서 각 인물을 묘사하는 이미지 토큰을 결합한다.

( 제거되지 않고 병합되지 않은 토큰은 유지된다 )

PuMer의 핵심은 VL 모델의 순방향 계산이 진행됨에 따라 어떤 이미지 토큰이 프루닝 및 병합되는지 결정하는 가벼운 비모수 토큰 축소기의 집합이다.

모수적 모델 vs 비모수적 모델

확률분포 사용 여부를 기준으로 분류가 가능하다.

모수적 모델은 주어진 확률분포를 기반으로 해당 모수를 추정하는 과정이 포함되어 있는 모델을 통칭한다.
비모수적 모델은 모수인 가중치를 계산할 때, 확률분포의 개념을 사용하지 않는다.

출처 : https://brunch.co.kr/@seoungbumkim/7

✏️ 이렇게 해석하는 글이 많은데, 위 설명보다 이 글을 보는게 좋을 것 같다.
✏️ 논문에서는 파라미터의 업데이트 여부로 해석하면 될것같다.(토큰 축소기가 추가로 학습 가능한 매개변수를 사용하는 것과 달리, 어떠한 매개변수도 사용하지 않아서 더 빠른 접근 방식을 취한다는 이야기를 함.)

급격한 이미지 정보 손실을 줄이고 계산 효율성을 향상시키기 위해 VL 모델의 다양한 교차 모달 레이어에 토큰 축소기를 분산 배치하고 토큰을 계층적으로 축소한다. 초기 레이어에서는 적은 수의 토큰이 프루닝 및 병합된다.



훈련 과정

PuMer는 토큰 축소기에 파라미터가 없으며 추가 오버헤드가 거의 없기 때문에 쉽게 훈련할 수 있다.

훈련 과정은 원래의 VL 모델을 파인튜닝하는 것과 거의 동일하지만, 추가로 지식 전달 손실(Knowledge Distillation Loss)을 추가한다. 이 손실은 파인튜닝된 모델과 비교했을 때 정확성 간격을 더 줄여준다.

PuMer는 추론 효율성에 중점을 두고 있지만, 텍스트 및 이미지 토큰이 순방향 계산에서 줄어들기 때문에 훈련 및 추론 모두에서 VL 모델을 더 빠르게 실행할 수 있다.



평가

두 가지 최근 VL 모델인 ViLT와 METER에서 다섯 가지 비전 언어 작업에 대해 평가했다.

  • 텍스트-이미지 검색 작업(이미지에서 텍스트로, 텍스트에서 이미지로의 검색을 포함)
  • 시각적 질문 응답
  • 자연어 시각적 추론
  • 시각적 인과 관계

기준 모델과 비교하여 PuMer는 모델 추론 처리량을 1.7배에서 2.1배 향상시키고 메모리 사용량을 38%에서 50%까지 감소시키면서 정확도 손실이 미미하게 (1% 미만) 발생했다.

분석 결과, 텍스트에 기반한 이미지 가지치기와 모달리티 인식 토큰 병합이 모두 PuMer의 토큰 축소 효과에 기여하는 것을 확인할 수 있다.



관련 연구


NLP 및 비전에서의 토큰 축소

데이터 가지치기에 관한 이전 연구는 단일 모달리티 모델에 중점을 두며, 텍스트 또는 이미지 입력을 개별적으로 가지치기한다.

  • DynamicViT와 A-ViT

    • 무의미한 내용을 점진적으로 제거하고 입력 이미지의 중요한 영역을 유지하는 방식으로 작동한다.

    • 이러한 유형의 가지치기는 입력 텍스트에 따라 중요한 영역이 달라지는 언어 및 비전 작업에 적용되지 않는다.

    • PuMer는 동일한 입력 이미지에 대해 다른 입력 텍스트가 서로 다른 이미지 영역을 가지치기하게 됨을 보여준다.

  • PoWER-BERT는 BERT

    • 텍스트 기반 트랜스포머의 추론을 가속화하기 위해 입력 텍스트 토큰을 제거하는 방식으로 작동한다. 이는 대부분의 비전 및 언어 작업에서 주요 계산 병목 현상이 아니다.


다른 연구 분야

입력 토큰을 병합하여 줄이는 노력이 있었다.

  • SPViT와 EViT

    • 무의미한 이미지 토큰을 선택하고 하나의 토큰으로 결합한다. EViT는 비용이 많이 드는 사전 훈련을 필요로 한다.
  • GroupViT

    • 시맨틱 분할을 위해 유사한 객체를 찾기 위해 이미지 토큰을 교차 어텐션을 통해 결합한다.
  • ToMe, TokenLearner 및 TokenPooling

    • 가지치기 없이 토큰을 결합하고 정확성 대 속도 향상 트레이드오프를 달성했다.

PuMer는 토큰 가지치기 및 병합 작업에서 영감을 받았지만, 이러한 작업을 VL 모델에 적합한 토큰 축소 프레임워크로 통합한다. 주요 차이점은 텍스트와 이미지 토큰 간의 관계를 활용하여 토큰을 제거하고 병합하는 것이다.



효율적인 비전 언어 모델

많은 기술들이 모델 가지치기, 초기 종료에 의한 동적 계산 또는 작고 효율적인 VL 모델 설계에 중점을 둔 기술들이 많이 존재한다. 이러한 최적화 기술들을 PuMer의 토큰 축소 방법과 결합하면 VL 모델에서 추론을 더 가속화할 수 있을 것이다.




배경 및 개요


비전 언어 모델

Figure 2는 텍스트 인코더, 이미지 인코더 및 교차 모달 인코더로 구성된 VL 모델의 Back-Bone을 보여준다.

입력 문장

  • 먼저 텍스트 토큰으로 토큰화되고 텍스트 인코더에 입력
  • 문맥화된 텍스트 표현을 생성

입력 이미지

  • 이미지 토큰(많은 작은 이미지 패치)로 투영되어 이미지 인코더에 입력
  • 문맥화 진행

교차 모달 인코더

  • 연결된 텍스트 및 이미지 토큰을 입력
  • 이미지와 텍스트 모달리티 간의 정보를 Transformer 스타일의 교차 어텐션 상호작용을 통해 통합

많은 VL 작업에서 입력 이미지의 토큰 수는 입력 텍스트의 토큰 수보다 한 차수 더 많다. 시각적 질문은 최대 한 두 개의 토큰을 가질 수 있지만 연관된 이미지는 수백 개의 이미지 토큰으로 구성된다.

  • 해상도가 384x384이고 패치 크기가 16인 이미지의 경우, 토큰 수는 (384/16)^2 = 576이다.


효율성을 위한 토큰 축소

이 논문에서는 가지치기와 병합을 통해 모델의 계산 효율성을 향상시키기 위해 이미지 토큰을 줄이는 데 초점을 맞추고 있다.

이미지 토큰의 큰 비율을 단순히 제거

: VL 모델이 하향 작업을 위해 전체 이미지의 표현을 구축하도록 훈련되었기 때문에 이미지 정보의 급격한 손실을 초래할 수 있다.

  • Figure 1의 축구 영역이 가지치기되면 VL 모델은 "어떤 스포츠를 하고 있나요?"라는 질문에 "축구"라는 답을 출력하지 않을 것이다.

텍스트 지침 없이 단순히 이미지 토큰을 병합

: 최적의 성능이 나오지 않을 수 있다.

  • Figure 1의 배경 및 축구 이미지 영역을 병합하면 "몇 명이 축구를 하고 있나요?"라는 시각적 질문에 대한 답에 기여하지 않을 수 있다.

다음 섹션에서 텍스트 기반의 토큰 축소 방법을 설명한다. PuMer의 기본 구성 요소는 정보 손실을 완화하고 VL 모델의 계산 효율성을 향상시키기 위해 이미지 및 텍스트 토큰을 연속적으로 줄이는 가벼운 비모수 토큰 축소기다.




PuMer: Text-Informed Token Reduction Framework

VL 교차 모달 인코더가 주어진 경우, PuMer는 교차 모달 인코더를 통해 이미지 토큰을 점진적으로 줄인다. 학습 가능한 파라미터가 없는 가벼운 토큰 축소기를 사용하며, 이를 교차 모달 인코더의 다양한 레이어에 추가하여 어떤 이미지 토큰이 제거되거나 병합되는지를 예측한다.



토큰 축소 알고리즘

토큰 축소 알고리즘

bipartite merge 방법은 해당 논문 참고

n개의 레이어로 구성된 교차 모달 인코더에 대해, 첫 번째 f (f < n) 레이어 이후에 토큰 축소기는 먼저 텍스트 정보에 의해 안내되는 어떤 레이어 l에서 k%의 이미지 토큰을 제거한다. (제거된 토큰은 이후 레이어에서 사용되지 않는다.)

그런 다음 토큰 축소기는 레이어 l에서 이미지 및 텍스트 토큰 각각을 병합하는 데 r% 및 t%를 사용한다. 토큰 축소기를 교차 모달 레이어에 분산 배치하여 정확성과 효율성 간의 더 나은 트레이드오프를 달성할 수 있다.

교차 모달 인코더의 초기 레이어에서 축소를 수행하면 추론 효율성이 높아지지만 성능 손실이 크게 발생할 수 있으며, 이러한 트레이드오프를 실험한 내용은 뒷부분에 나온다.


각 토큰 축소기는 두 개의 순차 비모수 모듈로 구성된다.

  1. text-informed pruner (TIP) : 첨부된 텍스트와 관련이 없는 이미지 토큰을 제거한다.
  2. modality-aware-merger (MAM) : 이미지 또는 텍스트 모달리티 내에서 유사한 토큰을 병합하여 토큰 수를 줄인다.

이러한 두 단계는 이미지 및 텍스트 토큰을 줄여 계산 효율성을 향상시키지만 정확성을 상실하지 않도록 할 수 있다.

병합없이 텍스트 정보 프루닝만 이미지에 적용하는 경우, 유사한 효율성 향상을 달성하려면 더 큰 프루닝 비율을 설정해야 한다. 이는 상당한 정보 손실로 인해 작업 성능을 손상시킨다.

이러한 정보를 삭제하지 않는 modality-aware 병합은 의미론적으로 유사한 내용을 더 적은 토큰으로 압축하는 동시에 효율성 이점을 제공하여 정보 손실을 완화하는 데 도움이 된다.




Text-Informed Image Pruning


개요

이미지 토큰을 텍스트와의 관련성에 따라 가지치기하는 것이다.

직관적인 아이디어는 이미지의 일부 부분만이 최종 언어-비전 작업에 중요하기 때문에 텍스트와 관련이 없는 부분을 제거하면 성능에 영향을 미치지 않으면서 계산 효율성을 향상시킬 수 있다는 것이다.

이전 연구에서는 어떤 이미지 토큰을 가지칠 것인지 예측하기 위해 추가로 학습 가능한 매개변수를 사용하는 것과 달리, 어떠한 매개변수도 사용하지 않고 더 빠른 접근 방식을 취한다.

핵심 아이디어는 VL 모델에서 이미 사용 가능한 text-to-image cross-attention scores를 사용하여 각 이미지 토큰이 텍스트에 얼마나 중요한지를 계산하는 것이다. 중요한 이미지 토큰을 유지하고 나머지를 가지친다.

이러한 텍스트 기반의 가지치기는 매개변수 기반의 가지치기 접근 방식보다 빠르게 훈련되며 훈련 중 이미지 토큰을 제거한다.



이미지 토큰의 텍스트 중요도 점수

  • 토큰 축소기가 적용되는 각 교차 모달 레이어 : l
  • 입력 텍스트 토큰 벡터 : T
  • 이미지 토큰 벡터 : V

모든 이미지 토큰에 대한 텍스트 중요도 점수 s를 계산한 뒤, 텍스트 중요도 점수에 따라 상위 k'개의 이미지 토큰 (Vp)를 유지하고 나머지 이미지 토큰을 제거한다.

각 값이 모든 텍스트 토큰에 대해 합산되기 때문에, 더 큰 텍스트 중요도 점수를 가진 이미지 토큰은 텍스트에 더 많이 어텐션을 받으며 따라서 더 많은 텍스트와 관련이 있음을 의미한다.

  • 텍스트 토큰의 수 : |T|
  • 어텐션 헤드의 수 : H
  • 텍스트와 이미지 토큰의 인덱스 : t, v
  • 텍스트에서 이미지로의 교차 어텐션 점수 (이미 VL 모델에 있는 교차 어텐션 레이어에서 계산됨) : A




Modality-Aware Merging


개요


이미지

  • 텍스트와 관련 없는 토큰을 제거한 후, 남은 토큰에는 텍스트 중요 정보가 더 포함되어 있을 수 있지만 여전히 중복이 존재할 수 있다.

    • Figure 1 이미지에서 여러 이미지 토큰이 동일한 사람을 설명하고, 벡터의 표현이 유사할 수 있다.

텍스트

  • 점진적으로 유사한 정보를 생성하는 자기 어텐션 컨텍스트화로 인해 토큰 중복이 발생한다.

  • 효율적인 훈련과 추론을 위해 텍스트 토큰에 최대 길이로 패딩을 적용하기 때문에 중복성이 발생한다.

이러한 중복성을 제거하기 위해서 의미적으로 유사한 이미지 토큰과 유사한 텍스트 토큰 을 식별하고, 해당 정보를 각 모달리티 내에서 병합해야 한다.



기존 방법

  • k-means 클러스터링
  • 풀링
  • 그루핑
  • 학습 기반 방법

이러한 방법들은 VL 모델의 계산을 느리게 하고 무시할 수 없는 오버헤드를 초래한다.

제안 방법

  • 비파라미터 소프트 매칭 알고리즘



비파라미터 소프트 매칭 알고리즘

입력

  • 토큰 벡터 세트 : X (이미지 토큰 Vp 또는 텍스트 토큰 T가 될 수도 있다.)
  • 병합 비율 : r

과정

  • 토큰을 순서에 따라 두 개의 분리된 세트 (예: E 및 O)로 나누어 이분 그래프를 형성한다.

  • O의 각 토큰에 대해 E에서 가장 유사한 토큰을 찾아 토큰 쌍 사이에 엣지를 그린다(왼쪽에 표시된 선).

  • 유사성을 기반으로 top-r′ 엣지를 선택하고 해당하는 E 및 O의 가장 유사한 토큰을 병합한다.

  • 나머지 non-top-r′ 토큰은 Orest에, 병합되지 않은 토큰은 Erest에 유지된다.


VL 모델 레이어의 self-attention에서 이미 각 토큰에 대한 키와 값을 계산하여 유사성을 측정했기 때문에 토큰 벡터 Xi 간의 키를 사용하여 유사성을 계산한다. (Algorithm 1 참고)




Training and Inference


PuMer의 토큰 리듀서는 학습 가능한 매개변수가 없으며, 학습 및 추론을 위한 모델 아키텍처 변경 없이 기존 VL 모델에 통합할 수 있다.

PuMer는 훈련이 쉽고, 원래의 VL 모델을 파인튜닝하는 것과 동일한 설정을 따른다. 정확도 감소를 더 줄이기 위해 지식 증류 (knowledge distillation) 손실을 추가한다.

훈련 및 추론 중에 PuMer는 효율성 대 정확도 트레이드오프를 제어하기 위한 세 가지 구성 가능한 하이퍼파라미터를 가지고 있다.

  • 이미지 및 텍스트에 대한 보존 비율 : k
  • 병합 비율 : r 및 t


뒷부분 👉🏻 [논문 읽기 #4] PuMer: Pruning and Merging Tokens for Efficient Vision Language Models

0개의 댓글