Dataset yang digunakan dalam percobaan ini adalah dataset DpgMedia2019: A Dutch News Dataset for Partisanship Detection.
Ini berisi berbagai bagian tetapi bagian utama yang saya gunakan dalam repositori ini adalah subset dari 104K artikel berita asli. Untuk setiap artikel terdapat label 'partisan' yang menyatakan apakah artikel tersebut partisan atau tidak (Benar/Salah). Jumlah artikel partisan/non-partisan kurang lebih seimbang.
Kumpulan data tersebut dibuat oleh penulis dengan tujuan untuk berkontribusi, misalnya dalam menciptakan pendeteksi berita partisan. Dalam kode python yang digunakan dalam percobaan, file kumpulan data tertentu diunduh secara otomatis.
Lihat github dan kertas untuk informasi lebih lanjut tentang kumpulan data dan cara pembuatannya. Lihat Referensi untuk informasinya.
CATATAN !! Mulai Januari 2023 tidak semua file tersedia lagi di lokasi github asli kumpulan data. Jika Anda memerlukan file asli, unduhlah dari Kumpulan Data Kaggle.
Subset pelatihan dan validasi seperti yang digunakan dalam repositori ini tersedia di folder 'data'.
Di buku catatan 'Prepare_Train_and_Validation_Datasets.ipynb', kumpulan data lengkap akan dibagi menjadi subset yang lebih kecil yang digunakan untuk pelatihan dan validasi.
File-file ini tersedia di folder 'data' di repositori ini.
Alasan utama untuk membuat subkumpulan data yang lebih kecil adalah karena model GPT (atau LLM lainnya) hanya memerlukan beberapa ribu sampel untuk melakukan penyesuaian pada sampel tersebut. Kumpulan data yang lebih kecil juga berarti lebih sedikit token dan tagihan yang lebih kecil untuk kartu kredit Anda ;-)
Subset yang lebih kecil memiliki jumlah sampel berikut:
Model Transformer reguler berikut dilatih dan divalidasi di notebook 'Transformer_Model_Training_And_Validation.ipynb' pada subset data pelatihan dan validasi yang lebih kecil:
Model PolyLM 1.7B dan OpenLLaMA 7B V2 Open LLM yang keduanya dilatih sebelumnya pada kumpulan data multibahasa yang juga berisi bahasa Belanda.
Di notebook 'Open_LLM_Training_And_Validation.ipynb' model Open LLM dikuantisasi menjadi 4-bit dan disempurnakan dengan pengaturan QLoRA untuk meminimalkan jejak memori GPU.
LoraConfig diatur dengan peringkat 64 dan alfa 16.
Setelah pelatihan model PolyLM 1.7B mencapai akurasi pada set validasi sebesar 84,4% sedangkan model OpenLLaMA 7B V2 bahkan mencapai 89,5%.
Saya melakukan beberapa kali pelatihan dan pada berbagai kesempatan, kedua model memperoleh skor hingga 0,5% lebih tinggi atau lebih rendah dibandingkan dengan nilai yang disebutkan di atas.
Kode untuk menyempurnakan GPT-3.5 dapat ditemukan di notebook 'Finetune_GPT-3.5.ipynb'. Berdasarkan file CSV pelatihan dan validasi, file tertentu dibuat dan diunggah ke OpenAI yang digunakan untuk menyempurnakan model GPT-3.5. Artikel-artikel berita dikemas dalam perintah khusus yang dirancang untuk klasifikasi yang kita ingin model pelajari melalui penyesuaian.
Kode validasi tersedia di notebook 'Validate_GPT-3.5.ipynb'. untuk setiap catatan dalam kumpulan validasi, teks artikel berita dibungkus dalam prompt dan OpenAI dipanggil melalui API untuk mendapatkan respons dari penyelesaian obrolan. Responsnya diubah menjadi label biner dan dengan label kebenaran dasar, laporan klasifikasi akhir dibuat.
Model OpenAI GPT-3.5 yang disempurnakan mencapai akurasi pada set validasi sebesar 89,4%.
Perhatikan bahwa saya menggunakan OpenAI untuk penyesuaian dan validasi, bukan Azure OpenAI.
Pada versi terbaru (5 Desember 2023) notebook ini saya telah melakukan pembaruan berikut:
Temukan di bawah skor akurasi yang dicapai pada set validasi untuk 3 model Transformer dan model GPT-3.5.
Model GPT-3.5 mencapai skor akurasi tinggi setelah penyesuaian.
Performa ketiga model Transformer sedikit tertinggal. Mereka jelas akan mendapat manfaat dari pelatihan mengenai lebih banyak sampel data.
Open LLM PolyLM mencapai skor terendah. Namun model OpenLLaMA 7B V2 mencapai skor luar biasa sebesar 89,5% yang sebanding dengan skor yang dicapai oleh model yang disempurnakan GPT-3.5 Turbo (0613 dan 1106).
(LLM) Tipe Model | Akurasi Validasi (%) Skor |
---|---|
PoliLM 1.7B (Lora: r = 64) | 84.4 |
DistilBert multi-bahasa | 85.6 |
Bert multi-bahasa | 86.3 |
DeBERTa V3 multi-linqual | 85.8 |
OpenLLaMA 7B V2 (Lora: r = 64) | 89.5 |
GPT-3.5 Turbo 0613 (disetel dengan baik) | 90.8 |
GPT-3.5 Turbo 1106 (disetel dengan baik) | 89.4 |
GPT-3.5 Turbo 1106 (pembelajaran dalam konteks) | 56.0 |
!! Multi-linqual DeBERTa V3 (kumpulan data lengkap) | 95.2 |
@misc{1908.02322,
Author = {Chia-Lun Yeh and Babak Loni and Mariëlle Hendriks and Henrike Reinhardt and Anne Schuth},
Title = {DpgMedia2019: A Dutch News Dataset for Partisanship Detection},
Year = {2019},
Eprint = {arXiv:1908.02322},
}