Transformer는 원래 자연어 처리 작업을 위해 설계되었지만 현재는 비전 작업에 널리 사용되고 있습니다. Visual Transformer는 여러 시각적 인식 작업에서 탁월한 정확도를 입증했으며 이미지 분류, 비디오 분류, 객체 감지 등의 작업에서 현재 최고의 성능을 달성했습니다.
Visual Transformer의 주요 단점은 높은 계산 비용입니다. 일반적인 CNN(컨벌루션 네트워크)에는 이미지당 수십 GFlop이 필요한 반면, 시각적 변환기에는 종종 이미지당 수백 GFlop에 달하는 훨씬 더 많은 요구 사항이 필요합니다. 영상을 처리할 때는 엄청난 양의 데이터로 인해 이러한 문제는 더욱 심각해집니다. 높은 계산 비용으로 인해 제한된 리소스나 엄격한 대기 시간 요구 사항이 있는 장치에 시각적 변환기를 배포하기가 어려워지고 이로 인해 이 기술의 적용 시나리오가 제한됩니다. 그렇지 않으면 이미 몇 가지 흥미로운 응용 프로그램이 있을 것입니다.
최근 논문에서 University of Wisconsin-Madison의 세 연구원인 Matthew Dutson, Yin Li, Mohit Gupta는 후속 입력 간의 시간적 중복성을 사용하여 비디오 애플리케이션의 시각적 변환기 비용을 줄일 수 있다고 처음 제안했습니다. . 또한 Eventful Transformer를 구축하는 데 사용되는 PyTorch 모듈이 포함된 모델 코드도 출시했습니다.
시간적 중복성: 먼저 비디오 시퀀스를 프레임별로 또는 비디오 클립별로 처리할 수 있는 시각적 변환기가 있다고 가정합니다. 이 변환기는 간단한 프레임별 처리 모델(예: 객체 감지기)일 수도 있고 시공간 모델의 중간 단계(예: ViViT 분해 모델의 첫 번째 단계)일 수도 있습니다. 하나의 입력이 완전한 시퀀스인 언어 처리 Transformer와 달리, 여기서 연구원들은 시간이 지남에 따라 Transformer에 여러 가지 다른 입력(프레임 또는 비디오 클립)을 제공합니다.
자연 동영상에는 상당한 시간적 중복성이 포함되어 있습니다. 즉, 후속 프레임 간의 차이가 작습니다. 그럼에도 불구하고 Transformers를 포함한 심층 네트워크는 일반적으로 각 프레임을 "처음부터" 계산합니다. 이 방법은 이전 추론을 통해 얻은 잠재적으로 관련 있는 정보를 삭제하므로 매우 낭비적입니다. 따라서 이 세 연구자는 이전 계산 단계의 중간 계산 결과를 재사용하여 중복 시퀀스 처리의 효율성을 향상시킬 수 있는지 궁금해했습니다.
적응형 추론: 시각적 변환기 및 일반적인 심층 네트워크의 경우 추론 비용은 아키텍처에 따라 결정되는 경우가 많습니다. 그러나 실제 애플리케이션에서는 경쟁 프로세스나 전원 변경 등으로 인해 사용 가능한 리소스가 시간이 지남에 따라 변경될 수 있습니다. 결과적으로 런타임 시 모델 계산 비용을 수정해야 할 수도 있습니다. 이 새로운 노력에서 연구원들이 설정한 주요 설계 목표 중 하나는 적응성이었습니다. 즉, 그들의 접근 방식을 통해 계산 비용을 실시간으로 제어할 수 있었습니다. 아래 그림 1(하단)은 비디오 처리 중 계산 예산을 수정하는 예를 보여줍니다.
이벤트 기반 변환기: 본 논문에서는 입력 간의 시간적 중복성을 활용하여 효율적이고 적응적인 추론을 달성할 수 있는 이벤트 기반 변환기를 제안합니다. 이벤트화라는 용어는 장면 변화에 따라 이미지를 개별적으로 기록하는 센서인 이벤트 카메라에서 영감을 받았습니다. 이벤트 기반 Transformer는 시간 경과에 따른 토큰 수준 변경을 추적하고 각 시간 단계에서 토큰 표현과 self-attention 맵을 선택적으로 업데이트합니다. 이벤트 기반 변환기 모듈에는 업데이트 토큰 수를 제어하는 게이팅 모듈이 포함되어 있습니다. 이 방법은 기존 모델(일반적으로 재교육 없음)에 적합하며 많은 비디오 처리 작업에 적합합니다. 연구원들은 또한 계산 비용을 크게 줄이고 원래 정확도를 유지하면서 Eventful Transformer를 기존 최고의 모델에 사용할 수 있다는 결과를 입증하기 위해 실험을 수행했습니다
Eventful Transformer
토큰 게이팅: 중복성 감지
이 섹션에서는 연구원들이 제안한 두 가지 새로운 모듈인 토큰 게이트와 토큰 버퍼를 소개합니다. 이러한 모듈을 사용하면 모델이 마지막 업데이트 이후 크게 변경된 토큰을 식별하고 업데이트할 수 있습니다. 게이트 모듈: 이 게이트는 입력 토큰 N에서 M 부분을 선택하고 이를 다운스트림 레이어로 보내 계산을 수행합니다. 이는 u로 표시된 참조 토큰 세트를 메모리에 유지합니다. 이 참조 벡터에는 가장 최근 업데이트 당시의 각 토큰 값이 포함됩니다. 각 시간 단계에서 각 토큰은 해당 참조 값과 비교되며 참조 값과 크게 다른 토큰이 업데이트됩니다.
이제 이 게이트의 현재 입력을 c로 표시합니다. 각 시간 단계에서 게이트의 상태가 업데이트되고 해당 출력은 다음 프로세스에 따라 결정됩니다(아래 그림 2 참조).
1 총 오류 e = u − c를 계산합니다.
2. 오류에 대한 선택 전략을 사용합니다. 선택 전략은 업데이트해야 하는 M개의 토큰을 나타내는 이진 마스크 m(토큰 인덱스 목록과 동일)을 반환합니다.
3. 위 전략으로 선택한 토큰을 추출합니다. 이는 그림 2에서 c × m의 곱으로 설명되어 있습니다. 실제로는 c의 첫 번째 축을 따라 "수집" 작업을 수행하여 달성됩니다. 수집된 토큰은 여기에
로 기록되며 이는 게이트의 출력입니다. 4. 참조 토큰을 선택한 토큰으로 업데이트합니다. 그림 2에서는 이 프로세스를
로 설명합니다. 실제로 사용되는 작업은 "scatter"입니다. 첫 번째 시간 단계에서 게이트는 모든 토큰을 업데이트합니다(u ← c 초기화 및 c~ = c 반환). 버퍼 모듈은 각 입력 토큰
을 추적하는 상태 텐서 를 유지 관리합니다. 버퍼는 토큰을 f(c~)에서 b의 해당 위치로 배포합니다. 그런 다음 업데이트된 b를 출력으로 반환합니다. 아래 그림 3을 참조하세요.
연구원들은 각 문 뒤에 완충 장치를 연결했습니다. 다음은 간단한 사용 패턴입니다. 게이트
의 출력은 각 토큰의 일련의 작업 f(c~)에 전달된 다음 결과 텐서
가 버퍼에 전달됩니다. 복원됩니다. 인식할 수 있는 중복성을 사용하여 Transformer를 재구성
위의 시간 중복성을 활용하기 위해 연구원은 Transformer 모듈에 대한 수정 방식을 제안했습니다. 아래 그림 4는 Eventful Transformer 모듈의 설계를 보여줍니다. 이 방법은 개별 토큰(예: MLP)에 대한 작업 속도를 높이고 쿼리 키 값 및 주의 값 곱셈을 가속화할 수 있습니다.
각 토큰에 대한 Operation Transformer 모듈에서는 각 토큰에 대해 많은 작업이 수행됩니다. 즉, MLP 및 MSA의 선형 변환을 포함하여 토큰 간의 정보 교환이 포함되지 않습니다. 연구원들은 계산 비용을 절약하기 위해 게이트에서 선택하지 않은 토큰에 대한 토큰 지향 작업을 건너뛸 수 있다고 밝혔습니다. 토큰 간의 독립성으로 인해 선택한 토큰에 대한 작업 결과는 변경되지 않습니다. 그림 3을 참조하세요.
특히 연구원들은 W_qkv 변환, W_p 변환 및 MLP를 포함하여 각 토큰의 작업을 처리할 때 한 쌍의 게이트 버퍼의 연속 시퀀스를 사용했습니다. 연결을 건너뛰기 전에 두 추가 피연산자의 토큰이 올바르게 정렬될 수 있도록 버퍼도 추가했습니다. 각 토큰의 작업 비용은 토큰 수에 비례합니다. 숫자를 N에서 M으로 줄이면 토큰당 다운스트림 작업 비용이 N/M배만큼 줄어듭니다
이제 쿼리-키-값 곱 B = q k^T
의 결과를 살펴보겠습니다. 아래 그림 5는 쿼리-키-값 곱 B의 요소 하위 집합을 드물게 업데이트하는 방법을 보여줍니다.
B를 처음부터 컴퓨팅하는 비용이 N^2D인 것과 비교하면 이러한 업데이트의 전체 비용은 2NMD입니다. 새로운 방법의 비용은 선택한 토큰 수인 M에 비례합니다. M
주의 - 값의 곱: 연구원은 증분 Δ에 기반한 방법을 제안했습니다. 업데이트 전략.
그림 6은 세 개의 증분 항을 효율적으로 계산하기 위해 새로 제안된 방법을 보여줍니다.
M이 N의 절반보다 작을 때 계산량을 줄일 수 있습니다
토큰 선택 전략
Eventful Transformer의 중요한 디자인은 토큰 선택 전략입니다. 게이트 오류 텐서 e가 주어지면 이러한 정책의 목표는 업데이트해야 하는 토큰을 나타내는 마스크 m을 생성하는 것입니다. 구체적인 전략은 다음과 같습니다:
Top-r 전략: 이 전략은 오류 e가 가장 큰 r개 토큰을 선택합니다(여기에서는 L2 표준이 사용됨).
임계값 전략: 이 전략은 오류 표준 e가 임계값 h를 초과하는 모든 토큰을 선택합니다.
다시 작성된 내용: 기타 전략: 더 복잡하고 정교한 토큰 선택 전략을 사용하면 더 나은 결과를 얻을 수 있습니다. 정확도-비용 절충 예를 들어 경량 정책 네트워크를 사용하여 정책을 학습할 수 있습니다. 그러나 이진 마스크 m은 일반적으로 미분할 수 없기 때문에 정책의 의사 결정 메커니즘을 훈련하는 데 어려움을 겪을 수 있습니다. 또 다른 아이디어는 중요도 점수를 선택을 위한 참조 정보로 사용하는 것입니다. 그러나 이러한 아이디어는 여전히 추가 연구가 필요합니다
Experiments
아래 그림 7은 비디오를 보여줍니다. 표적 탐지 실험 결과. 여기서 양의 축은 계산 절감률이고 음의 축은 새로운 방법에 대한 mAP50 점수의 상대적 감소입니다. 새로운 방법은 상당한 계산 비용 절감 대신 약간의 정확도를 희생한다는 것을 알 수 있습니다.
아래 그림 8은 비디오 타겟 탐지 작업에 대한 방법 비교 및 절제 실험 결과를 보여줍니다.
아래 그림 9는 비디오 동작 인식에 대한 실험 결과를 보여줍니다.
아래 표 2에서는 하나의 CPU(Xeon Silver 4214, 2.2GHz)와 하나의 GPU(NVIDIA RTX3090)에서 실행되는 시간 결과(밀리초 단위)가 표시됩니다. GPU의 시간 중복은 1.74배의 속도 증가를 가져오는 반면, CPU의 성능 향상은 2.47배에 달하는 것을 확인할 수 있습니다
자세한 기술적 세부 사항과 실험 결과는 원본 논문을 참조하세요.
위 내용은 시간적 중복성에 대한 놀라운 접근 방식: 시각적 변환기의 계산 비용을 줄이는 새로운 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!