Sparse 모델의 필요성
기존 기법들은 모든 모델 프로세싱 부분들에서 모든 인풋들을 쓰고 있습니다. 하지만, 조건부적으로 계산법을 적용하는 sparse 모델들은 잠재적으로 큰 네트워크에서 개별의 인풋들이 다른 "experts"들로 이동하도록 학습할 수 있습니다. 이에 따라 Sparse 모델들은 딥러닝 분야에서 점점 유망한 방법론이 되고 있습니다. 장점으로는, 계산 코스트를 일정하게 하면서 모델 사이즈를 키울 수 있습니다. 이는 효과적이고 환경 친화적으로 모델들을 키울 수 있어 더 나은 퍼포먼스 결과를 낳기도 합니다.
Multi task(여러 태스크를 한꺼번에 학습)나 continual learning(여러 태스크를 차례로 학습)기반인 dense모델들은 너무 많은 태스크 다양성은 태스크 당 하나의 모델을 훈련하는 것을 의미하는 negative interference에 취약합니다. 또한, 모델에 새로운 태스크가 추가되면 이전의 태스크들에는 안 좋은 영향을 미치는 catastrophic forgetting이 생길 수 있습니다. Sparse 모델들은 모든 인풋들이 하나의 전체 모델에 적용되지 않고, 모델 안에 있는 expert들이 다른 태스크나 데이터 타입에 전문화시키며 이러한 현상들을 해결해줍니다. 모델의 expert 사이에 공유되는 부분들은 여전히 유효합니다.
Multimodal을 처리할 수 있는 하나의 큰 모델의 필요
구글 리서치에서는 하나의 큰 모델로 수많은 태스크들과 수많은 데이터 모달리티들을 처리할 수 있게 만드는 것을 하나의 큰 연구 비전으로 삼고 있습니다. 언어(Switch, Task-MoE, GLaM)나 CV(Vision MoE)에 각각 대한 Sparse unimodal 모델들에 대해서는 상당한 진전이 이루어졌으나, 둘을 한꺼번에 처리하는 방법에 대해서는 연구가 많이 되지 않았습니다. 이와 관련된 접근법은 multimodal contrastive learning인데, 이는 사진들과 정확한 텍스트로 설명될 수 있게 하기 위해서, 이미지들과 텍스트들에 대한 견고한 이해를 필요로 합니다. 현재까지 이 태스크를 해결하기 위한 가장 강력한 모델은 각 모달리티에 독립적인 네트워크로 구성됩니다(two tower 방법).
LIMoE: the Language Image Mixture of Experts의 overview
여기서는 처음으로 큰 스케일의 멀티모달 아키텍쳐를 sparse mixture of experts를 이용하여 만들고 이름을 LIMoE라 지었습니다. 이는 동시에 이미지와 텍스트를 처리하면서 자연스럽게 전문화된 expert들을 sparse하게 발현되도록 하였습니다. LIMoE 는 많은 "expert"들을 가지고 있고, router들은 어떤 토큰이 어떤 experts로 갈 지 결정합니다. Expert 레이어들과 공유되는 shared 레이어들에서 처리된 후에, 마지막 output 레이어에서는 이미지나 텍스트를 대한 벡터 representation을 계산합니다.
Sparse Mixture-of-Experts 모델들
Transformer는 기본적으로 a sequence of vectors (토큰들)로 데이터를 표현합니다. 이는 a sequence of token으로 표현 가능하다면 사용할 수 있다는 뜻입니다. 최근에 큰 규모의 MoE 모델들은 expert layer들을 Transformer 아키텍쳐에 녹여내어 방법을 제안하였습니다. (언어쪽에서는 gShard, ST-MoE/비전쪽에서는 Vision MoE)
기존에 Transformer는 다양하고 다른 레이어들이 들어있는 많은 block들로 이루어져있었습니다. 이 중 하나가 feed-forward network라는 레이어였습니다. MoE 기반의 모델들은 이러한 FFN을 하나의 expert 레이어로 바꿨습니다. Expert 레이어는 많은 parallel FFN으로 이루어졌고 각각을 expert라고 불렀습니다. 주어진 a sequence of token를 처리하기 위해서, 하나의 심플한 라우터는 어떤 expert들이 이 토큰들을 처리해야하는 지 학습하였습니다. 오직 적은 양의 expert들이 각 토큰에 대하여 활성화되어, 많은 양의 expert가 있어 모델의 용량이 늘어난다고 해도 실제 계산 비용은 sparse하게 그들을 사용하기 때문에 어느 정도 제한이 됩니다. 만약 한 expert만 활성화된다면, 모델의 코스트는 기본 Transformer와 비슷하다는 것을 알 수 있습니다. LIMoE는 example하나당 하나의 expert를 활성화시키기 때문에 dense 베이스라인들과 계산적 비용을 비슷하게 만들지만, 라우터가 이미지나 텍스트 데이터 모두 처리할 수 있게 한다는 점이 다릅니다.
MoE 모델들이 실패할 수 있는 부분은 그들이 모든 토큰들이 같은 expert로 보낼 때입니다. 이것은 균형잡힌 expert 사용을 장려하는 추가적인 학습 objective인 auxiliary loss들로 해결될 수 있습니다. 또 다른 실패 지점은 sparsity와 상호 작용하는 다수의 모달리티들을 처리할 때 생길 수 있습니다. 이를 해결하기 위해 이 연구에서는 새로운 auxiliary loss들을 제안하고 routing prioritization (BPR)를 학습동안 사용하였습니다. 이를 통해 안정적이고 멀티모달 모델로서 높은 퍼포먼스를 낼 수 있게 되었습니다.
또한 routing 행위에서도 성공률을 높여주었는데, 낮은 성공률은 라우터가 모든 expert들을 쓰지 않고 개별 expert 용량이 차서 많은 토큰들을 드랍시키는 걸 의미합니다. 이는 sparse 모델이 잘 학습하지 못했다는 것을 뜻합니다. LIMoE에서 소개된 새로운 auxiliary loss와 BPR을 이용하면 이미지와 텍스트 모두에서 높은 라우팅 성공률을 보임을 알 수 있고 이는 훨씬 좋은 성능을 이끌어낼 수 있다고 합니다.
Contrastive 학습을 LIMoE에서 이용하기
멀티 모달 contrastive learning에서 모델들은 이미지-텍스트 페어 데이터에서 학습을 하게 됩니다. 통상적으로 이미지 모델은 이미지의 representation만 추출하게 되고, 또 다른 텍스트 모델이 텍스트의 representation을 도출하게 됩니다. Contrastive 학습은 같은 이미지-텍스트 페어에 대해서 가깝게 만들고 다른 페어들에 대해서는 최대한 멀게 만듭니다. 이를 통해 추가적인 학습 데이터 없이도 새로운 태스크들에 적용할 수 있습니다.
이러한 분류 방법을 zero-shot 분류 태스크라 하는데, 기존의 CLIP과 ALIGN이라는 two-tower 모델이 좋은 성능을 보였습니다. 여기서는 하나의 모델에서 이미지와 텍스트 representation을 모두 하기를 원하였는데, 기존의 dense모 모델들에게는 negative interference나 충분치 못한 용량 등의 이유로 성능이 떨어지는 모습을 보였습니다.
계산을 맞춰주는 LIMoE는 one-tower dense 모델뿐만 아니라 two-tower 모델들에 비해 성능이 좋아짐을 보였습니다. 여기서는 CLIP에 필적하는 훈련 기법으로 일련의 모델을 훈련했습니다. 그 결과 같은 코스트에 비해 LIMoE가 훨씬 더 좋은 성능이 나옴을 보였습니다.
아키텍쳐가 의미하는 바는 기반으로 깔려있는 Transformer의 사이즈를 의미합니다. 이는 왼쪽에서 오른쪽으로 갈수록 커집니다. S/B/L은 모델의 스케일을 뜻하는 것이고 숫자는 패치의 사이즈를 의미하는데, 작은 패치들은 더 큰 아키텍처를 의미합니다.
LiT와 BASIC은 dense two-tower 모델들의 정확도를 꽤 올려주었습니다. 스케일을 하기 위해서, 이 접근법들은 전문화된 pre-training된 방법들을 써서 이미 높은 품질의 이미지 모델을 용도 변경하였습니다. LIMoE-H/14은 이러한 pre-training이나 모달리티별 컴포넌트들 혜택을 받지 못하지만, 여전히 scratch에서부터 학습하여도 경쟁력 있는 정확도를 가짐을 확인할 수 있었습니다.
이 모델들의 스케일을 비교해보는 것도 재미있는 부분인데, 각 토큰에 쓰이는 파라미터가 적다는 것을 확인할 수 있습니다.
결론적으로, Zero-shot 이미지 분류에서는 LIMoE는 다양한 dense 멀티모달 모델들과 two-tower 방법들보다 더 나음을 보였습니다.
LIMoE가 어떻게 작동하는 지 알아보기
Sparse 기반의 조건적인 계산은 일반화된 멀티모달 모델이 여전히 각 모달을 이해하는 데 필요한 전문화를 여전히 개발할 수 있게 한다는 점이 있습니다. 여기서는 LIMoE의 expert 레이어들에 대해 분석하고 발견한 흥미로운 현상들에 대해서 설명하였습니다.
먼저, 모달리티별 expert들의 발생 현상에 대해 보았습니다. 여기에서의 훈련 설정에서는 텍스트 토큰보다 더 많은 이미지 토큰이 있어서, 모든 expert는 적어도 일부 이미지를 처리하는 경향이 있습니다. 일부 expert는 이미지 대부분을 처리하거나, 텍스트 대부분을 처리하거나 둘 다 처리하기도 합니다.
그림을 보면 1-2개의 expert은 주로 텍스트에 특화되어 있고, 2-4개의 expert는 주로 이미지에 특화되어 있고, 나머지는 그 중간 어딘가에 있습니다.
그리고 이미지 expert 사이에도 확실한 질적 패턴이 있다는 것을 확인하였습니다. 어떤 expert에서는 fauna와 greenery를 처리하고 다른데서는 사람 손을 처리하는 형식이였습니다.
결론적으로, LIMoE는 모델의 스케일을 클 수 있게 해주었고, 매우 다른 인풋들에 대해서도 학습할 수 있게 하였습니다. 이는 만물박사의 일반론자와 마스터된 전문가 사이의 긴장을 해결한다고 할 수 있습니다.
본 내용은 "LIMoE: Learning Multiple Modalities with One Sparse Mixture-of-Experts Model"을 참고하여 작성하였습니다.
(https://ai.googleblog.com/2022/06/limoe-learning-multiple-modalities-with.html)
논문 - https://arxiv.org/pdf/2206.02770.pdf
개인적인 의견
일반화와 전문화를 같이 가져갈 수 있는 아이디어라는 점에서 흥미로웠다. 요즘에 mixture of expert와 contrastive learning 모두 많이 쓰이고 있는 기법인데, 이 걸 컴팩트한 문제 정의를 해서 잘 써먹었다고 생각이 든다. 어쨌든 실험들이 사진 위주로 더 잘 되어 있었서, 두 개를 개별로 봤을 때 각각 성능이 어떤 지 궁금했다. 또한, 가용할 수 있는 데이터의 수에 따른 성능의 변화도 궁금한 점이다. 데이터가 적을수록 sparse 모델이 더 성능 degradation이 일어나지 않을까한다. Sparse 모델의 좋은 점도 많지만, 이슈들이 없었는 지 좀 더 고찰이 필요한 듯했다. 끝으로, expert별로 어떤 semantic한 특징들을 뽑아낼 수 있어서 나중에 explainable ai에 쓸 수 있지 않을까하였고 앞으로 여러 관련 연구들을 진행하는 데 필요한 베이스 인사이트들 줘서 재미있는 논의 사항들이 나올 수 있을 것 같다.