Lewati ke konten utama

Fine-Tuning LLM: Panduan dengan Contoh

Pelajari bagaimana fine-tuning model bahasa besar (LLM) meningkatkan performa pada tugas seperti penerjemahan bahasa, analisis sentimen, dan pembuatan teks.
Diperbarui 4 Jun 2026  · 11 mnt baca

Fine-tuning model bahasa besar (LLM) penting untuk menyesuaikan algoritma canggih ini dengan tugas atau domain tertentu.

Proses ini meningkatkan performa model pada tugas-tugas khusus dan secara signifikan memperluas penerapannya di berbagai bidang. Artinya, kita dapat memanfaatkan kemampuan pemrosesan bahasa alami dari LLM yang telah dilatih sebelumnya dan LLM open-source, lalu melatihnya lebih lanjut agar melakukan tugas spesifik kita.

Dalam tutorial ini, saya akan menjelaskan konsep model bahasa yang telah dilatih sebelumnya dan memandu Anda melalui proses fine-tuning langkah demi langkah, menggunakan GPT-2 dengan Hugging Face sebagai contoh.

Memahami Cara Kerja Model Bahasa Pra-latih

Model Bahasa adalah jenis algoritma pembelajaran mesin yang dirancang untuk memprediksi kata berikutnya dalam sebuah kalimat, dengan melihat bagian sebelumnya. Model ini berbasis arsitektur Transformers, yang dijelaskan secara mendalam dalam artikel kami tentang Cara kerja Transformers.

Model bahasa pra-latih, seperti GPT (Generative Pre-trained Transformer), dilatih pada sejumlah besar data teks. Hal ini memungkinkan LLM memahami prinsip-prinsip dasar penggunaan kata dan penyusunannya dalam bahasa alami.

Input dan output LLM

Gambar oleh Penulis. Input dan output LLM.

Bagian terpentingnya adalah model-model ini bukan hanya unggul dalam memahami bahasa alami, tetapi juga mahir menghasilkan teks menyerupai manusia berdasarkan masukan yang diterima.

Dan bagian terbaik dari semuanya?

Model-model ini sudah tersedia untuk khalayak luas melalui API. Jika Anda ingin mempelajari cara memanfaatkan LLM paling kuat dari OpenAI, Anda dapat mempelajarinya melalui lembar contekan tentang OpenAI API.

Apa itu Fine-tuning, dan Mengapa Penting?

Fine-tuning adalah proses mengambil model yang telah dilatih sebelumnya lalu melatihnya lebih lanjut pada dataset khusus domain.

Kebanyakan model LLM saat ini memiliki performa global yang sangat baik, tetapi kurang pada masalah yang sangat berorientasi tugas. Proses fine-tuning menawarkan keuntungan besar, termasuk menurunkan biaya komputasi dan kemampuan memanfaatkan model tercanggih tanpa perlu membangunnya dari nol.

Transformers menyediakan akses ke koleksi besar model pra-latih yang cocok untuk berbagai tugas. Fine-tuning model-model ini adalah langkah krusial untuk meningkatkan kemampuan model dalam melakukan tugas tertentu, seperti analisis sentimen, tanya jawab, atau peringkasan dokumen, dengan akurasi lebih tinggi.

Memvisualisasikan proses Fine-Tuning

Gambar oleh Penulis. Memvisualisasikan proses Fine-Tuning.

Fine-tuning menyesuaikan model agar memiliki performa lebih baik untuk tugas spesifik, sehingga lebih efektif dan serbaguna dalam aplikasi dunia nyata. Proses ini penting untuk menyesuaikan model yang ada dengan tugas atau domain tertentu.

Apakah perlu melakukan fine-tuning bergantung pada tujuan Anda, yang biasanya bervariasi berdasarkan domain atau tugas yang dihadapi.

Berbagai Jenis Fine-tuning

Fine-tuning dapat dilakukan dengan beberapa pendekatan, terutama bergantung pada fokus utama dan tujuan spesifiknya.

Supervised fine-tuning

