400===Dev Library/Fine-Tuning

LlamaFactory - LLM 파인튜닝 완벽 가이드 🚀

블로글러 2025. 3. 23. 08:41

LLM 파인튜닝이 어려워서 포기하고 싶었던 적이 있나요? 복잡한 코드와 환경 설정 때문에 머리가 아팠다면, 이제 걱정하지 마세요! LlamaFactory가 여러분의 구원자가 되어드립니다 😎

등장 배경

과거에는 LLM 파인튜닝이 정말 복잡했어요. Hugging Face Transformers 라이브러리가 나와서 많이 편해졌지만, 여전히 많은 문제가 있었습니다:

기존의 문제점들:

  1. 환경 설정의 지옥: GPU 환경 구성, 라이브러리 호환성 체크, CUDA 버전 맞추기 등 설치만으로도 몇 시간이 걸렸어요
  2. 복잡한 코드 작성: 각 파인튜닝 단계마다 다른 스크립트를 작성해야 했고, 데이터 전처리부터 학습까지 모든 걸 직접 코딩해야 했습니다
  3. 메모리 관리의 어려움: 대용량 모델을 작은 GPU에서 돌리는 것은 거의 불가능했어요

LlamaFactory는 이 모든 문제를 한 번에 해결해주는 통합 LLM 파인튜닝 플랫폼입니다!

핵심 원리

LlamaFactory는 No-Code/Low-Code 접근 방식으로 설계되었습니다:

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   웹 UI 또는    │───▶│  자동 환경 설정  │───▶│   원클릭 학습   │
│   CLI 인터페이스 │    │   및 최적화     │    │   및 평가      │
└─────────────────┘    └─────────────────┘    └─────────────────┘

주요 특징들:

기능 설명 장점
100+ 모델 지원 LLaMA, Mistral, Qwen, ChatGLM 등 다양한 모델을 하나의 인터페이스로
다양한 파인튜닝 방법 SFT, PPO, DPO, LoRA, QLoRA 등 목적에 맞는 최적의 방법 선택
메모리 최적화 4bit/8bit 양자화, FlashAttention 작은 GPU에서도 대형 모델 학습
웹 UI 제공 Gradio 기반 직관적 인터페이스 코딩 없이 클릭만으로 학습

설치 방법

1. 기본 환경 준비

# Python 3.8+ (권장: 3.11+)
# CUDA 11.6+ (GPU 사용 시)
# 최소 4GB 메모리 (8GB 권장)

2. LlamaFactory 설치

# 저장소 클론
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

# 가상환경 생성 (권장)
conda create -n llama_factory python=3.10
conda activate llama_factory

# 의존성 설치
pip install -e ".[torch,metrics]"
# 또는
pip install -r requirements.txt

3. 설치 확인

llamafactory-cli --help

이 명령어가 성공하면 설치 완료! 🎉

사용 방법

웹 UI로 시작하기

가장 쉬운 방법은 웹 UI를 사용하는 것입니다:

llamafactory-cli webui

브라우저에서 http://localhost:7860으로 접속하면 깔끔한 웹 인터페이스가 나타납니다!

웹 UI 주요 탭들:

  • 🏋️‍♂️ Train: 모델 학습 설정 및 실행
  • 📊 Eval: 학습된 모델 평가
  • 💬 Chat: 모델과 대화 테스트
  • 📤 Export: 학습된 모델 내보내기

CLI로 학습하기

터미널을 선호한다면 CLI도 가능해요:

# 학습 실행
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

# 모델과 채팅
llamafactory-cli chat examples/inference/llama3_lora_sft.yaml

Docker로 간편하게

환경 설정이 복잡하다면 Docker를 추천해요:

# Docker 컨테이너 실행
docker run --gpus all -v /your/data:/app/data \
  -p 7860:7860 llamafactory:latest \
  llamafactory-cli webui

실제 사용 예시

1. 모델 선택

웹 UI에서 Model Name을 선택합니다:

  • meta-llama/Llama-2-7b-hf (라마 2)
  • microsoft/DialoGPT-medium (대화형 모델)
  • Qwen/Qwen-7B-Chat (중국어 지원)

2. 데이터셋 준비

data/dataset_info.json에 커스텀 데이터셋을 등록:

{
  "my_dataset": {
    "file_name": "my_data.json",
    "formatting": "alpaca",
    "columns": {
      "prompt": "instruction",
      "query": "input", 
      "response": "output"
    }
  }
}

3. 학습 설정

  • Finetuning method: LoRA (메모리 효율적)
  • Learning rate: 5e-5 (일반적 값)
  • Batch size: 4 (GPU 메모리에 따라 조정)

4. 학습 시작

Start 버튼 클릭하면 자동으로 학습이 진행됩니다! 📈

주의사항 및 팁 💡

⚠️ 이것만은 주의하세요!

  1. CUDA 버전 호환성

    • CUDA 11.6 이상 필요
    • PyTorch와 CUDA 버전이 맞지 않으면 설치 실패
    • 해결: pip install torch --index-url https://download.pytorch.org/whl/cu118
  2. 메모리 부족 문제

    • 8B 모델도 최소 16GB VRAM 필요
    • 해결: 4bit 양자화 사용, 배치 크기 줄이기
  3. 패키지 버전 충돌

    • 다른 프로젝트와 패키지 버전 충돌 가능
    • 해결: 독립된 가상환경 사용 필수

💡 꿀팁

  • 배치 크기 조정: GPU 메모리에 맞춰 배치 크기를 조정하세요 (4GB → batch_size=1)
  • 체크포인트 활용: 학습이 중단되어도 output_dir에서 이어서 학습 가능
  • LoRA 사용: 전체 파인튜닝보다 10배 빠르고 메모리도 절약
  • 데이터 검증: 학습 전 데이터 포맷을 반드시 확인하세요

마치며

지금까지 LlamaFactory에 대해 알아보았습니다. 복잡했던 LLM 파인튜닝이 이제는 몇 번의 클릭만으로 가능해졌어요! 웹 UI를 통해 직관적으로 모델을 학습시키고, 다양한 최적화 기법을 쉽게 적용할 수 있습니다.

특히 No-Code 접근 방식 덕분에 AI 전문가가 아니어도 자신만의 LLM을 만들 수 있다는 점이 정말 혁신적이에요. 여러분도 LlamaFactory로 첫 번째 파인튜닝에 도전해보세요! 🌟

참고 자료 🔖


#LlamaFactory #LLM파인튜닝 #머신러닝 #AI #인공지능 #파이토치

728x90
반응형