LLaMA Factory: 대규모 언어 모델 미세 조정 도구
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 대규모 언어 모델(LLM) 및 비전-언어 모델(VLM) 개발자
- fine-tuning 기술을 활용한 모델 최적화에 관심 있는 데이터 과학자
- 초보자 및 고급 사용자 모두에게 적합한 사용자 친화적 인터페이스 필요자
- 난이도: 중간 (CLI 및 웹 UI 제공으로 접근성 향상)
핵심 요약
- LLaMA-Factory는 대규모 언어 모델 및 VLM의 fine-tuning을 위한 오픈소스 플랫폼으로, 100개 이상의 모델 및 데이터셋을 지원합니다.
- 다양한 fine-tuning 기법 (SFT, PPO, DPO, QLoRA 등) 및 최적화 기술 (FlashAttention-2, GaLore 등)을 내장하여 GPU 리소스 효율성 극대화.
- 웹 UI 기반의 LLaMA Board를 통해 사용자 친화적 인터페이스 제공, 초보자도 쉽게 fine-tuning 실행 가능.
섹션별 세부 요약
1. LLaMA-Factory 개요
- 목적: LLM/VLM의 fine-tuning을 간소화하고, 다양한 모델과 데이터셋을 지원하는 툴.
- 특징:
- 플랫폼 비독립성: Hugging Face, ModelScope 등 주요 플랫폼의 모델 및 데이터셋 지원.
- 지원 모델: LLaMA, Mistrals, ChatGLM, Qwens, Gemmas, DeepSeeks 등.
- 사용자 친화성: CLI 및 웹 UI 제공으로 초보자 및 고급 사용자 모두 활용 가능.
2. fine-tuning 기법 및 최적화
- 기본 기법:
- Supervised Fine-Tuning (SFT): 표준 fine-tuning 방법.
- Continuous Pre-training: 모델을 재학습하는 고급 기법.
- 고급 기법:
- PPO, DPO, KTO, ORPO: 인간 선호도 또는 맞춤형 목표에 맞춘 모델 최적화.
- QLoRA (Low-Rank Adaptation): 4-bit QLoRA로 VRAM 제한이 있는 하드웨어에서도 대규모 모델 학습 가능.
- 최적화 기술:
- FlashAttention-2, Unsloth: 학습 속도 향상.
- GaLore (Gradient Low-Rank Projection): 효율적인 학습을 위한 알고리즘.
- AQLM, AWQ, GPTQ: 추가적인 양자화 기술 지원.
3. 사용 방법 및 설치
- 설치 단계:
- GitHub에서 레포 클론 및 pip install -e ".[torch,metrics]" 실행.
- Docker 사용: CUDA, NPU, ROCm 지원 구성 파일 제공.
- 데이터 준비:
- JSON 형식의 데이터셋 사용 (예: 고객 지원 대화, 제품 설명).
- data/dataset_info.json 파일에서 커스텀 데이터셋 설정.
- CLI 사용:
- llamafactory-cli train 명령어로 YAML 설정 파일 기반 학습 실행.
- LLaMA Board (웹 UI): GUI 기반으로 모델, 데이터셋, fine-tuning 방법 설정 가능.
4. 배포 및 활용
- 배포 옵션:
- OpenAI 스타일 API 지원.
- vLLM worker, SGLang worker와 호환.
- llamafactory-cli chat 명령어로 fine-tuned 모델과의 대화 테스트.
- 모델 공유:
- export_model.py 스크립트로 모델 내보내기.
- Hugging Face Hub에 모델 공유 가능.
5. 고려 사항 및 제한
- 생산 환경 적용:
- 대규모 배포 시 추가 MLOps 도구 필요.
- 데이터 형식: JSON 파일로 제한.
- 문서 및 예제:
- README.md 및 examples 디렉토리에서 설치 및 설정 예제 제공.
- GitHub Issues에서 문제 해결 지원.
결론
- LLaMA-Factory는 fine-tuning 과정을 단순화하고, 다양한 기술을 제공하여 GPU 리소스를 효율적으로 활용할 수 있는 강력한 도구입니다.
- 웹 UI를 통해 초보자도 쉽게 사용 가능하며, Hugging Face Hub에 모델을 공유하여 커뮤니티와 공유 가능합니다.
- 생산 환경에서는 MLOps 도구와 추가 조정이 필요하지만, 실험 및 개발 단계에서는 뛰어난 성능을 제공합니다.