24 poin oleh GN⁺ 2025-05-14 | 2 komentar | Bagikan ke WhatsApp
  • Cara membuat sendiri asisten suara pribadi yang berjalan on-device tanpa bergantung pada API LLM dan cloud
  • Asisten ini memahami bahasa alami, menjalankan pemanggilan fungsi pribadi, dan hanya bekerja secara lokal, sehingga privasi sepenuhnya dapat dijamin
  • Untuk itu, model LLaMA 3.1 di-fine-tune dengan metode LoRA, lalu menggunakan Whisper untuk mengubah suara menjadi teks, kemudian menafsirkannya sebagai perintah dan mengeksekusinya langsung di perangkat
  • Proyek ini terdiri dari pembuatan dataset → fine-tuning → menghubungkan antarmuka suara → pengujian dan deployment, dan tersedia sebagai mini-kursus gratis 5 bagian yang membahas masing-masing tahap
  • Artikel ini mengingatkan agar tidak salah paham bahwa “menjalankan on-device = sederhana”, sambil menekankan bahwa bahkan di lingkungan lokal, pola pikir MLOps dan kontrol kualitas yang ketat tetap wajib

Mengapa sekarang perlu membuat asisten suara lokal?

  • Berbicara dengan ChatGPT memang berguna, tetapi apakah perintah sederhana pun harus dikirim ke cloud?
  • Jika model terpasang langsung di perangkat Anda, maka kecepatan, privasi, dan kendali semuanya bisa diperoleh
  • Ini sangat berguna terutama di lingkungan sensitif seperti medis, hukum, dan alat internal perusahaan

Gambaran umum arsitektur keseluruhan

Komponen proyek

  1. Pengenalan suara (Whisper) → diubah menjadi teks
  2. LLM (LLaMA 3.1) → menafsirkan perintah
  3. Eksekutor fungsi → menjalankan fungsi nyata seperti lock_screen()

Part 1: Arsitektur dan pola pikir MLOps

Mengapa MLOps tetap dibutuhkan di lingkungan lokal

  • Tetap ada masalah seperti model drift, perubahan prompt, keandalan dataset, dan kurangnya logging untuk debugging
  • Pola pikir “cukup lokal saja” itu berbahaya, sehingga diperlukan pendekatan yang sistematis

Pengembangan online vs eksekusi offline

  • Pengembangan (fine-tuning, pembuatan data) dilakukan di cloud, sedangkan eksekusi berjalan secara lokal
  • Memisahkan proses ini dengan jelas dan mengelolanya secara sistematis adalah inti dari MLOps

Pembuatan dataset (Dataset Generation Flow)

  • Bukan sekadar mengumpulkan prompt, tetapi merancang pola pemanggilan fungsi yang terstruktur dan struktur permintaan percakapan
  • Membuat dataset berkualitas tinggi yang mencakup beragam ekspresi, intent, dan kasus kegagalan

Poin penting

  • lock_screen() → mencakup berbagai ekspresi bahasa alami seperti “tolong kunci layar”
  • Melalui mesin validasi otomatis, diperiksa apakah output sesuai dengan bentuk yang diinginkan

Fine-tuning (Instruction Tuning for Function Calling)

  • Fine-tuning model kecil (metode SFT) untuk pemetaan perintah yang akurat
  • Memanfaatkan alat praktis seperti Unsloth, W&B, dan ekspor format GGUF

Tujuan

  • Mengubah LLaMA 3.1 8B menjadi model 4bit yang dapat dijalankan secara lokal
  • Mengejar optimasi ringan yang bahkan bisa menargetkan Raspberry Pi

Menghubungkan model dan eksekusi nyata

  • Mengubah input suara menjadi teks dengan Whisper
  • LLM yang sudah di-fine-tune menafsirkan perintah
  • Menghubungkannya dengan eksekutor fungsi API lokal (lock_screen(), get_battery_status() dan lain-lain)

