Model Terjemahan Mesin Urutan-ke-Urutan

pembelajaran mendalam
seq2seq
terjemahan mesin
Model Terjemahan Mesin Urutan-ke-Urutan cover image

Pernahkah Anda bertanya-tanya bagaimana cara kerja terjemahan mesin? Beberapa baris kode sudah cukup untuk membuat alat yang mirip dengan Google Translate, DeepL, dll. Pada artikel ini, kami akan memandu Anda melalui proses pembuatan model terjemahan mesin sequence-to-sequence (seq2seq). Pada akhirnya, Anda akan dapat memahami cara kerjanya, dan cara memiliki model terjemahan yang dapat diterapkan.

Memahami Model Seq2Seq

Untuk memahami konsep model seq2seq, mari kita lihat contohnya. Bayangkan Anda memiliki sebuah kalimat dalam bahasa Inggris:

"How are you?"

dan Anda ingin menerjemahkannya ke Tamazight:

"Amek tettiliḍ?"

Model seq2seq terdiri dari encoder dan decoder, yang bekerja sama untuk melakukan terjemahan ini.

  1. Encoder: Encoder mengambil kalimat sumber, "Apa kabar?", dan memprosesnya kata demi kata. Ini mengkodekan informasi ke dalam vektor dengan panjang tetap yang disebut vektor konteks. Dalam contoh kita, pembuat enkode akan menganalisis setiap kata dan membuat representasi kalimat yang bermakna.

  2. Decoder: Decoder menerima vektor konteks dari encoder dan mulai membuat kalimat target, "Amek tettiliḍ?". Ia melakukannya kata demi kata, dengan mempertimbangkan vektor konteks dan kata-kata yang dihasilkan sebelumnya. Decoder belajar menghasilkan terjemahan yang benar berdasarkan pola yang ditemukannya selama pelatihan.

Seq2Seq Schema

Persiapan Data

Sekarang setelah kita memahami model seq2seq, mari kita bahas persiapan data menggunakan contoh yang sama.

Untuk melatih model terjemahan mesin, diperlukan korpus paralel, yang terdiri dari pasangan kalimat yang selaras dalam bahasa sumber (dalam kasus kami, bahasa Inggris) dan bahasa target (Tamazight). Beberapa sumber seperti Europarl, dan UN Parallel Corpus menyediakan data multibahasa dalam jumlah besar.

  1. Tokenisasi: Langkah pertama dalam persiapan data adalah tokenisasi. Kami memecah kalimat bahasa Inggris dan Tamazight menjadi token atau kata tersendiri. Misalnya kalimat bahasa Inggris “How are you?” akan diberi token menjadi ['Bagaimana', 'apakah', 'kamu', '?'], dan kalimat Tamazight "Amek tettiliḍ?" akan diberi token menjadi ['SOS', 'Amek', 'tettiliḍ', '?', 'EOS']. Kami menggunakan SOS dan EOS untuk menunjukkan awal dan akhir urutan.

  2. Pembersihan dan Normalisasi: Selanjutnya, kita melakukan pembersihan dan normalisasi pada kalimat yang diberi token. Hal ini melibatkan penghapusan karakter, tanda baca, atau simbol khusus yang tidak perlu yang mungkin menghambat proses penerjemahan. Misalnya, kita mungkin menghilangkan tanda tanya di akhir kalimat bahasa Inggris dan Tamazight untuk menyederhanakan data pelatihan.

Tergantung pada karakteristik bahasa sumber dan bahasa target, langkah-langkah pra-pemrosesan tambahan khusus bahasa mungkin diperlukan. Misalnya, dalam bahasa Prancis, kita mungkin perlu menangani karakter khusus seperti aksen atau diakritik.

  1. Pembuatan Kosakata: Kami membuat kosakata dengan mengumpulkan kata-kata unik dari kalimat sumber dan target. Setiap kata kemudian diberi indeks atau pengidentifikasi unik, menghasilkan apa yang kita sebut peta penyematan kata, yang akan digunakan selama proses pelatihan:
6: "how"
330: "are"
537: "you"

Dengan itu, contoh token kami akan terlihat seperti ini:

