NL-342, Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity, JMLR 2022
◼ Comment MoE 초기 논문 이후로, 그 다음 MoE 국밥 논문인듯 내가 느끼기엔 근데 방법론 자체는 비슷한데, Transformer 구조에 적용하고 다양한 실험을 해본 것 전체 구조는 그림 2와 같고, Transformer에서 FFN layer을 보통 모든 입력에 대해 동일한 layer을 사용하는데 여기서는, 입력 토큰별로 다른 FFN layer을 쓴다는 것이다. 그럼 어떤 FFN layer을 사용하는지를, Router을 둬서 사용하는것이고, 이 방법은 MoE 방법과 동일하다 단, 몇개의 FFN layer을 사용할지 top-k 을 선택해야하는데 기존에는 2개 이상을 쓰는걸로 주로 실험되었지만, 여기서 해보니 top-1을(expert 1개만 사용) 써도 성능 잘나오더라 학습 효율 top-1 expert을 사용하게끔 학습할때, 입력이 하나의 expert로 쏠리는 학습 불안정 현상이 있다는거 같음 그래서 이를 어느정도 균등하게 하기 위한 노력이 있는데, 1) 식 3처럼, expert당 처리할 수 있는 입력 토큰 개수를 정해두고, 이 제한 입력이 꽉차면, 이 expert로 들어오면 FFN layer의 출력을 0 처리해서 residual 로 바꿔버림. 이를 dropped token이라 부름 2) 식 4,5,6처럼 penalty loss 개념을 도입한다. 이 Loss는 균등하게 Expert로 분배되면 낮아지는 수식이다 즉 배치에 구성된 토큰들이 만약 한쪽 expert로 쏠리면, f, P 값이 커지면서 loss가 증가한다 여기서 f는 실제 top-1 배분 비율, P는 router가 준 확률의 평균 실험 결과는 그냥 스크리닝만 했는데, 기존 dense 스타일인 T5랑 MoE 모델보다 같은 토큰 학습 steps 기준 좋다라고 주장하는거 같음 전반적으로 sparse expert는 학습 불안정성이 있지만, 이거를 bfloat16으로 해결하려고 했던거 같고 모델 스케일링 실험 expert을 늘리면 손쉽게 capacity 늘리고 성능도 좋아지지만, 한계가...