Lebih dari Sekadar Selfie: Bagaimana Sistem Verifikasi Usia Roblox Membantu Menjaga Keakuratan Verifikasi Usia
Sistem Pembelajaran Mesin Perilaku Modular dan Multimodal yang Mengutamakan Keselamatan

Sistem Estimasi Usia Wajah Roblox telah memproses 338 juta catatan verifikasi usia untuk membantu pengguna Roblox membuka fitur obrolan yang sesuai usia dan mengakses game yang sesuai usia di platform ini. Verifikasi usia awal memang diperlukan, tetapi jaminan usia tidak berhenti pada foto selfie. Akun dapat dibagikan atau diserahkan kepada adik yang lebih muda. Pihak yang berniat jahat dapat mencoba menguji pertahanan kami. Untuk meningkatkan jaminan usia melampaui sinyal pada titik waktu tertentu, kami membangun lapisan ML berkapasitas tinggi yang mengevaluasi apakah perilaku akun yang sedang berlangsung masih sesuai dengan perkiraan usianya dari waktu ke waktu. Desain modular tingkat fitur kami memungkinkan pembaruan model yang efisien dan adaptasi cepat terhadap pola perilaku yang berubah.
Mengoperasikan alur kerja verifikasi usia end-to-end kami secara andal merupakan tantangan sistem terdistribusi sekaligus tantangan ML. Perkiraan usia itu sendiri merupakan masalah ML yang sulit karena batas usia bukanlah batas perilaku yang tegas. Orang tua mungkin menikmati pengalaman yang sama dengan anak-anak mereka, dan bahasa bervariasi berdasarkan budaya, konteks, dan komunitas, serta usia. Tidak ada sinyal perilaku tunggal yang dapat secara andal menangkap pola perilaku yang halus yang berubah seiring waktu dan di bawah tekanan yang merugikan. Bahkan label kebenaran dasar terkuat kami berasal dari populasi terpilih dan dapat mengandung bias.
Beroperasi pada skala Roblox menambah kompleksitas tambahan. Dalam setiap siklus inferensi harian, kami mengumpulkan sinyal perilaku dari seluruh platform, menjalankan submodel pada tumpukan komputasi yang paling sesuai untuk setiap beban kerja, dan menggabungkan hasilnya menjadi satu perkiraan yang telah dikalibrasi. Model kami berkisar dari pengklasifikasi ML tradisional hingga transformer multibahasa dengan lebih dari 300 juta parameter. Sistem ini memproses hampir dua miliar catatan tingkat akun setiap hari, sementara pelatihan mengandalkan hampir 30 juta label usia dengan tingkat kepercayaan tinggi.
Membangun seluruh sistem secara internal memberi kami transparansi dan kendali yang kami butuhkan untuk meninjau semua fitur dan sinyal terkait privasi, yang merupakan persyaratan desain utama. Kami juga dapat menggunakan sinyal khusus Roblox yang menangkap bagaimana suatu akun digunakan dari waktu ke waktu—konteks longitudinal yang tidak akan dimiliki oleh estimator eksternal mandiri. Hal ini juga memberi kami kendali atas seluruh siklus hidup ML. Kami dapat menggabungkan berbagai modalitas saat tersedia, dan mengkalibrasi hasil untuk alur kerja keamanan Roblox sambil memantau, membatasi, dan memperbarui komponen individual seiring perubahan perilaku.
Memilih Sinyal yang Tepat untuk Memprediksi Usia
Kelompok usia yang berbeda menjelajahi Roblox dengan cara yang berbeda dalam hal pola bermain, komunikasi, dan interaksi platform. Untuk menangkap keragaman perilaku, kami membagi masukan kami menjadi beberapa kelompok sinyal yang berbeda:
- Konteks sosial: Pola agregat dalam lingkaran sosial pengguna, termasuk dengan siapa mereka terhubung dan seberapa sering mereka berinteraksi.
- Keterlibatan pengalaman: Pola agregat yang melampaui apa yang dimainkan pengguna, mencakup kapan mereka bermain, berapa lama mereka bertahan, dan bagaimana keterlibatan mereka berubah seiring waktu.
- Aktivitas akun dan platform: Sinyal penggunaan platform dan siklus hidup secara agregat, seperti masa aktif akun, frekuensi aktivitas, dan perilaku pada tingkat sesi.
- Pola komunikasi: Ringkasan yang dihasilkan model mengenai penggunaan bahasa yang berkorelasi dengan usia, termasuk bagaimana pola komunikasi bervariasi berdasarkan konteks dan waktu.
- Representasi pengguna yang dipelajari: Representasi tingkat tinggi yang menangkap pola penggunaan yang lebih luas. Kami bekerja sama erat dengan tim ML Discovery dan Personalisasi; representasi kaya yang sama yang memprediksi apa yang mungkin akan dilibatkan pengguna selanjutnya dapat dilatih ulang untuk memprediksi rentang usia yang lebih luas.
Setiap kelompok sinyal memiliki model yang disesuaikan dengan bentuk datanya. Sinyal agregat yang jarang dan berdimensi tinggi diolah oleh pohon keputusan yang ditingkatkan dengan gradien (misalnya, klasifikasi XGBoost); teks diolah oleh encoder transformer multibahasa yang disesuaikan (mmBERT); dan representasi pengguna menjadi masukan bagi beberapa jaringan saraf kompak (Multilayer Perceptron).
Setiap submodel memprediksi target yang sama: distribusi probabilitas atas sekumpulan rentang usia. Sebuah meta-learner berbasis gradient-boosted kemudian menggabungkan vektor-vektor probabilitas tersebut menjadi estimasi akhir yang telah dikalibrasi.