Pendekatan fine-tuning yang paling sederhana dan umum. Model dilatih lebih lanjut pada dataset berlabel yang spesifik untuk tugas target yang akan dilakukan, seperti klasifikasi teks atau pengenalan entitas bernama.

Sebagai contoh, kita akan melatih model pada dataset yang berisi sampel teks berlabel sentimennya untuk analisis sentimen.

Few-shot learning

Ada beberapa kasus di mana mengumpulkan dataset berlabel besar tidak praktis. Few-shot learning mencoba mengatasi hal ini dengan memberikan beberapa contoh (atau shot) tugas yang dibutuhkan di awal prompt masukan. Ini membantu model memiliki konteks tugas yang lebih baik tanpa proses fine-tuning yang ekstensif.

Transfer learning

Meskipun semua teknik fine-tuning merupakan bentuk transfer learning, kategori ini secara khusus ditujukan agar model dapat melakukan tugas yang berbeda dari tugas awal saat model dilatih. Gagasannya adalah memanfaatkan pengetahuan yang diperoleh model dari dataset besar dan umum, lalu menerapkannya pada tugas yang lebih spesifik atau terkait.

Domain-specific fine-tuning

Jenis fine-tuning ini berupaya menyesuaikan model agar memahami dan menghasilkan teks yang spesifik untuk suatu domain atau industri tertentu. Model di-fine-tune pada dataset yang terdiri atas teks dari domain target untuk meningkatkan konteks dan pengetahuan terkait tugas spesifik domain.

Sebagai contoh, untuk membuat chatbot untuk aplikasi medis, model akan dilatih dengan rekam medis, agar kemampuan pemahaman bahasanya beradaptasi dengan bidang kesehatan.

Panduan Langkah demi Langkah untuk Fine-tuning LLM

Jalankan dan edit kode dari tutorial ini secara online.

Jalankan kode

Kita sudah tahu bahwa fine-tuning adalah proses mengambil model pra-latih dan memperbarui parameternya dengan melatih pada dataset yang spesifik untuk tugas Anda. Jadi, mari kita contohkan konsep ini dengan melakukan fine-tuning pada model nyata.

Bayangkan kita bekerja dengan GPT-2, tetapi kita mendapati model ini cukup buruk dalam menyimpulkan sentimen tweet.

Pertanyaan alami yang muncul: Bisakah kita melakukan sesuatu untuk meningkatkan performanya?

Kita dapat memanfaatkan fine-tuning dengan melatih model GPT-2 pra-latih dari Hugging Face menggunakan dataset yang berisi tweet dan sentimennya masing-masing agar performanya meningkat. Berikut contoh dasar fine-tuning model untuk klasifikasi sekuens:

Langkah 1: Pilih model pra-latih dan dataset

Untuk melakukan fine-tuning, kita selalu perlu menentukan model pra-latih. Dalam kasus kita, kita akan melakukan fine-tuning sederhana menggunakan GPT-2.

Tangkapan layar Hugging Face Datasets Hub. Memilih model GPT2 dari OpenAI.

Tangkapan layar Hugging Face Datasets Hub. Memilih model GPT2 dari OpenAI.

Selalu ingat untuk memilih arsitektur model yang sesuai dengan tugas Anda.

Langkah 2: Muat data yang akan digunakan

Sekarang kita sudah memiliki model, kita memerlukan data berkualitas baik untuk dikerjakan, dan inilah tepatnya peran pustaka datasets.

Dalam kasus saya, saya akan menggunakan pustaka datasets dari Hugging Face untuk mengimpor dataset yang berisi tweet yang dipilah berdasarkan sentimennya (Positif, Netral, atau Negatif).

from datasets import load_dataset

dataset = load_dataset("mteb/tweet_sentiment_extraction")
df = pd.DataFrame(dataset['train'])

Jika kita periksa dataset yang baru diunduh, ini adalah dataset yang berisi subset untuk pelatihan dan subset untuk pengujian. Jika kita konversi subset pelatihan menjadi dataframe, tampilannya sebagai berikut.

Dataset yang akan digunakan.

