Skip to main content

Mendobrak Keterbatasan Bahasa dengan Model Terjemahan Multibahasa

February 5, 2024

by Daniel Sturman, Chief Technology Officer


Produk & Teknologi

Bayangkan saat kamu mengetahui bahwa teman Roblox baru kamu, seseorang yang chat dan bercanda denganmu di pengalaman virtual baru, sebenarnya berada di Korea — dan dia selama ini mengetik dalam bahasa Korea, sementara kamu mengetik dalam bahasa Inggris, tanpa satu pun dari kamu menyadarinya. Berkat terjemahan chat AI real time kami yang baru, kami mewujudkan sesuatu yang bahkan tidak mungkin dilakukan di dunia fisik menjadi mungkin di Roblox — memungkinkan pengguna berkomunikasi dengan lancar satu sama lain dalam berbagai bahasa yang berbeda di pengalaman virtual 3D imersif kami. Ini dapat terjadi karena model bahasa besar multibahasa (LLM) kustom, yang saat ini memungkinkan terjemahan langsung antara setiap kombinasi dari 16 bahasa yang saat ini kami dukung (15 bahasa ini dan bahasa Inggris).

Di setiap pengalaman virtual yang telah mengaktifkan layanan chat teks dalam pengalaman virtual, pengguna dari negara yang berbeda-beda sekarang dapat dimengerti oleh pengguna yang tidak berbicara dalam bahasa mereka. Jendela chat secara otomatis akan menampilkan bahasa Korea yang diterjemahkan ke dalam bahasa Inggris atau bahasa Turki yang diterjemahkan ke dalam bahasa Jerman, dan sebaliknya, sehingga setiap pengguna melihat percakapan dalam bahasa mereka sendiri. Terjemahan ini ditampilkan secara real time, dengan latensi sekitar 100 milidetik, sehingga proses terjemahan yang terjadi di balik layar hampir tidak terlihat. Menggunakan AI untuk mengotomatisasi terjemahan real-time dalam chat teks mengatasi keterbatasan bahasa dan menyatukan lebih banyak pengguna, di mana pun mereka tinggal di berbagai belahan dunia.

Membangun Model Terjemahan Terpadu

Penerjemahan AI bukanlah hal baru, sebagian besar konten dalam pengalaman virtual kami sudah secara otomatis diterjemahkan. Kami ingin lebih dari sekadar menerjemahkan konten statis dalam pengalaman virtual. Kami ingin secara otomatis menerjemahkan interaksi dan kami ingin melakukannya untuk semua 16 bahasa yang kami dukung di platform ini. Ini merupakan tujuan yang ambisius karena dua alasan: Pertama, kami tidak hanya menerjemahkan dari satu bahasa utama (yaitu, bahasa Inggris) ke bahasa lain, kami juga ingin sistem yang mampu menerjemahkan kombinasi apa pun dari 16 bahasa yang kami dukung. Kedua, terjemahan harus terjadi dengan sangat cepat. Cukup cepat untuk mendukung percakapan chat secara real time, yang bagi kami berarti mengurangi latensi menjadi sekitar 100 milidetik.

Roblox menjadi rumah bagi lebih dari 70 juta pengguna aktif harian di seluruh dunia dan terus bertambah. Pengguna berkomunikasi dan berkreasi di platform kami dalam bahasa ibu mereka — 24 jam sehari. Menerjemahkan setiap percakapan yang terjadi di lebih dari 15 juta pengalaman virtual aktif, semuanya secara real-time, tentu tidak mungkin. Memperluas terjemahan langsung ini ke jutaan orang dengan percakapan yang berbeda dalam pengalaman virtual yang berbeda secara bersamaan, memerlukan LLM dengan kecepatan dan akurasi yang luar biasa. Kami membutuhkan model yang menyadari bahasa khusus Roblox, termasuk bahasa slang dan singkatan (seperti obby, afk, atau lol). Di luar itu, model kami perlu mendukung setiap kombinasi dari 16 bahasa yang saat ini didukung oleh Roblox.

Untuk mencapai hal ini, kami bisa saja membuat model unik untuk setiap pasangan bahasa (misalnya, Jepang dan Spanyol), tetapi hal tersebut memerlukan 16×16 atau 256 model yang berbeda. Oleh karena itu, kami membangun LLM terjemahan terpadu berbasis transformator untuk menangani semua pasangan bahasa dalam satu model. Ini seperti memiliki beberapa aplikasi terjemahan, masing-masing dengan spesialisasi dalam sekelompok bahasa yang serupa, semuanya tersedia dengan satu antarmuka. Dengan adanya kalimat sumber dan bahasa target, kami dapat mengaktifkan “pakar” yang relevan untuk menghasilkan terjemahan.

Arsitektur ini memungkinkan pemanfaatan sumber daya yang lebih baik, karena setiap pakar memiliki spesialisasi yang berbeda, sehingga menghasilkan pelatihan dan inferensi yang lebih efisien dengan tanpa mengorbankan kualitas terjemahan.

