Menerapkan ML untuk Keamanan Suara

Misi kami adalah menghubungkan satu miliar orang dengan optimisme dan kesopanan, yang mengharuskan kami membantu membuat orang merasa benar-benar terhubung satu sama lain. Seperti halnya di dunia nyata, di dunia imersif 3D, sedikit hal yang lebih autentik atau lebih ampuh daripada suara manusia untuk menjalin persahabatan dan hubungan yang abadi. Tetapi bagaimana cara memperluas komunikasi suara yang imersif dan kaya di Roblox sambil menjaga keamanan dan kesopanan komunitas kita?

Di blog ini, kami akan membagikan informasi tentang cara kami mewujudkan Keamanan Real-time, yaitu model pembelajaran mesin atau machine learning (ML) komprehensif yang mampu beroperasi pada skala jutaan menit aktivitas suara per hari dan mampu mendeteksi pelanggaran kebijakan dalam komunikasi suara secara lebih akurat daripada moderasi oleh manusia. Output dari sistem ini dimasukkan ke dalam model lain, yang menentukan konsekuensi yang sesuai. Model konsekuensi memicu notifikasi bagi orang yang melanggar kebijakan, awalnya dengan peringatan dan kemudian dengan tindakan yang lebih drastis jika perilaku tersebut berlanjut.

Sistem Keamanan Real-time komprehensif ini merupakan tujuan yang berani karena kami adalah salah satu yang pertama di industri ini yang memberikan fitur keamanan suara multibahasa dan nyaris real-time kepada pengguna. Klasifikasi suara bergantung pada gaya audio, termasuk volume dan nada, dan konten, termasuk kata-kata yang diucapkan. Kami sangat antusias untuk membagikan cara kami mengembangkan sistem ini yang dari sebelumnya tanpa otomatisasi (tanpa data berlabel dan tanpa mode) dari nol hingga 60 untuk keamanan suara real time.

Kami juga sangat antusias untuk membagikan model open-source pertama kami, yang merupakan salah satu model keamanan suara kami. Dengan menjadikan model ini open-source dan tersedia untuk penggunaan komersial, kami berharap dapat memberikan dasar industri untuk deteksi pelanggaran kebijakan yang dapat mempercepat pengembangan model ML yang lebih baru untuk keamanan suara. Model open-source ini adalah versi pertama kami, dan sejak saat itu kami telah melakukan perbaikan signifikan yang saat ini sedang kami uji coba.

Mengatasi Kelangkaan Data

Kami memulai upaya ML kami seperti yang dilakukan oleh banyak perusahaan lainnya, yaitu dengan menilai kualitas data yang tersedia untuk pelatihan dan mengevaluasi model kami. Pasangan dataset yang ideal akan mencakup ucapan suara dan kategorisasi keamanan berlabel berkualitas tinggi untuk ucapan tersebut. Namun, ketika kami memulai, kami hampir tidak memiliki data dunia nyata berskala besar yang diberi label oleh manusia. Untuk melatih model deteksi keamanan suara berkualitas tinggi menggunakan pendekatan yang diawasi, kami membutuhkan ribuan jam audio data berlabel untuk setiap bahasa yang kami dukung, yang akan memakan waktu bertahun-tahun untuk mengumpulkannya dan sangat menguras sumber daya dan waktu.

Tanpa mengandalkan ribuan jam data yang diberi label secara manual, kami mengembangkan beberapa metode yang lebih efisien:

  • Data yang diberi label oleh mesin untuk pelatihan. Agar tidak terjebak dalam upaya untuk mengumpulkan data yang diberi label secara manual yang sempurna untuk pelatihan, kami memilih data pelatihan dalam jumlah besar dari pelabelan ucapan suara oleh mesin. Dengan menggunakan data yang diberi label oleh mesin dalam skala besar dan sedikit pengawasan, kami menghasilkan model pelatihan yang tangguh menghadapi gangguan pada label. Kunci untuk mencapai keberhasilan pendekatan ini adalah akses ke kumpulan data ucapan-ke-teks open-source yang bagus dan pengalaman bertahun-tahun menggunakan ML untuk mendeteksi pelanggaran Standar Komunitas dalam komunikasi dalam bentuk tertulis. Pendekatan pelabelan oleh mesin ini memungkinkan kami melabeli volume data pelatihan yang kami butuhkan untuk model kami hanya dalam hitungan minggu, bukan tahun.

  • Data yang diberi label oleh manusia untuk evaluasi. Meskipun data hasil pelabelan oleh mesin yang berkualitas tinggi tetapi tidak sempurna sudah cukup baik untuk melatih model yang berkinerja tinggi, kami tidak sepenuhnya memercayai label mesin untuk melakukan validasi akhir model yang dihasilkan. Pertanyaan selanjutnya adalah di mana kami bisa mendapatkan data hasil pelabelan oleh manusia yang memadai untuk evaluasi. Untungnya, meskipun kami tidak mungkin mengumpulkan data hasil pelabelan oleh manusia yang memadai untuk pelatihan secara tepat waktu, kami dapat mengumpulkan cukup data untuk evaluasi model kami dengan menggunakan moderator internal, yang telah mengklasifikasikan laporan penyalahgunaan dari orang-orang di Roblox untuk memutuskan konsekuensi secara manual. Hal ini memungkinkan kami memetik manfaat terbaik dari keduanya: data pelatihan hasil pelabelan oleh mesin yang bagus dan cukup banyak untuk menghasilkan model yang berkinerja tinggi, dan data evaluasi hasil pelabelan oleh manusia yang volumenya jauh lebih kecil tetapi lebih dari cukup untuk meyakinkan kami bahwa model tersebut benar-benar berfungsi.