Dataset yang akan digunakan.

Langkah 3: Tokenizer

Kini setelah kita memiliki dataset, kita memerlukan tokenizer untuk menyiapkannya agar dapat diproses oleh model.

Karena LLM bekerja dengan token, kita memerlukan tokenizer untuk memroses dataset. Untuk memproses dataset Anda dalam satu langkah, gunakan metode map pada Datasets untuk menerapkan fungsi prapemrosesan ke seluruh dataset.

Inilah mengapa langkah kedua adalah memuat Tokenizer pra-latih dan melakukan tokenisasi pada dataset agar dapat digunakan untuk fine-tuning.

from transformers import GPT2Tokenizer

# Loading the dataset to train our model
dataset = load_dataset("mteb/tweet_sentiment_extraction")

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
tokenizer.pad_token = tokenizer.eos_token
def tokenize_function(examples):
   return tokenizer(examples["text"], padding="max_length", truncation=True)

tokenized_datasets = dataset.map(tokenize_function, batched=True)

BONUS: Untuk mengurangi kebutuhan pemrosesan, kita dapat membuat subset yang lebih kecil dari keseluruhan dataset untuk melakukan fine-tuning pada model kita. Set pelatihan akan digunakan untuk fine-tuning, sedangkan set pengujian akan digunakan untuk evaluasi.

small_train_dataset = tokenized_datasets["train"].shuffle(seed=42).select(range(1000))
small_eval_dataset = tokenized_datasets["test"].shuffle(seed=42).select(range(1000))

Langkah 4: Inisialisasi model dasar kita

Mulailah dengan memuat model Anda dan tentukan jumlah label yang diharapkan. Dari kartu dataset sentimen Tweet, Anda tahu ada tiga label:

from transformers import GPT2ForSequenceClassification

model = GPT2ForSequenceClassification.from_pretrained("gpt2", num_labels=3)

Langkah 5: Metode evaluasi

Transformers menyediakan kelas Trainer yang dioptimalkan untuk pelatihan. Namun, metode ini tidak menyertakan cara mengevaluasi model. Itulah mengapa, sebelum memulai pelatihan, kita perlu memberikan kepada Trainer sebuah fungsi untuk mengevaluasi performa model.

import evaluate

metric = evaluate.load("accuracy")

def compute_metrics(eval_pred):
   logits, labels = eval_pred
   predictions = np.argmax(logits, axis=-1)
   return metric.compute(predictions=predictions, references=labels)

Langkah 6: Fine-tuning menggunakan metode Trainer

Langkah terakhir kita adalah menyiapkan argumen pelatihan dan memulai proses pelatihan. Pustaka Transformers memiliki kelas Trainer, yang mendukung beragam opsi pelatihan dan fitur seperti logging, akumulasi gradien, dan presisi campuran. Kita terlebih dahulu mendefinisikan argumen pelatihan beserta strategi evaluasi. Setelah semuanya didefinisikan, kita dapat dengan mudah melatih model hanya dengan perintah train().

from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(
   output_dir="test_trainer",
   #evaluation_strategy="epoch",
   per_device_train_batch_size=1,  # Reduce batch size here
   per_device_eval_batch_size=1,    # Optionally, reduce for evaluation as well
   gradient_accumulation_steps=4
   )


trainer = Trainer(
   model=model,
   args=training_args,
   train_dataset=small_train_dataset,
   eval_dataset=small_eval_dataset,
   compute_metrics=compute_metrics,

)

trainer.train()

Setelah pelatihan, evaluasilah performa model pada set validasi atau set uji. Sekali lagi, kelas trainer sudah memiliki metode evaluate yang menangani hal ini.

import evaluate

trainer.evaluate()

Ini adalah langkah-langkah paling dasar untuk melakukan fine-tuning pada LLM apa pun. Ingat bahwa fine-tuning LLM sangat menuntut komputasi, dan komputer lokal Anda mungkin tidak cukup kuat untuk melakukannya.

Anda dapat mempelajari cara melakukan fine-tuning LLM yang lebih kuat langsung di antarmuka OpenAI dengan mengikuti tutorial tentang Cara Melakukan Fine-Tune GPT 3.5.

