https://www.youtube.com/watch?v=fcmOYHd57Dk
• Basics of Vision Transformer (ViT)
img를 패치화한 후 각 패치를 embedding하여 transformer의 encoder에 넣는다.
위 그림에서처럼 patch size에 변주를 주거나 layer, hidden dim 등에 변화를 주면 다양한 모델의 형태를 얻을 수 있다.
위 그림을 보면 작은 데이터셋에 대해서는 CNN보다 ViT가 더 성능이 낫고 충분히 큰 데이터셋에서만 우세한 성능을 보이는 것을 알 수 있어 이 점이 한계이다.
• Efficient ViT & acceleration techniques
고해상도 이미지가 예측에 있어서 중요한데, ViT는 이미지 해상도가 증가함에 따라 계산량이 quadratic하게 증가하는 것을 알 수 있다.
-Segment Anything Model(SAM)
계산은 효율적이고 정확도는 증가시키기 위해서 하나의 이미지에 대해 promptable image segmentation을 진행하는데 이 prompt로는 text, img, points, mask 등이 가능하다.
- Window attention
ViT는 classification에서는 좋은 성능을 보였지만, segmentation과 object detection task에서는 좋지 않은 성능을 나타냈다. 이를 보완하기 위해 convolution 연산에 내재된 local 정보 추출 능력을 밴치마크해서 window attention 기법을 생각해냈다. 이를 local window라고 하고, 이미지의 해상도가 변함에 따라 token 개수가 달라지더라도 원래의 ViT는 연산량이 quadratic하게 증가한 것에 반해 window attention의 경우는 window size에 quadratic하고 (M^2) token의 길이에는 linear한 것을 알 수 있다.
하지만 이 window 기법만으로는 window 내부 정보만 계속 확인해서 window내부의 정보만 계속 얻게 되는 단점이 있다.
다른 window와의 상호작용을 챙기기 위해 shifted window기법을 착안하였고, 인접하지 않은 window끼리도 attention 연산이 가능토록 하였다.
* Sparse Window Attention
FlatFormer: Sparse Window Transformer with Equal-Size Grouping
window size가 동일하면 100% dense한 이미지의 경우는 무관하게 연산이 가능하지만 0.1%만 활성화되어 있는 3D Point cloud의 경우는 activation이 sparse하게 활성화되어있어, equal window size면 연산이 비효율적일 수 있다. 그렇기 때문에 equal-size grouping을 진행하기도 하는데 이렇게 연산하면 hardware-friendly desigining이 된다고 한다.
- Linear attention
Attention map 연산을 위해서 softmax를 취했었다면 이를 선형 activation function인 ReLU로 변경하여 QK.T의 연산을 K.TV연산을 먼저 진행하여 Computational cost를 절감한다.
하지만 No free lunch이다. ReLU는 sharp distribution을 만들 수가 없기 때문에 global context information에서는 좋지만 local information을 capture하는 것에는 좋지 못하다. global attention에서는 좋을 수 있지만 local 관점에서는 별로 일 수도 있다. -> local한 정보를 얻는데 가장 효율적인 것은 CONV!
* EfficientViT
multi-scale aggregation을 통해 linear attention의 성능(=global extraction ability)을 향상시킨다. depthwise conv와 1x1 conv를 결합하여 연산효율적이고 (local information extraction ability)를 향상시킬 수 있는 FFN을 추가한다.
그 결과, Mobile CPU, Edge GPU, Cloud GPU에서 연산을 효율적으로 할 수 있게 되었고, SR task에서도 좋은 성능을 낼 수 있었다.
또, SAM에서 prompt를 Bounding Box로 줄 때나 points로 줄때나 segmentation map으로 줄때나 1초에 처리할 수 있는 이미지의 개수가 많아지게 되었다.
- Sparse attention
고해상도 이미지가 img를 prediction하는데 중요한 요소였다. 그렇다면 sparse한 고해상도 이미지가 더 나을까? dense한 저해상도 이미지가 더 나을까?
* Step I: Window Activation Pruning (with Non-Uniform Sparsity)
activation magnitude를 비교해서 activate된 feature만 얻고 나머지는 점점 sparsely 버린다. 이렇게 되면 hardware friendly하게 연산이 가능해지고 sparse kernel이 불필요해진다. 즉, window단위로 batch된 block 연산에서 불필요한 연산을 건너뛰는 방식으로 실질적인 속도 향상을 이루어내는 것이다. 예를 들면, 60%의 희소성을 도입했을 때 약 50%의 지연 시간이 감소한다고 한다.
* Step II: Sparsity-Aware Adaptation
ViT의 각 층은 연산 비용과 중요도가 다르기 때문에 각기 다른 희소성 비율을 적용해야 한다. sparsity를 인식하는 능력을 높이기 위해서 학습할 때마다 layer별로 무작위 sparsity를 설정하여 sampling하고 fine-tuning을 진행한다. 다양한 sparsity 설정에서도 유연하게 동작할 수 있도록 훈련되어 실제 환경에서도 sparse-aware하게 활용 가능하도록 한다. 결국 층별로 최적의 희소성 구성을 찾게 되는 것이다.
* Step III. Resource-Constrained Search
주어진 latency내에서 최적의 layer별 sparsity 설정을 찾는 것이다. 이는 적은 sample로도 효율적인 성능을 유지할 수 있게 된다.
• Self-supervised learning for ViT
앞서 말한대로 ViT는 300M의 거대한 dataset이 필요하다는 단점이 있다. 이를 보완하기 위해서 unlabeled data를 활용할 수 있는 방법론을 제안하고자 했다.
- Contrastive learning
Self-supervised ViT models deliver stronger performances than supervised counterparts.
동일한 이미지의 일부를 embedding한 vector끼리의 유사도는 높고, 다른 이미지로 부터 embedding한 vector의 유사도는 낮도록 학습을 진행함.
img embedding과 text embedding을 pair로 학습하여 zero-shot과 open-vocabulary classification이 가능하도록 하였다.
- Masked image modeling
BERT의 MLM과 비슷한 TASK로 일부로 일부를 MASKING하고 다시 복원하는 방법으로 REPRESENTATION을 학습하는 방법이다. text 도메인은 img 도메인보다 그 밀도가 더 높기 때문에 (단어 1개의 정보량 vs pixel 1개의 정보량) MLM에서 15%를 masking했던 것과 달리 MIM에서는 약 75%를 masking하여 비대칭적인 encoder를 통과시킨다. 위 그림에서처럼 unmasked token을 encoder를 거쳐 embedding을 진행하고, decoder단에는 masking된 token과 encoder를 통과한 unmaksed token을 decoder를 통과하여 다시 복원하는 흐름을 겪는다.
• Multi-modal LLM
- Cross attention VLMs (Flamingo)
* Perceiver Resampler
img나 video마다 다른 해상도와 길이를 갖기 때문에 이를 통일하기 위해 percevier resampler를 사용한다.
위 그림에서는 5개의 learned queries token을 이용해서 varying size large visual feature map을 고정된 visual token으로 얻는다.
* Gated cross-attention layer
tanh gate를 이용해서 visual information이 text information에 미칠 영향을 조절한다.
- Visual token (PaLM-E)
PaLM-E는 flexible modalities를 하나의 토큰 시퀀스로 처리하여 복합적인 시각적-언어적 과제를 해결하는 모델로, 이미지, 로봇 상태, 3D 표현 등 다양한 모달리티의 입력을 처리할 수 있다. 이를 통해 시각적 정보, 동작 명령 등의 다양한 형태의 데이터를 하나의 모델로 통합할 수 있다.
예를 들어, 로봇에게 특정 작업을 수행하도록 지시하면 PaLM-E가 해당 지시에 맞는 로봇 조작 방법을 예측한다. 또는 물체를 옮기거나 정렬하는 작업 계획도 수행할 수 있다.
이미지에 대한 질문에 답하거나 이미지의 내용을 설명하는 작업을 수행할 수 있다.