Visual Transformer(ViT)는 2년 전에 대중의 관심을 끌었으며 컴퓨터 비전 연구의 핵심 구성 요소가 되었습니다.
자연어 처리 분야의 Transformer 모델을 컴퓨터 비전 분야로 성공적으로 마이그레이션했습니다. 그 이후로 컴퓨터 비전 분야의 발전이 가속화되었습니다.
가성비와 성능면에서 월등하지만 바닐라비트는 여전히 장점이 많습니다.
간단한 행렬 곱셈으로 구성되어 있어 원시 연산 수가 나타내는 것보다 더 빠릅니다.
또한 MAE(Masked Autoencoder)와 같은 강력한 자가 감독 사전 훈련 기술을 지원하여 빠른 훈련을 가능하게 하면서 최첨단 결과를 생성할 수 있습니다.
그리고 데이터에 대한 가정이 없기 때문에 이미지, 오디오, 텍스트 등 다양한 모드에 거의 변경 없이 적용할 수 있습니다.
물론 이상은 매우 충만하지만 현실은 매우 말랐습니다. ViT 모델은 규모가 크고 지연 시간이 큽니다. 리소스가 제한된 장치에서 이 복잡한 모델을 실행하는 것은 매우 문제가 될 수 있습니다.
느린 작동 문제에 대응하여 연구자들은 여러 가지 해결책을 제시했습니다. 비전 Transformer 모델의 속도를 높이는 일반적인 방법 중 하나는 토큰 가지치기를 수행하는 것입니다.
런타임에 토큰을 정리하여 덜 중요한 토큰을 정리하여 효율적인 변환기를 생성합니다. 예를 들어, DynamicViT는 중복 토큰을 계층적으로 정리하여 분류 작업에서 FLOP를 줄입니다.
토큰 정리에는 몇 가지 문제가 있으며, 그 중 가장 중요한 것은 정보 손실을 초래한다는 것입니다. 따라서 정보 손실을 줄이기 위해 사람들이 정리할 수 있는 ViT 모델 토큰의 수는 제한되어 있습니다. 중요하지 않은 토큰만 정리할 수 있습니다.
또한 정리된 토큰이 유효하려면 모델을 다시 훈련해야 합니다. 이로 인해 추가 리소스 소비가 발생합니다.
더 중요한 것은 토큰 가지치기는 동적 프로세스이며 다양한 이미지나 문장을 기반으로 다양한 토큰 가지치기 횟수를 결정해야 한다는 것입니다. 이는 정확도를 높이는 데는 좋지만 이 경우 데이터를 더 이상 일괄 처리할 수 없기 때문에 실용적이지 않습니다.
이 문제를 해결하려면 가지치기 과정에서 마스크를 추가해야 하는데, 이는 효율성 향상에 더욱 영향을 미칠 것입니다.
간단히 말하면 토큰 정리를 통해 ViT 실행 속도가 빨라지지만 이는 정보 손실을 대가로 달성됩니다.
ViT를 가지치기와 속도는 유사하게 만들면서 가지치기보다 더 높은 정확도를 유지하려면 어떻게 해야 할까요? Meta AI 연구팀은 Token Merging (ToMe)이라는 새로운 솔루션을 내놓았습니다.
문서 링크: https://arxiv.org/pdf/2210.09461.pdf
토큰 병합은 정리 대신 토큰 결합을 선택합니다. 맞춤형 매칭 알고리즘 덕분에 가지치기만큼 빠르면서도 정확합니다. 또한 추가 교육 없이도 작동하므로 대규모 모델에 사용하면 정확성을 많이 희생하지 않고도 속도를 높일 수 있습니다.
Meta의 목표는 중복 토큰을 병합하여 추가 교육 없이도 교육 및 추론의 처리량을 향상시키기 위해 기존 ViT에 토큰 병합 모듈을 삽입하는 것입니다.
기본 아이디어는 Transformer 모델에서 병합을 통해 각 레이어가 r 토큰만큼 감소한다는 것입니다. Transformer 모델에 L 레이어가 있다고 가정하면 병합을 통해 rL 토큰을 줄일 수 있습니다. 변수 r의 크기는 속도와 정확도 사이의 관계를 결정합니다. 마커가 적을수록 정확도는 낮아지지만 처리량은 높아지기 때문입니다.
Token Merging에서는 이미지 내용에 관계없이 rL 토큰이 줄어든다는 점에 주목할 필요가 있습니다. 이는 토큰 프루닝에서 일괄 처리가 불가능했던 문제를 완벽하게 해결합니다.
ToMe를 사용하면 유사한 토큰 배치가 각 Transformer 블록에 병합됩니다. 예를 들어 개 털은 단일 토큰으로 병합됩니다.
토큰 병합은 모든 어텐션 블록과 모든 Transformer 블록에 삽입됩니다. 이는 토큰 정리 작업 흐름과도 대조됩니다. 후자는 각 Transformer 블록의 시작 부분에 가지치기 단계를 배치하는 경향이 있습니다.
Token Merging을 통해 병합이 필요한 토큰의 정보를 유포할 수 있으며, ViT는 어텐션 블록의 특성을 활용하여 어떤 토큰을 병합해야 할지 결정할 수도 있습니다.
병합의 첫 번째 단계는 유사한 토큰을 식별하는 것입니다. 연구팀은 Transformer의 QKV(query, key, value)를 추출한 상태에서 ablation 실험을 통해 키를 사용하는 것이 토큰 간의 유사성을 가장 잘 측정할 수 있다는 사실을 발견했습니다(아래 그림의 보라색 부분).
키는 각 토큰에 포함된 정보를 요약했기 때문에 토큰 간 유사성을 측정하기 위해 Attention의 내적에 사용할 수 있습니다.
토큰 유사성을 측정하는 데 어떤 지표가 더 좋은지 연구하는 것 외에도 어떤 거리가 유사성을 측정하는지 알아야 합니다. 실험을 통해 연구팀은 코사인 거리를 사용하여 토크 간의 유사성을 측정하면 정확도와 속도 간의 최상의 관계를 얻을 수 있다는 사실을 발견했습니다.
토큰의 유사성을 확인한 후 총 r 수를 줄이기 위해 일치해야 하는 토큰을 결정하는 빠른 방법이 필요합니다.
메타팀은 kmeans 클러스터링 알고리즘이나 그래프 분할 알고리즘을 사용하지 않고 매칭 알고리즘을 사용합니다. 왜냐하면 후자가 각 레이어의 토큰 수를 정확하게 일치시킬 수 있을 뿐만 아니라 수천 건의 매칭을 빠르게 수행할 수 있기 때문입니다. 이는 반복적인 클러스터링 알고리즘으로는 수행할 수 없습니다.
그래서 메타팀은 더욱 효율적인 솔루션을 생각해냈습니다.
디자인 목표는 다음과 같습니다. 1.) 병렬화할 수 없는 반복을 피합니다. 2.) 클러스터링에는 일치하는 동안 그룹으로 병합할 수 있는 마커 수(네트워크에 부정적인 영향을 줄 수 있음)에 제한이 없으므로 병합된 변경 사항이 점진적이기를 원합니다. 태그는 병합되지 않습니다.
이 독특한 기술을 사용하면 ViT 모델의 처리량과 실제 훈련 속도를 향상시킬 수 있습니다. 토큰 병합을 사용하면 훈련 속도를 두 배로 높일 수 있습니다. 이미지, 비디오 및 오디오 작업에 사용할 수 있으며 여전히 최첨단 정확도를 달성합니다.
위 내용은 ViT 모델 가속화를 위한 새로운 아이디어! Meta, 가지치기(Pruning)에 의존하지 않고 병합(Merge)하는 토큰 병합(Token Merging) 출시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!