Praktik Terbaik Fine-tuning

Untuk memastikan fine-tuning berhasil, pertimbangkan praktik terbaik berikut:

Kualitas dan Kuantitas Data

Kualitas dataset fine-tuning Anda sangat memengaruhi performa model. Kita semua tahu ungkapan:

“Garbage In, Garbage Out”

Jadi, pastikan selalu data bersih, relevan, dan cukup besar.

Penyetelan hiperparameter

Fine-tuning biasanya merupakan proses panjang yang perlu diiterasi. Selalu eksplorasi berbagai pengaturan untuk laju pembelajaran, ukuran batch, dan jumlah epoch pelatihan untuk menemukan setelan terbaik bagi proyek Anda.

Penyesuaian yang tepat adalah kunci agar model belajar secara efisien dan beradaptasi dengan baik pada data yang belum pernah dilihat, sekaligus menghindari jebakan overfitting.

Evaluasi berkala

Secara berkala pantau kemajuan model selama pelatihan untuk menilai efektivitasnya dan menerapkan modifikasi yang diperlukan. Ini melibatkan evaluasi performa model menggunakan dataset validasi yang terpisah sepanjang periode pelatihan.

Evaluasi semacam ini krusial untuk menentukan performa model pada tugas yang dikerjakan dan potensi overfitting terhadap dataset pelatihan. Berdasarkan hasil dari fase validasi, penyesuaian dapat dilakukan sesuai kebutuhan untuk mengoptimalkan performa.

Menghindari Jebakan Fine-Tuning LLM

Fine-tuning terkadang dapat menghasilkan keluaran yang kurang optimal. Waspadai jebakan berikut:

Overfitting

Menggunakan dataset kecil untuk pelatihan atau memperpanjang jumlah epoch secara berlebihan dapat menimbulkan overfitting. Biasanya ditandai dengan akurasi tinggi pada dataset pelatihan, tetapi gagal menggeneralisasi ke data baru.

Underfitting

Sebaliknya, pelatihan yang tidak memadai atau laju pembelajaran rendah dapat menyebabkan underfitting, di mana model gagal mempelajari tugas dengan baik.

Catastrophic forgetting

Dalam proses fine-tuning untuk tugas tertentu, ada risiko model kehilangan pengetahuan luas yang awalnya diperoleh. Masalah ini, yang disebut catastrophic forgetting, dapat mengurangi kemampuan model untuk berkinerja baik di berbagai tugas pemrosesan bahasa alami.

Kebocoran data

Selalu pastikan bahwa dataset pelatihan dan validasi terpisah dan tidak ada tumpang tindih, karena hal ini dapat memberikan metrik performa yang menyesatkan.

Fine-tuning vs. RAG

RAG menggabungkan kekuatan model berbasis penelusuran dan model generatif. Dalam RAG, komponen retriever menelusuri basis data atau basis pengetahuan besar untuk menemukan informasi relevan berdasarkan kueri masukan. Informasi yang diambil ini kemudian digunakan oleh model generatif untuk menghasilkan respons yang lebih akurat dan kontekstual. Manfaat utama RAG meliputi:

  • Integrasi pengetahuan dinamis: Menggabungkan informasi real-time dari sumber eksternal, sehingga cocok untuk tugas yang memerlukan pengetahuan terbaru atau spesifik.
  • Relevansi kontekstual: Meningkatkan respons model generatif dengan menyediakan konteks tambahan dari dokumen yang diambil.
  • Daya guna: Dapat menangani beragam kueri, termasuk yang memerlukan informasi spesifik atau langka yang mungkin tidak dilatih oleh model.

rag vs fine tuning

Memilih antara fine-tuning dan RAG

