Konten di situs ini telah diterjemahkan menggunakan kecerdasan buatan (AI) atau teknologi penerjemahan mesin, dan mungkin terdapat kesalahan.

Skip to content

Menjalankan Inferensi AI dalam Skala Besar di Cloud Hibrida

  • Bidang-bidang di mana Roblox menggunakan AI, khususnya AI generatif, telah berkembang pesat dalam beberapa tahun terakhir.  
  • Kami sedang berada di tahap akhir dari proses tiga fase untuk membangun dan mengoptimalkan infrastruktur yang diperlukan guna mendukung penggunaan alat AI pada tingkat ini. 
  • Kami membagikan langkah-langkah yang telah kami ambil untuk membangun infrastruktur cloud hybrid yang mampu mendukung inferensi ML dalam skala besar.

Pada RDC pekan lalu, kami mengumumkan proyek inkubasi AI terbaru kami: mengembangkan model dasar 3D multimodal untuk mendukung penciptaan generatif. Mendukung AI untuk platform global 3D yang selalu aktif dan imersif yang digunakan oleh jutaan orang memerlukan daya komputasi yang sangat besar. Pada awal 2023, kami mendukung kurang dari 50 pipeline inferensi ML. Saat ini, infrastruktur kami mendukung sekitar 250 pipeline tersebut. Kami mengelola puluhan ribu CPU dan lebih dari seribu GPU di dua pusat data serta infrastruktur cloud hibrid kami untuk menjalankan semua model ini. Dan kami belum selesai.

Sebelumnya, kami telah berbagi pemikiran kami tentang AI generatif untuk para kreator kami, cara kami menggunakan AI untuk menjaga keamanan pengguna di Roblox, serta bagaimana terjemahan AI membantu orang-orang di seluruh dunia berkomunikasi. Namun, itu hanyalah beberapa contoh: Dengan sekitar 250 model yang beroperasi, hampir setiap interaksi di Roblox didukung oleh AI. Saat seseorang pertama kali datang ke Roblox dan mencari pengalaman mana yang akan diikuti, AI bekerja melalui sistem rekomendasi dan pencarian kami. Dan saat orang tersebut memilih pengalaman dan menekan tombol main, algoritma pencocokan kami mengidentifikasi server terbaik untuk bergabung.

Jutaan kreator sudah memiliki akses ke kekuatan alat AI generatif kami. Dengan Assistant, mereka dapat menggunakan prompt sederhana untuk menghasilkan skrip dan tindakan guna mempercepat pembuatan pengalaman. Dengan alat Texture dan Material Generator kami, mereka dapat dengan cepat mengubah dan mengiterasi tampilan serta gaya objek. Dan kami kini memasuki era AI generatif 4D dengan peluncuran Avatar Auto Setup baru-baru ini, yang menyederhanakan proses pembuatan avatar, menghemat waktu berjam-jam bagi kreator. Per Agustus 2024, sekitar 8% dari tubuh avatar UGC yang dipublikasikan di Roblox dihasilkan menggunakan Avatar Auto Setup.

Kami kini memasuki tahap akhir dari proses tiga fase yang telah berjalan selama beberapa tahun. Perjalanan ini dimulai pada akhir 2021. Saat itu, kurangnya platform AI Roblox yang terpadu membuat tim teknik membangun platform mini mereka sendiri dan memilih kerangka kerja yang berbeda-beda. Kami melihat tim-tim mengembangkan komponen-komponen kritis, termasuk Pasar Avatar, halaman beranda, dan fitur pencarian, masing-masing membangun rekayasa fitur kustom mereka sendiri. Alih-alih memanfaatkan toko fitur terpusat, tim-tim tersebut merangkai solusi ad hoc. Selain itu, setiap tim terbebani dengan mengembangkan optimisasi mereka sendiri dan mengatasi tantangan penskalaan inferensi secara mandiri, tanpa dukungan platform inti. Pendekatan terfragmentasi ini menyoroti kebutuhan mendesak akan platform terpusat yang kohesif untuk merampingkan proses kami dan meningkatkan efisiensi secara menyeluruh.

Fase Pertama: Membangun Fondasi yang Kuat untuk ML

Kami mengadopsi Kubeflow sejak awal untuk memanfaatkan paket blok bangunan inti untuk ML, termasuk notebook, pipeline, eksperimen offline, dan penyajian model. Toko fitur masih diperlukan, jadi kami mengadopsi solusi pihak ketiga untuk memulai. Untuk membuat ML lebih mudah diakses oleh para insinyur di Roblox, kami mengembangkan roblox-ml, sebuah pustaka Python yang semakin mengurangi kerumitan dalam menerapkan model ke produksi.

