Langkah Mudah Persiapan Data Ampuh untuk Melatih Model BERT-mu

Oleh VOXBLICK

Selasa, 25 November 2025 - 09.05 WIB
Langkah Mudah Persiapan Data Ampuh untuk Melatih Model BERT-mu
Persiapan Data untuk BERT (Foto oleh Google DeepMind)

VOXBLICK.COM - Ingin melatih model BERT-mu tapi bingung harus mulai dari mana? Kamu mungkin sudah familiar dengan kekuatan model bahasa transformatif seperti BERT yang mampu memahami konteks teks dengan sangat baik. Namun, kekuatan sejati sebuah model AI tidak hanya terletak pada arsitekturnya, melainkan juga pada kualitas data yang menjadi makanannya. Persiapan data seringkali menjadi langkah yang paling menantang, sekaligus paling krusial. Jangan khawatir, kamu tidak sendirian! Artikel ini akan memandumu langkah demi langkah, memberikan panduan praktis dan tips ampuh untuk menyiapkan data pelatihan yang optimal agar model BERT-mu bekerja maksimal.

Mempersiapkan data untuk melatih model BERT memang butuh ketelitian, tapi percayalah, ini adalah investasi waktu yang sangat berharga.

Data yang bersih, relevan, dan terstruktur dengan baik akan membuat proses pelatihan jauh lebih efisien dan menghasilkan model dengan performa yang jauh lebih superior. Bayangkan sebuah koki handal sehebat apapun keahliannya, ia tetap membutuhkan bahan-bahan berkualitas untuk menciptakan hidangan masterpiece. Demikian pula dengan model BERT-mu.

Langkah Mudah Persiapan Data Ampuh untuk Melatih Model BERT-mu
Langkah Mudah Persiapan Data Ampuh untuk Melatih Model BERT-mu (Foto oleh Google DeepMind)

1. Pahami Kebutuhan Datamu: Fondasi Awal

Sebelum kamu mulai menyiapkan data, hal pertama yang harus kamu lakukan adalah memahami betul apa yang ingin kamu capai dengan model BERT-mu.

Apakah kamu ingin melakukan klasifikasi sentimen, menjawab pertanyaan (Question Answering), ringkasan teks, atau tugas pemrosesan bahasa alami (NLP) lainnya? Jenis tugas ini akan menentukan format dan anotasi data yang kamu butuhkan.

  • Identifikasi Sumber Data: Dari mana datamu berasal? Dataset publik, data internal perusahaan, atau hasil scraping?
  • Pahami Struktur Data: Apakah datamu berupa teks murni, pasangan pertanyaan-jawaban, atau teks dengan label kategori? Pastikan kamu tahu kolom mana yang berisi teks dan mana yang berisi target label.
  • Kuantitas dan Kualitas: Usahakan memiliki data yang cukup dan representatif. Kualitas data yang buruk (misalnya, banyak data yang salah label) akan sangat merugikan performa modelmu.

2. Pembersihan Data Awal: Membangun di Atas Fondasi yang Bersih

Data mentah jarang sekali sempurna. Langkah pembersihan ini sangat penting untuk menghilangkan "sampah" yang bisa mengganggu proses pelatihan dan pemahaman model BERT.

  • Menghilangkan Duplikat: Data ganda bisa menyebabkan modelmu terlalu fokus pada contoh tertentu dan tidak belajar secara general.
  • Penanganan Missing Values: Tentukan bagaimana kamu akan menangani data yang hilang. Apakah akan dihapus, diisi dengan nilai default, atau diimputasi?
  • Normalisasi Teks:
    • Lowercase: Umumnya, mengubah semua teks menjadi huruf kecil adalah praktik yang baik, kecuali jika kapitalisasi memiliki makna khusus (misalnya, nama properti).
    • Menghilangkan Karakter Khusus/Simbol: Singkirkan karakter yang tidak relevan seperti emoji, tanda baca berlebihan, URL, tag , atau angka yang tidak memberikan informasi kontekstual.
    • Perbaikan Ejaan (Opsional): Untuk data yang sangat kotor, perbaikan ejaan otomatis bisa membantu, namun lakukan dengan hati-hati agar tidak mengubah makna.
  • Penanganan Stop Words (Opsional): Untuk BERT, menghilangkan stop words (kata-kata umum seperti "yang", "dan", "di") tidak selalu diperlukan karena model ini cukup pintar untuk menanganinya. Namun, untuk beberapa kasus, kamu bisa mempertimbangkannya.

