CVPR 2023|EfficientViT: ViT를 보다 효율적으로 배포하고 실시간 추론을 실현합니다(소스 코드 포함).

우리를 따르려면 파란색 단어를 클릭하십시오

팔로우 및 별표 표시

절대 길을 잃지 않는다

컴퓨터 비전 연구소

388c1bc6233cd86ecf6ed9c705a1ea21.gif

4d1398e662bd457dbf86f15c30a4c630.gif

Public ID컴퓨터비전연구소

학습모임QR코드를 스캔하시면 홈페이지에서 가입방법을 확인하실 수 있습니다.

355098aca145510cf5f63dd9ae34cf25.png

종이 주소: https://arxiv.org/pdf/2305.07027.pdf

프로젝트 코드: https://github.com/microsoft/Cream/tree/main/EfficientViT

컴퓨터비전연구소 칼럼

컴퓨터 비전 연구소 칼럼

Vision Transformer는 높은 모델링 기능으로 인해 큰 성공을 거두었습니다. 그러나 뛰어난 성능은 많은 계산 비용을 수반하므로 실시간 응용 프로그램에는 적합하지 않습니다.

cea8454ce93c960a96e6089b7e169ffc.gif

01

개요

오늘의 공유에서 연구원들은 EfficientViT라는 고속 비전 변압기 제품군을 제안했습니다. 우리는 기존 트랜스포머 모델의 속도가 종종 메모리 비효율적인 작업, 특히 MHSA의 텐서 재구성 및 요소별 기능으로 인해 제한된다는 것을 발견했습니다. 따라서 효과적인 FFN 레이어 사이에 단일 메모리 결합 MHSA를 사용하여 채널 통신을 향상시키면서 메모리 효율성을 향상시키는 샌드위치 레이아웃으로 새로운 빌딩 블록을 설계합니다.

47da5a387baeafe9d5f0c0460d399a51.png

게다가 우리는 어텐션 맵이 머리 전체에서 높은 유사성을 가지고 있어 계산 중복으로 이어진다는 것을 발견했습니다. 이 문제를 해결하기 위해 계산 비용을 절약할 뿐만 아니라 주의 다양성을 향상시키는 다양한 전체 기능 분할로 주의 헤드를 공급하는 계단식 그룹 주의 모듈이 제안됩니다.

포괄적인 실험을 통해 EfficientViT가 속도와 정확도 간의 적절한 균형을 유지하면서 기존의 효율적인 모델을 능가하는 것으로 나타났습니다. 예를 들어, EfficientViT-M5는 정확도에서 MobileNetV3 Large보다 1.9% 더 뛰어난 성능을 보이는 반면 Nvidia V100 GPU와 Intel Xeon CPU에서 각각 40.4%와 45.2%의 처리량을 능가합니다. 최신 효율적인 모델 MobileViT XXS와 비교할 때 EfficientViT-M2는 GPU/CPU에서 5.8배/3.7배 더 빠르게 실행하고 ONNX 형식으로 변환할 때 7.4배 더 빠르게 실행하면서 1.8%의 우수한 정확도를 달성합니다.

cb3b26ef9d4cbb5ee3536818564a149e.gif

02

 배경

최근 몇 가지 작업에서 가볍고 효율적인 비전 변압기 모델을 설계했습니다. 불행하게도 이러한 방법의 대부분은 간접적인 속도 지표이며 모델의 실제 추론 처리량을 반영하지 않는 모델 매개변수 또는 플롭을 줄이는 것을 목표로 합니다. 예를 들어 Nvidia V100 GPU에서 700M 플롭의 MobileViT XS는 1220M 플롭의 DeiT-T보다 훨씬 느리게 실행됩니다. 이러한 방법은 더 적은 Flops 또는 매개변수로 우수한 성능을 달성하지만, 이들 중 다수는 표준 동형 또는 계층적 변환기(예: DeiT 및 Swin)와 비교할 때 상당한 벽시계 속도 향상을 나타내지 않으며 널리 채택되지 않았습니다.

43d1b1841a52e79395d0c3607ea57dd0.png

