저는 MoE(Mixture of Experts) 모델인 Gemma 4 26B-A4B를 원래 크기의 15% 수준으로 가지치기(pruned)했는데, 이 모델이 여전히 하나의 특정 작업에서는 매우 좋은 성능을 보입니다. 분류(classification) 작업에서 원본 모델과 92%의 일치율을 보였습니다. 이는 같은 항목에 대해 12B 모델이 26B 모델과 동의하는 빈도인 90%와 근접한 수치입니다. 이 모델은 일반적인 작업을 위한 것이 아니며, 지식이 필요한 작업에서는 그 지식 자체가 사라지기 때문에 성능 저하가 발생합니다.
이 모델은 온디바이스(on-device) LLM을 24시간 구동하는 제 앱을 위해 만들어졌기 때문에 메모리 사용량과 에너지 소비가 매우 중요했습니다. 제 Mac에서 이 모델은 3.8 GB의 메모리를 사용하여 79 토큰/초에 도달했는데, 이는 12B 모델 속도의 약 두 배이며(메모리는 절반 수준), 효율적입니다.
저는 레이어당 8개의 전문가(experts)를 선택하여 모든 작업에 사용했습니다. 기본적으로 모델이 토큰당 8명의 전문가를 선택하고 그 수가 정확히 8명이므로, 라우터가 어떤 전문가를 사용할지 선택하는 과정 자체가 필요 없어지고 모델은 밀집형(dense) 구조가 됩니다: 매개변수 3.81B, Q4_K_M으로 2.75 GB입니다.
제가 원하는 것은 각 블록이 동일한 입력에 대해 동일한 계산을 수행하고 동일한 결과를 생성하는 것입니다. 블록별 학습(block-local training)을 할 때 저는 정답 자체를 학습시키는 것이 아닙니다. 사고 과정(thought process)을 학습시키고 있는 것입니다. 즉, 같은 답을 얻는 것이 아니라, 똑같은 방식으로 생각하도록 만드는 것입니다. 이 모든 것은 제가 가진 데이터로 훈련되었습니다.
이 방법은 매우 효율적이어서, 배포 환경의 데이터가 훈련 데이터셋과 다를 때 발생하는 문제를 완화하기 위해 사용자의 장치에서 사용자 자신의 데이터로 약 5 GB의 메모리를 사용하여 훈련할 수 있습니다. 아직 실제 사용자 기기에서는 테스트하지 못했습니다.
만약 제가 왜 파인튜닝(fine tuning)이 좋지 않다고 결정했는지, 또는 이 모델을 어떻게 설계했는지 궁금하시다면, 제가 이것을 만들게 된 과정과 왜 이 경로가 제 애플리케이션에 적합하다고 느꼈는지에 대한 자세한 내용을 담은 게시물을 참고해 주십시오. 이렇게 공개적으로 포스팅하는 것은 처음입니다. 피드백이나 생각이 있다면 정말 감사하겠습니다. 그리고 어떤 전문가를 유지할지 선택하는 더 나은 방법을 아시는 분이 계시다면 알려주시면 감사하겠습니다.
게시물: https://tolby.app/blog/frankensteining-gemmas-experts submitted by /u/Accomplished_Ad_56 [link] [comments]