Menerapkan ML untuk Keamanan Suara

Misi kami adalah menghubungkan satu miliar orang dengan optimisme dan kesopanan, yang akan mengharuskan kami membantu orang-orang merasa benar-benar bersatu satu sama lain. Untuk dunia imersif 3D, sama seperti di dunia fisik, sedikit hal yang lebih autentik atau berdaya daripada suara manusia dalam membangun persahabatan dan koneksi yang langgeng. Namun, bagaimana kami dapat meningkatkan tingkat imersi dan kekayaan komunikasi suara di Roblox sambil menjaga komunitas kami tetap aman dan sopan?
Dalam blog ini, kami akan berbagi bagaimana kami mewujudkan Real-time Safety, sebuah model pembelajaran mesin (ML) end-to-end—yang beroperasi pada skala jutaan menit aktivitas suara per hari—yang mendeteksi pelanggaran kebijakan dalam komunikasi suara dengan lebih akurat daripada moderasi manusia. Hasil dari sistem ini dimasukkan ke dalam model lain, yang menentukan konsekuensi yang sesuai. Model konsekuensi ini memicu pemberitahuan bagi pengguna yang melanggar kebijakan kami, awalnya berupa peringatan, dan kemudian tindakan yang lebih tegas jika perilaku tersebut berlanjut.
Sistem Real-time Safety end-to-end ini merupakan tujuan yang ambisius karena kami adalah salah satu yang pertama di industri ini dalam menghadirkan fitur keamanan suara multibahasa dan hampir real-time kepada pengguna. Klasifikasi suara bergantung pada gaya audio, termasuk volume dan nada, serta konten, termasuk kata-kata yang diucapkan. Kami sangat antusias berbagi bagaimana kami mengembangkan sistem ini dari nol—secara efektif tanpa data berlabel dan tanpa model—berkembang dari nol hingga 60 dalam keamanan suara real-time.
Dan terakhir, kami sangat antusias untuk membagikan model open-source pertama kami, yang merupakan salah satu model keamanan suara kami. Dengan membuka sumber model ini dan membuatnya tersedia untuk penggunaan komersial, kami berharap dapat menyediakan acuan industri untuk deteksi pelanggaran kebijakan yang dapat mempercepat pengembangan model ML baru untuk keamanan suara. Model open-source ini adalah versi pertama kami, dan kami telah melakukan perbaikan signifikan yang saat ini sedang kami uji.
Mengatasi Kelangkaan Data
Kami memulai upaya ML kami seperti yang dilakukan banyak perusahaan—dengan menilai kualitas data yang tersedia untuk melatih dan mengevaluasi model kami. Pasangan dataset ideal akan mencakup ucapan suara beserta kategorisasi keamanan berlabel berkualitas tinggi untuk ucapan tersebut. Namun, saat kami memulai, kami hampir tidak memiliki data dunia nyata berskala besar yang dilabeli oleh manusia. Untuk melatih model deteksi keamanan suara berkualitas tinggi menggunakan pendekatan terawasi, kami membutuhkan ribuan jam audio data berlabel untuk setiap bahasa yang kami dukung, yang akan memakan waktu bertahun-tahun untuk dikumpulkan dan akan sangat memakan sumber daya serta waktu.
Alih-alih mengandalkan ribuan jam data yang dilabeli secara manual, kami mengembangkan beberapa metode yang lebih efisien:
- Data yang dilabeli mesin untuk pelatihan. Alih-alih terjebak dalam upaya mendapatkan data yang dilabeli secara manual yang sempurna untuk pelatihan, kami memilih volume besar data pelatihan dari pelabelan mesin terhadap ucapan suara. Penggunaan data yang dilabeli mesin dalam jumlah besar dengan pengawasan lemah menghasilkan model pelatihan yang tangguh terhadap beberapa gangguan pada label. Kunci keberhasilan pendekatan ini adalah akses ke perpustakaan open-source speech-to-text yang hebat dan pengalaman bertahun-tahun menggunakan ML untuk mendeteksi pelanggaran Standar Komunitas dalam komunikasi teks pengguna. Pendekatan pelabelan mesin ini memungkinkan kami melabeli volume data pelatihan yang dibutuhkan untuk model kami dalam hitungan minggu, bukan tahun.
- Data yang dilabeli manusia untuk evaluasi. Meskipun data yang dilabeli mesin berkualitas tinggi namun tidak sempurna sudah cukup untuk melatih model berkinerja tinggi, kami tidak mempercayai label mesin untuk melakukan validasi akhir model yang dihasilkan. Pertanyaan selanjutnya adalah di mana kami dapat memperoleh cukup data yang dilabeli manusia untuk evaluasi. Beruntungnya, meskipun tidak mungkin mengumpulkan data yang dilabeli manusia yang cukup untuk pelatihan secara tepat waktu, kami dapat mengumpulkan data yang cukup untuk evaluasi model kami menggunakan moderator internal kami, yang sudah mengklasifikasikan laporan penyalahgunaan dari pengguna di Roblox untuk secara manual memberikan konsekuensi. Hal ini memungkinkan kami menikmati yang terbaik dari kedua dunia: data pelatihan yang dilabeli mesin yang cukup baik dan melimpah untuk menghasilkan model berkinerja tinggi, serta data evaluasi yang dilabeli manusia yang volumenya jauh lebih kecil namun lebih dari cukup untuk memberi kami keyakinan bahwa model tersebut benar-benar berfungsi.
Area lain di mana kami menghadapi kelangkaan data adalah pada kategori pelanggaran kebijakan dengan prevalensi sangat rendah, seperti referensi terhadap narkoba dan alkohol atau tindakan merugikan diri sendiri. Untuk mengatasi masalah ini, kami menggabungkan beberapa kategori dengan prevalensi rendah ke dalam kategori “lainnya”. Akibatnya, model akhir kami dapat mengidentifikasi kategori kata-kata kasar, perundungan, diskriminasi, kencan, dan “lainnya”. Untuk memahami kategori “lainnya” ini, sehingga kami dapat melindungi komunitas kami dengan lebih baik dan memastikan percakapan yang aman dan sopan di Roblox, kami akan terus memantau kategori ini untuk mencari contoh-contoh tambahan. Seiring waktu, subkategori dalam “lainnya” juga akan menjadi kategori yang diberi nama saat jumlah contoh pelatihan di subkategori tersebut mencapai jumlah yang cukup besar.
Pipa Pelabelan Mesin untuk Data Pelatihan
Kami merancang alur kerja pelabelan mesin yang sepenuhnya otomatis untuk mengekstrak label berkualitas tinggi dari urutan obrolan suara. Alur kerja kami terdiri dari tiga tahap:
- Pemisahan potongan audio. Tahap pertama dari alur kerja ini melibatkan pemisahan audio menjadi potongan-potongan, atau segmen yang lebih pendek, di mana pun kami mendeteksi jeda keheningan di antara kalimat. Hal ini memungkinkan kami untuk mengidentifikasi dan melabeli konten yang melanggar kebijakan dengan lebih efisien.
- Transkripsi audio. Tahap kedua dari alur kerja ini terdiri dari mentranskripsikan potongan-potongan audio tersebut menjadi teks menggunakan model pengenalan ucapan otomatis (ASR). Kami menggunakan model ASR sumber terbuka yang tersedia untuk umum.
- Klasifikasi teks. Tahap terakhir dari alur kerja ini melibatkan klasifikasi teks yang telah ditranskripsi menggunakan filter teks internal kami. Filter ini dirancang untuk mendeteksi dan memblokir konten yang tidak pantas dalam komunikasi berbasis teks. Kami menyesuaikan filter tersebut agar dapat bekerja dengan data audio yang telah ditranskripsikan, sehingga kami dapat memberi label pada potongan audio dengan kelas dan kata kunci pelanggaran kebijakan. Filter teks adalah model ensemble yang dilatih pada data teks yang melanggar kebijakan yang diberi label oleh manusia, yang terdiri dari model DistilBERT yang diperluas dan aturan ekspresi reguler.