3. Tokenisasi: Jantung Pemahaman BERT

Ini adalah langkah paling krusial dalam persiapan data untuk BERT. Model BERT tidak bekerja dengan kata-kata mentah, melainkan dengan "token" yang merupakan unit yang lebih kecil. BERT menggunakan tokenizer berbasis WordPiece.

Memahami WordPiece Tokenizer

WordPiece memecah kata menjadi sub-kata (subword) jika kata tersebut jarang muncul. Misalnya, kata "bertujuan" mungkin dipecah menjadi "bertu" dan "##juan". Prefiks "##" menunjukkan bahwa token tersebut adalah bagian dari kata sebelumnya.

Ini membantu BERT menangani kata-kata yang tidak dikenal (Out-Of-Vocabulary/OOV) dan mengurangi ukuran kosakata yang harus dipelajari.

Token Khusus yang Wajib Kamu Tahu

BERT menggunakan beberapa token khusus untuk memahami struktur input:

  • CLS (Classifier Token): Selalu diletakkan di awal setiap urutan input. Representasi vektor dari token ini (output dari layer terakhir BERT) sering digunakan sebagai representasi agregat dari seluruh urutan untuk tugas-tugas klasifikasi.
  • SEP (Separator Token): Digunakan untuk memisahkan dua segmen teks yang berbeda (misalnya, pertanyaan dan konteks jawaban dalam tugas QA, atau dua kalimat dalam tugas inferensi). Juga diletakkan di akhir urutan tunggal.
  • PAD (Padding Token): Digunakan untuk mengisi urutan teks agar memiliki panjang yang seragam (max_length). Ini penting karena model BERT membutuhkan input dengan dimensi yang sama.
  • UNK (Unknown Token): Digunakan untuk merepresentasikan kata-kata yang tidak dikenal oleh tokenizer (kata-kata di luar kosakata WordPiece).
  • MASK (Mask Token): Digunakan selama pra-pelatihan BERT (Masked Language Model) untuk menyembunyikan sebagian kata dan meminta model memprediksinya. Kamu jarang menggunakannya secara langsung saat fine-tuning, kecuali untuk tugas khusus.

Langkah Tokenisasi Praktis dengan Hugging Face Transformers

Library Hugging Face Transformers adalah sahabat terbaikmu untuk ini. Berikut langkahnya:

  1. Muat Tokenizer:
    from transformers import AutoTokenizer
    tokenizer = AutoTokenizer.from_pretrained("indobert-base-p1") # atau model BERT lain yang kamu pakai
  2. Tokenisasi Teks:
    teks_contoh = "Ini adalah contoh kalimat untuk melatih model BERT."
    encoded_input = tokenizer(teks_contoh, padding=max_length, truncation=True, max_length=128, return_tensors=pt)
    • padding=max_length: Akan menambahkan token PAD hingga panjang urutan mencapai max_length.
    • truncation=True: Jika teksmu lebih panjang dari max_length, teks akan dipotong.
    • max_length: Panjang maksimum urutan token. Pilihlah nilai yang cukup panjang untuk menangkap sebagian besar informasi, tapi tidak terlalu panjang agar tidak membebani memori.
    • return_tensors=pt (PyTorch) atau tf (TensorFlow): Mengembalikan output dalam format tensor yang siap digunakan oleh framework pilihanmu.

4. Mengubah Token Menjadi Angka: Input IDs dan Attention Mask

Output dari tokenizer akan berupa dictionary yang berisi:

  • input_ids: Ini adalah urutan angka yang merepresentasikan setiap token (termasuk CLS, SEP, PAD) berdasarkan indeksnya dalam kosakata tokenizer.
  • attention_mask: Ini adalah array biner (0 atau 1) dengan panjang yang sama dengan input_ids. Angka 1 menunjukkan token yang "nyata" (bukan PAD), sedangkan 0 menunjukkan token PAD. Mask ini memberitahu model BERT untuk mengabaikan token padding saat melakukan komputasi atensi.
  • token_type_ids (opsional): Digunakan jika kamu memiliki dua segmen input (misalnya, kalimat A dan kalimat B). Token di segmen pertama akan memiliki ID 0, dan di segmen kedua memiliki ID 1.

