Tutorial Torchtune: Fine-Tuning LLM dengan PyTorch Native
Pendahuluan
Torchtune adalah library resmi dari PyTorch untuk melakukan fine-tuning Large Language Models (LLM). Library ini dirancang sebagai solusi native PyTorch yang ringan, modular, dan mudah dikustomisasi. Berbeda dengan framework fine-tuning lainnya yang sering kali kompleks dan memiliki banyak abstraksi tersembunyi, Torchtune memberikan kontrol penuh kepada developer sambil tetap menyediakan komponen-komponen siap pakai.
Torchtune mendukung berbagai model populer seperti Llama 3, Mistral, Gemma, Phi, dan Qwen. Library ini menyediakan berbagai teknik fine-tuning mulai dari full fine-tuning hingga parameter-efficient methods seperti LoRA dan QLoRA. Dengan integrasi langsung ke ekosistem PyTorch, Torchtune menjadi pilihan ideal bagi praktisi yang sudah familiar dengan PyTorch dan ingin melakukan fine-tuning LLM tanpa bergantung pada framework pihak ketiga yang berat.
Dalam tutorial ini, kita akan mempelajari cara menggunakan Torchtune dari instalasi hingga fine-tuning model dengan berbagai teknik, termasuk konfigurasi dataset kustom dan deployment model hasil fine-tuning.
Mengapa Torchtune?
Sebelum masuk ke implementasi, ada beberapa alasan mengapa Torchtune layak dipertimbangkan:
Instalasi
Prasyarat
Pastikan Anda memiliki Python 3.10+ dan PyTorch 2.4+ terinstal.
# Cek versi Python
python --version
Cek versi PyTorch
python -c "import torch; print(torch.version)"
Instalasi Torchtune
# Instalasi via pip (stable release)
pip install torchtune
Atau instalasi dari source untuk versi terbaru
pip install git+https://github.com/pytorch/torchtune.git
Instalasi dengan dukungan semua fitur
pip install torchtune[all]
Verifikasi Instalasi
# Cek versi torchtune
tune --version
Lihat daftar recipe yang tersedia
tune ls
Output dari tune ls akan menampilkan semua recipe fine-tuning yang tersedia:
RECIPE CONFIG
fullfinetunesingledevice llama32/1Bfullsingledevice
fullfinetunedistributed llama32/3Bfull
lorafinetunesingledevice llama32/1Blorasingledevice
lorafinetunedistributed llama32/3Blora
qlorafinetunesingledevice llama32/1Bqlorasingledevice
knowledgedistillation llama32/1Bkdsingledevice
...
Download Model
Sebelum melakukan fine-tuning, kita perlu mengunduh model dasar. Torchtune menyediakan command tune download untuk mengunduh model dari Hugging Face Hub.
# Download Llama 3.2 1B (model kecil, cocok untuk eksperimen)
tune download meta-llama/Llama-3.2-1B-Instruct \
--output-dir ./models/Llama-3.2-1B-Instruct \
--hf-token YOURHFTOKEN
Download Mistral 7B
tune download mistralai/Mistral-7B-Instruct-v0.3 \
--output-dir ./models/Mistral-7B-Instruct \
--hf-token YOURHFTOKEN
Download Qwen 2.5 0.5B (sangat ringan)
tune download Qwen/Qwen2.5-0.5B-Instruct \
--output-dir ./models/Qwen2.5-0.5B-Instruct
Anda memerlukan Hugging Face token untuk model yang memerlukan akses khusus seperti Llama. Dapatkan token di huggingface.co/settings/tokens.
Basic Usage: LoRA Fine-Tuning
LoRA (Low-Rank Adaptation) adalah teknik fine-tuning yang paling populer karena hemat memori dan cepat. Mari kita mulai dengan fine-tuning Llama 3.2 1B menggunakan LoRA.