Kami menggunakan Jupyter notebooks untuk menyediakan lingkungan pengembangan yang dioptimalkan untuk iterasi model, dengan server yang dikonfigurasi untuk akses data yang diperlukan dan sumber daya GPU. Menskalakan pekerjaan pelatihan atau menjalankannya secara teratur untuk melatih ulang model umumnya mengharuskan kami menulis pipeline. Perpustakaan roblox-ml kami memungkinkan insinyur untuk dengan mudah mengubah kode notebook menjadi pipeline Kubeflow dengan mengambil snapshot lingkungan runtime dan kode sumber tanpa perlu membangun gambar Docker, serta memilih sumber daya komputasi dengan prioritas, mengatur notifikasi, dan menangani otentikasi.

Model hanya efektif jika memiliki fitur yang tepat pada waktu yang tepat. Toko fitur kami menyederhanakan proses definisi fitur baru, sekaligus mendorong berbagi lebih dari 900 fitur di lebih dari 100 layanan fitur. Hal ini memungkinkan tim untuk membuat dan mengimplementasikan model baru lebih cepat seiring pertumbuhan koleksi fitur kami.

Setelah platform pipa ML kami berfungsi dan stabil, kami melihat peningkatan permintaan akan dukungan inferensi online—dengan personalisasi, pencarian, dan Marketplace memimpin tren tersebut. Meskipun kami merekomendasikan inferensi batch sebagai langkah awal menuju operasi ML yang matang, kami mengembangkan registri model dan platform penyajian kami untuk mendukung inferensi real-time. Dengan registri model kami, insinyur Roblox dapat menggunakan roblox-ml untuk mengunggah dan mengunduh model, yang diberi tag dan secara otomatis diberi versi untuk memfasilitasi pelacakan, rollback, dan pengujian A/B. Sebagai contoh, model personalisasi kami dilatih dan diterapkan setiap hari, dan kami sering menjalankan sekitar 20 pengujian A/B secara paralel. Untuk platform penyajian kami, kami menggunakan KServe dengan Triton Inference Server sebagai runtime penyajian model yang mendasarinya karena kinerjanya yang kuat, serta dukungannya terhadap berbagai kerangka kerja ML yang menggunakan baik GPU maupun CPU.

Baik beroperasi dalam mode batch maupun online, model di Roblox menjalani pengujian ekstensif sebelum dirilis. Ini mencakup eksperimen offline, pengujian bayangan, dan pengujian A/B. Setelah dirilis, model terus dipantau untuk memastikan bahwa model tersebut bekerja sesuai harapan baik secara operasional (misalnya, latensi inferensi) maupun dalam hal akurasi. Sebagai bagian dari komitmen kami terhadap keamanan dan kesopanan, moderator manusia juga mengevaluasi setiap ketidaksesuaian dalam inferensi yang dilaporkan, yang membantu memastikan bahwa kami mengambil keputusan kritis dengan benar dan membantu meningkatkan dataset pelatihan untuk model kami.

Fase Dua: Persiapan untuk Memperluas Skala Inferensi 

Pada awal 2023, kami melihat potensi besar dari AI generatif untuk mempercepat proses pembuatan konten di Roblox. Untuk memanfaatkan potensi tersebut sepenuhnya, kami menghabiskan sebagian besar tahun 2023 untuk mengoptimalkan kinerja dan efisiensi infrastruktur pelatihan dan inferensi ML kami. Berkat pengoptimalan ini, kami telah mengurangi biaya komputasi pembuatan embedding CLIP secara signifikan. Pertama, kami memperluas sistem pelatihan terdistribusi kami untuk memungkinkan pelatihan pada kumpulan data besar dan menjalankan model dengan miliaran parameter di berbagai node pekerja. 

Saat kami mulai membangun alur kerja terdistribusi, kami menyadari bahwa pengaturan inferensi offline yang ada tidak akan mendukung laju pertumbuhan yang kami lihat dalam jangka panjang. Konfigurasi awal kami dirancang untuk inferensi real-time, di mana data input dan output bersifat berurutan. Meskipun berfungsi baik untuk upaya awal kami, konfigurasi tersebut tidak dengan mudah mendukung paralelisme tugas atau pemrosesan bertahap, serta tidak cukup efisien dalam penggunaan sumber daya untuk skala yang kami butuhkan saat ini. Selain itu, insinyur diharuskan menulis logika pemotongan data dan penanganan kesalahan sendiri, yang semakin memakan waktu seiring dengan meningkatnya kebutuhan inferensi kami. 