이 문제를 해결하기 위해 연구자들은 효율적인 트랜스포머 아키텍처를 설계하기 위한 원칙을 찾으려고 노력하면서 비전 트랜스포머를 더 빠르게 사용하는 방법을 탐구합니다. 주류 Vision 변환기 DeiT 및 Swin을 기반으로 메모리 액세스, 계산 중복성 및 매개 변수 사용을 포함하여 모델 추론 속도에 영향을 미치는 세 가지 주요 요소를 체계적으로 분석합니다. 특히 변환기 모델을 발견하는 속도는 종종 메모리에 제한됩니다.

이러한 분석 및 결과를 바탕으로 연구원들은 EfficientViT 라는 새로운 메모리 효율적인 변압기 모델 제품군을 제안했습니다 . 특히 샌드위치 레이아웃의 새 블록이 모델을 구축하도록 설계되었습니다. 샌드위치 레이아웃 블록은 FFN 레이어 사이에 단일 메모리 바운드 MHSA 레이어를 적용합니다. MHSA에서 메모리 바인딩 작업으로 인한 시간 비용을 줄이고 더 많은 FFN 레이어를 적용하여 서로 다른 채널 간의 통신을 허용하여 메모리 효율성을 높입니다. 그런 다음 계산 효율성을 향상시키기 위해 새로운 CGA(Cascaded Group Attention) 모듈을 제안합니다. 핵심 아이디어는 어텐션 헤드에 입력되는 기능의 다양성을 향상시키는 것입니다. 모든 헤드에 동일한 기능을 사용했던 이전의 셀프 어텐션과 달리 CGA는 각 헤드에 대해 서로 다른 입력 분할을 제공하고 헤드 간에 출력 기능을 연결합니다. 이 모듈은 다중 헤드 주의에서 계산 중복을 줄일 뿐만 아니라 네트워크 깊이를 늘려 모델 용량을 향상시킵니다.

a897abf87898d518f7593fa35617e770.png

경량 CNN 및 ViT 모델의 처리량 및 정확도 비교 시연

마지막으로 주요 네트워크 구성 요소(예: 값 예측)의 채널 폭을 확대하고 덜 중요한 구성 요소(예: FFN의 숨겨진 차원)를 축소하여 매개변수를 재분배합니다. 이 재할당은 궁극적으로 모델 매개변수의 효율성을 향상시킵니다.

9c9c88d35adb74e9176449d65408e4ea.gif

03

 동기 부여

비전 트랜스포머 속도 향상

  • 메모리 효율성

70606593d70a02b8dfefba2bd874cad7.png

메모리 액세스 오버헤드는 모델 속도에 영향을 미치는 핵심 요소입니다. 빈번한 재구성, 요소별 추가 및 정규화와 같은 Transformer의 많은 연산자는 메모리 비효율적이며 표준 softmax 자동을 단순화하는 방법이 있지만 위에 표시된 것처럼 서로 다른 메모리 단위에 액세스하는 데 시간이 많이 걸립니다. 주의 계산이 이 문제를 해결합니다. 희박한 주의력 및 낮은 순위 근사치와 같은 문제가 있지만 정확도가 떨어지고 가속도가 제한되는 경우가 많습니다.

2b308c379c3bfaf714d828a22d41f8a0.png

이 작업에서 연구원들은 메모리 비효율적 레이어를 줄임으로써 메모리 액세스 비용을 절감했습니다. 최근 연구에 따르면 메모리 비효율적인 작업은 FFN 계층이 아닌 MHSA 계층에 주로 위치합니다. 그러나 대부분의 기존 ViT는 이 두 레이어를 같은 수로 사용하므로 최적의 효율성을 달성하지 못할 수 있습니다. 따라서 빠른 추론을 통해 소형 모델에서 MHSA 및 FFN 레이어의 최적 할당을 탐색했습니다. 구체적으로, 우리는 Swin-T와 DeiT-T를 각각 1.25배와 1.5배 더 높은 추론 처리량을 가진 여러 개의 작은 하위 네트워크로 줄이고, 다른 MHSA 계층 비율을 가진 하위 네트워크의 성능을 비교합니다.

  • 계산 효율

