Tutorial Axolotl: Fine-Tuning LLM Berbasis Konfigurasi YAML

# Fine-Tuning LLM Berbasis Konfigurasi dengan Axolotl Kebanyakan proyek fine-tuning dimulai dengan cara yang sama: seseorang menyalin sebuah skrip pelatihan, mengubah belasan nilai yang ditulis langs...

By Ruby Abdullah · · tutorial
AxolotlLLMFine-TuningQLoRAMulti-GPUPython

Fine-Tuning LLM Berbasis Konfigurasi dengan Axolotl

Kebanyakan proyek fine-tuning dimulai dengan cara yang sama: seseorang menyalin sebuah skrip pelatihan, mengubah belasan nilai yang ditulis langsung di kode, lalu berharap orang berikutnya bisa mereproduksi proses tersebut. Axolotl mengambil pendekatan berbeda. Ia memperlakukan seluruh proses fine-tuning sebagai satu berkas YAML, sehingga model, format dataset, pengaturan LoRA, dan strategi multi-GPU semuanya berada dalam satu artefak yang bisa diversioning. Tutorial ini membahas Axolotl dari awal sampai akhir: apa yang sebenarnya ia bungkus, cara memasangnya, cara membaca dan menulis konfigurasi bidang demi bidang, serta cara menjalankan fine-tune QLoRA yang realistis untuk model instruct 8B pada satu atau dua GPU.

Apa Itu Axolotl

Axolotl bukan kerangka kerja pelatihan baru. Ia adalah pembungkus (wrapper) yang berpendirian tegas, berdiri di atas ekosistem Hugging Face dan mengorkestrasi komponen-komponen yang biasanya harus Anda sambungkan sendiri:

  • Transformers untuk memuat model dan tokenizer.
  • PEFT untuk adapter LoRA dan QLoRA.
  • TRL untuk trainer supervised fine-tuning (SFT) dan optimasi preferensi.
  • bitsandbytes untuk kuantisasi 4-bit dan 8-bit.
  • Accelerate, DeepSpeed, dan FSDP untuk pelatihan terdistribusi dan multi-GPU.

Ide intinya adalah Anda mendeskripsikan apa yang Anda inginkan, bukan menulis kode perekat yang melakukannya. Satu berkas YAML mendeklarasikan base model, cara dataset Anda diuraikan, adapter mana yang dipasang, jadwal optimizer, dan backend terdistribusi. Axolotl membaca berkas itu, membangun objek yang sesuai, lalu menjalankan prosesnya. Berkas yang sama itulah yang Anda commit ke git, serahkan ke rekan kerja, atau lampirkan ke eksperimen di Weights & Biases.

Kapan Memilih Axolotl

Axolotl cocok ketika satu atau lebih kondisi berikut terpenuhi:

  • Anda punya lebih dari satu GPU. Integrasi Axolotl dengan DeepSpeed ZeRO dan FSDP tergolong matang, dan beralih dari satu GPU ke delapan GPU sebagian besar hanya soal mengubah launcher, bukan menulis ulang kode.
  • Anda bekerja dengan banyak keluarga model. Llama, Mistral, Mixtral, Qwen, Gemma, Phi, dan lainnya didukung melalui permukaan konfigurasi yang sama, sehingga Anda tidak perlu mempelajari API baru untuk tiap model.
  • Reproduksibilitas penting. Karena proses sepenuhnya dideskripsikan oleh berkas konfigurasi, "jalankan ulang persis seperti yang kita lakukan bulan lalu" menjadi sekadar git checkout ditambah satu perintah.
  • Anda menginginkan resep, bukan skrip. Axolotl menyertakan puluhan contoh konfigurasi yang bisa Anda salin dan sesuaikan.

Jika situasi Anda kebalikannya — satu GPU consumer di mana kecepatan pelatihan mentah dan VRAM minimal jadi prioritas — pustaka yang dioptimasi pada level kernel seperti Unsloth mungkin melatih lebih cepat. Kekuatan Axolotl adalah keluasan cakupan, penskalaan terdistribusi, dan reproduksibilitas, bukan memeras token-per-detik terakhir dari satu kartu. Keduanya bukan pesaing, melainkan alat untuk pekerjaan yang berbeda.

Instalasi

Axolotl bergantung pada build PyTorch yang mendukung CUDA, dan sumber masalah paling umum adalah ketidakcocokan antara PyTorch, toolkit CUDA, dan flash-attn. Pasang PyTorch lebih dulu, sesuaikan dengan driver Anda, baru pasang Axolotl.

# 1. Buat lingkungan terisolasi

python -m venv .venv

source .venv/bin/activate

2. Pasang PyTorch yang cocok dengan CUDA (contoh: CUDA 12.1)

pip install torch==2.3.1 --index-url https://download.pytorch.org/whl/cu121

3. Pasang Axolotl beserta extras flash-attention dan deepspeed

pip install "axolotl[flash-attn,deepspeed]"

Jika lingkungan Anda rapuh atau Anda hanya ingin sesuatu yang langsung berfungsi pada percobaan pertama, image Docker resmi sudah menggabungkan kombinasi CUDA, PyTorch, dan kernel teroptimasi yang teruji baik:

docker run --gpus all --rm -it \

-v "$(pwd)":/workspace \

axolotlai/axolotl:main-latest \

bash

Setelah instalasi, pastikan CLI tersedia di PATH Anda:

axolotl --help

Artikel Terkait

Tutorial Unsloth: Fine-Tuning LLM yang Cepat dan Hemat Memori

Fine-Tuning LLM Secara Efisien dengan Unsloth Dahulu, melakukan fine-tuning model bahasa besar membutuhkan server multi-...

Tutorial TRL: Post-Training LLM dengan SFT, DPO, dan Reward Modeling

Post-Training LLM dengan TRL: SFT, Reward Modeling, dan DPO Setelah sebuah base language model selesai dipretraining, mo...

Tutorial PydanticAI: Framework Agent LLM yang Type-Safe

Membangun Agen LLM yang Type-Safe dengan PydanticAI PydanticAI adalah framework agen dari tim di balik Pydantic, diranca...

AutoGen: Framework Multi-Agent Conversation dari Microsoft

AutoGen: Framework Multi-Agent Conversation dari Microsoft AutoGen adalah framework open-source dari Microsoft Research ...