[6, 330, 537] # How Are You
[420, 775] # Amek tettiliḍ
  1. Sequence Padding: Untuk memastikan panjang urutan seragam, kami mengisi kalimat dengan token khusus (misalnya, "PAD", atau 0) sehingga semuanya memiliki panjang yang sama. Padding diperlukan karena jaringan saraf biasanya mengharapkan masukan dengan panjang tetap. Dengan menambahkan token padding di akhir kalimat yang lebih pendek, kami membuat urutan dengan panjang yang sama, memungkinkan pelatihan yang efisien. Panjangnya adalah jumlah kata dari kalimat masukan terpanjang.

Misalnya menerapkan padding 13 pada token masukan dan keluaran kita akan memberikan hasil sebagai berikut:

[6, 330, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # How Are You
[420, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # Amek tettiliḍ

Pelatihan Model

Setelah data disiapkan, kita dapat melanjutkan dengan melatih model terjemahan mesin kita. Kami membagi data menjadi set pelatihan dan validasi. Set pelatihan digunakan untuk memperbarui parameter model selama pelatihan, sedangkan set validasi membantu kami memantau performa model dan mencegah overfitting.

Pelatihan Jaringan Neural

Selama pelatihan, kami memberi model dengan kalimat sumber (Bahasa Inggris) sebagai masukan dan kalimat target yang sesuai (Tamazight) sebagai keluaran yang diinginkan. Model ini menghasilkan prediksi untuk kalimat target, kata demi kata, berdasarkan urutan masukan. Prediksi ini dibandingkan dengan urutan target sebenarnya menggunakan fungsi kerugian, seperti entropi silang kategoris.

Propagasi Balik dan Pembaruan Parameter

Melalui proses propagasi mundur, model menghitung gradien kerugian sehubungan dengan parameternya. Gradien ini menunjukkan arah dan besarnya pembaruan parameter yang diperlukan untuk meminimalkan kerugian. Algoritme pengoptimalan, seperti stochastic gradien descending (SGD) atau Adam, menggunakan gradien ini untuk memperbarui parameter model secara berulang, sehingga membuat prediksi menjadi lebih akurat dari waktu ke waktu.

Pelatihan Berulang

Proses pelatihan terjadi secara berulang selama beberapa periode. Di setiap periode, model menelusuri seluruh kumpulan data pelatihan, memperbarui parameternya, dan menyempurnakan pemahamannya tentang pola terjemahan. Dengan mengulangi proses ini, model menjadi semakin mahir dalam menghasilkan terjemahan yang akurat.

Validasi dan Evaluasi

Sepanjang pelatihan, kami mengevaluasi performa model secara berkala pada set validasi. Evaluasi ini membantu kami memantau kemajuan model dan melakukan penyesuaian jika diperlukan. Kita dapat menggunakan metrik seperti BLEU (Bilingual Evaluation Understudy) untuk menilai kualitas terjemahan dan membandingkannya dengan terjemahan referensi.

Penerapan

Setelah model dilatih dan dievaluasi, model siap untuk diterapkan. TensorFlow menyediakan beberapa opsi untuk menerapkan model terjemahan mesin, termasuk TensorFlow Serving, TensorFlow Lite, dan TensorFlow.js. TensorFlow Serving memungkinkan penyajian model melalui REST API, memungkinkan integrasi yang mudah dengan aplikasi lain. TensorFlow Lite memungkinkan menjalankan model pada perangkat seluler dengan sumber daya terbatas. TensorFlow.js memungkinkan penerapan di browser web, sehingga terjemahan dapat diakses oleh pengguna langsung di situs web.

Kerangka kerja web seperti FastAPI juga dapat digunakan untuk membangun REST API.

Anda juga dapat membaca artikel kami tentang cara men-deploy model machine learning Anda untuk detail selengkapnya.

Peningkatan Berkelanjutan

Membangun model terjemahan mesin adalah proses yang berulang. Memantau masukan pengguna, mengumpulkan data tambahan, dan menyempurnakan model melalui pembaruan rutin sangat penting untuk perbaikan berkelanjutan. Fleksibilitas dan skalabilitas TensorFlow memudahkan adaptasi model terhadap persyaratan yang terus berkembang dan bahasa baru.


Career Services background pattern

Layanan Karir

Contact Section background image

Mari tetap berhubungan

Code Labs Academy © 2024 Semua hak dilindungi undang-undang.