MHSA는 입력 시퀀스를 여러 하위 공간(헤드)에 삽입하고 어텐션 맵을 개별적으로 계산하여 성능 향상에 효과적인 것으로 나타났습니다. 그러나 어텐션 맵은 계산 비용이 많이 들고 연구에 따르면 그 중 일부는 중요하지 않은 것으로 나타났습니다.

계산 비용을 절약하기 위해 작은 ViT 모델에서 중복주의를 줄이는 방법을 탐색합니다. 너비 축소된 Swin-T 및 DeiT-T 모델은 1.25배의 추론 속도 향상으로 학습되며 각 헤드와 각 블록 내 나머지 헤드의 최대 코사인 유사도가 측정됩니다. 아래 그림에서 특히 마지막 블록에서 어텐션 헤드 사이에 높은 유사성이 있음을 관찰할 수 있습니다.

eece1c4dd259b9d3e685c88bb1130464.png

이 현상은 많은 머리가 동일한 완전한 기능의 유사한 투영을 학습하고 계산 중복을 생성함을 시사합니다. 머리가 다른 패턴을 학습하도록 명시적으로 장려하기 위해 DeiT-T의 그룹 컨볼루션 아이디어와 유사한 전체 기능의 일부만 각 머리에 제공하는 직관적인 솔루션이 적용됩니다. 축소된 모델의 변형은 수정된 MHSA로 훈련되고 그래프에서 보존 유사성을 계산합니다. 연구에 따르면 MHSA와 같은 모든 헤드에 동일한 전체 기능을 사용하는 대신 다른 헤드에서 다른 채널 분할 기능을 사용하면 주의 계산 중복을 효과적으로 줄일 수 있습니다.

  • 매개변수 효율성

일반적인 ViT는 주로 NLP 변압기의 설계 전략을 계승합니다. 예를 들어 Q, K, V 프로젝션의 등가 폭을 사용하고 스테이지에서 헤드를 늘리고 FFN에서 확장 비율을 4로 설정합니다. 더 가벼운 모델의 경우 이러한 구성 요소의 구성을 신중하게 재설계해야 합니다. [Rethinking the value of network pruning]에서 영감을 얻은 Taylor 구조 가지치기는 Swin-T 및 DeiT-T에서 중요한 구성 요소를 자동으로 찾고 매개변수 할당의 근거를 탐색하기 위해 사용됩니다. 가지치기 방법은 특정 리소스 제약 조건에서 중요하지 않은 채널을 제거하고 가장 중요한 채널을 유지하여 정확도를 가장 잘 유지합니다. 기울기와 가중치의 곱을 채널 중요도로 사용하여 채널을 제거할 때 손실 변동을 근사화합니다.

192f27475bfe4feabd5f6c50b657f1cd.gif

04

새 프레임

f7119089cb747a8083d56d35af8dc77b.png

실험 시각화

f9e248802c50f759975777c3779438e6.png

bc3a59d701bb5efc51dfd36a52e8b858.png

f029568db4d5ef3f90c53b0879b63d77.gif

© 끝 

재인쇄를 위해 승인을 위해 이 공식 계정에 문의하십시오.

7378a952a7271f135c81144af3989645.gif

Computer Vision Research Institute 스터디 그룹이 여러분의 참여를 기다리고 있습니다!

에 대한

컴퓨터 비전 연구소

컴퓨터 비전 연구소는 주로 딥 러닝 분야에 참여하고 있으며 주로 객체 감지, 객체 추적, 이미지 분할, OCR, 모델 양자화 및 모델 배포와 같은 연구 방향에 전념하고 있습니다. 연구소에서는 최신 페이퍼 알고리즘 새 프레임워크를 매일 공유하고, 원클릭 페이퍼 다운로드를 제공하며, 실제 전투 프로젝트를 공유합니다. 연구소는 주로 "기술 연구"와 "실무 구현"에 중점을 둡니다. 연구소는 다양한 분야의 실습 과정을 공유하여 모든 사람이 이론을 없애는 실제 장면을 실제로 경험하고 프로그래밍과 두뇌 사고를 사랑하는 습관을 키울 수 있도록 할 것입니다!

441846680198df7b649f16dfbf7aa0a4.png

추천

출처blog.csdn.net/gzq0723/article/details/131266418