Kami sengaja memilih pendekatan fusi tingkat keputusan ini daripada satu model tingkat fitur monolitik demi modularitas, kecepatan, dan keterjelaskan. Membuat sistem ini modular memungkinkan kami untuk menambahkan, melatih ulang, atau menghentikan submodel tanpa perlu membangun ulang seluruh sistem. Hal ini juga memungkinkan kami merespons lebih cepat saat pola perilaku berubah akibat evolusi alami atau tekanan adversarial. Lapisan fusi membaca keluaran terbaru yang dipromosikan dari setiap submodel sehingga dapat menggunakan sinyal terbaik yang tersedia dan beradaptasi dengan baik ketika salah satu sinyal tidak ada atau tertunda. Karena setiap modalitas masuk sebagai masukan yang terpisah, kami dapat melacak kelompok sinyal mana yang memengaruhi perubahan keputusan, serta menerapkan kalibrasi dan gerbang kualitas sebelum keluaran digunakan di hilir.
Kami menerapkan kalibrasi pada lapisan fusi karena dalam sistem keselamatan, prediktabilitas lebih penting daripada akurasi murni. Kami mengkalibrasi model agar memberikan skor kepercayaan yang dapat diandalkan. Dengan demikian, jika suatu tindakan di hilir akan berdampak besar pada pengguna, kami dapat mensyaratkan bukti yang lebih kuat dan tingkat kepercayaan yang lebih tinggi sebelum mengambil tindakan.
Bias Seleksi pada Label
Label dengan tingkat kepercayaan tertinggi kami berasal dari pengguna yang telah menyelesaikan verifikasi usia yang ketat. Label-label ini berguna, tetapi bukan sampel acak dari pengguna Roblox. Bagi sistem yang dapat memengaruhi akses pengguna, representativitas merupakan bagian inti dari tujuan pelatihan.
Populasi yang diberi label bukanlah populasi sasaran. Pengguna yang menyelesaikan verifikasi usia yang lebih ketat secara sistematis berbeda dari populasi yang lebih luas. Model sederhana yang dilatih pada kelompok tersebut berisiko mempelajari siapa yang memilih untuk menyelesaikan proses tersebut, sama seperti mempelajari usia. Untuk mengurangi bias seleksi tersebut, kami menyesuaikan bobot data pelatihan dan evaluasi sehingga sampel yang diberi label lebih mencerminkan populasi yang ingin kami nilai.
Kami bekerja lintas fungsi dengan tim riset pengguna, menggunakan hasil survei agregat untuk menentukan populasi target yang digunakan dalam penyesuaian bobot. Dari sana, kami menggunakan teknik seperti penyesuaian bobot kecenderungan terbalik dan penyesuaian proporsional berulang—atau raking—untuk menyelaraskan sampel yang telah diberi bobot di berbagai dimensi sekaligus, alih-alih hanya mengoreksi satu faktor secara terpisah.
Tidak semua sumber yang sangat tepercaya menghasilkan contoh pelatihan yang dapat digunakan. Keandalan label bergantung pada peristiwa verifikasi di baliknya. Beberapa peristiwa mungkin mengandung sinyal yang membuatnya kurang cocok untuk pelatihan model, seperti pola verifikasi yang tidak biasa atau masalah integritas akun.
Kami berupaya membersihkan label dengan penyaringan label yang memperhatikan integritas atau pendekatan identifikasi kesalahan label seperti Confident Learning sebelum pelatihan untuk menghilangkan contoh yang tampak di luar distribusi untuk pemodelan perilaku. Eksperimen awal menunjukkan bahwa pembersihan semacam ini membantu mencegah model mengalami overfitting dan memberikan peningkatan kinerja yang konsisten.

