Naia
· Luke

Dukungan Gemini 3.1 Flash Live + Tantangan MiniCPM-o 4.5 vLLM — Kisah Pengembangan AI Suara Real-time S2S Naia OS

voice-ainaia-osgemini-lives2somni-modelminicpm-ovllmsttttsllmarchitecturelessons-learned

Gemini 3.1 Flash Live Dirilis — dan Apa yang Sedang Disiapkan Nextain

Hari ini Gemini 3.1 Flash Live telah dirilis. Karena waktunya kebetulan pas, kami memutuskan untuk merilis teknologi yang sedang kami siapkan, meskipun belum sempurna. naia-os telah mendukung Gemini Live melalui akun Naia dan penyedia Google, dan kami segera menerapkan Gemini 3.1 Flash Live. Anda dapat melihatnya di video di bawah ini.

Model-model ini sebenarnya disebut S2S, atau model Omni, yang mendukung percakapan yang lebih cepat dan alami dibandingkan pipeline STT, LLM, dan TTS yang ada.

Model Percakapan Suara Real-time (S2S, model omni) yang Mirip dengan Proses Belajar Berbicara Manusia

Mode suara GPT-4o, Gemini Live, dan MiniCPM-o adalah contoh utamanya, yang merupakan model yang memungkinkan percakapan tidak hanya melalui teks, tetapi juga melalui suara, secara real-time, bahkan dengan emosi. Dalam bahasa Inggris, ini biasanya disebut Speech to Speech (S2S) atau Omni Model. Saya berpikir bahwa ini jauh lebih mirip manusia dibandingkan STT (model yang mengubah suara menjadi teks) atau TTS (model yang mengubah teks menjadi suara) yang bersifat searah. Alasan mengapa penyandang tunarungu kesulitan belajar berbicara adalah karena mereka tidak dapat mendengar ucapan mereka sendiri, sehingga mengalami kesulitan dalam proses belajar berbicara.

Oleh karena itu, saya memutuskan bahwa ini adalah masa depan model percakapan suara dan akan menjadi tren utama, sehingga saya menghapus opsi pengaturan individual STT/TTS dan mengintegrasikannya menjadi 'Model Percakapan Langsung', serta menambahkan API Gemini Live dan gpt-4o-realtime-preview. Namun, karena kedua API tersebut berbayar, untuk pengguna gratis, kami menandainya sebagai TTS Only dan menyertakan Edge dalam pilihan model percakapan, dan dengan demikian versi 0.1.2 yang terbaru (kemarin) telah dirilis. Saya juga mengintegrasikan API Gemini Live dengan akun Naia dan melakukan pengujian nyata, dan respons percakapannya sangat memuaskan dalam hal umpan balik emosi dan kecepatan respons.

Kesalahpahaman tentang Model Percakapan Suara Real-time yang Saya Kira Hanya Model STT/TTS

Namun, ada kesalahpahaman besar di sini. Saya memahami Gemini Live API sebagai model terintegrasi STT/TTS generasi berikutnya, tetapi kemudian saya menyadari bahwa ada model LLM tertentu, yaitu Gemini 2.5 Flash, yang tertanam di dalamnya, dan LLM tersebut tidak dapat diganti.

Model Percakapan Suara Real-time MiniCPM-o-4.5 yang Dapat Digunakan Secara Lokal

Alasan saya menyadari kesalahpahaman ini adalah karena Naia bertujuan untuk mendukung model lokal dalam jangkauan penggunaan pengguna, dan saya menemukannya saat mencari dan menerapkan model percakapan suara real-time yang dapat dijalankan pada kelas RTX-3090. Awalnya, kandidatnya adalah Moshi, Qwen3-Omni-30b, dan MiniCPM-o-4.5. Moshi adalah pelopor di bidang ini dalam open-source, tetapi bahasa yang didukungnya sebagian besar adalah Inggris/Prancis dan komunitasnya tidak aktif, jadi kami tidak memilihnya. Qwen3-omni-30b memiliki kinerja yang sangat baik baru-baru ini, tetapi 24GB VRAM dari satu RTX 3090 tidak cukup dan belum terverifikasi, jadi kami mengecualikannya. Akhirnya, MiniCPM-o yang dipilih. Meskipun saat ini tidak mendukung bahasa Korea, kami menilai bahwa jika ada investasi modal yang cukup, kami dapat melakukan fine-tuning tambahan untuk bahasa tersebut, dan karena audio mendukung audio referensi, kami dapat mengimplementasikan TTS sesuai keinginan pengguna.

Selain itu, karena ukurannya kecil, saya berpikir bahwa jika dijalankan bersama Qwen3-omni-30b-a3b dengan sisa VRAM dari 24GB, kinerja LLM dapat ditingkatkan secara signifikan bahkan pada kelas RTX-3090. Qwen3-omni adalah model percakapan suara real-time (model Omni) yang disebutkan sebelumnya, tetapi alasan kami tidak mengadopsinya adalah karena output suara akan rusak jika di-kuantisasi, sehingga tidak dapat dijalankan pada GPU konsumen 24GB. Namun, sebagai LLM, model terkuantisasi menunjukkan kinerja yang baik.

