밀집 모델(Dense Model)을 Mixture-of-Experts(MoE)로 변환하기
Converting dense models into Mixture-of-Experts
핵심 요약
개인 PC 환경에서 밀집 모델을 MoE 구조로 변환하여 추론 비용을 절감하려는 실험적 시도와 그 결과를 공유합니다.
- 모델 변환 실험 — RTX 4060 환경에서 Qwen2.5-0.5B와 SmolLM2-360M 모델을 MoE로 업사이클링함
- 성능 트레이드오프 — 추론 비용은 약 40~44% 수준으로 줄었으나, 벤치마크 점수 하락은 불가피함
- 기술적 한계 — 모델 규모가 너무 작아 성능 개선 효과가 미미하며, 추가 학습을 위한 컴퓨팅 자원 부족
- 향후 계획 — 더 큰 모델로의 확장과 최적의 전문가 레이아웃 설계를 위한 추가 테스트 진행 예정
지난 몇 주 동안 기존 덴스(dense) 모델을 처음부터 사전 학습할 필요 없이 희소(sparse) Mixture-of-Experts(MoE) 모델로 변환하는 작업을 해봤음.
아이디어
덴스 모델을 토큰당 MLP의 일부만 사용하는 MoE로 바꿀 수 있다면, 지식 수준은 거의 그대로 유지하면서 토큰당 비용은 훨씬 저렴한 모델을 만들 수 있음. 대형 연구소들은 엄청난 컴퓨팅 자원을 쏟아부어서 이런 "업사이클링"을 하는데, 나는 내 RTX 4060(8GB)으로 어디까지 가능한지 궁금했음.
변환 작업
지금까지 모델 두 개를 변환해봤음. Qwen/Qwen2.5-0.5B랑 HuggingFaceTB/SmolLM2-360M인데, 내 PC 사양상 이거보다 큰 건 못 돌려서 일부러 작은 걸로 골랐음. 변환된 모델은 여기서 볼 수 있음: bayliner1980/Qwen2.5-0.5B-MoE-A0.3B, bayliner1980/SmolLM2-360M-MoE-A0.2B.
두 모델 다 32개의 전문가(expert)를 썼고 top-8 방식에 공유 전문가(shared expert) 하나를 추가했음. 변환하기 제일 까다로웠던 레이어들(마지막 레이어랑 SmolLM2의 3번 레이어)은 그냥 원래 덴스 레이어로 남겨뒀음. 이러면 MLP 연산량이 아주 조금 늘어나긴 하는데, 감수할 만한 가치가 있다고 판단했음. bayliner1980/Qwen2.5-0.5B-MoE-A0.3B는 23번 레이어에 덴스 레이어가 하나 있고, bayliner1980/SmolLM2-360M-MoE-A0.2B는 3번이랑 31번 레이어에 두 개가 있음. 두 모델 다 Qwen2-MoE 포맷으로 내보냈음.
평가
bayliner1980/Qwen2.5-0.5B-MoE-A0.3B
토큰당 MLP 연산량: 원본의 약 40%
| - | WikiText-2 ppl | C4 ppl |
|---|---|---|
| Qwen2.5-0.5B (dense) | 14.66 | 21.29 |
| Qwen2.5-0.5B-A0.3B (MoE) | 19.20 | 28.97 |