Untuk mengatasi tantangan ini, kami menambahkan dukungan untuk Ray, sebuah kerangka kerja komputasi sumber terbuka yang memudahkan penskalaan beban kerja inferensi batch. Dengan membangun pipa tugas terdistribusi berbasis Ray untuk inferensi batch, kami dapat mengoptimalkan pemanfaatan sumber daya, memungkinkan pemrosesan bertahap, serta menyediakan paralelisme tugas yang tangguh dan toleransi kesalahan yang lebih baik. Selain itu, pustaka Ray Data memungkinkan para insinyur untuk mendefinisikan pipa dengan eksekusi streaming hanya dalam beberapa baris, yang membantu meningkatkan kecepatan dan efisiensi pengembang. Kami telah melihat peningkatan efisiensi yang luar biasa sejauh ini dengan menggunakan Ray untuk inferensi batch.

Seiring dengan terus meningkatnya kebutuhan inferensi kami, kami memindahkan semua inferensi CPU ke pusat data kami sendiri, yang memberi kami kontrol lebih langsung atas latensi dan pengaturan privasi. Kami memproses sekitar 1 miliar permintaan personalisasi setiap hari untuk 79,5 juta pengguna aktif harian kami (per 30 Juni 2024). Memindahkan beban kerja ini ke pusat data kami sendiri telah membantu kami mempertahankan efisiensi tanpa mengorbankan pengalaman pengguna. Untuk menghemat biaya inferensi, banyak sistem menyimpan permintaan dalam cache—hal ini akan menyebabkan rekomendasi yang usang karena banyak pengguna mengunjungi halaman utama Roblox beberapa kali sehari. Ini juga meningkatkan efisiensi kami, memungkinkan kami mengoptimalkan lokasi eksekusi inferensi dan mendistribusikan beban kerja untuk mengurangi sumber daya komputasi yang dibutuhkan.

Seiring dengan pertumbuhan skala, kami menyadari kebutuhan akan solusi feature store kustom yang dapat mendukung throughput tinggi, latensi rendah, dan efisiensi biaya, sekaligus memfasilitasi iterasi cepat untuk berbagai layanan. Solusi pihak ketiga yang ada tidak memenuhi persyaratan ini, sehingga kami mengembangkan feature store kustom kami sendiri, yang dibangun di atas proyek open-source Feast. Feature store kami menyediakan bahasa khusus domain (DSL) untuk mendefinisikan transformasi baik untuk fitur batch maupun streaming. Flink diadopsi sebagai mesin pemrosesan streaming untuk memfasilitasi fitur real-time, yang sangat kritis bagi model yang memerlukan informasi terbaru. Di ujung lain spektrum, terdapat fitur yang harus dihasilkan dari pemrosesan sejumlah besar aset 3D secara batch dengan menjalankan ulang mesin game Roblox dalam lingkungan terdistribusi. Toko fitur kami kini mengimpor sekitar 30 miliar catatan dan melayani sekitar 70 miliar catatan per hari dengan latensi P99 sebesar 50ms—serta mendukung lebih dari 100 layanan fitur.

Penggunaan embeddings oleh model juga tumbuh pesat, didorong oleh permintaan yang meningkat akan pemahaman semantik, baik melalui NLP, penglihatan komputer, maupun sistem rekomendasi. Hal ini mendorong kami untuk membangun basis data vektor guna menyimpan dan mengambil vektor sebagai titik berdimensi tinggi secara efisien. Basis data vektor ini memungkinkan pencarian tetangga terdekat yang cepat untuk mendukung kemampuan seperti pencarian multimodal dan deteksi pelanggaran konten.

Seiring semakin banyaknya tim yang mulai memanfaatkan model ML, kami ingin menemukan efisiensi skala dan membantu para insinyur mencapai kesuksesan lebih cepat, sehingga kami membentuk tim ground truth kami sendiri. Tim ini membantu para insinyur merancang pipeline produksi dataset mereka sendiri, melatih dan memvalidasi data menggunakan evaluator manusia, serta menghasilkan data berkualitas tinggi. Hal ini telah membantu kami menstandarkan proses pembangunan pipeline data dan validasi dataset, serta format di mana data diserahkan, dilacak, dan dipantau.

Fase Tiga: Menerapkan Inferensi Massal