Hasil

  • Asisten suara real-time dapat dijalankan
  • Tidak perlu jaringan, tidak ada kebocoran data pribadi, dan kendali penuh di tangan pengguna

Manajemen risiko pada tahap offline

  • Perlu pengujian di berbagai perangkat dan OS
  • Wajib membangun sistem logging (dalam bentuk opt-in dengan pengiriman manual)
  • Sebelum rilis resmi, masalah perlu dideteksi lebih awal melalui stress test dan umpan balik pengguna

Rencana ke depan

  • Pada sesi berikutnya akan dilakukan latihan membuat dataset untuk function calling
  • Akan dibangun secara terstruktur dataset khusus untuk mempelajari pemetaan perintah bahasa alami → pemanggilan API
  • Scraping dilarang, hanya menggunakan simulasi berbasis prompt dan data validasi otomatis

Kesimpulan

  • Sistem AI lokal memang sederhana, tetapi stabilitas dan kualitasnya menuntut pengelolaan pada level yang lebih tinggi
  • Karena tidak bergantung pada log cloud atau hotfix, dibutuhkan keandalan dan tanggung jawab yang lebih besar
  • Untuk itu, pola pikir MLOps dan desain yang terstruktur harus diterapkan sejak awal

> “Zaman untuk membangun asisten AI sejati yang berfokus pada privasi dan mengutamakan lokal telah tiba”
> Di bagian berikutnya, akan dimulai latihan nyata pembuatan dataset untuk pemetaan perintah-fungsi.

2 komentar

 
asheswook 2025-05-15

