p-ISSN: / e-ISSN:
DOI: 10.26418/juristi.v1i1.61146 Vol.01, No. 1, Februari 2023
Submitted 07-01-2023; Revised 27-01-2023; Accepted 27-01-2023 151
Perbandingan Hasil Penerjemahan Neural Machine Translation (NMT) Dengan MarianNMT Terhadap Sumber Korpus
Wikimedia dan QED&TED
Dzulkahfi#1, Herry Sujaini#2, Tursina#3
#Program Studi Informatika, Fakultas Teknik, Universitas Tanjungpura Jl. Prof. Dr. H. Hadari Nawawi, Pontianak, 78124
Abstrak
Pembelajaran bahasa dengan mesin sekarang ini sudah mencapai pada tahap dimana jumlah data memegang kunci penting pada hasilnya. Berbagai pengembangan dilakukan sehingga masalah terkait kualitas data dapat diatasi, terutama banyak terjadi di era mesin penerjemah saraf tiruan (MPST). Salah satu ide besar untuk mengembangkan pembelajaran lebih lanjut untuk hal ini adalah dengan membangun sistem secara low-resource, dimana akan memfokuskan media pembelajar untuk bekerja dan mampu membentuk pengetahuan dengan sumber data dengan kondisi tersebut. Arsitektur MPST sudah umum digunakan sebagai bagian arsitektur sistem machine translation sejak populer di WMT16, dan mempunyai kelebihan dapat melakukan berbagai tugas terkait penerjemahan bahasa secara tepat dan mudah. Tersebutlah toolkit MarianNMT, Sebuah toolkit mesin penerjemah saraf tiruan yang dikembangkan oleh tim Microsoft Translator dengan harapan menciptakan toolkit yang resource- friendly dan dapat mencapai kecepatan training dan penerrjemahan yang tinggi serta support untuk impementasi pada sistem lokal yang mengandalkan sumber daya hardware dalam device dengan GPU atau CPU. Dalam kasus penerjemahan Bahasa Inggris ke Indonesia dan menggunakan model “Nematus-Style Shallow RNN” pada MarianNMT, dalam 28 jam mampu untuk menyelesaikan training untuk kedua kasus training dengan korpus yang memiliki baris < 500K kalimat. Pada training digunakan validasi dengan repository FLORES-101, dan membawa dua kasus training dengan korpus berbeda dari Wikimedia untuk memperoleh nilai BLEU (5.2 - 4.7), SpBLEU (8.1 - 7.2) dan QED&TED dengan nilai BLEU (4.0 - 4.3) SpBLEU (6.8 - 6.9) untuk terjemahan dari korpus dev dan devtest berturut-turut. Menyimpulkan bahwa korpus Wikimedia memiliki kecocokan dengan evaluasi pelatihannya, namun belum cocok untuk melakukan penerjemahan pada bentuk kata yang tak pernah terlihat. Sedangkan pada korpus QED&TED hal tersebut tercapai walau dengan perbandingan skor yang lebih kecil.
Kata kunci: mesin penerjemah saraf tiruan, sentencepiece, pemrosesan bahasa alami, marianNMT, BLEU, FLORES101
Comparison of Neural Machine Translation (NMT) Results with MarianNMT Against Wikimedia and QED&TED Corpora
Sources
Abstract
Machine learning now has reached a stage where the amount of data holds the key to the outcome. Various developments were carried out so that problems related to data quality can be situationed, especially on what happened in the era of neural machine translation (NMT). One of the big ideas to develop further learning for this matter is to build a low-resource system, which will focus on learning media to work and be able to form knowledge with data sources under these conditions. The NMT has been commonly used as part of the machine translation system architecture since it was popular in WMT16, and has the advantage of being able to perform various language translation tasks precisely and easily. The toolkit is MarianNMT, a neural machine toolkit developed by the Microsoft Translator team with the hope of creating a resource-friendly toolkit that can achieve training and translation speeds as well as support for implementation on hardware-resourced on-premises systems with GPUs or CPUs. In the case of the English-to-Indonesian translation way and using the “Nematus-Style
Shallow RNN” model on MarianNMT, in 28 hours he was able to complete the training for both training cases on corpora having lines < 500K sentences. In the training, validation with the use of the FLORES-101 repository, brought two cases of training on different corpus source from Wikimedia to obtain BLEU scores (5.2 - 4.7), SpBLEU (8.1 - 7.2) and QED&TED with BLEU values (4.0 - 4.3) SpBLEU (6.8 - 6.9) for the translation of the dev and devtest corpus respectively. Conclusion made, that the Wikimedia corpus was suitable for its training evaluation, but not yet suitable for translating unseen word forms. Meanwhile, in the QED&TED corpus, this was achieved even with a smaller score comparison.
Keywords: neural machine translation, sentencepiece, natural language processing, marianNMT, BLEU, FLORES101
I. PENDAHULUAN
Indonesia tumbuh sebagai bangsa yang memiliki kebudayaan yang tidak sedikit, tersebut pula dengan bahasa yang dimilikinya. [1], menuturkan setidaknya ada 706 variasi bahasa yang terdapat di Indonesia terlepas dari faktor yang mempengaruhinya. Didukung dengan posisi geografis serta demografisnya, menjadikan keberagaman kebudayaan terkait pembahasaan begitu banyak ditemukan.
Variasi yang tercipta dari tiap satuan kecil di wilayah tertentu baik yang mendekati maupun yang masih punya kesamaan dengan sebaran bahasa utamanya, menjadikan hal terkait pengumpulan serta pengolahan data terkait menjadi tantangan yang cukup besar.
Pembelajaran bahasa dengan mesin sekarang ini memang sudah mencapai pada tahap dimana jumlah data memegang kunci penting pada hasilnya. Berbagai pengembangan dilakukan, terutama banyak terjadi di era Neural Machine Translation (NMT). Namun sampai saat ini pengembangan tersebut hanya mampu bekerja di lingkup yang terorganisir dengan baik, serta dengan jumlah data yang cukup besar juga. Muncul pertanyaan bagaimana jika semua hal diatas berkebalikan dengan kondisi yang diharapkan.
Salah satu ide besar untuk mengembangkan pembelajaran lebih lanjut untuk hal ini adalah dengan membangun sistem secara low-resource atau sumber daya terbatas, yang akan memfokuskan media pembelajar untuk bekerja dan mampu membentuk pengetahuan yang dapat berasal dari beberapa metode yang sudah ada pada kondisi diatas. Penekanan pada sistem ini bisa dikaitkan dalam beberapa hal, namun umumnya lebih ke kuantitas sumber data yang dikumpulkan. Dengan alasan masalah underfitting dan overfitting saat generalisasi, hasil penelitian terdahulu lebih banyak diarahkan ke penggunaan data dalam jumlah besar. Sekarang ini sudah banyak muncul artikel terkait yang membahas kemungkinan sistem dengan spesifikasi diatas [2]–[4] dan penelitian dari [5], [6], yang mana memberi jalan untuk bahasa dengan kondisi
“susah diperoleh” untuk ikut dikembangkan. Dengan harapan untuk dapat menemukan ukuran pasti dalam pengembangannya, dibutuhkan lebih banyak penelitian dengan topik terkait untuk mewujudkannya.
Arsitektur NMT sudah umum terdengar serta digunakan sebagai bagian arsitektur sistem machine translation sejak naik di WMT16, yang mana mempunyai kelebihan dapat melakukan berbagai tugas terkait penerjemahan bahasa secara tepat dan mudah. Dengan adanya pengembangan seperti model Seq2Seq dengan LSTM [7], dan mekanisme attention [8] menjadikan dasar penting bagi NMT untuk muncul kembali, yang mampu melampaui nilai metrik
BLEU untuk beberapa riset yang menggunakan sistem dan arsitektur terdahulu.
NMT memiliki berbagai potensi yang layak untuk diuji.
Terutama terkait bentukan arsitektur, algoritma kerja, serta komponen tambahan lainnya yang digunakan, yang sudah menjadi isu utama terkait implementasinya secara efektif.
Ada beberapa pilihan untuk memudahkan penelitian dalam hal ini untuk menyederahanakan prosesnya, yaitu dengan bantuan toolkit yang terfokus untuk menyelesaikan permasalahan terkait basis sistem NMT. Hal tersebut menjanjikan penelitian terkait penerjemahan bahasa dengan basis neural untuk mendapat berbagai kemudahan dalam penggunaannya.
Tersebutlah toolkit MarianNMT, Sebuah toolkit NMT yang dikembangkan oleh tim Microsoft Translator dengan harapan menciptakan toolkit yang resource-friendly dan dapat mencapai kecepatan training dan penerjemahan yang tinggi [9]. Kemudahan dan kecepatan yang ditawarkan MarianNMT dapat menjadi pertimbangan bagus untuk memulai proyek terkait tugas mesin penerjemah berbasis neural untuk sistem lokal yang mengandalkan sumber daya hardware dalam device, terutama dengan GPU atau CPU.
Fokus penelitian ini diarahkan untuk menguji penerjemahan NMT untuk pasangan bahasa EN-ID (Inggris ke Indonesia) pada dua kasus berbeda. Akan digunakan MarianNMT sebagai toolkit NMT, dan menggunakan model untuk training dalam contoh di repository Marian sebagai model dasar NMT. Penelitian akan berfokus untuk menemukan perbandingan antar data uji berbeda dengan menggunakan MarianNMT sebagai toolkit, untuk membentuk model terjemahan dalam percobaan yang berbeda tersebut secara mudah, cepat, dan tepat.
II. METODOLOGI PENELITIAN
Penelitian dilakukan dengan menggunakan metode dan komponen yang dijelaskan seperti dibawah ini
Perangkat Penelitian
Dalam penelitian ini penulis menggunakan unit pemroses dalam sistem lokal dengan spesifikasi sebagai berikut:
1. Perangkat Keras
• Processor: Intel(R) CoreTM i5-4590 CPU @ 3.30GHz
• RAM: DDR3 UDIMM PC3-12800 (800 MHz) 4096 MB (2x)
• GPU: NVIDIA GeForce GTX 1070 Ti 8GB 2. Perangkat Lunak
• Sistem Operasi Linux Mint 20.4 ‘Una’ 64 bit
• Toolkit MarianNMT versi 1.11.0
Pengumpulan Data
Data akan diperoleh dari sumber internet, dan dikumpulkan untuk membuat teks korpus training. Dataset dengan sumber data lebih dari satu akan digabungkan.
Korpus akan dibuat berpasangan(paralel) antar bahasa asal(Inggris) dan target(Indonesia). Dataset dari Opus [10]
merupakan file dump Wikipedia (Wikimedia v20210402) yang memiliki panjang 250K baris kalimat. Untuk dataset WMT’21 (https://www.statmt.org/wmt21/large-scale- multilingual-translation-task.html) akan memiliki beragam file korpus dengan berbagai macam ukuran, untuk ini dipilih 2 file (QED & TED2020) dengan total 430K baris kalimat. Data untuk korpus training dibagi menjadi 2 kasus percobaan yang berdasarkan sumber didapatnya.
Karena jumlah baris yang digunakan pada korpus paralel training berkisar dibawah 500K baris dengan jumlah kata dalam kalimat dibawah 50 kata (kisarannya 20-40 kata per kalimat), pelatihan dapat dikatakan berjalan dalam skenario low-resource.
Untuk validasi digunakan data dari repository FLORES- 101[11], dengan menggunakan file validasi untuk penggunaan evaluasinya secara offline. Penggunaan korpus validasi dimaksudkan untuk mengevaluasi kualitas dari model machine learning dengan menggunakan validation set. Karena validation set dasarnya terpisah dari training set, validasi membantu untuk menentukan performa model untuk mencapai generalisasi di luar training set.
Dataset dari WMT’21 dan Opus akan digunakan sebagai korpus training sesuai dengan kondisi asli didapatnya.
Pre-Processing Korpus Training
Penelitian dengan model “Nematus-Style Shallow RNN”
dari training file yang disediakan di MarianNMT menggunakan Sentencepiece [12] sebagai tokenizer dan normalization dari korpus yang digunakan nantinya.
Korpus training dan validasi yang digunakan nantinya akan diproses didalam sentencepiece untuk pemrosesan sebelum training dilakukan.
Kompilasi Toolkit MarianNMT
Penelitian dengan model “Nematus-Style Shallow RNN”
dari training file MarianNMT akan menggunakan SentencePiece, yang sudah menjadi bagian dari repository MarianNMT di versi terbarunya.
Dikarenakan konsumsi sumber daya untuk pemrosesan oleh toolkit lumayan tinggi, tidak disarankan menggunakan device yang tidak memiliki GPU sama sekali (minimum ada), walau toolkit sendiri dapat berjalan tanpa menggunakannya sesuai yang tertulis (menggunakan CPU).
Mengenai perangkat lunak dapat menyesuaikan sesuai sistem yang diinginkan, di penelitian ini memfokuskan ke sistem lokal. Toolkit disiapkan terlebih dulu dengan melakukan clone dari repository MarianNMT tersebut.
Sebagai catatan, toolkit MarianNMT juga akan membutuhkan beberapa komponen library lain diluar toolkit yaitu CUDA, GCC, G++, dan CMake. Adapun komponen tersebut berlaku sebagai compiler kode dari toolkit MarianNMT, dan CUDA sebagai library code untuk pemrosesan dengan GPU.
Implementasi Model Nematus-Style Shallow RNN
Pengaturan model “Nematus-Style Shallow RNN”
sepenuhnya dilakukan dalam script file dengan suffix ‘.sh’
untuk tiap pemrosesan yang terjadi.
Modelnya didasarkan pada baseline pada Edinburgh NMT System for WMT’16 [13]. Adapun itu dengan tipe model encoder-decoder atau seq2seq dengan Bidirectional RNN GRU dan mekanisme Attention [14].
Sesuai dengan bentuk dasar encoder-decoder, MarianNMT membagi bagian pemrosesnya menjadi beberapa bagian yang dapat dilihat pada “marian- nmt.github.io/docs/”.
Encoder: Encoder dalam model ini akan menggunakan bentuk konfigurasi pada Tabel 1.
TABELI
TABELKONFIGURASI ENCODER
comma
nd-line efek input
-- devices
mengatur hardware pemroses yang mana saja yang diikutsertakan dalam training. '0' berarti tidak menggunakan GPU unit angka berikutnya menyatakan jumlah
GPU dalam sistem. 0 1 2 3
--type
mengatur model arsitektur dasar untuk NMT. Marian support beberapa tipe yaitu 's2s'(Seq2Seq), 'transformer', 'amun', 'nematus',
'multi-s2s'. s2s
-- model
file path untuk menyimpan konfigurasi dan progress dari training yang dilakukan. Dapat menjadi checkpoint untuk disimpan/dijeda. Semua digabung dalam bentuk file tunggal dengan suffix 'npz' atau 'bin'
model.
npz
--train- sets
file path dari korpus training paralel. Dipisah dengan spasi antara file path untuk 'source' dan 'target'.
data/co rpus.en data/co rpus.id
-- vocabs
file path ke file vocabulary yang berhubungan dengan '--train-sets'.
Dipisah dengan spasi antara file path untuk 'source' dan 'target'.
Jika parameter ini tidak ditetapkan sistem akan mencari file vocabulary 'source.{yml,json}' dan 'target.{yml,json}'. Jika tidak ada maka akan dibuat secara otomatis. Gunakan suffix 'spm' untuk menggunakan model vocabulary dari sentencepiece, model spm akan menggunakan single joint file.
model/
vocab.e nid.sp m model/
vocab.e nid.sp m
--dim- vocabs
jumlah max isi dalam vocabulary diurut berdasar tingkatannya, '0' untuk menggunakan seluruh isi dalam file vocabulary yang disediakan/dibentuk. Dipisah dengan spasi untuk 'source' dan 'target'.
32000 32000
--mini- batch- fit
menetapkan ukuran mini-batch untuk otomatis mengikutipanjang kalimat untuk mencukupi memori yang tersedia. Penggunaan '-w' atau '--workspace' menetapkan batasan memori agar tidak melebar ke ukuran yang ditetapkan.
Dipisah dengan spasi
--mini- batch- fit -w 5500 --layer-
normali zation
menghidupkan fitur layer normalization
--layer- normali zation --tied-
embed dings- all
mengaitkan semua embedding layer dan output layer
--tied- embedd ings-all --
dropout -rnn
mengatur skala dropout terhadap rnn layer dan time. '0' berarti tidak
ada dropout. 0.2
-- dropout -src
mengatur skala dropout untuk source word. '0' berarti tidak ada
dropout. 0.1
-- dropout -trg
mengatur skala dropout untuk target word. '0' berarti tidak ada
dropout. 0.1
--early- stoppin g
mengatur pemberhentian proses saat salah satu metrik validation tidak meningkat setelah n-step berurutan tertentu dilakukan. 5
--max- length
panjang maksimal dari sebuah kalimat dalam pasangan kalimat training. Diabaikan/ tidak digunakan jika kasus ditemukan
pada baris tertentu. 50
--valid- freq
pengaturan untuk melakukan
validasi tiap arg melakukan update 10000 --save-
freq
menyimpan model file untuk
setiap arg melakukan update 10000
--disp- freq
menampilkan informasi terkait proses yang terjadi untuk setiap arg melakukan update 1000
--cost- type
kriteria untuk optimasi. Pilihan yang dapat digunakan 'ce-mean', 'ce-mean-words', 'ce-sum', 'perplexity'
ce- mean- words
--valid- metrics
satuan metrik yang digunakan dalam validasi, dapat lebih dari satu dipisah dengan spasi.
Pilihannya: cross-entropy, ce- mean-words, perplexity, valid- script, translation, bleu, bleu- detok, bleu-segmented, chrf
ce- mean- words bleu- detok
--valid- sets
file path dari korpus validasi paralel. Dipisah dengan spasi antara file path untuk 'source' dan 'target'.
data/flo resdev.
en data/flo resdev.i d
--log- model
Aktifkan logging proses training kedalam bentuk file, menyesuaikan aturan arg melakukan update
model/t rain.log
--valid- log
Aktifkan logging proses saat validasi pada training kedalam bentuk file, menyesuaikan aturan arg melakukan update
model/
valid.lo g
-- tempdir
directory untuk penyimpanan sementara (yang diacak) untuk file
dan database model
-- overwri te
model checkpoint akan diperbarui dengan ditimpa. Jika tidak digunakan maka model akan memiliki tiap checkpoint pada rentang proses yang berjalan sesuai dengan tiap arg melakukan update untuk menyimpan model.
-- overwri te
--keep- best
menyimpan model yang terbaik dari proses saat arg melakukan update
--keep- best
--seed
memberi inisialisasi pada seluruh random number generator untuk
bekerja. 1111
-- expone ntial- smooth ing
mengatur parameter untuk menggunakan hasil dari smoothed version untuk validasi dan menyimpannya dengan smoothing factor. '0' untuk tidak menggunakan
-- expone ntial- smooth ing --
normali ze
bagi skor dari penerjemahan dengan pemangkatan dari panjanga terjemahan dengan arg 0.6 --
beam- size
ukuran beam yang digunakan ketika mencari dengan penerjemah
untuk validasi. 6
--quiet- translat ion
matikan logging untuk penerjemahan
--quiet- translat ion
Pada tugas utama yang diberikan membutuhkan pemilihan model yang menyesuaikan. Beberapa tipe model pada script akan mengatur arsitektur network umum, namun tidak secara unik menetapkannya.
Ukuran dari network dan vocabulary dan pilihan terhadap parameter untuk training seperti loss function, optimizer, validation metrics akan menjadi hal yang cukup berpengaruh terhadap kualitas dari hasil yang patut dipertimbangkan.
Untuk penugasan machine translation untuk MarianNMT, encoder akan membutuhkan masukan data dalam bentuk sequence, yang nantinya akan membentuk probabilitas kemungkinan terhadap representasi terdistribusi dalam susunan dan pasangan tertentu dari kata/token. Hal tersebut lebih dikenal sebagai language model, untuk mengkomputasikan 𝑝(𝑦), probabilitas dari sequence
𝑦
.Sentencepiece pertama-tama akan menggunakan data mentah tersebut untuk dilakukan normalization dengan format Unicode NFKC, kemudian tokenization dengan model unigram. Tokenization disini dilakukan dengan unsupervised training secara langsung ke data mentah.
File model dari sentencepiece akan digunakan MarianNMT di encoder-nya sebagai vocabulary file dan akan menuju training bersama dengan tugas utamanya
File korpus training dan validasi yang sebelumnya diolah akan dikumpulkan dalam satu lokasi dalam folder proyek untuk memudahkan pemanggilan path. Proses training oleh MarianNMT dilakukan dengan menggunakan command ‘marian-train’ dengan script file.
Konfigurasi tersebut difungsikan sebagai pengaturan model jaringan, training, dan validasi yang terjadi di encoder. Tentunya beberapa flags lainnya yang dapat diatur tidak terbatas seperti apa yang tertulis pada tabel diatas, yang mana MarianNMT mengumpulkannya dalam satu dokumen yang dapat diakses di (https://marian-nmt.github.io/docs/cmd/marian/).
Beberapa flags ada yang memiliki nilai default yang sudah ditetapkan walaupun tidak ditentukan didalam script.
Encoder dalam NMT umumnya memiliki rangkaian penugasan yang fokus untuk membentuk representasi kontekstual dari inputnya, sebelum dapat diteruskan ke decoder. Dengan mengkonsumsi source text 𝑥 dan target text𝑦, probabilitas 𝑝(𝑦|𝑥)akan dihitung dengan memberikan prefix token 𝑡 − 1 pada waktu 𝑡 melalui language model, menggunakan forward inference untuk menghasilkan hidden state dari sequence yang diakhiri dengan hidden state yang terkait dengan kata akhir dari prefix. Kemudian hidden state terakhir dari prefix akan digunakan sebagai poin mulai untuk menghasilkan token berikutnya.
Training yang dilakukan akan membutuhkan loss function, training set, dan stochastic gradient descent.
Pembobotan yang terjadi dalam jaringan saraf umumnya memiliki bentuk yang sama dengan training dengan language model, yang mana untuk meminimalkan rerata cross entropy sebagai fungsi loss, terhadap sequence
training melalui gradient descent sebagai algoritma optimasinya [15].
Attention: Mekanisme attention dikhususkan untuk menjadi solusi bottleneck pada hidden state saat time step terakhir dari teks sumber, yang diberi notasi vektor konteks ℎ𝑛. Idenya dengan menggunakan single-fixed length vektor 𝑐 dengan mengambil jumlah pembobotan dari semua hidden state pada encoder.
Hal pertama dalam perhitungan 𝑐 tersebut adalah untuk menentukan seberapa besar fokus terhadap setiap state encoder, seberapa mirip tiap state encoder terhadap state decoder yang diterima pada ℎ𝑖−1𝑑 . Derajat kemiripan akan dihitung pada tiap state 𝑖 saat decoding, skor (ℎ𝑖−1𝑑 , ℎ𝑗𝑒) untuk tiap state encoder 𝑗.
Skor tersebut dapat digunakan ketika sudah dinormalisasi dengan softmax untuk membentuk bobot dari vector, 𝛼𝑖𝑗, yang menunjukkan relevansi dari hidden state encoder 𝑗 terhahap hidden state decoder sebelumnya, ℎ𝑖−1𝑑 [15] .
Decoder: Normalnya, decoder pada jaringan akan mengambil state akhir dari encoder (yang disalurkan melewati mekanisme attention), dalam bentuk 𝑐 sebagai konteks, dan menggunakannya untuk menginisialisasi hidden state pertama dari decoder. RNN cell pertama dari decoder akan menggunakan 𝑐 sebagai hidden state sebelumnya, ℎ0𝑑.
Kemudian decoder secara autoregressive akan menghasilkan sebuah sequence dari output, satu elemen dalam satu waktu, sampai marker end-of-sequence dihasilkan. Tiap hidden state dikondisikan pada hidden state sebelumnya dan output yang dihasilkan pada state sebelumnya.
Decoding pada MT umumnya menggunakan metode beam search. Pada Beam search, kemungkinan token akan disimpan sebagai
𝑘
tiap stepnya, daripada memilih token terbaik. Jejak memori yang ditetapkan,𝑘
, dikenal sebagai beam width, yang dapat dilebarkan atau dipersempit [15].MarianNMT memfasilitasi proses decoding dalam decoder dengan command “marian-decoder”.
Konfigurasinya dapat dilihat di Tabel 2.
TABEL2
TABELSKENARIO PENGUJIAN
comman
d-line efek input
-c,-- config
File konfigurasi untuk digunakan dalam decoding.
Jika lebih dari satu, yang paling akhir akan menimpa konfigurasi sebelumnya.
model/model .npz.best- bleu- detok.npz.de coder.yml
-d,-- devices
Tentukan ID GPU untuk digunakan dalam training.
Default ke 0 (=jumlah
device ada 1) 0 1
-b,-- beam- size
Ukuran beam size yang digunakan untuk pencarian dengan penerjemah
validasi 6
-n,-- normaliz e
Bagi skor penerjemahan dengan pow(Panjang terjemahan, arg) 0.6
--mini- batch
Ukuran dari mini-batch digunakan saat batched
translation 64
--maxi- batch
Angka dari batches untuk preload dalam sorting berbasis panjang 100 --maxi-
batch- sort
Startegi sorting pada maxi- batch: none, src, trg (tidak bisa untuk decoder)
--maxi- batch-sort
cat
input file untuk menjadi input terjemahan
(diletakkan di awal kode) cat filepath
>
keluaran dari hasil terjemahan, beserta bentuk dan penamaannya di akhir nanti (diletakkan diujung
kode) > filepath
Evaluasi dan Pengujian Hasil Terjemahan
Sebagai catatan, bahwa model yang dilakukan training akan mengikuti bentuk susunan seperti yang ada di korpus validasi yang digunakan saat training, yang mana ada pada file dev pada korpus validasi tertentu. Hal ini dilakukan untuk mengarahkan pemilih kemungkinan otomatis saat sampling untuk membentuk kalimat sesuai dengan bentuk yang dijadikan referensi.
Di penelitian ini digunakan korpus validasi dari FLORES-101, jadi file dev (‘floresdev.en‘ dan
‘floresdev.id‘, paralel) dari korpus validasi tersebut akan digunakan.
Data dalam korpus validasi dev dan devtest dimaksudkan untuk mengevaluasi hasil dari model dasar NMT yang digunakan pada training. Pada kasus ini korpus dev digunakan untuk training dan devtest sebagai penentu kualitasnya untuk data yang tak pernah dilihat [15].
Untuk mendapatkan hasil evaluasi dan pengujiannya terhadap hasil terjemahan dari model setelah training tersebut digunakan pengukuran metrik otomatis, dimana dalam penelitian ini akan dibagi menjadi dua bentuk.
1) Skor BLEU Awal: Skor BLEU awal yang didapat saat validasi berlangsung didalam training dengan MarianNMT, skor tersebut dinamakan bleu-detok. Skor tersebut didapat dengan membandingkan hasil penerjemahan model dengan korpus validasi saat proses validasi model per-argument update dilakukan.
2) Skor BLEU Akhir: Hasil dari penerjemahan yang dilakukan pada ‘marian-decoder’ akan diuji dengan menggunakan skor BLEU dan SpBLEU [11] dengan modul SacreBLEU [16].
Metode skoring tersebut diberi nama spBLEU, memberi aturan terhadap sacrebleu untuk melakukan tokenization berdasar model sentencepiece yang berdasar dari dataset FLORES-101 untuk melakukan skoring-nya.
Kedua file output terjemahan sebelumnya akan diuji dengan sacrebleu untuk melihat skor terhadap hasil terjemahannya terhadap file dev dan devtest dari FLORES-101.
Analisis Hasil Terjemahan
Analisis hasil dilakukan untuk melihat penilaian dari metrik yang digunakan (BLEU dan SpBLEU) terhadap model “Nematus-Style Shallow RNN” pada toolkit MarianNMT. Peningkatan skor “bleu-detok” pada tiap argument update (mini-batch) saat training bahkan penurunan nilai “ce-mean” yang dihasilkan akan dibentuk dalam grafik untuk menunjukkan bahwa training berjalan semestinya dengan menurunkan nilai loss tersebut.
Skor pada hasil terjemahan untuk trained model akan memberikan penilaian berdasar dengan standar kualitas dari validasi FLORES-101, yang mana dalam kasusnya lebih membutuhkan skor dalam bentuk SpBLEU untuk akurasi skor lebih baik dari BLEU (keduanya akan tetap digunakan).
Korpus paralel untuk training yang dibagi menjadi dua kasus, yang akan menjadi variasi uji yang dibedakan dari sumber data-nya (korpus paralel). Dilakukan training dan skoring seperti biasa, dan akan dibandingkan dengan kasus pengujian seperti yang dijelaskan diatas.
Penarikan Kesimpulan
Kesimpulan yang akan ditarik berupa perbandingan dari hasil skor dengan metrik BLEU dan SpBLEU terhadap dua model korpus training dengan standar evaluasi dari FLORES-101.
III. HASIL DAN PEMBAHASAN
Berikut ini adalah hasil penelitian yang telah dibuat pada bab sebelumnya. Hasil penelitian didapatkan dari pengujian yang dilakukan dengan menggunakan toolkit MarianNMT dengan model “Nematus-Style Shallow RNN”
dan validasi FLORES-101. Evaluasi terhadap hasilnya didapat dari nilai yang dihasilkan saat training dan pembandingan hasil decoding tiap model dengan
pengukuran metrik otomatis. Jelasnya dapat dilihat di Tabel 3
TABEL3
TABELSKENARIO PENGUJIAN
No Nama Pengujian
Keterangan 1 Pengujian
Skor BLEU Awal
‘bleu-detok’ dan ‘ce-mean’ dari proses training pada encoder dari MarianNMT.
2 Pengujian Skor BLEU Akhir
‘BLEU’ dan ‘SpBLEU’ dari hasil terjemahan yang diukur dengan Sacrebleu terhadap terjemahan file dev dan devtest dari FLORES-101.
Training akan berjalan terus-menerus sampai kondisi berhentinya ditemukan, yang menjadi parameternya adalah nilai dari loss dan skor ‘bleu-detok’. Dengan bantuan flags
“--early-stopping”, pelatihan akan berhenti jika saat validasi dilakukan nilai dari loss dan skor ‘bleu-detok’ tidak mengalami peningkatan lagi, untuk 𝑛-kali yang ditentukan.
Untuk ukuran standar dari MarianNMT menyarankan 5 kali stalled-score.
Validasi yang muncul tiap kelipatan 10000 argument update atau tiap gradient update, pada dasarnya menggunakan mini-batch sebagai hitungannya. Perbedaan mendasar dari mini-batch terhadap epoch adalah basis perhitungannya, dimana mini-batch mengambil perhitungan tiap update pada gradient tiap step. Proses tersebut dapat mempercepat proses training dengan ukuran besar tanpa menunggu epoch selesai diproses.
Proses training dari awal sampai akhir berlangsung selama kurang lebih 14 jam untuk satu kasus training.
Mengingat kasus training penelitian ini pada dasarnya ada dua (dengan sumber data berbeda), training akan dilakukan bergantian satu sama lain.
Logging dari proses training dan proses validasi akan tersimpan dalam posisi yang sama didalam folder ‘model’, yang mana jika dibutuhkan dapat diubah dengan menggunakan flags “--log” untuk logging proses training dan “--valid-log” untuk logging proses validasi yang terjadi.
File “valid.log” dapat digunakan untuk menampilkan informasi terkait perkembangan skor untuk tiap step validasi dilakukan, serta menunjukkan kualitas training berdasarkan grafik yang muncul dari poin angka validasi tersebut. Dalam hal ini yang menjadi poin tersebut adalah nilai “bleu-detok”. Nilai “ce-mean” menandakan bahwa training yang terjadi dilakukan untuk menurunkan nilai loss yang digunakan, yang mana memberikan tampilan akan ukuran performa pada model yang digunakan (beserta hyperparameter) dalam mengolah file korpus pada proses training-nya.
Gambar 1 Grafik perbandingan hasil training kedua sumber data dengan skor “bleu-detok”
Gambar 2 Grafik perbandingan hasil training kedua sumber data dengan skor “ce-mean-words”
Pengujian otomatis untuk proses Training yang dilakukan dalam model “Nematus-Style Shallow RNN” di MarianNMT dengan penambahan gradient update(mini- batch) konsisten yang akan logging per-1000 update.
dimulai dari gUp 1000 hingga pada step gUp 100000 menghasilkan nilai “bleu-detok” yang tinggi untuk sumber data Wikimedia dengan puncaknya pada step 50000 (32,1446), sebelum pada step berikutnya agak menurun.
Skor naik lagi pada step berikutnya (70000) dan terus bertambah dengan seiring pertambahan jumlah stepnya.
Pada sumber data kedua QED&TED memiliki angka skor lebih rendah dari sumber data sebelumnya, namun pada step 10000 ke 20000 peningkatan skor drastis terjadi (22- 27), selanjutnya bertambah terus sampai ke puncak pada step 40000 (28,5840). Setelah itu skor konsisten turun sejalan dengan pertambahan step-nya.
berdasarkan nilai “ce-mean” sebagai cost type yang mendasari loss function untuk proses training, kedua sumber data bisa dikatakan memiliki lengkung, serta titik jurang (terdalam) yang identik. Yang menjadi perbedaan hanya pada sumber data QED&TED memiliki awal step yang lebih tinggi dari sumber data Wikimedia
.
Training pada sumber data QED&TED berhenti karena nilai skor “bleu-detok” yang menurun dan nilai “ce-mean”
yang naik secara konsisten pada tiap proses validasi per- updatenya (10000). Pada sumber data Wikimedia, training berhenti karena nilai “ce-mean” yang konsisten naik tiap step. Hal tersebut menjadi trigger dari kondisi flags ‘--
early-stopping’ untuk memberhentikan training, yang diberi nilai untuk 5 kali stagnan.
Training yang terjadi memakan waktu dengan kisaran 14 jam per kasusnya, ditotalkan menjadi 28 jam untuk menyelesaikan pengujian terhadap dua sumber data di penelitian ini. Decoding terjadi dengan cepat yang hanya terjadi sepersekian detik saja.
Decoding dapat dilakukan ketika proses sebelumnya sudah terjadi, tersebutlah training dengan encoder dan penyalurannya melalui mekanisme attention untuk membentuk suatu representasi konteks 𝑐𝑖 yang dapat digunakan. Selanjutnya decoder akan melakukan beam search untuk mencari kemungkinan terbaik, yang didapat dengan melakukan softmax dari berbagai kemungkinan tiap step-nya.
Pada MarianNMT setelah file model yang sudah dilakukan training, yaitu file model dengan suffix
“.npz.best-bleu-detok.npz.decoder.yml”, decoding dapat digunakan untuk melakukan penerjemahan dengan input sumber data tertentu.
Dalam script yang digunakan target penerjemahan adalah data korpus validasi dev dan devtest dari FLORES- 101. Perhatikan bahwa filename saat input dan outputnya akan memilliki nama yang berbeda. Hasil terjemahan ini akan menjadi patokan keberhasilan dari training model yang dilakukan, dimana akan digunakan sebagai pembanding untuk evaluasi melalui skoring otomatis.
Pengujian akan dilakukan dengan modul SacreBLEU terhadap hasil terjemahan dari “marian-decoder” dengan model yang sudah dibuat sebelumnya.
Modul SacreBLEU memungkinkan penggunaan BLEU pada biasanya, dan SpBLEU. SpBLEU sebagai satuan metrik terbaru tersebut mengacu dari penggunaan korpus validasi FLORES-101, dan penggunaanya akan memberikan akurasi skoring yang lebih sebagai variasi dari skoring BLEU biasanya.
Gambar 3 Grafik perbandingan hasil terjemahan kedua sumber data dengan skor “BLEU”
0.0000 5.0000 10.0000 15.0000 20.0000 25.0000 30.0000 35.0000
10000 20000 30000 40000 50000 60000 70000 80000 90000 100000
skor
gUp bleu-detok
QED&TED Wikimedia
0.00000 0.50000 1.00000 1.50000 2.00000 2.50000 3.00000 3.50000
10000 20000 30000 40000 50000 60000 70000 80000 90000 100000
skor
gUp Cross Entropy - Mean
QED&TED Wikimedia
dev devtest
QED&TED 4.0 4.3
Wikimedia 5.2 4.7
0.0 1.0 2.0 3.0 4.0 5.0 6.0
skor
sumber terjemahan (FLORES-101) BLEU
Gambar 4 Grafik perbandingan hasil terjemahan kedua sumber data dengan skor “SpBLEU”
Pengujian terhadap hasil terjemahan yang diperoleh dari proses decoding tiap model dengan sumber data berbeda.
Pembandingan skor BLEU dilakukan dengan korpus validasi FLORES-101. Sumber data QED&TED mendapat nilai BLEU 4,0 di dev dan 4,3 di devtest, untuk SpBLEU 6,8 di dev dan 6,9 di devtest. Sumber data Wikimedia mendapat nilai rerata BLEU 5,2 di dev dan 4,7 di devtest, untuk SpBLEU 8,1 di dev dan 7,2 di devtest.
IV. KESIMPULAN
Kesimpulan dari hasil didapat berdasarkan standar korpus validasi FLORES-101 (offline) dan menggunakan model dasar “Nematus-Style Shallow RNN” pada toolkit MarianNMT, membawa proses training dan penerjemahan untuk dua kasus (Wikimedia dan QED&TED) selama 28 jam, dengan kondisi low-resource pada jumlah kalimat
<500K dan banyak kata tiap kalimat <50.
Korpus Wikimedia memiliki bentuk yang lebih cocok untuk skenario training yang digunakan dibanding korpus QED&TED, dengan memperoleh nilai yang tinggi pada pengukuran skornya untuk terjemahan file dev di korpus validasi, namun tidak untuk file devtest di korpus validasi yang menjadikan korpus Wikimedia tersebut tidak cocok digunakan untuk menerjemahkan kata dengan kombinasi kata yang tak pernah ditemukan.
Korpus QED&TED memiliki nilai yang lebih kecil dari korpus Wikimedia, menjadikannya kurang cocok digunakan untuk skenario training yang digunakan dari pembandingannya. Namun dengan perbedaan hasil skor dari terjemahan file dev dan devtest yang mendekati dan dalam posisi nilai (devtest > dev), membuat generalisasi terlihat pada korpus tersebut.
Hasil pengujian menunjukkan bahwa tiap korpus uji memiliki kekurangan dan kelebihannya masing-masing pada model uji yang digunakan.
DAFTAR PUSTAKA
[1] J. T. Collins, “Keragaman Bahasa Dan Kesepakatan Masyarakat: Pluralitas Dan Komunikasi,” Keragaman Bhs.
Dan Kesepakatan Masy. Plur. Dan Komun., vol. 1, no. 2, pp.
149–180, 2014.
[2] T. Folkman, “How To Use Deep Learning Even with Small,”
Towards Data Science, 2019.
https://towardsdatascience.com/how-to-use-deep-learning- even-with-small-data-e7f34b673987 (accessed May 29, 2022).
[3] J. P. Maheswari, “Breaking the curse of small datasets in Machine Learning: Part 1,” Towards Data Science, 2018.
https://towardsdatascience.com/breaking-the-curse-of-small- datasets-in-machine-learning-part-1-36f28b0c044d (accessed May 29, 2022).
[4] R. Alencar, “Dealing with very small datasets,” Kaggle, 2019.
https://www.kaggle.com/code/rafjaa/dealing-with-very-small- datasets/notebook (accessed May 28, 2022).
[5] E. Wdowiak, “Sicilian Translator: A Recipe for Low-Resource NMT Arba Sicula,” 2021.
[6] R. Sennrich and B. Zhang, “Revisiting Low-Resource Neural Machine Translation: A Case Study,” in Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, Jul. 2019, pp. 211–221, doi: 10.18653/v1/P19- 1021.
[7] I. Sutskever, O. Vinyals, and Q. V. Le, “Sequence to Sequence Learning with Neural Networks,” Adv. Neural Inf. Process.
Syst., vol. 4, no. January, pp. 3104–3112, Sep. 2014, doi:
10.48550/arxiv.1409.3215.
[8] D. Bahdanau, K. H. Cho, and Y. Bengio, “Neural machine translation by jointly learning to align and translate,” 3rd Int.
Conf. Learn. Represent. ICLR 2015 - Conf. Track Proc., Sep.
2015, doi: 10.48550/arxiv.1409.0473.
[9] M. Junczys-Dowmunt et al., “Marian: Fast Neural Machine Translation in C++,” ACL 2018 - 56th Annu. Meet. Assoc.
Comput. Linguist. Proc. Syst. Demonstr., pp. 116–121, Apr.
2018, doi: 10.18653/v1/p18-4020.
[10] J. Tiedemann, “Parallel data, tools and interfaces in OPUS,” in Proceedings of the 8th International Conference on Language Resources and Evaluation, LREC 2012, 2012, pp. 2214–2218, Accessed: Jun. 14, 2022. [Online]. Available:
http://opus.lingfil.uu.se/OpenSubtitles2011/wordalign/.
[11] N. Goyal et al., “The FLORES-101 Evaluation Benchmark for Low-Resource and Multilingual Machine Translation,” 2021, [Online]. Available: http://arxiv.org/abs/2106.03193.
[12] T. Kudo and J. Richardson, “SentencePiece: A simple and language independent subword tokenizer and detokenizer for neural text processing,” in EMNLP 2018 - Conference on Empirical Methods in Natural Language Processing: System Demonstrations, Proceedings, Nov. 2018, pp. 66–71, doi:
10.18653/v1/d18-2012.
[13] R. Sennrich, B. Haddow, and A. Birch, “Edinburgh Neural Machine Translation Systems for WMT 16,” in Proceedings of the First Conference on Machine Translation: Volume 2, Shared Task Papers, Aug. 2016, pp. 371–376, doi:
10.18653/v1/w16-2323.
[14] D. Bahdanau, K. H. Cho, and Y. Bengio, “Neural machine translation by jointly learning to align and translate,” 3rd Int.
Conf. Learn. Represent. ICLR 2015 - Conf. Track Proc., Sep.
2015, Accessed: Mar. 17, 2021. [Online]. Available:
http://arxiv.org/abs/1409.0473.
[15] D. Jurafsky and J. Martin, Speech and Language Processing, 3rd ed. 2022.
[16] M. Post, “A Call for Clarity in Reporting BLEU Scores,” WMT 2018 - 3rd Conf. Mach. Transl. Proc. Conf., vol. 1, pp. 186–
191, Apr. 2018, doi: 10.18653/v1/w18-6319.
dev devtest
QED&TED 6.8 6.9
Wikimedia 8.1 7.2
6 6.5 7 7.5 8 8.5
FLORES-101
sumber terjemahan (FLORES101) SpBLEU