AI 모델 및 플랫폼

EfficientViT: 메모리 효율적인 비전 트랜스포머 для 고해상도 컴퓨터 비전

mm
Unite.AI를 Google의 선호 소스에 추가

비전 트랜스포머 모델은 높은 모델 용량으로 인해 최근 많은 성공을 거두었습니다. 그러나 비전 트랜스포머 모델은 하나의 주요 결점을 가지고 있습니다. 즉, 비전 트랜스포머 모델의 계산 능력은 높은 계산 비용을 초래하며, 이는 비전 트랜스포머 모델이 실시간 애플리케이션에서 첫 번째 선택이 되지 않는 이유입니다. 이 문제를 해결하기 위해 개발자들은 EfficientViT를 출시했습니다. EfficientViT는 고속 비전 트랜스포머 모델입니다.

EfficientViT를 개발하는 동안 개발자들은 현재 트랜스포머 모델의 속도가 souvent 메모리 접근 비용으로 제한되며, 특히 MHSA(Multi-Head Self Attention) 네트워크의 요소별 함수 및 텐서 재구성과 같은 연산이 메모리 비효율적임을 관찰했습니다. 이러한 비효율적인 메모리 연산을 해결하기 위해 EfficientViT 개발자들은 새로운 빌딩 블록을 만들었습니다. 이 빌딩 블록은 샌드위치 레이아웃을 사용하며, EfficientViT 모델은 메모리 효율성을 개선하고 채널 간의 통신을 향상시키는 데 도움이 됩니다.

또한 모델은 주의 맵이 헤드 간에 높은 유사성을 가지고 있음을 발견했습니다. 이는 계산冗余를 초래합니다.冗余를 해결하기 위해 EfficientViT 모델은 비전 트랜스포머를 위한 새로운 주의 모듈인 캐스케이드 그룹 주의(CGA)를 제시합니다. 이 모듈은 각 헤드에 전체 특징의 일부를 제공하여 주의 계산을 명시적으로 헤드 간에 분해합니다. 특징을 분할하여 각 헤드에 전체 특징을 제공하는 대신 계산을 절약하고 프로세스를 더 효율적으로 만듭니다.

비전 트랜스포머와 EfficientViT 소개

비전 트랜스포머는 컴퓨터 비전 산업에서 가장 인기 있는 프레임워크 중 하나입니다. 비전 트랜스포머는 우수한 성능과 높은 계산 능력을 제공합니다. 그러나 비전 트랜스포머 모델의 정확도와 성능이不断 개선됨에 따라, 운영 비용과 계산 오버헤드도 증가합니다. 예를 들어, 현재 상태 오프 더 아트 성능을 제공하는 SwinV2와 V-MoE와 같은 모델은 각각 3B와 14.7B 파라미터를 사용합니다. 이러한 모델의 크기와 계산 비용은 실시간 디바이스와 애플리케이션에서 사용하기에 실질적으로 적합하지 않습니다.

EfficientNet 모델은 비전 트랜스포머 모델의 성능을 어떻게 향상시킬 수 있는지 탐구하고, 효율적이고 효과적인 트랜스포머 기반 프레임워크 아키텍처를 설계하는 데 관여하는 원리를 찾는 것을 목표로 합니다. EfficientViT 모델은 기존 비전 트랜스포머 프레임워크인 Swim과 DeiT를 기반으로 합니다. 모델은 모델 간섭 속도에 영향을 미치는 세 가지 중요한 요인을 분석합니다. 즉, 계산冗余, 메모리 접근, 파라미터 사용입니다.

또한 모델은 비전 트랜스포머 모델의 속도가 메모리 접근 비용으로 제한되며, 이는 CPU/GPU의 계산 능력을 완전히 활용하는 것을 방해하여 트랜스포머의 런타임 속도에 부정적인 영향을 미친다는 것을 관찰했습니다. MHSA 네트워크의 요소별 함수 및 텐서 재구성은 가장 메모리 비효율적인 연산입니다. 모델은 FFN(피드 포워드 네트워크)와 MHSA의 비율을 최적화하여 메모리 접근 시간을 크게 줄일 수 있음을 또한 관찰했습니다. 그러나 모델은 주의 맵에서冗余를 발견했습니다. 이는 주의 헤드가 유사한 선형 투영을 학습하는 경향으로 인해 발생합니다.

