Qwen1.5-MoE-A2.7B 릴리즈 노트
Qwen은 Qwen1.5-MoE-A2.7B를 출시했습니다. 이 작은 Mixture-of-Experts(MoE) 모델은 Mistral 7B 및 Qwen1.5-7B와 같은 최신 7B 모델의 성능에 버금가면서, 활성화된 파라미터가 27억 개에 불과합니다. 이 아키텍처는 학습 비용을 75% 절감하고, Qwen1.5-7B에 비해 추론 속도를 1.74배 향상시킵니다.
MoE 아키텍처 개선
Qwen1.5-MoE-A2.7B는 Mixtral과 같은 모델에서 사용되는 표준 top-2 게이팅 전략을 개선한 특수 MoE 아키텍처를 활용합니다. 이 아키텍처는 세 가지 주요 수정 사항을 포함합니다:
세분화된 전문가
전문가를 만들기 위해 Feed-Forward Network(FFN) 레이어를 단순히 복제하는 대신, Qwen은 단일 FFN을 여러 구간으로 분할합니다. 이 방법은 전체 파라미터 수를 늘리지 않고 더 많은 전문가를 생성합니다. 모델은 64명의 전문가를 활용하며, 이는 기존 8-전문가 MoE 설정보다 8배 증가한 것입니다.
업사이클링 초기화
스크래치에서 학습하는 비효율성을 피하기 위해, 모델은 기존 Qwen-1.8B 모델을 재활용하여 초기화되었습니다. 연구자들은 이 "업사이클링" 초기화 단계에서 무작위성을 도입하면 수렴 속도가 크게 빨라지고 사전 학습 동안 전체 성능이 향상된다는 것을 발견했습니다.
공유 및 라우팅 전문가
라우팅 메커니즘은 공유 전문가와 라우팅 전용 전문가를 결합한 일반화된 접근 방식을 사용합니다. Qwen1.5-MoE-A2.7B는 항상 활성화되는 4명의 공유 전문가와 60명의 라우팅 전문가를 사용하며, 토큰당 4명이 활성화됩니다. 이 구성은 기존 MoE 라우팅보다 더 큰 유연성과 효율성을 제공합니다.
성능 벤치마크
Qwen1.5-MoE-A2.7B는 언어 이해, 수학, 코딩 벤치마크 전반에 걸쳐 경쟁력 있는 성능을 보여주며, 밀집형 7B 모델과 유사한 성능을 발휘합니다.
| 모델 | MMLU | GSM8K | HumanEval | 다국어 | MT-Bench |
|---|---|---|---|---|---|
| Mistral-7B | 64.1 | 47.5 | 27.4 | 40.0 | 7.60 |
| Gemma-7B | 64.6 | 50.9 | 32.3 | - | - |
| Qwen1.5-7B | 61.0 | 62.5 | 36.0 | 45.2 | 7.60 |
| DeepSeekMoE 16B | 45.0 | 18.8 | 26.8 | - | 6.93 |
| Qwen1.5-MoE-A2.7B | 62.5 | 61.5 | 34.2 | 40.8 | 7.17 |
기본 모델이 7B 모델과 동등한 성능을 보이지만, 팀은 정교한 파인튜닝 전략을 통해 챗 모델 성능을 더욱 향상시킬 잠재력이 아직 남아 있다고 언급했습니다.
학습 및 추론 효율성
MoE 아키텍처는 전체 파라미터 중 일부만 활성화함으로써 밀집형 모델에 비해 계산 오버헤드를 크게 줄입니다.
파라미터 비교
Qwen1.5-MoE-A2.7B는 총 143억 개의 파라미터를 가지고 있지만, 순전파 시 활성화되는 파라미터는 27억 개에 불과합니다. 비임베딩 파라미터 수(20억)는 Qwen1.5-7B(64억)의 약 1/3 수준입니다.
비용 및 속도 향상
- 학습 비용: 모델은 Qwen1.5-7B에 비해 학습 비용을 75% 절감했으며, 이는 업사이클링으로 원본 모델과 동일한 토큰 양을 학습할 필요가 없어졌기 때문입니다.
- 추론 속도: 단일 NVIDIA A100-80G GPU에서 vLLM(입력 1000 토큰, 출력 1000 토큰)으로 테스트한 결과, Qwen1.5-MoE-A2.7B-Chat은 초당 2.01 요청 및 초당 4010.27 토큰(TPS)의 처리량을 달성했습니다. 이는 Qwen1.5-7B-Chat의 1.15 요청 및 2298.89 TPS보다 1.74배 빠른 것입니다.
배포 및 통합
Qwen1.5-MoE는 Hugging Face transformers 라이브러리와 vLLM에 통합되어 있습니다. qwen2_moe 구현이 아직 transformers의 메인 pip/conda 릴리스에 포함되지 않았기 때문에, 사용자는 소스에서 라이브러리를 설치해야 합니다:
git clone https://github.com/huggingface/transformers
cd transformers
pip install -e .
양자화된 배포를 위해 Qwen1.5-MoE-A2.7B-Chat-GPTQ-Int4 모델을 사용할 수 있지만, 현재 AWQ는 지원되지 않습니다.