Pelatihan, Inferensi, dan Menghindari Skew pada Skala Roblox
Inferensi perlu dijalankan cukup sering agar sinyal tetap segar, tetapi frekuensi pelatihan dapat bervariasi tergantung pada keluarga sinyal. Kami menentukan jadwal pelatihan ulang berdasarkan pergeseran fitur, stabilitas model, dan biaya model. Sinyal yang berubah atau menurun dengan cepat dapat dilatih ulang lebih sering; model yang lebih berat dengan kinerja yang berubah lebih lambat dapat dilatih ulang lebih jarang atau sesuai permintaan.
Tumpukan komputasi mengikuti bentuk beban kerja. Kami menggunakan Apache Spark untuk transformasi terstruktur berskala besar, kerangka kerja Ray untuk beban kerja yang didukung GPU, dan pekerja produksi untuk pemrosesan sinyal waktu nyata.
Pada skala Roblox, membangun kembali riwayat lengkap setiap akun setiap hari juga tidak praktis. Kerangka kerja pemrosesan data internal kami mempertahankan riwayat bergulir yang terbatas untuk sinyal bervolume tinggi dan merealisasikan transformasi yang memakan sumber daya secara bertahap. Hal ini memungkinkan kami memproses dan mengagregasi jutaan catatan tingkat akun setiap hari sambil menskalakan ekspansi besar, penggabungan data, dan agregasi fitur secara independen. Desain produksi hibrida ini memberi kami integrasi langsung dengan gudang data kami, eksekusi yang dapat direproduksi di seluruh komponen model, dan akses ke komputasi yang dipercepat di tempat yang penting.
Untuk membantu menjaga stabilitas pada skala kami, kami menerapkan dua keputusan desain yang ketat di seluruh pipa fitur kami:
- Menyimpan fitur turunan: Kami menyimpan fitur turunan, bukan aliran aktivitas mentah, jika memungkinkan. Kami menyimpan sinyal yang kami butuhkan untuk pemodelan, bukan riwayat lengkap di baliknya.
- Kontrak data terpadu: Kontrak data yang sama digunakan baik untuk pelatihan maupun inferensi. Hal ini mengurangi salah satu mode kegagalan paling umum dalam sistem ML: ketidaksesuaian antara apa yang dilatih dan apa yang disajikan.
Kami menerapkan mekanisme penyaringan di dua titik dalam siklus hidup produksi. Pertama, promosi model dipisahkan dari pelatihan model. Sebuah model kandidat harus lulus pemeriksaan pengaman sebelum memenuhi syarat untuk inferensi produksi. Jika model kandidat gagal dalam pemeriksaan pengaman, alur kerja akan memblokir promosi dan kami tetap menyajikan versi terbaru yang telah dipromosikan dan dinyatakan baik.
Kedua, keluaran inferensi disaring sebelum dipublikasikan ke hilir. Pemeriksaan otomatis mencari penurunan kualitas dan pergeseran distribusi prediksi yang signifikan. Jika pemeriksaan gagal, langkah publikasi diblokir. Dalam sistem ML yang terintegrasi dengan alur kerja keselamatan yang berhadapan langsung dengan pengguna, “tidak melakukan apa pun hari ini” seringkali merupakan mode kegagalan yang lebih aman daripada meluncurkan pergeseran distribusi yang tidak dapat dijelaskan.
Mengukur Sistem
Untuk sistem seperti ini, angka akurasi tunggal tidak terlalu bermakna. Kami mengevaluasi kualitas model berdasarkan kualitas peringkat, kalibrasi, stabilitas seiring waktu, dan perilaku di dekat batas rentang usia yang penting. Kami juga memperlakukan representativitas data evaluasi sebagai bagian dari masalah pengukuran, karena peningkatan agregat hanya berguna jika mencerminkan populasi yang seharusnya dilayani oleh sistem.
Model gabungan ini mencapai presisi rata-rata lebih dari 0,9 pada data evaluasi yang diberi bobot dan disisihkan ini. Perkiraan tingkat keyakinan tingginya juga konsisten dari hari ke hari. Lebih dari 99% tetap berada dalam rentang usia yang sama pada hari-hari berturut-turut.
Kami juga membandingkan model ini dengan data kebenaran acuan independen yang dihasilkan oleh peninjau manusia terlatih melalui alur kerja Kepercayaan dan Keamanan kami. Pada tingkat kepercayaan tinggi, perkiraan rentang usia model ini sesuai dengan label konsensus manusia untuk kategori dewasa lebih dari 80% dari waktu ke waktu.
Evaluasi offline hanyalah salah satu lapisan. Dalam produksi, perilaku pengguna berubah seiring musim, peluncuran produk, dan tekanan adversarial. Itulah sebabnya kami menggabungkan metrik evaluasi model dengan pemantauan berkelanjutan terhadap distribusi prediksi, penyimpangan, dan stabilitas sebelum hasil digunakan di tahap selanjutnya. Kami juga memantau hasil dari pemeriksaan usia lanjutan, sehingga umpan balik produksi dapat menjadi acuan keandalan model dan menunjukkan di mana ambang batas atau jalur peninjauan perlu disesuaikan.
Langkah Selanjutnya
Mengelola sistem ini secara internal memungkinkan kami memanfaatkan sinyal-sinyal khusus Roblox dengan aman, beroperasi dengan ketelitian yang sangat tinggi, dan terus melakukan iterasi.
Ke depan, kami berfokus pada pengoptimalan submodel, inferensi, dan pengukuran kami. Kami terus mengembangkan setiap lapisan sambil tetap berfokus pada prinsip-prinsip operasional kami, yaitu modularitas, kalibrasi, privasi, dan batasan operasional produksi.