BERT menggunakan input_ids untuk memahami kata-kata dan attention_mask untuk memahami mana bagian dari input yang relevan.

5. Segmentasi Data: Melatih, Validasi, dan Uji

Setelah datamu bersih dan tokenized, kamu perlu membaginya menjadi tiga set:

  • Data Pelatihan (Training Set): Bagian terbesar dari data (misalnya 70-80%) yang digunakan untuk melatih model.
  • Data Validasi (Validation Set): Bagian kecil (misalnya 10-15%) yang digunakan untuk memantau performa model selama pelatihan dan menyetel hyperparameter. Ini mencegah overfitting.
  • Data Uji (Test Set): Bagian yang tidak pernah dilihat model selama pelatihan dan validasi (misalnya 10-15%). Digunakan untuk evaluasi akhir performa model secara objektif.

Kamu bisa menggunakan fungsi train_test_split dari scikit-learn untuk membagi datamu.

6. Format Akhir: Siap Santap oleh Modelmu

Langkah terakhir adalah mengonversi data yang sudah diproses ini ke dalam format yang bisa langsung digunakan oleh framework deep learning pilihanmu (PyTorch atau TensorFlow). Hugging Face menyediakan kelas Dataset yang sangat membantu untuk ini.

from torch.utils.data import Dataset, DataLoader

class CustomDataset(Dataset):
    def __init__(self, encodings, labels=None):
        self.encodings = encodings
        self.

labels = labels

    def __getitem__(self, idx):
        item = key: validx for key, val in self.encodings.items()
        if self.labels:
            itemlabels = torch.tensor(self.labelsidx)
        return item

    def __len__(self):
        return len(self.encodingsinput_ids)

# Contoh penggunaan:
train_dataset = CustomDataset(train_encodings, train_labels)
val_dataset = CustomDataset(val_encodings, val_labels)
test_dataset = CustomDataset(test_encodings, test_labels)

# Kemudian, bisa dibuat DataLoader
train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
# ...dan seterusnya untuk validasi dan uji

Dengan DataLoader, data akan disajikan ke model dalam batch-batch kecil, membuat pelatihan lebih efisien.

Tips Tambahan untuk Persiapan Data yang Lebih Ampuh

  • Gunakan Pre-trained Tokenizer yang Tepat: Selalu gunakan tokenizer yang sama dengan model BERT pre-trained yang akan kamu gunakan (misalnya, jika pakai indobert-base-p1, pakai tokenizer yang sama).
  • Perhatikan Memory dan Komputasi: Semakin panjang max_length, semakin besar memori yang dibutuhkan. Sesuaikan dengan sumber daya GPU-mu.
  • Iterasi dan Eksperimen: Persiapan data bukanlah proses sekali jadi. Kamu mungkin perlu kembali ke langkah pembersihan atau tokenisasi setelah melihat performa model awal. Eksperimen dengan berbagai max_length atau strategi pembersihan.
  • Dokumentasikan Prosesmu: Catat setiap langkah pembersihan dan tokenisasi yang kamu lakukan. Ini akan sangat membantu jika kamu perlu mereplikasi atau memodifikasi prosesnya di kemudian hari.

Mempersiapkan data untuk melatih model BERT memang membutuhkan ketelitian dan pemahaman tentang detail teknis seperti tokenisasi dan penanganan token khusus. Namun, dengan panduan praktis ini, kamu kini punya peta jalan yang jelas untuk memulai.

Ingat, data yang baik adalah tulang punggung model AI yang hebat. Jangan ragu untuk bereksperimen, karena setiap dataset memiliki karakteristiknya sendiri. Dengan langkah-langkah yang tepat, kamu akan segera melihat model BERT-mu bekerja secara maksimal, memberikan hasil yang akurat dan bermanfaat. Selamat mencoba dan raih potensi penuh model AI-mu!

Apa Reaksi Anda?

Suka Suka 0
Tidak Suka Tidak Suka 0
Cinta Cinta 0
Lucu Lucu 0
Marah Marah 0
Sedih Sedih 0
Wow Wow 0