Bidang lain yang menghadapi kelangkaan data adalah kategori pelanggaran kebijakan di mana kami memiliki prevalensi yang sangat rendah, seperti referensi tentang narkoba dan alkohol atau perbuatan membahayakan diri sendiri. Untuk mengatasi masalah ini, kami menggabungkan beberapa kategori prevalensi rendah ke dalam kategori “lain-lain”. Hasilnya, model akhir kami dapat mengidentifikasi kategori kata-kata tidak senonoh, perundungan, diskriminasi, kencan, dan “lain-lain”. Untuk memahami kategori “lain-lain” ini, agar kami dapat melindungi komunitas kami dengan lebih baik dan memastikan percakapan yang aman dan sopan di Roblox, kami akan terus memantaunya untuk mengumpulkan contoh lain. Seiring waktu, subkategori di bawah kategori “lain-lain” juga akan menjadi kategori tersendiri ketika contoh pelatihan di dalamnya mencapai jumlah yang diperlukan.

Alur Proses Pelabelan oleh Mesin untuk Data Pelatihan

Kami merancang alur proses pelabelan oleh mesin yang sepenuhnya otomatis untuk mengekstrak label berkualitas tinggi dari rangkaian chat suara. Proses kami terdiri dari tiga tahap:

  1. Pemisahan potongan audio. Tahap pertama dalam proses ini melibatkan pemisahan audio menjadi potongan, atau segmen yang lebih pendek, berdasarkan deteksi periode hening di antara kalimat. Hal ini memungkinkan kami mengidentifikasi dan memberi label pada konten yang melanggar kebijakan dengan lebih efisien.

  2. Transkripsi audio. Tahap kedua dalam proses ini adalah membuat transkripsi potongan audio tersebut berupa teks menggunakan model pengenalan ucapan otomatis (ASR). Kami menggunakan model ASR open source yang tersedia untuk umum.

  3. Klasifikasi teks. Tahap akhir dalam proses ini melibatkan klasifikasi teks hasil transkripsi menggunakan filter teks internal kami. Filter ini dirancang untuk mendeteksi dan memblokir konten yang tidak pantas dalam komunikasi berbasis teks. Kami mengadaptasi filter untuk menangani data audio yang hasil transkripsi, sehingga memungkinkan kami melabeli potongan audio dengan kelas pelanggaran kebijakan dan kata kunci. Filter teks tersebut merupakan model gabungan yang dilatih dengan data teks yang melanggar kebijakan yang diberi label oleh manusia, yang terdiri dari model DistilBERT yang diperluas dan aturan ekspresi reguler.

Perlu diingat bahwa proses ini hanya digunakan untuk menghasilkan data pelatihan untuk model produksi utama kami. Namun, pertanyaan mungkin muncul, mengapa repot-repot melatih model jika sudah ada proses yang menghasilkan label yang dicari? Jawabannya adalah efisiensi. Kami harus sangat akurat, dalam waktu yang jauh lebih singkat. Pada skala Roblox, penggunaan ASR untuk mentranskripsi seluruh komunikasi suara akan memakan waktu dan sumber daya sangat banyak. Namun, model ML yang lebih ringkas, yang dilatih menggunakan data ini dan dirancang khusus untuk mendeteksi pelanggaran kebijakan dalam komunikasi suara tanpa perlu transkripsi penuh, sama-sama akurat sekaligus jauh lebih cepat dan dapat diterapkan pada skala Roblox.

Memperluas Skala Alur Proses Pelabelan oleh Mesin

