---
title: "파라미터는 많은데 계산은 적게: Switch Transformer의 분업 방식"
author: "Dne Cna"
published_at: "2026-10-02T10:00:02.449Z"
updated_at: "2026-09-30T08:07:39.708Z"
tags: ["ai","머신러닝","논문리딩","switch"]
canonical_url: "https://ariser.io/@writer_8706b598dfee/%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0%EB%8A%94-%EB%A7%8E%EC%9D%80%EB%8D%B0-%EA%B3%84%EC%82%B0%EC%9D%80-%EC%A0%81%EA%B2%8C-switch-transformer%EC%9D%98-%EB%B6%84%EC%97%85-%EB%B0%A9%EC%8B%9D"
ai_assisted: false
---

# 파라미터는 많은데 계산은 적게: Switch Transformer의 분업 방식

[원문](https://ariser.io/@writer_8706b598dfee/%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0%EB%8A%94-%EB%A7%8E%EC%9D%80%EB%8D%B0-%EA%B3%84%EC%82%B0%EC%9D%80-%EC%A0%81%EA%B2%8C-switch-transformer%EC%9D%98-%EB%B6%84%EC%97%85-%EB%B0%A9%EC%8B%9D)

모델에 파라미터가 많다는 말은 두 가지 기대를 섞어 놓는다. 더 많은 것을 배울 공간이 있다는 기대, 그리고 매번 답을 만들 때 더 많은 계산을 쓴다는 기대다. 보통의 dense 모델에서는 둘이 함께 커진다. Switch Transformer는 이 연결을 느슨하게 만든다. 배울 수 있는 가중치는 크게 늘리되, 토큰 하나가 실제 사용하는 부분은 제한한다.

그래서 이 논문은 “엄청나게 큰 모델”이라는 제목보다 “모든 입력이 같은 파라미터를 써야 하나”라는 질문으로 읽는 편이 재미있다. Mixture of Experts, 줄여서 MoE는 토큰별로 일부 expert를 선택해 계산하는 구조다. Switch는 선택을 expert 하나로 단순화하고, 이 구조를 안정적으로 학습시키는 방법을 다룬다. [Switch Transformers 원문](https://arxiv.org/abs/2101.03961)

## 계산할 때만 열리는 여러 개의 서랍

Transformer의 feed-forward layer는 각 토큰에 같은 함수를 적용한다. Switch layer에서는 이 자리에 여러 feed-forward expert를 두고 router가 토큰 표현을 보고 하나를 선택한다. 어텐션 전체를 expert로 바꾸는 방식이 아니라, 주로 feed-forward 부분을 대체한다는 점부터 잡아 두면 구조가 덜 복잡해 보인다.

router는 expert별 점수를 softmax 확률로 바꾸고 가장 높은 확률의 expert를 고른다. 선택된 expert의 출력에는 그 routing 확률을 곱한다. 선택 연산 자체는 이산적이지만, 출력에 남아 있는 확률 경로를 통해 router를 학습할 수 있다. expert 둘 이상을 조합하던 설계에 비해 토큰의 이동과 연산을 단순하게 만든 셈이다. [라우팅과 학습 방식](https://jmlr.org/papers/volume23/21-0998/21-0998.pdf)

여기서 expert라는 이름을 너무 사람처럼 읽지 않는 것이 좋다. 한 expert가 수학을 전담하고 다른 expert가 문학을 전담한다는 조직도가 미리 들어 있지 않다. 라우터와 expert가 함께 학습하며 어떤 분업이 나타날 수는 있지만, 언어별 또는 주제별로 깔끔하게 나뉠 의무는 없다. 분업의 단위가 토큰 표현이라는 사실도 중요하다. 같은 단어라도 문맥에 따라 다른 곳으로 갈 수 있다.

나는 이 구조를 “큰 지식 저장 공간을 가지고 있으면서 계산 때는 필요한 서랍만 여는 것”으로 이해한다. 다만 서랍이라는 비유에도 한계가 있다. 지식이 파라미터 어디에 들어 있는지는 직접 표시되지 않고, 한 번의 선택으로 여러 층에 걸친 계산이 끝나는 것도 아니다. 각 층의 라우팅이 쌓이며 전체 응답이 만들어진다.

## 한 명에게 일이 몰리면 분업이 무너진다

설명을 위한 작은 배치를 생각해 보자. 토큰 80개와 expert 4개가 있고, 각 expert가 25개까지 받을 수 있다고 하자. 라우터가 50개를 첫 번째 expert로 보내면 다른 세 expert에는 여유가 있어도 첫 번째 expert의 용량을 넘는다. 전체 처리 용량이 충분하다는 사실과, 실제 배정이 처리 가능하다는 사실은 다르다.

논문은 expert마다 capacity를 정한다. 대략 전체 토큰 수를 expert 수로 나눈 뒤 capacity factor를 곱하는 방식이다. 초과 토큰은 해당 expert 연산을 건너뛰고 residual 경로를 통해 전달될 수 있다. 따라서 “모든 토큰이 항상 expert 하나의 출력을 받는다”는 설명은 실제 배치 처리의 예외를 빠뜨린다. [용량과 load balancing](https://jmlr.org/papers/volume23/21-0998/21-0998.pdf)

capacity를 크게 잡으면 넘치는 토큰을 줄일 여지가 생긴다. 대신 비어 있는 자리를 위해 메모리와 계산을 예약하게 된다. 작게 잡으면 자원을 아끼지만, 라우팅 불균형에 민감해진다. 이 선택은 분류 정확도만의 문제가 아니라 하드웨어 사용률과 연결된다.

load balancing 보조 손실도 이 문제를 다룬다. expert에 실제 배정된 비율과 router가 부여한 확률 분포를 함께 사용해 지나친 편중을 억제한다. 자연스럽게 궁금한 반론이 생긴다. 특정 expert가 정말 잘하는데 왜 강제로 분산시킬까. 답은 모델 품질을 단일 토큰의 최선 선택만으로 최적화할 수 없다는 데 있다. 배치가 전체 장치에서 실행되는 시스템에서는 쏠림이 속도와 학습 기회까지 바꾼다.

이 해석은 실무의 평가 방식에도 영향을 준다. 평균 손실이 좋아졌는데 몇 개 expert만 계속 사용된다면, 전체 파라미터 수가 커진 만큼의 이익을 얻지 못할 수 있다. expert별 토큰 수와 overflow 비율을 보지 않고 결과 점수만 보면 이런 문제를 놓치기 쉽다.

## 라우터의 작은 오차가 큰 경로 변경이 되는 이유

MoE에서는 작은 수치 변화가 계산 경로 자체를 바꿀 수 있다. 두 expert의 점수가 거의 같은 토큰을 떠올려 보자. 점수의 미세한 차이로 선택이 바뀌면, 이후에는 서로 다른 가중치 집합이 사용된다. 동일한 네트워크에서 출력이 조금 움직이는 상황과 성격이 다르다.

Switch 논문은 모델 대부분을 bfloat16으로 학습하면서도 router 내부 계산을 float32로 수행하는 선택적 정밀도 전략을 제시한다. 초기화와 정규화 방법도 안정성에 관여한다. 이 부분은 거대한 모델을 만들었다는 결과보다 오래 남는다. 모든 연산에 똑같은 정밀도를 쓰는 대신, 민감한 결정을 내리는 좁은 구간에 더 높은 정밀도를 배정하는 발상이다. [학습 안정성을 다룬 실험](https://jmlr.org/papers/volume23/21-0998/21-0998.pdf)

이는 Switch만의 현상으로 읽을 필요가 없다. 이후 처리를 결정하는 gate나 router가 있는 시스템에서는 그 결정 지점의 오차를 따로 생각해 볼 가치가 있다. 물론 이런 일반화는 내가 얻은 설계 관점이다. 다른 모델에서도 같은 정밀도 배치가 최선이라는 것을 이 논문이 입증한 것은 아니다.

또 expert는 전체 데이터의 일부만 보게 된다. 파라미터가 많아졌으니 모든 expert가 충분히 학습되었다고 가정하면 안 된다. fine-tuning 데이터가 작을 때 과적합의 모습이 dense 모델과 달라질 수 있다. 데이터 양, routing 분포, regularization을 같이 봐야 하는 이유다.

## 파라미터 수를 속도계처럼 읽지 않기

저자들은 T5 계열을 기반으로 sparse 모델의 pretraining 효율과 여러 downstream 과제를 비교하고, 큰 규모의 모델도 학습한다. 원문에서 효율을 평가할 때 학습 step, 처리 시간, 계산 자원 조건을 함께 다룬다는 점이 중요하다. 같은 step에서 손실이 낮아지는 것과, 같은 시간 안에 더 좋은 모델을 얻는 것은 다른 비교다. [JMLR 논문 정보와 본문](https://jmlr.org/papers/v23/21-0998.html)

MoE는 활성 계산량을 줄여도 모든 가중치를 저장해야 한다. expert가 여러 장치에 나뉘면 토큰을 보내고 결과를 받는 통신 비용도 생긴다. 그러므로 활성 파라미터 수만으로 GPU 메모리 요구량이나 실제 응답 지연을 판단할 수 없다. 모델의 저장 규모와 토큰당 계산 규모가 분리되는 것이 장점인 동시에, 운영을 더 복잡하게 만드는 원인이다.

작은 팀이 이 논문에서 얻을 실용적인 교훈은 무조건 MoE를 학습하라는 것이 아니다. 비교 표에서 총 파라미터 수, 활성 파라미터 수, 통신 비용을 구분해서 읽으라는 쪽에 가깝다. 우리가 관심 있는 요청 길이와 배치 크기에서 실제 처리량을 재고, 사용 가능한 장치에 expert를 어떻게 배치할 수 있는지도 확인해야 한다.

Switch Transformer는 분업을 복잡하게 만드는 요소를 줄이면서도, 분업이 잘 굴러가려면 어떤 조정 장치가 필요한지 드러낸다. 경로는 간단해졌지만 용량, 균형, 정밀도는 사라지지 않는다. 더 큰 모델을 쓸 수 있는 이유와 더 큰 모델을 운영하기 어려운 이유가 같은 구조 안에 들어 있다는 점이 매력적이다.

논문: William Fedus, Barret Zoph, Noam Shazeer, *Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity*, 2021 공개, JMLR 2022. [원문](https://arxiv.org/abs/2101.03961) · [출판본](https://jmlr.org/papers/v23/21-0998.html)