Penting untuk dicatat bahwa pipa ini hanya digunakan untuk menghasilkan data pelatihan untuk model produksi akhir kami. Namun, Anda mungkin bertanya-tanya, mengapa harus melatih model jika sudah ada pipa di sini yang menghasilkan label yang kami cari? Jawabannya adalah efisiensi—kami harus sangat akurat, dalam waktu yang jauh lebih singkat. Pada skala Roblox, menjalankan ASR untuk mentranskripsikan semua komunikasi suara akan sangat lambat dan memakan banyak sumber daya. Namun, model ML ringkas yang dilatih dari data ini, yang dirancang khusus untuk mendeteksi pelanggaran kebijakan dalam komunikasi suara tanpa melakukan transkripsi penuh, sama akuratnya, namun jauh lebih cepat dan dapat digunakan pada skala Roblox.
Meningkatkan Skala Pipa Pelabelan Mesin
Pada sebagian besar inisiatif AI berskala besar, mekanisme untuk memperoleh data pelatihan berkualitas itu sendiri merupakan sistem ML produksi, yang perlu dibuat dari awal. Untuk proyek ini, kami perlu mengembangkan pipeline penandaan mesin kami sebagai sistem produksi utama dengan ketersediaan 24/7 dan kemampuan untuk berskala hingga ribuan CPU bersamaan atau jumlah GPU yang setara. Kami mengimplementasikan kluster data pelatihan dengan ribuan inti CPU yang secara otomatis memproses aliran audio masuk secara paralel untuk menghasilkan label mesin. Sistem ini harus berjalan tanpa hambatan untuk throughput maksimal, dan kesalahan atau downtime apa pun dapat mengakibatkan hilangnya waktu berhari-hari atau berminggu-minggu dalam pembangkitan data pelatihan.
Di bawah ini adalah gambaran umum tingkat tinggi dari arsitektur yang mendukung skala yang kami butuhkan untuk memberi label mesin pada puluhan ribu jam audio hanya dalam hitungan minggu. Hal utama yang dapat dipetik di sini adalah bahwa berinvestasi pada antrian di titik-titik kunci dalam pemrosesan kami memungkinkan kami menghilangkan hambatan dengan menskalakan utas pekerja secara horizontal di banyak mesin. Utas pekerja ini melakukan langkah-langkah pemisahan potongan audio, transkripsi audio, dan klasifikasi teks yang disebutkan di bagian sebelumnya.

