[axolotl] Gemma 3 QLoRA 설정 개선: Vision Tower 동결과 model_type 제거
PR 링크: axolotl-ai-cloud/axolotl#3500 상태: Merged | 변경: +15 / -10
들어가며
Gemma 3는 Google의 멀티모달 모델로, 텍스트와 비전(vision) 컴포넌트를 함께 포함하고 있습니다. 이 PR은 Gemma 3 모델의 QLoRA 학습 예제 설정 파일들을 개선하여, 이전 PR(#3354)에서 도입된 model_type/cls_model_config workaround를 제거하고, 더 명확한 Vision Tower 동결 방식을 도입합니다.
핵심 코드 분석
1. model_type / cls_model_config 제거
이전에는 transformers가 Gemma 3의 비전 구성까지 로드하려는 문제를 우회하기 위해 model_type과 cls_model_config를 명시적으로 지정해야 했습니다.
Before:
base_model: google/gemma-3-4b-it
model_type: Gemma3ForCausalLM
cls_model_config: Gemma3TextConfig
After:
base_model: google/gemma-3-4b-it
upstream transformers에서 이 문제가 해결되면서 더 이상 필요하지 않게 되었습니다.
2. unfrozen_parameters를 통한 Vision Tower 동결
Vision Tower를 동결하기 위해 unfrozen_parameters 패턴을 도입했습니다. 이 방식은 "학습할 파라미터만 명시"하는 화이트리스트 접근법입니다.
After:
# Freeze vision tower
unfrozen_parameters:
- ^model\.language_model\..*
- ^lm_head\..*
정규식 패턴으로 language model과 lm_head만 학습 대상으로 지정하여, 비전 인코더의 가중치는 자동으로 동결됩니다.
왜 이게 좋은가
이전의 model_type workaround는 모델 로딩 파이프라인을 우회하는 방식이었기 때문에, upstream 변경에 취약했습니다. 새로운 unfrozen_parameters 방식은 학습 의도를 명확하게 표현하며, 멀티모달 모델의 일반적인 fine-tuning 패턴(언어 모델만 학습, 비전 인코더 동결)을 선언적으로 구현합니다. 또한 lora_dropout: 0으로의 변경은 최근 연구에서 QLoRA 학습 시 dropout을 0으로 설정하는 것이 더 효과적이라는 결과와 일치합니다.
정리
| 항목 | 내용 |
|---|---|
| 변경 | model_type/cls_model_config workaround 제거 |
| 추가 | unfrozen_parameters 기반 Vision Tower 동결 |
| 영향 | 3개 설정 파일 (270m, 1b, 4b) 일관성 확보 |
참고 자료
알림: 이 분석은 AI가 실제 코드 diff를 기반으로 작성했습니다.
관련 포스트
- [논문리뷰] Performance Trade-offs of Optimizing Small Language Models for E-Commerce
- [Axolotl] GRPO 트레이너에 batch flattening/packing 지원 추가
- [Axolotl] 플러그인에 scored rollout 디스패치, 외부 플러그인 경로 확장, vLLM 에러 처리 개선
- [Axolotl] LoRA 커널에 bias, dropout, DoRA, embedding 지원 추가
- [Axolotl] Qwen 3.5 모델 Liger 커널 지원 및 fused RMSNorm+Gated 커널 추가
PR Analysis 의 다른글
- 이전글 [Axolotl] ScatterMoE LoRA 최적화: 벤치마크, 커널 분할, autograd 통합
- 현재글 : [axolotl] Gemma 3 QLoRA 설정 개선: Vision Tower 동결과 model_type 제거
- 다음글 [axolotl] Tensor Parallelism batch_size 계산 버그 수정: dp_world_size 기반으로 전환
댓글