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 웹사이트

더 알아보기 (Learn more)