Tutorial Lengkap LlamaFactory: Toolkit Fine-Tuning LLM All-in-One
Fine-tuning Large Language Model (LLM) sering kali menjadi proses yang kompleks dan membutuhkan banyak konfigurasi manual. LlamaFactory hadir sebagai solusi yang menyederhanakan seluruh proses fine-tuning dengan antarmuka yang intuitif dan dukungan untuk berbagai model serta metode training. Dalam tutorial ini, kita akan mempelajari cara menggunakan LlamaFactory dari instalasi hingga deployment model yang sudah di-fine-tune.
Apa itu LlamaFactory?
LlamaFactory (atau LLaMA-Factory) adalah toolkit open-source yang menyediakan framework terpadu untuk fine-tuning lebih dari 100 model bahasa. Toolkit ini mendukung berbagai metode training termasuk full fine-tuning, LoRA, QLoRA, dan metode Parameter-Efficient Fine-Tuning (PEFT) lainnya. Salah satu keunggulan utama LlamaFactory adalah LLaMA Board, antarmuka web berbasis Gradio yang memungkinkan fine-tuning tanpa menulis kode.
Fitur Utama
- Multi-Model Support: Mendukung LLaMA, Mistral, Qwen, Phi, Gemma, Yi, DeepSeek, dan banyak lagi
- Metode Training Beragam: Full fine-tuning, LoRA, QLoRA, DoRA, dan GaLore
- LLaMA Board: Web UI untuk fine-tuning tanpa coding
- Dataset Terintegrasi: Puluhan dataset bawaan siap pakai
- Evaluasi Otomatis: Benchmark otomatis dengan MMLU, CMMLU, dan C-Eval
- Export Model: Export ke GGUF, vLLM, atau format lainnya
Instalasi
Prasyarat Sistem
Sebelum menginstal LlamaFactory, pastikan sistem Anda memenuhi persyaratan berikut:
- Python 3.8 atau lebih baru
- CUDA 11.8 atau 12.1 (untuk GPU NVIDIA)
- Minimal 16GB RAM (disarankan 32GB)
- GPU dengan minimal 8GB VRAM untuk QLoRA, 16GB untuk LoRA, 40GB+ untuk full fine-tuning
Instalasi dari Source
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
Instalasi dengan Docker
docker pull hiyouga/llamafactory:latest
docker run --gpus all \
-v ./hfcache:/root/.cache/huggingface \
-v ./data:/app/data \
-v ./output:/app/output \
-p 7860:7860 \
-e GRADIOSHARE=1 \
hiyouga/llamafactory:latest
Verifikasi Instalasi
llamafactory-cli version
Output yang diharapkan:
----------------------------------------------------------
| Welcome to LLaMA Factory, version x.x.x |
| Project page: https://github.com/hiyouga/LLaMA-Factory |
Instalasi Dependencies Opsional
# Untuk quantisasi GPTQ
pip install auto-gptq
Untuk quantisasi AWQ
pip install autoawq
Untuk Flash Attention 2
pip install flash-attn --no-build-isolation
Untuk vLLM inference
pip install vllm
Basic Usage: Fine-Tuning dengan CLI
Menyiapkan Dataset
LlamaFactory menggunakan format dataset khusus. Buat file JSON dengan format berikut:
[
{
"instruction": "Jelaskan apa itu machine learning dalam bahasa sederhana.",
"input": "",
"output": "Machine learning adalah cabang dari kecerdasan buatan di mana komputer belajar dari data untuk membuat prediksi atau keputusan tanpa diprogram secara eksplisit. Bayangkan seperti mengajarkan anak kecil mengenali hewan - semakin banyak contoh yang dilihat, semakin baik kemampuannya mengenali hewan baru."
},
{
"instruction": "Tulis kode Python untuk menghitung faktorial.",
"input": "5",
"output": "def factorial(n):\n if n <= 1:\n return 1\n return n * factorial(n - 1)\n\nresult = factorial(5)\nprint(f'Faktorial dari 5 adalah {result}') # Output: 120"
}
]
Simpan file tersebut misalnya sebagai data/mydataset.json. Lalu daftarkan dataset di data/datasetinfo.json:
{
"mycustomdataset": {
"filename": "mydataset.json",
"columns": {
"prompt": "instruction",
"query": "input",
"response": "output"
}
}
}