오픈소스 LLM 모델을 추가 학습 없이 병합해 새로운 능력의 모델을 만들 수 있는 Mergekit 도구의 개념과 사용법을 다룬다. 8GB VRAM GPU에서도 동작하는 메모리 효율 설계와 SLERP, 작업 산술 등 다양한 병합 방법론을 YAML 설정으로 제어하는 방법을 설명한다.
핵심 포인트- Mergekit은 LLaMA, Mistral, GPT-NeoX, StableLM 등 주요 오픈소스 LLM을 지원하는 모델 병합 도구다.
- 텐서 지연 로딩으로 메모리 사용을 최소화해 8GB VRAM 수준 일반 GPU에서도 실행 가능하다.
- SLERP(구면 선형 보간)가 가장 효과적인 병합 방법으로 알려져 있고, 두 모델 가중치를 부드럽게 보간한다.
- 작업 산술(Task Arithmetic) 방식은 3개 이상 모델 병합에 적합하며 모델별 특성을 산술 연산으로 결합한다.
- YAML 파일로 병합 모델, 방법, 레이어별 가중치를 정의하고 GPU 가속 사용 시 20~30분에 완료된다.
상세 정리- 모델 병합 개념: 서로 다른 능력을 가진 LLM 체크포인트를 결합해 추가 학습 없이 복합 능력을 갖춘 새 모델을 만드는 기법이다.
- 지원 모델: LLaMA, Mistral, GPT-NeoX, StableLM 등 Hugging Face Hub에 올라온 주요 아키텍처를 지원한다.
- 메모리 효율 설계: 텐서 지연 로딩(lazy loading)으로 병합 시 필요한 텐서만 메모리에 올려 일반 소비자용 GPU에서도 동작한다.
- SLERP 병합: 구면 선형 보간(Spherical Linear Interpolation)으로 두 모델 가중치 사이를 직선이 아닌 부드러운 곡선으로 보간해 단순 선형 보간보다 모델 품질이 높다.
- Task Arithmetic 병합: 각 모델이 특정 태스크에서 학습한 가중치 변화량을 산술 연산으로 합산한다. 3개 이상 모델 병합에 적합하다.
- 레이어별 가중치 제어: 병합 시 각 레이어에 서로 다른 가중치 비율을 적용해 정교한 특성 조합이 가능하다.
- YAML 설정: 병합할 모델 목록, 병합 방법, 레이어별 가중치 비율 등을 YAML 파일로 선언하고 CLI 또는 Jupyter 노트북에서 실행한다.
- Hugging Face 연동: Hub에서 공개 모델을 직접 다운로드하고 병합 결과를 다시 업로드해 공유할 수 있다.
왜 읽나추가 GPU 학습 비용 없이 오픈소스 LLM을 병합해 새 모델을 실험하려는 ML 엔지니어에게 Mergekit 병합 방법론과 YAML 설정 방법 입문 가이드.