Ilustrasi proses inferensi. Pesan sumber bersama dengan bahasa sumber dan bahasa target melewati Roblox Compute Cloud. Sebelum mencapai backend, kami pertama kali memeriksa cache untuk melihat apakah kami sudah memiliki terjemahan untuk permintaan ini. Jika tidak, permintaan tersebut diteruskan ke backend dan ke server model dengan dynamic batching. Kami menambahkan lapisan cache embedding antara encoder dan decoder untuk meningkatkan efisiensi saat menerjemahkan ke beberapa bahasa target.

Arsitektur ini menjadikannya jauh lebih efisien untuk melatih dan memelihara model kami karena beberapa alasan. Pertama, model kami mampu memanfaatkan kemiripan linguistik antarbahasa. Jika semua bahasa dilatih bersama, bahasa yang serupa, seperti Spanyol dan Portugis, akan mendapat manfaat dari input satu sama lain selama pelatihan, sehingga membantu meningkatkan kualitas terjemahan untuk kedua bahasa tersebut. Kami juga dapat lebih mudah menguji dan mengintegrasikan riset dan peningkatan baru dalam LLM ke dalam sistem kami saat peningkatan dirilis, untuk mendapatkan manfaat dari teknik terbaru dan terbaik yang tersedia. Kami melihat manfaat lain dari model terpadu ini saat bahasa sumber tidak diatur atau diatur dengan tidak benar, yaitu ketika model cukup akurat sehingga mampu mendeteksi bahasa sumber yang benar dan menerjemahkannya ke dalam bahasa target. Bahkan, meskipun input mengandung lebih dari satu bahasa, sistem akan tetap mampu mendeteksi dan menerjemahkan ke bahasa target. Dalam hal ini, keakuratannya mungkin tidak terlalu tinggi, tetapi pesan akhir akan cukup dapat dimengerti.

Untuk melatih model terpadu ini, kami memulai dengan melakukan pelatihan awal akan data sumber terbuka yang tersedia, data terjemahan pengalaman virtual kami sendiri, hasil terjemahan chat yang diberi label oleh manusia, serta kalimat dan frasa chat umum. Kami juga membuat metrik dan model evaluasi terjemahan kami sendiri untuk mengukur kualitas terjemahan. Sebagian besar metrik kualitas terjemahan siap pakai membandingkan hasil terjemahan AI dengan terjemahan yang benar atau terjemahan referensi dan berfokus terutama pada pemahaman terjemahan. Kami ingin menilai kualitas terjemahan tanpa adanya terjemahan yang benar.

Kami melihatnya dari berbagai aspek, termasuk keakuratan (apakah ada penambahan, penghilangan, atau kesalahan terjemahan), kelancaran (tanda baca, ejaan, dan tata bahasa), dan referensi yang salah (ketidaksesuaian dengan teks lainnya). Apakah kesalahan tersebut kritis, besar, atau kecil? Untuk menilai kualitas, kami membuat model ML dan melatihnya tentang tipe dan skor kesalahan yang diberi label oleh manusia. Kemudian kami menyempurnakan model bahasa multibahasa untuk memprediksi kesalahan dan tipe pada kata, serta menghitung skor menggunakan kriteria multidimensi. Hal ini memberi kami pemahaman komprehensif tentang kualitas dan jenis kesalahan yang terjadi. Dengan cara ini, kami dapat memperkirakan kualitas terjemahan dan mendeteksi kesalahan dengan menggunakan teks sumber dan terjemahan mesin, tanpa memerlukan terjemahan yang benar. Dengan menggunakan hasil pengukuran kualitas ini, kami dapat meningkatkan kualitas model terjemahan kami.

Dengan teks sumber dan hasil terjemahan mesin, kami dapat memperkirakan kualitas terjemahan mesin tanpa terjemahan referensi, menggunakan model estimasi kualitas terjemahan internal kami. Model ini memperkirakan kualitas dari berbagai aspek dan mengkategorikan kesalahan menjadi kesalahan kritis, besar, dan kecil.

Pasangan bahasa yang kurang umum (misalnya, bahasa Prancis ke bahasa Thailand), menjadi tantangan karena kurangnya data berkualitas tinggi. Untuk mengatasi kesenjangan ini, kami menerapkan terjemahan balik, yaitu konten diterjemahkan kembali ke bahasa aslinya, kemudian dibandingkan dengan teks sumber untuk akurasi. Selama proses pelatihan, kami menggunakan terjemahan balik berulang. Dalam proses ini, kami menggunakan perpaduan strategis antara data terjemahan balik dan data yang diawasi (diberi label) untuk memperluas jumlah data terjemahan agar model dapat mempelajari data tersebut.

Ilustrasi alur pelatihan model. Data paralel dan data terjemahan balik digunakan selama pelatihan model. Setelah model pengajar dilatih, kami menerapkan distilasi dan teknik pengoptimalan penyajian lainnya untuk mengurangi ukuran model dan meningkatkan efisiensi penyajian.