Dengan diluncurkannya Roblox Assistant, kami melihat jumlah token yang diproses meningkat menjadi 1,5 miliar per minggu. Kami juga merilis fitur-fitur baru, termasuk terjemahan obrolan AI secara real-time dan model keamanan suara kami (kini bersumber terbuka), yang secara signifikan meningkatkan permintaan akan kapasitas inferensi. Kami memulai dua proyek inti untuk mempercepat pengembangan aplikasi AI: gateway ML kami, dan platform operasi model bahasa besar (LLMOps) yang didasarkan pada proyek vLLM. Bersama-sama, kedua proyek ini akan menjadi fondasi bagi ML generasi berikutnya di Roblox.

Kami membangun gerbang ML terpadu kami untuk memusatkan akses ke semua model besar, baik yang bersumber terbuka maupun yang dikembangkan secara internal, di berbagai lingkungan, termasuk CPU dan GPU di cloud dan di lokasi. Tujuan kami adalah menciptakan sistem yang efisien dan terintegrasi untuk mengelola sumber daya AI di seluruh perusahaan. Di bagian belakang, gerbang ini menyediakan antarmuka API yang seragam, opsi konfigurasi yang ramah pengguna, dan pembagian sumber daya yang efisien di antara semua model yang telah kami deploy.

Gerbang ini meningkatkan ketahanan layanan inferensi kami dengan menyediakan pembatasan terpusat berdasarkan jumlah token untuk beban kerja AI generatif dan penyeimbangan beban yang sadar latensi antar wilayah. Selain itu, gerbang ini meningkatkan keamanan dengan mengelola kunci API secara terpusat, memungkinkan pelacakan penggunaan yang komprehensif dan potensi penerapan hak akses, serta terintegrasi dengan alat pemantauan untuk meningkatkan visibilitas. Semua fitur ini akan membantu kami mengoptimalkan penggunaan model besar, mengurangi biaya, dan memberikan wawasan berharga bagi insinyur di seluruh Roblox. 

Selain itu, kami telah mengadopsi vLLM sebagai mesin inferensi utama kami untuk LLM, memanfaatkan kemampuan kinerja tinggi vLLM untuk mendukung aplikasi AI di seluruh Roblox. Sejak beralih ke vLLM, kami telah melihat peningkatan hampir 2x dalam hal latensi dan throughput, dan saat ini kami melayani sekitar 4 miliar token per minggu.

Pilihan kami terhadap vLLM sejalan dengan komitmen kami untuk memanfaatkan teknologi open-source dan mutakhir yang dapat diskalakan secara efisien guna memenuhi tuntutan basis pengguna kami yang luas dan beragam pengalaman. Roblox merupakan kontributor aktif dalam proyek open-source vLLM, memimpin pengembangan dukungan multimodal untuk vLLM, yang memungkinkan mesin ini tidak hanya menangani teks tetapi juga gambar dan potensi jenis data lainnya di masa depan. Kami juga telah menerapkan teknik decoding spekulatif untuk lebih meningkatkan kinerja inferensi, sehingga memungkinkan pemrosesan tugas bahasa yang lebih cepat dan efisien. 

Dengan ML gateway dan vLLM, kami dapat secara efisien mendukung ratusan pipeline ML yang digunakan di seluruh Roblox—dan terus meningkatkan skalabilitas inferensi seiring dengan terus meningkatnya permintaan akan fitur-fitur yang didukung AI. Dan kami belum selesai dengan pekerjaan ini. Kami memiliki rencana besar untuk masa depan AI di Roblox. Kami sedang mengerjakan alat-alat baru yang didukung AI untuk membuat proses kreasi menjadi lebih efisien, baik bagi kreator pemula maupun ahli. Seperti biasa, kami terus berupaya meningkatkan kinerja dan efisiensi infrastruktur kami guna mendukung alat-alat AI yang kami dan para kreator gunakan setiap hari. 

Komitmen Kami terhadap Open Source

Kami telah mencapai titik ini berkat beberapa proyek open-source yang sukses. Sebagian besar tumpukan teknologi kami dibangun menggunakan teknologi open-source yang disebutkan di atas.

Kami berkomitmen untuk menjadi mitra yang kuat dalam komunitas AI sumber terbuka dan berkontribusi dengan beberapa teknologi sumber terbuka kami sendiri. Baru-baru ini kami mengumumkan model sumber terbuka pertama kami—klasifikasi keamanan suara—dan saat ini kami sedang mengerjakan gerbang ML kami, dengan harapan dapat menjadikannya sumber terbuka juga. Kami percaya bahwa masa depan AI harus mencakup keterbukaan dan transparansi, dan kami sangat antusias menjadi anggota aktif dalam komunitas ini.