Jadi, kami mengunggah MiniCPM-o ke GPU lokal (RunPod RTX 3090) dan membuat server bridge Websocket untuk menghubungkannya ke aplikasi Naia. Yang kami sadari saat melakukannya adalah model tersebut tidak mengeluarkan apa yang didengarnya. Namun, di sini kami secara krusial menyadari bahwa model Qwen3-8B yang tertanamlah yang memberikan respons, dan model omni dilatih secara end-to-end sehingga tidak dapat diganti. Jadi, MiniCPM-o sebenarnya lebih cocok disebut Qwen3-8b-omni. Lebih tepatnya, untuk mendengarkan digunakan Whisper-medium, otaknya adalah Qwen3-8b, sintesis suara menggunakan CosyVoice2, dan visi menggunakan SigLip2. Model-model yang berbeda ini disambungkan dan melalui proses pelatihan ulang dengan data multimodal. Secara garis besar ini adalah fine-tuning, tetapi karena skala data multimodal sangat besar, biayanya bisa mencapai puluhan hingga ratusan miliar won. Belum lama ini, ada banyak perdebatan di Dokpamo Korea tentang apakah itu 'from scratch' atau bukan, dan sepertinya ini menunjukkan bahwa gunung yang sebenarnya harus dicapai bukan hanya 'from scratch'.

(→ Catatan Eksperimen MiniCPM-o)

Kisah Tantangan Kode Claude untuk Dukungan MiniCPM-o-4.5, vllm-omni

Namun, karena Qwen3-8b yang tertanam saja sudah sekelas GPT-4o, kami tidak bisa mengabaikannya begitu saja. Terlebih lagi, dengan adanya referensi suara dan potensi fine-tuning LLM, kami menilai ini adalah model yang harus dikejar oleh Nextain yang mengedepankan kedaulatan AI. Kami melakukan fork vllm dan mengunggahnya ke RunPod, tetapi ternyata membutuhkan VRAM sebesar 48GB. Kami menjalankannya hampir selama dua hari. Kemudian, kami baru menyadari bahwa ada proyek terpisah bernama vllm-omni, dan seseorang sudah mengerjakan MiniCPM-o-4.5. Jadi, kami berkomentar bahwa kami akan mendukung pengujian l3. (→ vllm-omni #1182) Belum ada tanggapan, dan selama menunggu, kami terus mencoba secara internal berdasarkan vllm-omni.

Kali ini, kami mendekatinya dengan sangat hati-hati. Sebelumnya, kami pernah mengunggah PR yang dibuat dengan kode Claude ke proyek open-source lain tanpa verifikasi analisis AI yang lengkap, dan kami dikritik keras. Analisis kode tidak lengkap, kami tidak mematuhi aturan komunitas, dan bahkan kami membuat sesuatu di luar cakupan proyek tersebut, jadi itu wajar. Oleh karena itu, kali ini kami mengumpulkan konteks dari perspektif upstream repositori dan melalui proses tinjauan adversarial berulang kali. Setelah itu, kami menyatakan 'clean pass', memverifikasi bahwa percakapan dapat dilakukan dengan menghubungkannya ke naia-os, dan membuat serta meninjau dokumen untuk kontribusi upstream.

Namun, RunPod mati dan ketika kami mencoba menjalankannya lagi hari ini, tidak bisa. Catatan yang tidak lengkap selama pengerjaan menghambat kami. Karena runtime tidak dapat diverifikasi, reproduksi itu sendiri tidak mungkin. Kami mencari semua catatan sesi sebelumnya, dan saat kami mencoba mereproduksi dan memperbaiki catatan lagi, kami akhirnya menemukan masalah kritis lainnya dan menghentikannya. Kami menggunakan pola tertentu dengan alasan bahwa itu baru dan bukan pola model lain dari vllm-omni, dan ketika vllm-omni diperbarui, semuanya rusak. Hasil analisis membuat kami menulis laporan sementara lagi karena kegagalan kontrol harness dan konteks, dan berdasarkan itu, kami meminta perbaikan konteks dan harness lagi, serta analisis kode berulang daripada RunPod yang mahal. ㅜㅜ

https://github.com/nextain/vllm-omni/blob/main/.agents/docs/minicpm-o-midterm-review.md

Hari ini, bertepatan dengan berita peluncuran Gemini 3.1 Flash Live, saya ingin membagikan video demo MiniCPM-o-4.5. Namun, sungguh sulit untuk berhasil dalam satu kali coba. Sekarang sudah hampir pukul 3:30 pagi. Yang terpenting, tujuan dari pekerjaan ini adalah eksperimen untuk mewujudkan ekosistem Open-source AI-native, untuk memungkinkan AI berkontribusi dengan benar pada open-source tanpa 'ai slop'. Saya pikir situasinya akan sedikit lebih mudah minggu depan karena kami akan meminjam beberapa kartu grafis.

Selanjutnya, jika ada pekerjaan tambahan, saya akan membagikan apakah referensi audio atau fine-tuning LLM juga dapat dilakukan.


Referensi

Popular Posts

CC BY-NC-SA 4.0This post is licensed under CC BY-NC-SA 4.0.

Komentar

Anda dapat berkomentar tanpa masuk

...