Saat memutuskan apakah akan menggunakan fine-tuning atau RAG, pertimbangkan faktor-faktor berikut:

  • Sifat tugas: Untuk tugas yang diuntungkan oleh model yang sangat terspesialisasi (misalnya aplikasi khusus domain), fine-tuning sering menjadi pendekatan yang disukai. RAG ideal untuk tugas yang memerlukan integrasi pengetahuan eksternal atau penelusuran informasi real-time.
  • Ketersediaan data: Fine-tuning memerlukan sejumlah besar data berlabel yang spesifik untuk tugas. Jika data seperti itu langka, komponen penelusuran RAG dapat mengompensasi dengan menyediakan informasi relevan dari sumber eksternal.
  • Keterbatasan sumber daya: Fine-tuning bisa sangat intensif secara komputasi, sedangkan RAG memanfaatkan basis data yang ada untuk melengkapi model generatif, sehingga berpotensi mengurangi kebutuhan pelatihan yang ekstensif.

Kesimpulan

Memulai perjalanan fine-tuning model bahasa besar membuka berbagai kemungkinan untuk aplikasi AI.

Dengan memahami dan menerapkan konsep, praktik, dan kehati-hatian yang diuraikan, Anda dapat secara efektif menyesuaikan model-model kuat ini untuk memenuhi kebutuhan spesifik, sekaligus membuka potensi penuhnya.

Untuk terus belajar tentang fine-tuning, saya sangat menganjurkan Anda melakukan fine-tuning yang lebih lanjut. Anda dapat mulai dengan kursus Konsep LLM dari DataCamp, yang membahas banyak metodologi pelatihan utama dan riset terbaru. Sumber baik lainnya yang bisa diikuti:

FAQs

Bisakah fine-tuning dilakukan dengan dataset kecil, dan bagaimana dampaknya terhadap performa model?

Ya, fine-tuning dapat dilakukan dengan dataset kecil menggunakan teknik seperti few-shot learning atau low-rank adaptation (LoRA), yang mengoptimalkan sebagian parameter model. Walaupun ini menurunkan biaya komputasi, performa model mungkin sangat bergantung pada kualitas dan keterwakilan dataset kecil tersebut.

Bagaimana cara mencegah catastrophic forgetting selama fine-tuning?

Untuk mencegah catastrophic forgetting, Anda dapat menggunakan teknik seperti membekukan lapisan bawah model, menerapkan regularisasi, atau memanfaatkan metode seperti Elastic Weight Consolidation (EWC) untuk mempertahankan pengetahuan yang dipelajari selama pra-pelatihan saat melakukan fine-tuning pada tugas baru.

Apa persyaratan perangkat keras untuk fine-tuning model bahasa besar?

Fine-tuning LLM umumnya memerlukan akses ke GPU atau TPU dengan kapasitas memori tinggi (misalnya, 16GB atau lebih per GPU) untuk menangani ukuran model besar dan pemrosesan batch secara efisien. Untuk model yang lebih besar, pelatihan terdistribusi di beberapa GPU atau solusi berbasis cloud seperti AWS, Azure, atau Google Cloud sering kali diperlukan.


Josep Ferrer's photo
Author
Josep Ferrer
LinkedIn
Twitter

Josep adalah Data Scientist freelance yang berfokus pada proyek-proyek Eropa, dengan keahlian dalam penyimpanan data, pemrosesan, analitik lanjutan, dan penyusunan narasi data yang berdampak. 

Sebagai pendidik, ia mengajar Big Data di program Magister di University of Navarra dan berbagi wawasan melalui artikel di platform seperti Medium, KDNuggets, dan DataCamp. Josep juga menulis tentang Data dan Teknologi dalam buletin Databites (databites.tech). 

Ia meraih gelar Sarjana di bidang Fisika Teknik dari Polytechnic University of Catalonia dan gelar Magister di bidang Intelligent Interactive Systems dari Pompeu Fabra University.

Topik

Mulai Perjalanan AI Anda Hari Ini!

Kursus

Konsep Large Language Models (LLM)

2 Hr
99.1K
Temukan potensi penuh dari LLMs melalui kursus konseptual kami yang mencakup aplikasi LLMs, metode pelatihan, pertimbangan etika, dan penelitian terbaru.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

Lihat Lebih BanyakLihat Lebih Banyak