일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- llm
- diffusion
- instruction tuning
- llm tuning
- Mac
- glibcxx
- cross-document attention
- Fine-tuning
- lora+
- PEFT
- continual pre-training
- gemma2
- ubuntu
- continued pre-train (cpt)
- langchain
- ViT
- Text-to-Image
- sfttrainer
- prompt
- full fine-tuning (fft)
- Lora
- instruct-pt
- transformer
- instruction tuning (it)
- CPT
- instruct pre-training
- continued pre-training
- domain-adapted pre-training
- backbone
- error: mkl-service + intel(r)
- Today
- Total
꾸준하게
[논문리뷰] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions 본문
[논문리뷰] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions
yeonsikc 2024. 7. 12. 01:26CVPR 2023 [paper] [code]
Wenhai Wang, Jifeng Dai, Zhe Chen, Zhenhang Huang, Zhiqi Li, Xizhou Zhu, Xiaowei Hu, Tong Lu, Lewei Lu, Hongsheng Li, Xiaogang Wang, Yu Qiao
Shanghai AI Laboratory | Tsinghua University | Nanjing University | SenseTime Research | The Chinese University of Hong Kong
Submitted on 10 Nov 2022
last revised 17 Apr 2023 (v4)
Abstract
저자는 근래 나온 ViT 모델과 달리 CNN은 아직 초기 상태에 머물러 있다고 주장하며, 본 연구에서 새로운 large-scale CNN-based foundation model 'InternImage'를 선보인다. ViT 수준으로 파라미터와 데이터를 늘렸으며, 기존 CNN과의 차이점으로, large dense kernel들이 있다는 점이다. 이 모델은 deformable convolution을 핵심 연산자로 사용하기 때문에, 본 모델은 deteciton이나 segmentation 태스크를 위해 필요한 거대하고 효율적인 receptive field를 가질 뿐만 아니라, 입력 및 태스크 정보에 따라 조절되는 adaptive spatial aggregation도 갖는다. 결과적으로 본 모델은 전통적인 CNN 모델의 엄격한 inductive bias도 낮추며 ViT만큼의 대용량 데이터를 사용하여 robust 한 성능을 달성하게 된다.
Introduction
ViT의 등장으로 Vision 분야에서의 CNN 입지는 많이 내려간 상태이다. 저자는 이에 반론하듯, ViT와 유사하게 거대한 데이터와 파라미터로 규모를 키우고 ViT와 유사한 operator and architecture level 디자인이라면 CNN도 더 좋은 성능을 낼 수 있다고 주장하였다.
저자는 우선, CNN과 ViT의 gap을 줄이기 위해 우선 주요한 차이점 두 가지를 요약하였다.
- 오퍼레이터 수준에서, ViT의 multi-head self-attention (MHSA)는 장거리 의존성(long-range dependencies)과 적응형 공간 집계(adaptive spatial aggregation)를 갖고있다(위 Fig. 1. 참고). 유연한 MHSA의 효과로 ViT는 거대한 데이터에 대해 CNN보다 훨씬 더 성능이 좋고 robust 할 수 있었다.
- 아키텍쳐 관점에서 볼 때, ViT에는 MHSA 외에도 Layer Normalization (LN), Feed-forward network(FFN), GELU 등과 같이 일반적인 CNN에 포함되지 않는 일련의 고급 구성 요소들이 포함되어 있다. 최근 연구에서 위 그림(Fig. 1. C)과 같이 매우 큰 커널(예 : $31 \times 31$)의 고밀도 convolution을 사용하여 CNN에 장거리 의존성을 도입하려는 시도가 있었지만, 성능 및 모델 규모 측면에서 ViT와 격차가 발생한다.
Main Contributions
- 새로운 large-scale CNN-based foundation model : InternImage를 제안하였다. 이는 CNN 최초로 파라미터 수가 10억(1B) 개가 넘는 모델이며 4억(400M) 개의 학습 이미지를 사용하여 SOTA 모델인 ViT를 능가하거나 견주는 모델이다. 이를 통해 convolution 모델도 대규모 모델 연구에 있어 탐색할 가치가 있는 방향을 제시하였다.
- $3 \times 3$ DCN operator를 통해 long-range dependencies와 adaptive spatial aggregation를 유지하며 성공적으로 CNN 규모를 키웠다. 그리고 연산자를 중심으로 한 맞춤형 basic block, stacking rules, scaling strategies를 제안하였다.
- Vision 분야 주요 분류/검출 태스크에 대해 30M ~ 1B 모델 사이즈와 1M ~ 400M 데이터 규모에서, 현재 SOTA CNN 기술과 large-scale ViT 모델들과의 평가를 진행하였다.
Related Work
Vision foundation models. 대용량 데이터셋과 컴퓨팅 자원이 가능해졌을 때부터 CNN은 Vision 분야의 주류로 이루어졌다. 그렇게 주로 아키텍쳐 측면에서 효율적인 새로운 연구되다가, depth-wise convolution, deformable convolution과 같이 보다 정교한 convolution 연산자(operation)가 연구되었다. 또한 Transformer의 고급 설계를 고려하여 최신 CNN은 macro/micro 설계에서 더 나은 구성요소를 발견하고 long-range dependencies 및 dynamic weights로 향상된 conv를 도입하여 유망한 성능을 보이기도 하였다.
최근 몇년동안 vision foundation 모델은 transformer 기반 아키텍쳐에 중점을 두고 있다. ViT는 global receptive fields와 dynamic spatial aggregation 특징을 갖고 있어 vision 태스크에 좋은 성능을 보이고 있다. 하지만 ViT 내 global attention은 특히 대규모 feature map에서 높은 컴퓨팅 비용과 메모리 복잡성으로 인해 다운스트림 태스크에 적용하기에 한계가 있다.(물론 이를 해결하기 위한 후속 연구들도 계속 이어지고 있다.)
Large-scale models. 모델 규모를 키우는 연구는 주로 NLP 분야에서 representation 품질을 높이기 위해 연구되어왔다. NLP의 성공에 영감을 받아 Vision 분야에서도 ViT(2B), Swin Transformer(3B)과 같이 모델을 더 깊고 넓게 확장하는 연구가 진행되었다. 이러한 연구들은 기본적인 vision 태스크에 대한 upper bound를 상당히 높여놓았다. 하지만 CNN을 사용한 모델 확장 연구는 transformer 기반 아키텍쳐보다 전체 파라미터 수와 성능 면에서 많이 뒤처져 있다. 비록 몇몇 연구가 제안되어 왔지만 SOTA 모델인 ViT에 비해 gap이 발생하고 있다.
Proposed Method
본 모델은 deformable convolution v2(DCNv2)를 기반으로 대규모 Foundation 모델에 작합하도록 몇 가지 튜닝 작업을 수행하였다. 그 후, 튜닝된 convolution과 최신 backbone에 사용되는 고급 블록 디자인을 결합하여 basic block을 구축한다.
Deformable Convolution v3
Convolution vs. MHSA. 이전 연구들에서 CNN과 ViT의 차이점에 대해 많이 논의되어왔다. 저자는 InternImage 모델의 core operator를 결정하기 이전에 기본 conv와 MHSA의 차이점을 요약하였다.
- Long-range dependencies.
receptive field(long-range dependencies)가 큰 모델이 일반적으로 다운스트림 vision 태스크에서 더 나은 성능을 보인다는 사실은 오랫동안 알려져 왔지만, $3 \times 3$ convolution으로 쌓인 CNN은 사실상 receptive field가 상대적으로 작다. 모델 블록을 아무리 깊게 쌓더라도 CNN 기반 모델은 여전히 ViT와 같은 long-range dependencies를 획득할 수 없어 성능이 제한된다. - Adaptive spatial aggregation.
입력에 따라 가중치가 동적으로 조절되는 MHSA에 비해, 일반 conv는 2D locality, neightborhood 구조, translation equivalence 등과 같은 정적 가중치와 강력한 inductive bias가 있는 연산자이다. inductive bias 특성상, ViT보다 빠르게 수렴하고 학습 데이터가 덜 필요할 수 있지만, 웹 규모의 데이터에서 더 일반적이고 robust 패턴을 학습하는 데는 제한이 있다.
Revisiting DCNv2. conv와 MHSA 사이의 간극을 메우는 간단한 방법은 conv에 long-range dependencies와 adaptive spatial aggregation를 도입하는 것이다. 저자는 이를 위해 DCNv2 연산자에 대한 튜닝을 하였다. 입력 $x \in \mathbb{R}^{C \times H \times W}$와 current pixel $p_0$가 주어졌을 때, DCNv2는 다음과 같은 식을 갖는다.
$$y(p_0) = \sum^{K}_{k=1}w_km_kx(p_0+p_k+\Delta p_k) \tag{1}$$
- $K$ : 샘플링 포인트 총 개수
- $k$ : 샘플링 포인트
- $w_k \in \mathbb{R}^{C \times C}$ : k번째 샘플링 포인트의 projection weights
- $m_k \in \mathbb{R}$ : 시그모이드 함수에 의해 정규화된 k번째 샘플링 포인트의 modulation scalar
- $p_k$ : 일반 conv에서와 같이 미리 정의된 그리드 샘플링의 k번째 위치
- $\Delta p_k$ : k번째 그리드 샘플링 위치에 해당하는 오프셋
위 수식을 통해 (1) Long-range dependencies의 경우 샘플링 오프셋 $\Delta p_k$가 유연하고 단거리 또는 장거리 특징과 상호 작용할 수 있음을 알 수 있으며, (2) Adaptive spatial aggregation의 경우 샘플링 오프셋 $\Delta p_k$와 modulation scalar $m_k$ 모두 입력 $x$에 의해 학습 및 조건화됨을 알 수 있다. 따라서 DCNv2는 MHSA와 유사한 유리한 특성을 공유한다는 것을 알 수 있으며, 이 연산자를 이용해 대규모 CNN Foundation 모델이 가능할 것을 암시한다고 볼 수 있었다.
Extending DCNv2 for Vision Foundation Models. 일반적인 관행에서 DCNv2는 일반적으로 정규 conv의 확장으로 사용되며, 사전 학습된 정규 conv의 weight를 load 하고 fine-tuning 된다. 저자는 DCNv2에 다음 기능들을 확장하였다.
- Sharing weights among convolutional neurons.
DCNv2는 매개 변수 및 메모리 복잡성은 총 샘플링 포인트 수와 선형이므로 특히 대규모 모델의 효율성을 크게 제한한다. 이를 해결하기 위해 separable convolution에서 아이디어를 차용하여 기존의 conv weight $w_k$를 depth-wise 및 point-wise 부분으로 분리하고, 여기에서 depth-wise 부분은 원래 위치 modulation scalar $m_k$를 담당하며, point-wise 부분은 샘플링 포인트 간의 shared projection weights $w$가 된다. - Introducing multi-group mechanism.
multi-group (head) design은 group conv에서 처음 등장했으며, transformer의 MHSA에서 널리 사용되며 adaptive spatial aggregation과 함께 작동하여 서로 다른 위치의 서로 다른 representation sub-space에서 더 풍부한 정보를 효과적으로 학습한다. 이에 영감을 받아, spatial aggregation 프로세스를 $G$ 그룹으로 분할했으며, 각 그룹은 개별 샘플링 오프셋 $\Delta p_{gk}$와 변조 스케일(modulation scale) $m_{gk}$를 가지며, 단일 conv 계층의 서로 다른 그룹은 서로 다른 spatial aggregation 패턴을 가질 수 있으므로 다운스트림 작업에 더 강력한 기능을 제공한다. - Normalizing modulation scalars along sampling points.
기존 DCNv2에서의 modulation scalar는 sigmoid function에 의해 element-wise 형식으로 normalized 된다. 때문에, 각 modulation scalar 값은 [0, 1] 범위를 갖게 되며 모든 샘플 포인트의 muldation scalar 합이 안정적이지 않고 0에서 $K$까지 변화하므로 대규모 파라미터 및 데이터로 학습할 때 DCNv2 layer의 gradient가 불안정해진다는 문제가 있다. 저자는 이러한 문제를 해결하기 위해, element-wise sigmoid function을 샘플 포인트들에 대한 softmax normalization으로 변경하였다. 이럴 경우, modulation scalar 값의 합이 1로 제한되어 다양한 규모의 모델 학습 과정이 안정적으로 이루어질 수 있게 된다.
앞서 언급한 수정사항을 결합한 DCNv3의 수식은 다음과 같다.
$$y(p_0) = \sum^{G}_{g=1} \sum^{K}_{k=1}w_g m_{gk} x_g (p_0+p_k+\Delta p_{gk}) \tag{2}$$
- $G$ : aggregation groups 전체 개수
- $g$-th group의 경우, $w_g \in \mathbb{R}^{C \times C^\prime}$ : 그룹의 위치 관련 projection weights
$C^\prime$ : $C/G$ : 그룹 차원 - $m_{gk} \in \mathbb{R}$ : 차원 $K$를 따라 softmax 함수로 정규화된 $g$번째 그룹의 $k$번째 샘플링 포인트의 modulation scalar
- $x_g \in \mathbb{R}^{C^\prime \times H \times W}$ : 슬라이드 된 입력 feature map
- $\Delta p_{gk}$ : g번째 그룹에서 그리드 샘플링 위치 $p_k$에 해당하는 offset
저자가 새롭게 제안한 DCNv3는 다음 세 가지 장점이 있다.
- 이 연산자는 long-range dependencies 및 adaptive spatial aggregation 측면에서 일반 conv의 결함을 보완한다.
- attentiion 기반 연산자에 비해, conv의 inductive bias를 상속하여 더 적은 학습 데이터와 짧은 학습 시간으로 모델을 더 효율적으로 만든다.
- sparse 샘플링에 기반하여 large kernel 및 MHSA와 같은 방법보다 계산 및 메모리 효율이 더 높다. 또한, sparse 샘플링으로 인해 long-range dependencies를 학습하는 데 $3 \times 3$ 커널만 필요하므로 최적화하기가 더 쉽다.
InternImage Model
Basic block. 본 block은 기존 CNN에서 많이 사용되는 bottleneck 대신 LN, FFN, GELU 등 ViT에 더 가깝다. 그렇게 한 이유는, 이 설계가 다양한 Vision 태스크에서 효율성이 입증되었기 때문이다. 핵심 연산자는 DCNv3이고 샘플링 offset과 modulaization scalars은 입력 feature $x$를 separable conv ($3 \times 3$ depth-wise conv)을 통해 전달하여 예측된다. 다른 부분은 post-normalization 설정을 사용하며 일반 transformer 설계를 준수한다.
Stem & downsampling layers. 계층적 feature map을 얻기 위해 conv stem과 downsampling layer를 사용하여 feature map의 scale을 조정한다. stem layer는 첫 layer에 배치되어 입력 해상도를 $\frac{1}{4}$로 줄인다. 2개의 conv(k=3, s=2, pa=1), 2개의 LN layer, 하나의 GELU layer로 구성되며 첫 conv의 출력 채널은 두 번째 conv의 절반이다. downsampling layer는 1개의 conv(k=3, s=2, p=1), 1개의 LN layer로 구성된다. 이는 stage 사이에 위치하고 있으며 feature map을 2배로 축소한다.
Stacking rules. 우선 InternImage의 적분 하이퍼파라미터는 다음과 같다.
- $C_i$ : i번째 stage의 채널 수
- $G_i$ : i번째 stage 내 DCNv3의 group 수
- $L_i$ : i번째 stage 내 basic block 수
본 모델은 4개의 stage로 구성되어 있기에, 12개(위 3개의 하이퍼파라미터 $\times$ 4개 stage)의 하이퍼파라미터에 의해 변형(variant)이 결정되는데, search space가 너무 커서 최적의 변형을 찾기에는 한계가 있다. search space를 줄이기 위해 Fig. 3. 우측 하단에 표시한 바와 과 같이 4개의 규칙을 적용하였다. (search space : hyperparameter 탐색 공간)
- $C_i = 2^{i-1}C_1$ : 첫 번째 stage의 채널 수 $C1$에 의해 다음 세 stage의 채널 수가 결정되도록 한다.
- $G_i = C_i / C^\prime$ : 그룹 수가 stage의 채널 수에 대응하도록 한다.
- $L_1 = L_2 = L_4$, $L_1 \leq L_3$: block의 수는 1, 2, 4 stage의 블록 수가 같고 3 stage의 block 수보다 크지 않은 "AABA" 형태를 준수한다.
위 규칙을 사용하면 ${C_1, C^\prime , L_1, L_3}$만으로 InternImage 변형을 정의할 수 있다. 아래의 search space를 선택하여 총 30가지의 변종을 만들도록 하였으며, base 모델로 ${C_1=64, C^\prime =16, L_1=4, L_3=18}$ 설정을 사용하였다.
- $C_1$ : {48, 64, 80}
- $L_1$ : {1, 2, 3, 4, 5}
- $C^\prime$ : {16, 32}
Scaling rules. 앞서 언급한 scaling 규칙을 더 자세히 보면, 구체적으로 depth $D$(즉, $3L_1 + L_3$)와 width $C_1$이라는 두 가지 scaling 차원을 고려하고 $\alpha, \beta$ 및 복합 계수 $\phi$를 사용하여 두 차원을 scaling 한다. scaling 규칙은 다음과 같이 작성할 수 있다.
- $D^\prime = \alpha ^\phi D$ and $C^\prime _1 = \beta ^\phi C_1$ where $\alpha \leq 1, \beta \leq 1$, and $\alpha \beta ^{1.99} \approx 2$
위에서 1.99 값은 InternImage에 한정되며 모델 폭을 두 배로 늘리고 깊이를 일정하게 유지하여 계산한다. 실험적으로 $\alpha=1.09$, $\beta=1.36$이 최적의 scaling 설정임을 확인한 다음, 이를 기반으로 ConvNeXt의 복잡도와 유사한 InternImage-T/S/B/L/XL을 구성하였다. 이를 테스트하기 위해 1B 규모의 InternImage-H를 구축했으며, 매우 큰 모델 폭을 수용하기 위해 group 차원 $C^\prime$을 32로 설정하였다. config 요약은 아래 테이블에서 확인할 수 있다.
Abliation study
Experiment
실험 환경 설정 부분은 논문 참고.