Untuk membantu model memahami bahasa slang modern, kami meminta evaluator manusia untuk menerjemahkan istilah populer dan tren untuk setiap bahasa, dan menyertakan terjemahan tersebut dalam data pelatihan kami. Kami akan terus mengulangi proses ini secara rutin agar sistem tetap up to date dengan bahasa slang terbaru.

Model terjemahan chat yang dihasilkan memiliki sekitar 1 miliar parameter. Menjalankan terjemahan melalui model sebesar ini membutuhkan banyak sumber daya untuk melayani dalam skala besar dan akan menghabiskan waktu sangat lama untuk percakapan real time, karena latensi rendah sangat penting untuk mendukung lebih dari 5.000 chat per detik. Oleh karena itu, kami menggunakan model terjemahan besar ini dengan pendekatan murid-guru untuk membuat model yang lebih kecil dan lebih ringan. Kami menerapkan distilasi, kuantisasi, kompilasi model, dan pengoptimalan penyajian lainnya untuk mengurangi ukuran model menjadi kurang dari 650 juta parameter dan meningkatkan efisiensi penyajian. Selain itu, kami memodifikasi API di balik chat teks dalam pengalaman virtual untuk mengirim pesan asli dan pesan terjemahan ke perangkat pengguna. Hal ini memungkinkan penerima untuk melihat pesan dalam bahasa aslinya atau dengan cepat beralih untuk melihat pesan asli pengirim yang tidak diterjemahkan.

Setelah LLM final siap, kami menerapkan back end untuk terhubung dengan server model. Back end ini adalah tempat kami menerapkan logika terjemahan chat tambahan dan mengintegrasikan sistem dengan sistem kepercayaan dan keamanan kami. Hal ini untuk memastikan teks terjemahan mendapat tingkat pengawasan yang sama dengan teks lainnya untuk mendeteksi dan memblokir kata atau frasa yang melanggar kebijakan kami. Keamanan dan kesopanan adalah yang terdepan dalam segala hal yang kami lakukan di Roblox, jadi ini adalah bagian yang sangat penting.

Meningkatkan Akurasi Terus-Menerus

Dalam pengujian, kami melihat bahwa sistem terjemahan baru ini mendorong keterlibatan dan kualitas sesi yang lebih baik bagi pengguna di platform kami. Berdasarkan metrik kami, model kami mengungguli API terjemahan komersial di konten Roblox, yang menunjukkan bahwa kami telah berhasil mengoptimalkan cara pengguna berkomunikasi di Roblox. Kami sangat senang melihat bagaimana hal ini meningkatkan pengalaman pengguna di platform, memungkinkan mereka bermain game, berbelanja, berkolaborasi, atau hang out dengan teman yang berbicara dalam bahasa yang berbeda.

Kemampuan pengguna untuk melakukan percakapan yang lancar dan alami dalam bahasa ibu mereka membawa kami lebih dekat ke tujuan kami untuk menghubungkan satu miliar orang dengan optimisme dan kesopanan.

Untuk lebih meningkatkan akurasi terjemahan dan menyediakan data pelatihan yang lebih baik kepada model kami, kami berencana meluncurkan fitur yang memungkinkan pengguna di platform memberikan masukan tentang terjemahan dan membantu meningkatkan sistem secara lebih cepat. Hal ini akan memungkinkan pengguna memberi tahu kami saat mereka melihat sesuatu diterjemahkan dengan salah dan bahkan dapat menyarankan terjemahan yang lebih baik yang dapat kami tambahkan ke data pelatihan untuk lebih menyempurnakan model.

Terjemahan saat ini tersedia untuk 16 bahasa yang kami dukung — namun kami masih jauh dari selesai. Kami berencana untuk terus meng-update model kami dengan contoh terjemahan terbaru dari pengalaman virtual kami serta frasa chat populer dan frasa bahasa slang terbaru dalam setiap bahasa yang kami dukung. Selain itu, arsitektur ini akan memungkinkan untuk melatih model dalam bahasa baru dengan upaya yang relatif rendah, karena tersedianya data pelatihan yang memadai untuk bahasa tersebut. Lebih jauh lagi, kami mencari cara untuk menerjemahkan segala sesuatu secara otomatis dalam berbagai dimensi: teks pada gambar, tekstur, model 3D, dll.

Kami juga telah mengeksplorasi tantangan baru yang menarik, seperti terjemahan chat suara otomatis. Bayangkan seseorang yang berbicara bahasa Prancis di Roblox dapat melakukan chat suara dengan pengguna lain yang hanya berbicara bahasa Rusia. Keduanya dapat berbicara dan memahami satu sama lain dengan nada, ritme, dan emosi suara mereka, dalam bahasa mereka sendiri, dan dengan latensi rendah. Meskipun hal ini mungkin terdengar seperti fiksi ilmiah saat ini, dan akan memerlukan waktu untuk mencapainya, kami akan terus meningkatkan penerjemahan. Dalam waktu yang tidak lama lagi, Roblox akan menjadi platform tempat pengguna dari seluruh dunia dapat berkomunikasi dengan lancar dan mudah, tidak hanya melalui chat teks, tetapi juga dengan berbagai cara!