위의 이미지는 EfficientViT 프레임워크가 현재 상태 오프 더 아트 CNN과 ViT 모델보다 정확도와 속도 모두에서 더 나은 성능을 제공함을 보여줍니다. 그러나 EfficientViT 프레임워크는 어떻게 이러한 상태 오프 더 아트 프레임워크를 능가할 수 있었을까요? 자세히 살펴보겠습니다.

EfficientViT: 비전 트랜스포머의 효율성 개선

EfficientViT 모델은 세 가지 관점에서 비전 트랜스포머 모델의 효율성을 개선하는 것을 목표로 합니다.

  1. 계산冗余.
  2. 메모리 접근.
  3. 파라미터 사용.

模型은 이러한 매개변수가 비전 트랜스포머 모델의 효율성에 어떻게 영향을 미치며, 이러한 문제를 어떻게 해결하여 더 나은 결과를 얻을 수 있는지에 대해 더 자세히 논의합니다.

메모리 접근 및 효율성

모델의 속도에 영향을 미치는 중요한 요소 중 하나는 메모리 접근 오버헤드입니다. 위의 이미지에서 볼 수 있듯이, 트랜스포머의 여러 연산자(예: 요소별 추가, 정규화, 빈번한 텐서 재구성)는 메모리 비효율적인 연산입니다. 이러한 연산은 다른 메모리 단위에 접근해야 하므로 시간이 많이 걸리는 프로세스입니다.

그러나 EfficientViT 프레임워크는 메모리 접근 비용을 줄임으로써 이러한 비효율적인 메모리 연산을 해결합니다. 모델은 DeiT-T와 Swin-T를 작은 서브네트워크로 축소하여 1.25X와 1.5X의 간섭 처리량을 제공합니다. 모델은 MHSA 레이어의 성능을 약 20~40% 개선합니다.

계산 효율성

MHSA 레이어는 입력 시퀀스를 여러 하위 공간 또는 헤드로 임베딩하고, 주의 맵을 개별적으로 계산합니다. 이는 성능을 향상시키는 접근 방식입니다. 그러나 주의 맵은 계산 비용이 많이 들지 않습니다. EfficientViT 모델은 작은 ViT 모델에서冗余 주의를 줄이는 방법을 탐구합니다. 모델은 너비를 줄인 DeiT-T와 Swim-T 모델을 훈련하여 1.25배의 간섭 속도 향상을 제공합니다. 위의 이미지에서 볼 수 있듯이, 헤드 간에 높은 유사성이 존재하며, 이는 모델이冗余 계산을 발생시킴을 의미합니다.

헤드가 다른 패턴을 학습하도록 하기 위해, 모델은 각 헤드에 전체 특징의 일부만을 제공하는 직관적인 해결책을 적용합니다. 이 기술은 그룹 컨볼루션의 아이디어와 유사합니다. 모델은 수정된 MHSA 레이어를 갖는 너비를 줄인 모델을 훈련합니다.

파라미터 효율성

평균 ViT 모델은 NLP 트랜스포머에서 사용되는 설계 전략을 상속받습니다. 이러한 구성 요소의 구성은 경량 모듈을 위해慎重하게 설계되어야 합니다. EfficientViT 모델은 Swim-T와 DeiT-T 레이어에서 필수 구성 요소를 자동으로 찾는 데 테일러 구조적 가지치기를 사용합니다. 모델은 특정 리소스 제약 조건 하에서 가지치기 방법을 사용하여 중요하지 않은 채널을 제거하고 중요한 채널을 유지하여 가능한最高의 정확도를 제공합니다.

위의 이미지에서 볼 수 있듯이, 프레임워크의 첫 두 단계는 더 많은 차원을 유지하는 반면, 마지막 두 단계는 훨씬 더 적은 차원을 유지합니다. 이는 일반적인 채널 구성(예: 각 단계 후에 채널을 두 배로 늘리거나 모든 블록에 동일한 채널을 사용하는 경우)이 마지막 몇 개의 블록에서冗余를 초래할 수 있음을 의미합니다.