Pada sebagian besar inisiatif AI berskala besar, mekanisme untuk memperoleh data pelatihan berkualitas merupakan sistem ML produksi tersendiri, yang harus dibuat dari awal. Untuk proyek ini, kami mengembangkan proses pelabelan oleh mesin sebagai sistem produksi terbaik dengan waktu operasional 24/7 dan kemampuan untuk menangani hingga ribuan CPU secara serentak atau jumlah GPU yang setara. Kami menggunakan klaster data pelatihan dengan ribuan inti CPU yang secara otomatis memproses aliran audio yang masuk secara paralel untuk menghasilkan label mesin. Sistem ini harus berfungsi dengan sempurna untuk mencapai hasil maksimal, karena setiap kesalahan atau gangguan dapat mengorbankan waktu berhari-hari atau bahkan berminggu-minggu dalam proses pembuatan data pelatihan.

Di bawah ini adalah gambaran umum arsitektur yang mendukung skala yang kami butuhkan untuk melabeli puluhan ribu jam audio hanya dalam hitungan minggu. Hal utama yang dapat disimpulkan di sini adalah bahwa penerapan sistem antrean pada titik-titik penting dalam pemrosesan memungkinkan kami menghilangkan hambatan dengan penskalaan segmen pekerja secara horizontal di berbagai mesin. Segmen pekerja ini melakukan pemisahan potongan audio, transkripsi audio, dan langkah-langkah klasifikasi teks yang disebutkan di bagian sebelumnya.

Arsitektur ML

Persyaratan utama untuk pencarian model kami adalah latensi rendah, yaitu inferensi model yang kecepatannya mendekati real-time, yang mengarah pada arsitektur yang langsung beroperasi pada audio mentah dan menghasilkan skor. Kami mengadopsi arsitektur berbasis Transformer, yang terbukti sangat efektif untuk merangkum urutan data dan telah sukses besar di industri ini, terutama dalam pemrosesan bahasa alami (NLP) dan modeling audio. Tantangan kami adalah menemukan titik ideal yang menyeimbangkan kompleksitas dengan inferensi latensi rendah, yaitu mampu menangani berbagai bahasa dan aksen, ketahanan terhadap kebisingan latar belakang, serta kualitas audio, sambil tetap memenuhi constraint latensi produk kami.

Pemilihan Model

Pertanyaan desain yang langsung muncul adalah tentang penentuan ukuran jendela konteks yang diperlukan untuk melatih model Transformer. Kami melihat histogram panjang ujaran dalam data chat suara selama beberapa hari penggunaan dan menyimpulkan bahwa rentang waktu 15 detik menyeimbangkan latensi dan konteks yang memadai yang diperlukan untuk klasifikasi. Kami menggunakan “tanpa pelanggaran” sebagai kategori untuk mendeteksi tidak adanya pelanggaran kebijakan. Karena satu klip audio bisa mengandung beberapa jenis pelanggaran, tugas ini otomatis menjadi masalah multilabel, bukan masalah klasifikasi multikelas biasa. Kami menyempurnakan seluruh jaringan, termasuk lapisan kepala untuk tugas ini, dengan kerugian lintas entropi biner (BCE).

Keterangan: Histogram durasi ujaran suara dari data chat menunjukkan bahwa 75 persen ujaran berdurasi kurang dari 15 detik.

Kami mengevaluasi beberapa model enkoder open source populer dari komunitas penelitian audio dan mempersempit pilihan kami ke WavLM dan Whisper. Percobaan pertama kami adalah menyempurnakan WavLM Base+ yang telah dilatih sebelumnya menggunakan 2.300 jam data suara Roblox yang diberi label oleh mesin, dan kemudian mengevaluasi hasil klasifikasi pada dua set data evaluasi dunia nyata. Kami memperoleh hasil klasifikasi yang sangat menggembirakan (lihat Evaluasi Model, di bawah), namun ternyata latensi lebih besar dari ambang batas untuk deployment ke produksi. Sebagai tindak lanjut, kami menerapkan versi kustom arsitektur WavLM dengan lapisan Transformer yang lebih sedikit dan melatih model komprehensif dari awal pada 7.000 jam data suara yang diberi label oleh mesin Roblox. Model ini menghasilkan klasifikasi yang tangguh dalam konteks percakapan dan lebih ringkas dibandingkan dengan model yang telah disempurnakan. Kandidat model akhir kami menggunakan pengaturan distilasi siswa-guru, dengan encoder Whisper sebagai jaringan guru dan arsitektur komprehensif WavLM sebagai jaringan siswa. Ketika kami melatihnya pada 4.000 jam audio, kami melihat akurasi klasifikasi yang mirip dengan model yang telah disempurnakan tetapi dengan peningkatan latensi yang besar dan ukuran model yang lebih kecil. Gambar di bawah ini merangkum parameter model untuk tiga eksperimen yang dijelaskan di atas. Kami terus mengulangi strategi pengambilan sampel data, strategi evaluasi, dan hiperparameter model untuk memperluas model klasifikasi keamanan suara multibahasa.



Ukuran dataset

Ukuran model

Latensi inferensi/ detik input

Faktor real time

