Axolotl로 Qwen3 파인튜닝하기
Axolotl로 Qwen3 파인튜닝하기
이 가이드는 Axolotl을 사용해 Qwen3 / Qwen3_MOE를 사후 훈련(SFT, RLHF, RM, PRM)하는 방법을 알려드려요. 더 나은 성능을 위한 최적화 옵션도 함께 다룬답니다.
출처: 문서
본문
요구 사항
- GPU:
bf16와Flash Attention을 위한 NVIDIA Ampere(또는 그 이상) 또는 AMD GPU - Python: ≥3.11
- CUDA: ≥12.4 (NVIDIA GPU의 경우)
설치
Axolotl은 PyPI, Conda, Git, Docker로 설치하거나 클라우드 환경을 통해 실행할 수 있어요.
⚠️ 중요: CUDA 호환성을 보장하려면 Axolotl을 설치하기 전에 PyTorch를 먼저 설치하세요. 최신 설치 방법은 공식 Axolotl 설치 가이드를 참고하세요.
퀵스타트
SFT
Qwen/Qwen3-32B을 위한 SFT 샘플 YAML 설정을 제공해요: SFT 32B QLoRA 설정.
# Train the model
axolotl train path/to/32b-qlora.yaml
# Merge LoRA weights with the base model
# This will create a new `merged` directory under `{output_dir}`
axolotl merge-lora path/to/32b-qlora.yaml
💡 팁: 더 작은 모델을 훈련하려면 설정에서
base_model을 수정하면 돼요:
base_model: Qwen/Qwen3-8B
Qwen3는 Flash Attention, bf16, LoRA, torch_compile, QLoRA 등 모든 Axolotl 기능과 함께 동작해요. 단일 GPU가 아닌 여러 대에서 실행하려면 멀티 GPU 훈련 가이드나 멀티노드 훈련 가이드를 참고하세요.
RLHF
각 메서드에 필요한 데이터셋 형식과 예시는 RLHF 가이드를 참고하세요.
RM/PRM
필요한 데이터셋 형식과 설정 예시는 보상 모델링 가이드를 참고하세요.
데이터셋
기본적으로 예시 설정은 HuggingFace Hub의 mlabonne/FineTome-100k 데이터셋을 사용해요. 여러분만의 데이터셋으로 자유롭게 바꿀 수 있어요.
SFT 데이터셋 형식
Axolotl은 다양한 SFT 데이터셋 형식을 처리하지만, 현재 권장되는 형식(chat_template과 함께 쓰는)은 OpenAI Messages 형식이에요:
[
{
"messages": [
{
"role": "user",
"content": "What is Qwen3?"
},
{
"role": "assistant",
"content": "Qwen3 is a language model..."
}
]
}
]
설정에서 다음과 같이 사용하세요:
datasets:
- path: path/to/your/dataset.json
type: chat_template
데이터셋은 HuggingFace Hub, 로컬 파일, 디렉터리, S3, GCS, Azure 등 여러 소스에서 불러올 수도 있어요. 자세한 내용은 데이터셋 로딩 가이드를 참고하세요. 다른 데이터셋 형식을 불러오려면 SFT 데이터셋 형식 가이드를 참고하세요.
최적화
Qwen3/Qwen3_MOE에서는 성능 향상과 메모리 사용 감소를 위해 Axolotl의 커스텀 최적화 기능을 활용할 수 있어요:
- Cut Cross Entropy
- Liger Kernels
- (LoRA/QLoRA 전용): LoRA Kernels Optimization
추가 제안
문제 해결
- CUDA 버전이 GPU와 PyTorch 버전과 일치하는지 확인하세요.
- 메모리 부족(OOM) 문제가 발생하면 배치 크기를 줄이거나 위 최적화를 활성화하거나 시퀀스 길이를 줄여 보세요.
- Qwen3 MoE는 상위 transformer의 MoE 레이어 처리 방식 때문에 훈련이 더 느릴 수 있어요.
- 도움이 필요하면 Axolotl Discord의 help 채널이나 Axolotl GitHub의 Discussion을 이용해 보세요.
링크
- Axolotl 문서
- Axolotl Discord
- Axolotl GitHub
- Axolotl 웹사이트