밀집 모델을 Mixture-of-Experts로 변환한다
원문 제목 — Converting dense models into Mixture-of-Experts
📄 전문 번역
지난 몇 주 동안 필자는 기존 밀집(dense) 모델을 처음부터의 사전학습 없이 희소 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에서 찾을 수 있다. 두 모델 모두 top-8 방식의 32개 전문가와 공유 전문가(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 perplexity는 밀집 Qwen2.5-0.5B가 14.66, C4는 21.29인 반면 MoE 변환 모델은 각각 19.20과 28.97을 기록했다. 벤치마크에서는 HellaSwag(norm) 0.497 대 0.440, ARC-Easy(acc) 0.646 대 0.555, ARC-Challenge(norm) 0.321 대 0.265, WinoGrande 0.569 대 0.519, OpenBookQA(norm) 0.354 대 0.308이었고 평균 acc_norm은 밀집 0.467 대 변환 MoE 0.408이었다.
bayliner1980/SmolLM2-360M-MoE-A0.2B의 토큰당 MLP 연산량은 원본의 약 44% 수준이다. WikiText-2 perplexity는 밀집 모델이 12.94, C4는 18.09인 반면 변환 MoE는 각각 19.11과 26.50이었다. 벤치마크에서는 HellaSwag(norm) 0.525 대 0.446, ARC-Easy(acc) 0.702 대 0.579, ARC-Challenge(norm) 0.386 대 0.290, WinoGrande 0.590 대 0.506, OpenBookQA(norm) 0.374 대 0.316이었고 평균 acc_norm은 밀집 0.514 대 변환 MoE 0.417이었다.
한계. 품질 격차는 대부분의 경우 항상 존재할 것이다. 모델이 원본 MLP 연산량의 최대 50%만 사용하므로 원본과 경쟁할 수 없으며, 이 규모에서는 모델이 이미 너무 작아 성능 향상 효과도 거의 없다. 이 모델들은 내 하드웨어에서 실제로 작업할 수 있을 만큼 작아서 선택되었다. 다음 단계는 더 큰 모델의 변환, 더 긴 학습, 더 세밀한 전문가 구성 테스트다. 더 큰 모델은 내 그래픽카드가 감당할 수 있는 것보다 많은 컴퓨팅이 필요하므로 이 작업이 흥미롭다면 모델 페이지에 Ko-fi가 있으며 새로운 결과물은 모두 공개적으로 릴리스될 것이다. 이는 필자가 흥미롭다고 느낀 실험이지만 여전히 피드백을 환영하며, 다음으로 어떤 모델의 변환을 보고 싶은지 의견을 묻고 있다. 수정: Qwen2.5-1.5B의 전체 변환을 시도했지만 PC의 RAM이 부족해져 크래시가 발생했으며, 다시 시도할 예정이지만 시간이 걸릴 것이므로 내일쯤 결과를 기대해 달라고 밝혔다.
💬 주요 댓글 번역 (5)
🔍 루키 분석
레딧 사용자 Bayliner1980가 RTX 4060 8GB 환경에서 Qwen2.5-0.5B와 SmolLM2-360M을 사전학습 없이 32개 전문가 top-8 구조의 MoE로 변환한 실험기를 공유한 글이다. 변환 모델은 토큰당 MLP 연산량을 원본의 약 40~44% 수준으로 줄였으나 WikiText-2와 C4 perplexity 및 모든 벤치마크 항목에서 원본 대비 성능 하락을 보였다. 작성자는 MoEfication(Zhang et al., 2022)에서 영감을 얻었다고 밝혔으며, Qwen2.5-1.5B 변환 시도가 RAM 부족으로 실패했음을 추가로 알렸다.
— 루키 · glm-5.3-flash:cloud
당신의 MoEdification 결과가 최근 이곳에 공유된 ToMoE 논문과 일관된 것 같다. 그 접근법을 따른 것인가, 아니면 직접 방법을 고안했는가?
MoEfication(Zhang et al., 2022)이 주된 영감이었지만, 시행착오를 거치며 과정을 많이 변형했다.
누군가 이걸 Qwen 3.8 27B에 적용해 준다면 정말 큰 축복일 것이다! Qwen 4도 부탁한다. 35B A3B는 기대하기 어려운 상황이니 이 시도가 그 공백을 채워줄 수 있다 🙏🏻
어젯밤 꿈에서 Qwen 4가 풀 프리시전의 5TB n-gram 테이블을 갖춘 40B A6B 모델로 등장했다. 이런 게 꿈에 들어오는 걸 보면 정신 질환이 가까워지는 게 아닌가 걱정된다.
진짜 완벽한 지점이다. 40B에 A6B.