3.1 sulit dipakai bagi pengguna non-Inggris, dan kalau pakai 3.3 atau 4 sepertinya bahasa Korea juga bisa, tapi kalau mau dijalankan on-device, mengingat untuk bahasa selain Inggris setidaknya harus pakai 32b ke atas agar benar-benar ada gunanya, sepertinya masih sulit untuk sekarang...

 
GN⁺ 2025-05-14
Komentar Hacker News
  • Saya suka ide seperti ini dan ingin mencoba membuatnya sendiri, tetapi pengalaman saya menggunakan model-model kecil Whisper secara lokal kurang memuaskan; saya penasaran apakah ada yang berhasil mendapatkan hasil yang cukup bagus untuk kasus penggunaan seperti ini, mungkin mikrofon saya juga kurang bagus
    • Kondisi mikrofon memang perlu dicek lagi; di perusahaan kami, kami memakai Whisper untuk mentranskripsikan dan menerjemahkan seluruh rapat secara real-time, dan performanya sangat luar biasa
    • Penasaran pakai model yang mana; saya biasanya memakai model large di GPU, kecepatannya juga tinggi dan benar-benar bekerja sangat baik, tetapi perlu diperhatikan bahwa model ini hanya bisa mengenali satu bahasa dalam satu waktu; kalau tidak ditentukan, akan berjalan dengan deteksi otomatis, model-model kecil memang performanya jauh lebih terbatas dan sering kali pada dasarnya hanya mendukung bahasa Inggris, buat saya large memberikan performa terbaik, tetapi untuk mendapatkan kecepatan yang benar-benar layak dipakai, hardware GPU memang wajib, dan hal yang sama juga berlaku saat dipakai bersama faster-whisper atau insanely-fast-whisper
  • Akan sangat bagus kalau ini tersedia dalam bentuk produk atau aplikasi yang bisa langsung dipasang dan dipakai, saya ingin bisa mengatur dan melatihnya dengan mudah lewat UI, meski begitu saya sangat berterima kasih karena berkat panduan ini sepertinya saya bisa membuat apa yang saya inginkan
  • Materinya keren sekali, saya hanya ingin menyampaikan terima kasih, saya belum mengikuti semuanya sampai selesai, tetapi saya penasaran apakah model ini benar-benar berjalan dengan baik di iPhone, anak saya yang berusia 9 tahun di rumah bisa menjalankan model Qwen 0.6B dengan ollama, tetapi model-model lain terlalu lambat sehingga pengalaman penggunanya tidak layak dipakai
    • Oh, jadi yang dimaksud adalah ponsel berusia 9 tahun, saya sempat kaget karena mengira anak sekolah dasar itu yang sedang men-deploy model sendiri, waktu saya seusia itu saya bahkan masih belajar perkalian dasar
    • Menurut materi MLC, model hingga skala 8B juga bisa dijalankan di iOS, tetapi kisaran 1-3B tampaknya lebih realistis, ada referensinya: https://llm.mlc.ai/docs/deploy/ios.html#bring-your-own-model
  • Kenapa ini harus menjadi tulisan yang ditulis LLM? Saya jadi bertanya-tanya
    • Gaya ringkasan seperti ini, yaitu formatting yang kuat dan (!) semua paragraf ditampilkan sebagai bullet list, terasa sangat membingungkan, terutama untuk tulisan panjang, tampilannya jadi ramai dan datar sekaligus sehingga terasa kurang mudah dibaca
  • Baru-baru ini (mungkin saya melewatkan pengumumannya) saya menyadari bahwa Siri setidaknya bekerja secara lokal untuk sebagian perintah, misalnya kalau Apple Watch diletakkan dalam mode pesawat lalu diminta membuat timer atau pengingat
    • Siri setidaknya sudah punya kemampuan offline yang terbatas sejak iOS 15, tetapi kebanyakan pengguna tidak terlalu menyadarinya, karena sebagian besar perintah Siri tetap memerlukan koneksi jaringan
  • Saya bertanya-tanya kenapa Apple tidak menganalisis data lalu menyiapkan handler yang di-hardcode untuk kira-kira 1000 penggunaan teratas
    • Sebenarnya mereka memang sudah mengerjakan hal itu, hanya saja lajunya terlalu lambat, mereka memang menambahkan fitur terkait kecerahan dan daya, tetapi tidak memberi tahu dengan baik apa saja yang bisa dipakai secara offline, pengguna harus masuk ke mode pesawat lalu mencoba ini-itu sendiri untuk memastikannya, pengalaman penggunanya sangat buruk
  • Proyek yang keren dan rangkuman yang bagus
  • Saya penasaran apakah Apple mengizinkan Siri diganti dengan asisten lain, di Android asisten selain Google sudah lama dibatasi dalam hal background listening maupun penggunaan tombol fisik, gesture, dan shortcut, saya tidak yakin apakah Google Assistant masih mendapat perlakuan istimewa, tetapi kalau iya pun saya tidak akan terlalu terkejut
    • Sebagian masalahnya berasal dari koprosesor terpisah (AOP) yang menangani wake word “hey siri”, dan modelnya juga dikompilasi ke firmware, secara teknis ini bukan tidak mungkin, tetapi tidak bisa dilakukan hanya dengan membiarkan aplikasi Google berjalan di background, karena gesture terjadi saat AP sedang tidur, memang aplikasi asisten bisa dijalankan lewat tombol aksi di samping dan semacamnya, tetapi pengalamannya kemungkinan tidak akan memuaskan (misalnya aplikasinya mungkin belum terbuka), detailnya ada di tautan berikut: https://machinelearning.apple.com/research/hey-siri
    • Dengan action button yang baru ditambahkan, meluncurkan aplikasi asisten pengganti lewat shortcut kustom menjadi cukup mudah
    • Perplexity juga bekerja dengan cara ini
  • Selama satu setengah tahun saya sudah rajin memakai chatGPT di iPhone, saya makin tidak suka pada Siri karena terasa sangat bikin frustrasi, saya penasaran kapan OpenAI dengan bantuan Microsoft akan merilis GPT phone untuk menyaingi iPhone, saya sudah bosan dengan iPhone yang membosankan, saya butuh GPT phone yang dari lock screen bisa langsung membiarkan GPT menangani semuanya, saya benar-benar menantikannya, rasanya besar kemungkinan sedang dikembangkan diam-diam