Arsitektur ML
Persyaratan utama dalam pencarian model kami adalah latensi rendah, yaitu kecepatan yang mendekati waktu nyata untuk inferensi model, yang mengarahkan kami ke arsitektur yang secara langsung mengolah audio mentah dan menghasilkan skor. Kami menggunakan arsitektur berbasis Transformer, yang bekerja sangat baik untuk ringkasan urutan dan sangat sukses di industri untuk pemrosesan bahasa alami (NLP) dan pemodelan audio. Tantangan kami adalah menemukan titik optimal yang menyeimbangkan kompleksitas dengan inferensi latensi rendah—yaitu, menangani berbagai bahasa dan aksen, ketahanan terhadap kebisingan latar belakang, serta kualitas audio, sambil memenuhi batasan latensi produk kami.
Pemilihan Model
Pertanyaan desain awal adalah menentukan ukuran jendela konteks yang diperlukan untuk melatih model Transformer. Kami menganalisis histogram panjang ucapan dalam data obrolan suara selama beberapa hari penggunaan dan menentukan bahwa jendela 15 detik memberikan keseimbangan antara latensi dan konteks yang cukup untuk klasifikasi. Kami menggunakan “no-violation” sebagai kategori untuk mendeteksi tidak adanya pelanggaran kebijakan. Mengingat bahwa satu klip audio dapat mengandung berbagai jenis pelanggaran, tugas ini secara inheren menjadi multilabel daripada masalah klasifikasi multiclass konvensional. Kami menyempurnakan seluruh jaringan, termasuk lapisan kepala untuk tugas ini, dengan kerugian entropi silang biner (BCE).

Keterangan: Histogram ucapan suara dari data obrolan, menunjukkan bahwa 75 persen ucapan berdurasi kurang dari 15 detik.
Kami mengevaluasi beberapa model encoder sumber terbuka populer dari komunitas penelitian audio dan mempersempit pilihan kami ke WavLM dan Whisper. Eksperimen pertama kami adalah menyempurnakan WavLM base+ yang telah dilatih sebelumnya dengan 2.300 jam data suara berlabel mesin Roblox dan mengevaluasi hasil klasifikasi pada dua kumpulan data evaluasi dunia nyata. Kami memperoleh hasil klasifikasi yang sangat menjanjikan (lihat Evaluasi Model, di bawah), tetapi menemukan bahwa latensinya melebihi ambang batas kami untuk penerapan produksi. Sebagai tindak lanjut, kami mengimplementasikan versi kustom arsitektur WavLM dengan lapisan Transformer yang lebih sedikit dan melatih model end-to-end dari awal menggunakan 7.000 jam data suara yang dilabeli mesin dari Roblox. Model ini menghasilkan klasifikasi yang andal dalam konteks percakapan dan lebih ringkas dibandingkan dengan model yang disesuaikan. Kandidat model akhir kami menggunakan pengaturan distilasi siswa-guru, dengan encoder Whisper sebagai jaringan guru dan arsitektur end-to-end WavLM sebagai jaringan siswa. Saat kami melatihnya pada 4.000 jam audio, kami melihat akurasi klasifikasi yang serupa dengan model yang telah disempurnakan, namun dengan peningkatan latensi yang signifikan dan ukuran model yang lebih kecil. Gambar di bawah ini merangkum parameter model untuk ketiga eksperimen yang dijelaskan di atas. Kami terus mengulangi strategi pengambilan sampel data, strategi evaluasi, dan hiperparameter model saat kami memperluas model untuk klasifikasi keamanan suara multibahasa.