효율적인 비전 트랜스포머: 아키텍처

위에서 언급한 분석을 기반으로, 개발자들은 빠른 간섭 속도를 제공하는 새로운 계층적 모델인 EfficientViT 모델을 만들었습니다. EfficientViT 프레임워크의 구조를 자세히 살펴보겠습니다.

EfficientViT 프레임워크의 빌딩 블록

더 효율적인 비전 트랜스포머 네트워크의 빌딩 블록은 아래의 그림에 나와 있습니다.

프레임워크는 캐스케이드 그룹 주의 모듈, 메모리 효율적인 샌드위치 레이아웃, 파라미터 재할당 전략으로 구성되며, 각각 계산, 메모리, 파라미터 효율성을 개선하는 데 중점을 둡니다. 자세히 살펴보겠습니다.

샌드위치 레이아웃

모델은 더 효율적이고 효과적인 메모리 블록을 만들기 위해 새로운 샌드위치 레이아웃을 사용합니다. 샌드위치 레이아웃은 메모리 접근 비용이 높은 셀프 어텐션 레이어를 적게 사용하고, 채널 간 통신을 위한 더 메모리 효율적인 피드 포워드 네트워크를 사용합니다. 더 구체적으로, 모델은 공간 믹싱을 위한 단일 셀프 어텐션 레이어를 FFN 레이어 사이에 적용합니다. 이 디자인은 셀프 어텐션 레이어로 인한 메모리 시간 소요를 줄이는 데 도움이 되며, FFN 레이어를 사용하여 네트워크 내의 다른 채널 간에 효과적인 통신을 허용합니다.

캐스케이드 그룹 주의

MHSA 레이어의 주요 문제 중 하나는 주의 헤드의冗余입니다. 이를 해결하기 위해, 모델은 비전 트랜스포머를 위한 새로운 주의 모듈인 캐스케이드 그룹 주의(CGA)를 제안합니다. 이 모듈은 효율적인 CNN의 그룹 컨볼루션에서 영감을 받았습니다. 이 접근 방식에서는 모델이 각 헤드에 전체 특징의 일부를 제공하여 주의 계산을 명시적으로 헤드 간에 분해합니다. 특징을 분할하여 각 헤드에 전체 특징을 제공하는 대신 계산을 절약하고 프로세스를 더 효율적으로 만듭니다.

파라미터 재할당

파라미터 효율성을 개선하기 위해, 모델은 네트워크의 파라미터를 재할당합니다. 모델은 중요한 모듈의 채널 너비를 확장하고 중요하지 않은 모듈의 채널 너비를 축소합니다. 테일러 분석을 기반으로, 모델은 각 헤드의 투영 차원을 작은 값으로 설정하거나 입력과 동일한 차원을 갖도록 허용합니다. 피드 포워드 네트워크의 확장 비율은 또한冗余를 줄이기 위해 4에서 2로 줄어듭니다. 제안된 재할당 전략은 EfficientViT 프레임워크에서 더 많은 채널을 중요한 모듈에 할당하여 높은 차원 공간에서 더 나은 표현을 학습할 수 있도록 합니다.

위의 이미지에서 EfficientViT 프레임워크의 개요를 볼 수 있습니다.

  1. EfficientViT 아키텍처,
  2. 샌드위치 레이아웃 블록,
  3. 캐스케이드 그룹 주의.

 

EfficientViT: 네트워크 아키텍처

위의 이미지에서 EfficientViT 프레임워크의 네트워크 아키텍처를 볼 수 있습니다. 모델은 16×16 패치를 C1 차원 토큰으로 임베딩하는 오버래핑 패치 임베딩[20,80]을 도입하여 저수준 시각적 표현 학습에서 모델의 능력을 향상시킵니다. 아키텍처는 세 단계로 구성되며, 각 단계는 EfficientViT 프레임워크의 제안된 빌딩 블록을 쌓습니다. 각 서브샘플링 레이어(해상도의 2배 서브샘플링)의 토큰 수는 4배로 줄어듭니다.

 