WavLM yang disempurnakan

2.300 jam

96 juta parameter

102 milidetik

9.80

Terlatih Komprehensif

7.071 jam

52 juta parameter

83 milidetik

12.08

Terdisitilasi

4.080 jam

48 juta parameter

50 milidetik

19.95



Optimalisasi Model

Kami menggunakan metode industri standar, termasuk mengukur lapisan Transformer terpilih untuk mencapai percepatan lebih dari 25 persen tanpa mengorbankan kualitas. Mengalihkan tahap ekstraksi fitur ke input MFCC yang dikombinasikan dengan jaringan saraf konvolusional (CNN), bukan hanya CNN, juga menghasilkan percepatan lebih dari 40 persen selama inferensi. Selain itu, dengan memperkenalkan model deteksi aktivitas suara (VAD) sebagai langkah pra-pemrosesan, ketangguhan keseluruhan alur proses meningkat secara signifikan, khususnya bagi pengguna dengan mikrofon yang bising. VAD memungkinkan kami memfilter kebisingan dan menerapkan alur proses keamanan hanya ketika kami mendeteksi ucapan manusia dalam audio, yang mengurangi volume inferensi keseluruhan sekitar 10 persen dan memberikan input berkualitas lebih tinggi ke sistem kami.

Evaluasi Model

Meskipun kami menggunakan berbagai dataset dan metrik untuk evaluasi, kami dapat menyampaikan performa pengklasifikasi suara kami pada dataset berbahasa Inggris dengan prevalensi pelanggaran kebijakan yang tinggi (seperti apa yang kami temukan dalam laporan penyalahgunaan suara dari pengguna). Dataset ini 100 persen diberi label oleh moderator kami. Ketika kami menggabungkan semua jenis pelanggaran (kata-kata tidak senonoh, perundungan, kencan, dll.) ke dalam satu kategori biner, kami mengamati skor PR-AUC (area di bawah kurva presisi-recall) lebih dari 0,95, seperti yang ditunjukkan di bawah ini. Ini berarti bahwa pada dataset evaluasi ini, pengklasifikasi biasanya dapat menangkap sebagian besar pelanggaran tanpa salah menandai terlalu banyak non-pelanggaran.

Namun, hasil evaluasi yang kuat di atas belum tentu dapat langsung diterapkan pada semua kasus penggunaan. Misalnya, dalam kasus notifikasi kami tentang ucapan yang melanggar kebijakan, pengklasifikasi mengevaluasi semua chat suara Roblox dan menemukan prevalensi pelanggaran yang lebih rendah, dan ada peluang lebih besar terdapat hasil positif palsu. Dalam kasus laporan penyalahgunaan suara, pengklasifikasi hanya mengevaluasi ucapan yang telah ditandai sebagai potensi pelanggaran, sehingga prevalensinya lebih tinggi. Namun, hasil di atas cukup menjanjikan untuk memulai eksperimen dengan pengklasifikasi dalam produksi (pada ambang batas konservatif) untuk memberi tahu pengguna tentang bahasa mereka yang melanggar kebijakan. Hasil eksperimen ini jauh melampaui harapan kami.

Apa Selanjutnya?

Dengan memanfaatkan infrastruktur CPU kami sendiri dan merancang alur proses untuk skala besar dengan hati-hati, kami berhasil menerapkan model ini pada skala Roblox. Selama jam sibuk, model ini berhasil melayani lebih dari 2.000 permintaan per detik (yang sebagian besar tidak mengandung pelanggaran). Kami juga telah mengamati penurunan yang signifikan dalam perilaku yang melanggar kebijakan di platform karena penggunaan model untuk memberi tahu orang-orang tentang bahasa yang melanggar kebijakan. Secara khusus, dari peluncuran awal, kami melihat penurunan 15,3 persen dalam laporan penyalahgunaan suara tingkat berat dan penurunan 11,4 persen dalam pelanggaran per menit ucapan.

Kami memperluas model kami dengan data pelatihan multibahasa, yang memungkinkan kami menerapkan model klasifikasi tunggal di seluruh platform untuk menangani beberapa bahasa serta campuran bahasa. Kami juga mengeksplorasi arsitektur multitugas baru untuk mengidentifikasi kata kunci tertentu selain tujuan klasifikasi tanpa menggunakan ASR penuh. Deteksi kata kunci ini, selain label pelanggaran, meningkatkan kualitas klasifikasi dan menjadi kesempatan untuk memberikan konteks kepada orang-orang saat konsekuensi dijatuhkan.

Penelitian yang dijelaskan di sini merupakan upaya bersama yang dilakukan oleh seluruh tim di Roblox. Ini adalah wujud nyata nilai utama kami dalam menghargai komunitas dan kolaborasi yang luar biasa di berbagai disiplin ilmu.