Ukuran dataset | Ukuran model | Latensi inferensi/detik input | Faktor waktu nyata | |
WavLM yang disesuaikan | 2300 jam | 96 juta parameter | 102 ms | 9,80 |
Dilatih secara end-to-end | 7071 jam | 52 juta parameter | 83 ms | 12,08 |
Distilasi | 4080 jam | 48 juta parameter | 50 ms | 19,95 |
Optimasi Model
Kami menggunakan metode standar industri, termasuk mengkuantisasi lapisan Transformer yang dipilih untuk mencapai peningkatan kecepatan lebih dari 25 persen tanpa mengorbankan kualitas. Mengalihkan tahap ekstraksi fitur ke input MFCC yang dikombinasikan dengan jaringan saraf konvolusional (CNN) alih-alih hanya CNN juga menghasilkan peningkatan kecepatan lebih dari 40 persen selama inferensi. Selain itu, pengenalan model deteksi aktivitas suara (VAD) sebagai langkah prapemrosesan secara signifikan meningkatkan ketahanan keseluruhan pipa kerja, terutama bagi pengguna dengan mikrofon yang berisik. VAD memungkinkan kami menyaring kebisingan dan menerapkan pipa kerja keamanan kami hanya saat mendeteksi ucapan manusia dalam audio, yang mengurangi volume inferensi secara keseluruhan sekitar 10 persen dan menyediakan masukan berkualitas lebih tinggi ke sistem kami.
Evaluasi Model
Meskipun kami menggunakan banyak dataset dan metrik yang berbeda untuk evaluasi, kami dapat membagikan bagaimana klasifikasi suara kami berkinerja pada dataset berbahasa Inggris dengan prevalensi pelanggaran kebijakan yang tinggi (seperti yang ditemukan dalam laporan penyalahgunaan suara dari pengguna). Dataset ini 100 persen dilabeli oleh moderator kami. Ketika kami menggabungkan semua jenis pelanggaran (kata-kata kasar, perundungan, kencan, dll.) ke dalam satu kategori biner, kami mengamati skor PR-AUC (area di bawah kurva presisi-pengingatan) lebih dari 0,95, seperti yang ditunjukkan di bawah ini. Ini berarti bahwa pada dataset evaluasi ini, klasifikasi biasanya dapat mendeteksi sebagian besar pelanggaran tanpa secara keliru menandai terlalu banyak non-pelanggaran.

Namun, hasil evaluasi yang kuat di atas tidak selalu dapat diterapkan secara langsung pada semua kasus penggunaan. Misalnya, dalam kasus pemberitahuan kami tentang ucapan yang melanggar kebijakan, pengklasifikasi mengevaluasi semua obrolan suara Roblox dan menemukan prevalensi pelanggaran yang lebih rendah, serta kemungkinan hasil positif palsu yang lebih besar. Dalam kasus laporan penyalahgunaan suara, pengklasifikasi hanya mengevaluasi ucapan yang telah ditandai sebagai potensi pelanggaran, sehingga prevalensinya lebih tinggi. Namun, hasil di atas cukup menggembirakan bagi kami untuk memulai eksperimen dengan pengklasifikasi dalam produksi (pada ambang batas yang 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 kerja secara cermat untuk skala besar, kami berhasil menerapkan model ini pada skala Roblox. Selama jam sibuk, model ini berhasil melayani lebih dari 2.000 permintaan per detik (kebanyakan di antaranya tidak mengandung pelanggaran). Kami juga mengamati penurunan signifikan dalam perilaku yang melanggar kebijakan di platform berkat penggunaan model ini untuk memberi tahu pengguna tentang bahasa yang melanggar kebijakan. Khususnya, sejak peluncuran awal, kami melihat penurunan 15,3 persen dalam laporan pelecehan suara tingkat parah dan penurunan 11,4 persen dalam pelanggaran per menit pembicaraan.
Kami memperluas model kami dengan data pelatihan multibahasa, yang memungkinkan kami menerapkan satu model klasifikasi di seluruh platform untuk menangani beberapa bahasa serta campuran bahasa. Kami juga menjajaki arsitektur multitask baru untuk mengidentifikasi kata kunci tertentu selain tujuan klasifikasi tanpa harus menggunakan ASR penuh. Deteksi kata kunci ini selain label pelanggaran meningkatkan kualitas klasifikasi dan memberikan kesempatan untuk memberikan konteks kepada pengguna saat memberikan konsekuensi.
Penelitian yang dijelaskan di sini merupakan upaya bersama dari banyak tim di Roblox. Ini merupakan contoh yang baik dari nilai inti kami dalam menghormati komunitas dan kolaborasi yang luar biasa lintas disiplin ilmu.