EfficientViT 모델 패밀리

EfficientViT 모델 패밀리는 6개의 모델로 구성되며, 각 모델은 다른 깊이와 너비를 가지고 있으며, 각 단계에 고정된 수의 헤드를 할당합니다. 모델은 초기 단계에서 후반 단계보다 블록이 적게 사용되며, 이는 MobileNetV3 프레임워크와 유사합니다. 너비는 후반 단계에서冗余를 줄이기 위해 작은 요인으로 증가합니다. 아래의 표는 EfficientViT 모델 패밀리의 아키텍처 세부 정보를 제공합니다. 여기서 C, L, H는 각각 너비, 깊이, 헤드 수를 나타냅니다.

EfficientViT: 모델 구현 및 결과

EfficientViT 모델은 총 배치 크기가 2,048이며, Timm 및 PyTorch를 사용하여 300 에포크 동안 훈련되며, 8개의 Nvidia V100 GPU를 사용합니다. 모델은 코사인 학습률 스케줄러, AdamW 옵티마이저를 사용하며, ImageNet-1K에서 이미지 분류 실험을 수행합니다. 입력 이미지는 무작위로 자르거나 224×224 해상도로 크기 조정됩니다.

ImageNet 결과

EfficientViT 모델의 성능을 분석하기 위해, 모델은 ImageNet 데이터셋에서 현재 ViT 및 CNN 모델과 비교됩니다. 비교 결과는 아래의 그림에 나와 있습니다. EfficientViT 모델 패밀리가 대부분의 경우에서 현재 프레임워크를 능가하며, 정확도와 속도 간의 이상적인 트레이드오프를 달성함을 알 수 있습니다.

효율적인 CNN 및 효율적인 ViT와의 비교

모델은 먼저 EfficientNet과 MobileNet과 같은 효율적인 CNN 및 일반적인 CNN 프레임워크와의 성능을 비교합니다. MobileNet 프레임워크와 비교하여, EfficientViT 모델은 더 높은 최상위 1개 정확도 점수를 얻으며, Intel CPU와 V100 GPU에서 각각 3.0배와 2.5배 빠르게 실행됩니다.

위의 그림은 ImageNet-1K 데이터셋에서 실행되는 대규모 ViT 모델의 성능과 EfficientViT 모델의 비교를 보여줍니다.

다운스트림 이미지 분류

EfficientViT 모델은 다양한 다운스트림 태스크에 적용되어 모델의 전이 학습 능력을 연구합니다. 아래의 이미지에서 실험 결과를 요약하여 볼 수 있습니다. EfficientViT-M5 모델은 모든 데이터셋에서 더 나은 또는 유사한 결과를 얻으며, 훨씬 더 높은 처리량을 유지합니다. 자동차 데이터셋에서만 EfficientViT 모델이 정확도에서 뒤처짐을 보입니다.

객체 감지

EfficientViT 모델의 객체 감지 능력을 분석하기 위해, 모델은 효율적인 모델과 비교하여 COCO 객체 감지 태스크를 수행합니다. 비교 결과는 아래의 이미지에서 요약하여 볼 수 있습니다.

최종 생각

이 기사에서, 우리는 캐스케이드 그룹 주의와 메모리 효율적인 연산을 사용하는 고속 비전 트랜스포머 모델 패밀리인 EfficientViT에 대해 논의했습니다. EfficientViT 모델의 성능을 분석하기 위한 광범위한 실험은 대부분의 경우에서 현재 CNN 및 비전 트랜스포머 모델을 능가하는 효율적인 결과를 보여주었습니다. 우리는 또한 비전 트랜스포머의 간섭 속도에 영향을 미치는 요인에 대한 분석을 시도했습니다.

Kunal Kejriwal은 Python, PostgreSQL, Redis 및 GCP와 AWS의 클라우드 인프라를 전문으로 하는 백엔드 엔지니어입니다. 3년간 생산 시스템을 구축하고 확장한 경험을 바탕으로 AI 인프라, 분산 시스템, 그리고 머신러닝 워크로드 배포의 아키텍처에 대해 글을 씁니다.