본문으로 건너뛰기

[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_typecls_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를 기반으로 작성했습니다.

댓글

관련 포스트

PR Analysis 의 다른글