지난 몇 주 동안 저는 기존의 밀집(dense) 모델들을 처음부터 사전 학습하지 않고 희소한(sparse) Mixture-of-Experts (MoE) 모델로 변환하는 것을 시도해 왔습니다. 아이디어는 만약 밀집 모델을 토큰당 MLP의 일부만 실행되는 MoE로 바꿀 수 있다면, 비슷한 지식을 유지하면서 토큰당 비용이 더 저렴한 모델을 얻을 수 있다는 것입니다. 대형 연구소들은 거대한 컴퓨팅 예산을 이용해 이런 종류의 '업사이클링(upcycling)'을 합니다. 저는 제 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과 공유 전문가(shared expert)를 포함하여 32개의 전문가를 가지고 있습니다. 변환하기 가장 어려웠던 레이어들(최종 레이어와 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 (밀집) 14.66 21.29 Qwen2.5-0.5B-A0.3B (MoE) 19.20 28.97 - HellaSwag (정규화) ARC-Easy (정확도) ARC-Challenge (정규화) WinoGrande OpenBookQA (정규화)
평균 acc_norm
밀집 0.497 0.646 0.321 0.569 0.354 0.467
변환된 MoE 0.440 0.555 0.265 0.519 0.308 0.408
bayliner1980/SmolLM2-360M-MoE-A0.2B의 토큰당 MLP 컴퓨팅:
~원래 대비 44% - WikiText-2 ppl C4 ppl 밀집 12.94 18.09 변환된 MoE 19.11 26.50 - HellaSwag (정규화) ARC-Easy (정확도) ARC-Challenge (정규화) WinoGrande OpenBookQA (정규화)
평균 acc_norm
밀집 0.525 0.702 0.386 0.590 0.374 0.514
변환된 MoE 0.446 0.579 0.290 0.506 0.316 0.417
한계점: 아마도 항상 품질 격차는 존재할 것입니다.
모델이 원래 MLP 컴퓨팅의 최대 50%만 사용하고 있기 때문에 원본 모델과 경쟁할 수 없습니다. 이 규모에서는 이미 매우 작기 때문에 성능 향상이 거의 없습니다. 이러한 모델들은 제가 실제로 제 하드웨어에서 작업하기에 충분히 작아서 선택되었습니다. 다음 단계는 더 큰 모델을 변환하거나, 더 긴 훈련 및 테스트를 진행하고, 더 세밀한 전문가 레이아웃을 적용하는 것입니다. 더 큰 모델은 제 카드가 제공할 수 있는 컴퓨팅보다 더 많은 컴퓨팅이 필요하므로, 이것에 관심이 있다면 모델 페이지의 Ko-fi 링크를 확인해 주시고, 새로운 내용은 공개적으로 배포될 것입니다. 이것은 제가 흥미롭게 발견한 실험일 뿐이지만, 여전히 피드백을 받고 싶습니다. 다음에 어떤 모델을 변환하는 것을 보고 싶으신가요? 제출자: /u/Bayliner1980 [링크] [댓글]