Gambar 1: Ilustrasi pemangkasan kosakata bahasa Korea dan Prancis.
Pemangkasan Kosakata (VT) adalah teknik kompresi model, yang mengurangi kosakata LM multibahasa menjadi bahasa target dengan menghapus token yang tidak relevan dari kosakatanya (lihat Gambar 1). Repositori ini berisi vocabtrimmer
perpustakaan python, yang menghapus token yang tidak relevan dari kosakata LM multibahasa untuk bahasa target.
Gambar 2: Rasio matriks penyematan terhadap jumlah seluruh parameter model untuk setiap LM multibahasa dan matriks penyematan setelah VT dengan 60 kosakata teratas.
Motivasi di balik VT adalah bahwa LM multibahasa memiliki kosakata yang sangat banyak untuk mencakup semua bahasa, sehingga menghasilkan ukuran model yang besar (lihat Gambar 2). Namun, kita tidak memerlukan sebagian besar kosakata tersebut, ketika kita menyempurnakan LM multibahasa pada tugas monolingual dalam praktiknya. Oleh karena itu, kami dapat menghapus kosakata yang tidak digunakan tersebut untuk mengurangi ukuran model.
Secara teori, VT dapat memampatkan LM multibahasa yang ada untuk membangun LM monolingual dalam bahasa apa pun yang dicakup oleh LM multibahasa. Dalam percobaan kami, kami menunjukkan bahwa VT dapat mempertahankan performa asli LM multibahasa, namun ukurannya lebih kecil (secara umum cukup sekitar 50% dari ukuran kosa kata asli) dibandingkan LM multibahasa asli. Evaluasi dilakukan pada empat tugas NLP (dua tugas generatif dan dua tugas klasifikasi) di antara empat LM multibahasa yang banyak digunakan dalam tujuh bahasa. Pada akhirnya, kami menunjukkan bahwa metodologi ini dapat menjaga yang terbaik dari dunia monolingual dan multibahasa dengan mempertahankan skala kecil sebagai model monolingual tanpa perlu melatih ulang mereka secara khusus, dan bahkan membatasi bias sosial yang berpotensi membahayakan. Silakan periksa hasil eksperimen tersebut serta detail teknisnya dalam makalah kami, "Kompresi Model Bahasa Multibahasa yang Efisien melalui Pemangkasan Kosakata, 2023,". Untuk mereproduksi hasil dalam makalah kami, silakan periksa di sini.
BERITA: Makalah kami "Kompresi Model Bahasa Multibahasa yang Efisien melalui Pemangkasan Kosakata, 2023," diterima berdasarkan temuan EMNLP 2023.
Mari kita instal lmqg
melalui pip terlebih dahulu.
pip install vocabtrimmer
vocabtrimmer
Gambar 3: Perbandingan Pra-FT vs Pasca-FT dalam contoh penyesuaian tugas dalam bahasa Prancis.
Secara default, VT mengandalkan mC4, untuk menemukan sekumpulan token khusus bahasa dan frekuensi setiap token. Penggunaan praktis VT adalah menerapkannya pada LM multibahasa sebelum fine-tuning (pra-FT VT) atau setelah fine-tuning (post-FT VT). Keduanya seharusnya bekerja dengan baik secara umum, namun pasca-VT lebih kuat dan cocok, jika Anda sudah memiliki model karena tidak diperlukan pelatihan tambahan. Jika tidak, VT pra-FT akan menjadi pilihan karena dapat mengurangi waktu untuk menyempurnakan model. Lihat perbandingan VT sebelum/sesudah FT di makalah kami.
vocabtrimmer
menyediakan antarmuka baris perintah berikut untuk memangkas kosakata LM multibahasa.
vocabtrimmer-trimming -m MODEL -l LANGUAGE -p PATH_TO_SAVE [-v TARGET_VOCAB_SIZE] [--repo-id REPO_ID]
arguments:
-m, --model, model name on huggingface or path to local model
-l, --language, language code of tokens to keep
-p, --path-to-save, directly to save model
-v, --target-vocab-size, [optinoal] vocab size after mining
--repo-id, [optinoal] huggingface repo id to push after trimming
Perintah berikut memangkas kosakata google/mt5-small
ke bahasa Prancis dengan 60 ribu kosakata teratas.
vocabtrimmer-trimming -m " google/mt5-small " -l " fr " -v 60000 -p " ckpts/mt5-small-trimmed-fr-60000 "
Ukuran kosakata LM multibahasa biasanya 250k (XLM-R, mBART, mT5), dan kami menyarankan untuk menetapkan ukuran kosakata target menjadi 60k, yang merupakan ukuran kosakata efektif. Ukuran kosakata yang kurang dari 60k dapat menyebabkan penurunan kinerja, namun dalam beberapa kasus dapat mempertahankan kinerja aslinya (lihat makalah kami). Jika ukuran kosakata target tidak ditentukan, maka akan menggunakan seluruh kosakata yang muncul di dataset mC4 atau korpus target yang ditentukan.
vocabtrimmer
menyediakan API untuk memangkas LM multibahasa melalui python. Perintah berikut memangkas kosakata google/mt5-small
ke bahasa Prancis dengan 60 ribu kosakata teratas.
import vocabtrimmer
trimmer = vocabtrimmer . VocabTrimmer ( "google/mt5-small" )
trimmer . trim_vocab (
path_to_save = "ckpts/mt5-small-trimmed-fr-60000" ,
language = "fr" ,
target_vocab_size = 60000 )
Silakan kutip makalah berikut jika Anda menggunakan sumber daya apa pun dan lihat kode untuk mereproduksi model jika diperlukan.
@inproceedings{ushio2023efficient,
title = "An Efficient Multilingual Language Model Compression through Vocabulary Trimming",
author = "Ushio, Asahi and
Zhou, Yi and
Camacho-Collados, Jose",
booktitle = "Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing (EMNLP): Findings",
month = Dec,
year = "2023",
address = "",
publisher = "Association for Computational Linguistics",
}