Gemma 3 pada perangkat seluler dan web dengan Google AI Edge

MAR 12, 2025
Marissa Ikonomidis Staff Software Engineer
T.J. Alumbaugh Software Engineer
Mark Sherwood Senior Product Manager
Cormac Brick Principal Engineer

Gemma 3 1B adalah ukuran model baru dalam rangkaian model open weight Gemma yang benar-benar membuka kemungkinan untuk mendistribusikan model bahasa kecil (SLM) dalam aplikasi di seluler dan web. Ketika menerapkan SLM dalam setelan produksi, model harus cukup kecil untuk didownload dengan cepat, berjalan cukup cepat untuk menarik perhatian pengguna, dan mendukung berbagai perangkat pengguna akhir.

Berukuran hanya 529MB, Gemma 3 1B dapat berjalan hingga 2585 tok/detik saat prefill melalui inferensi LLM Google AI Edge, sehingga bisa memproses satu halaman konten dalam waktu kurang dari satu detik. Dengan menyertakan Gemma 3 1B dalam aplikasi, Anda dapat menggunakan bahasa natural untuk menjalankan aplikasi Anda atau menghasilkan konten dari data atau konteks dalam aplikasi, semuanya bisa dikustomisasi dan disesuaikan dengan baik.

Dalam postingan ini, kami akan memandu Anda mempelajari beberapa contoh kasus penggunaan Gemma 3 dalam aplikasi Anda, cara memulai Gemma di Android, mendalami beberapa metrik performa, dan menjelaskan bagaimana semua ini bisa dicapai.

Mengubah data aplikasi menjadi konten yang dipersonalisasi di Android menggunakan Gemma 3 1B

Apa yang Bisa Saya Lakukan Dengan Gemma 3 di Aplikasi Saya?

Dengan model Gemma 3 1B yang sepenuhnya terpasang di perangkat, Anda bisa memanfaatkan keuntungan AI Edge:

  1. Ketersediaan Offline: Memungkinkan aplikasi Anda bekerja secara maksimal ketika Wi-Fi atau data seluler tidak tersedia.

2. Biaya: Tanpa tagihan cloud, aktifkan aplikasi gratis atau freemium.

3. Latensi: Beberapa fitur harus lebih cepat daripada yang dimungkinkan oleh panggilan server.

4. Privasi: Menghadirkan kecerdasan untuk data yang tidak dapat meninggalkan perangkat atau terenkripsi secara menyeluruh.


Gemma 1B sangat serbaguna dan bahkan bisa disesuaikan untuk domain dan kasus penggunaan Anda sendiri. Berikut adalah beberapa kasus penggunaan favorit kami untuk Gemma 1B:

  1. Sulih Teks Data: Ubah data aplikasi Anda menjadi deskripsi yang menarik dan dapat dibagikan, misalnya, Data Tidur -> “Anda tidur nyenyak selama 7 jam, tetapi Anda terbangun 5 kali antara jam 2 dan 4 pagi”.

2. Dialog Dalam Game: Buat dialog NPC berdasarkan status game terkini.

3. Balasan Cerdas: Berikan respons saran cerdas yang sesuai dengan konteks percakapan kepada pengguna saat berkirim pesan.

4. Dokumen Q&A: Gunakan Gemma 3 bersama dengan AI Edge RAG SDK baru kami untuk menyerap dokumen yang panjang dan menjawab pertanyaan pengguna.


Memulai

Langkah 1: Muat aplikasi Demo

Download aplikasi demo siap pakai Google AI Edge dari GitHub dan dorong ke perangkat Android lokal Anda. Untuk performa terbaik dengan Gemma 3 1B, kami sarankan perangkat dengan memori minimal 4GB.

$ wget https://github.com/google-ai-edge/mediapipe-samples/releases/download/v0.1.3/llm_inference_v0.1.3-debug.apk
$ adb install llm_inference_v0.1.3-debug.apk

Atau, Anda bisa mengikuti petunjuk kami untuk membangun aplikasi dari sumbernya.


Langkah 2: Pilih CPU atau GPU

File model Gemma 3 menawarkan fleksibilitas deployment yang luar biasa, berjalan dengan mulus di CPU atau GPU perangkat seluler Anda. Anda bisa memilih untuk menjalankan Gemma 3 di CPU atau GPU saat pertama kali memulai aplikasi, atau beralih antara model dan backend dengan kembali ke dialog pemilihan model.


Langkah 3: Download Model dari Hugging Face

Pada layar pemilihan model di aplikasi demo, pilih model Anda. Aplikasi akan mengarahkan Anda ke Hugging Face untuk login dan menerima ketentuan penggunaan Gemma. Gemma 3 1B, dikuantisasi pada int4, akan didownload langsung dari organisasi komunitas LiteRT HuggingFace, dan kemudian akan dioptimalkan satu kali untuk dijalankan pada perangkat Anda (tetapi ini hanya membutuhkan waktu beberapa detik!).


Langkah 4: Jalankan Model

Sekarang saatnya menjalankan Gemma 3! Di balik layar, Gemma 3 didukung oleh LLM Inference API Google AI Edge, yang dirancang untuk pemrosesan di perangkat secara efisien.

Anda bisa berinteraksi dengan model dengan melakukan chat dengannya. Atau, Anda bisa memberinya tugas pemrosesan teks lainnya. Sebagai contoh, coba lakukan hal berikut ini:

  • Salin beberapa paragraf dari postingan blog (seperti ini) atau artikel.

  • Beralihlah ke aplikasi Demo LLM.

  • Tempel teks yang disalin ke dalam kotak input.

  • Ketik "Buat postingan media sosial untuk konten ini. Buatlah singkat dan menarik. Kurang dari 50 kata" dan tekan enter.

Langkah 5: Sesuaikan Gemma 3 (opsional)

Salah satu hal yang menakjubkan tentang rangkaian model open weight Gemma adalah versi yang telah disempurnakan yang dibuat oleh komunitas modeling. Ikuti Colab ini untuk mengetahui bagaimana Anda bisa menggunakan data Anda sendiri untuk membuat versi Gemma 3 1B Anda sendiri, mengkuantisasinya, dan menjalankannya di perangkat seluler (CPU dan GPU) dalam aplikasi Anda sendiri!


Performa

Buat konten media sosial secara lokal di dalam browser menggunakan Gemma 3 1B

Demo dan pengukuran di sini adalah untuk model Gemma 3 1B dengan parameter int4 yang dikuantisasi melalui quantized-aware training (QAT) yang memberikan penghematan penyimpanan yang signifikan dan peningkatan throughput dekode. Model Gemma 3 yang ditolok ukur mendukung beberapa panjang prefill yaitu 32, 128, 512, dan 1024 serta menggunakan panjang konteks 2048.

Measurements were taken on an Android Samsung Galaxy S24 Ultra with cpufreq governor set to performance.
Pengukuran dilakukan pada Android Samsung Galaxy S24 Ultra dengan pengatur cpufreq disetel ke performa. Performa yang diobservasi mungkin bervariasi, tergantung pada hardware ponsel dan level aktivitas saat ini.
Web performance measurements taken on MacBook Pro 2023 (Apple M3 Pro chip)
Pengukuran dilakukan pada MacBook Pro 2023 (chip Apple M3 Pro) Performa yang diobservasi mungkin bervariasi, tergantung pada hardware komputer dan level aktivitas saat ini.

Di balik layar

Hasil performa yang dijelaskan di atas dicapai melalui upaya pengoptimalan yang ekstensif. Pengoptimalan ini dirancang untuk bekerja dengan baik di seluruh model open weight, termasuk Gemma. Berikut adalah beberapa fitur utama yang secara signifikan meningkatkan performa dan memungkinkan fungsionalitas baru yang dapat digunakan kembali.

Kuantisasi: Pelatihan yang sadar kuantisasi diterapkan pada Gemma dengan menggunakan skema channel-wise integer 4-bit pada beban untuk mempertahankan performa, kualitas model, dan ukuran yang optimal. Selain kuantisasi beban, kami juga mengkuantisasi aktivasi secara dinamis ke int8 selama eksekusi untuk memanfaatkan kemampuan CPU secara maksimal.

Mengupdate tata letak Cache KV: Cache KV digunakan pada model berbasis Transformer untuk menyimpan pasangan nilai-kunci dari langkah sebelumnya agar bisa digunakan untuk membuat token berikutnya. Pembacaan dan penulisan ke cache KV sering terjadi sehingga operasi ini harus efisien. Operasi ini dioptimalkan dengan memperkenalkan tata letak Cache KV untuk mengurangi pengubahan urutan dan pembentukan ulang. Pengoptimalan ini meningkatkan latensi pada model Gemma sekitar 25% untuk CPU dan 20% untuk GPU. Operasi ekstra juga ditambahkan untuk mengupdate cache KV dengan lebih baik pada GPU.

Waktu Pemuatan yang Lebih Baik: Untuk memaksimalkan pemrosesan CPU dan GPU, kami menggunakan tata letak Tensor terspesialisasi. Menghasilkan tata letak beban yang dioptimalkan ini membutuhkan waktu, daya, dan memori yang signifikan. Selama pemuatan model pertama, beban di-cache pada disk dalam format yang dioptimalkan dan pemuatan berikutnya dibaca dari cache. Jika tata letak Tensor dioptimalkan lebih lanjut, cache yang ada akan secara otomatis tidak valid dan format baru akan disimpan pada disk saat pemuatan model berikutnya.

Pembagian Beban GPU: Proses inferensi LLM memiliki dua fase: prefill dan dekode. Fase ini biasanya menggunakan sumber daya terpisah untuk model masing-masing. Untuk secara dramatis mengurangi jejak memori LLM, kedua fase tersebut bisa berbagi beban yang sama. Meskipun teknik ini tidak sepenuhnya baru, ini adalah pertama kalinya teknik ini dilakukan dengan cara yang mudah digunakan kembali di LiteRT Runtime dan GPU Delegate. Untuk operasi yang mendukung fitur ini, delegasi GPU memeriksa jika beban sudah ada di memori GPU dan dapat digunakan kembali. Di masa mendatang, model lain akan dapat memanfaatkan kemampuan ini dengan mudah.


Apa berikutnya

Selama pengembangan Gemma 3, kami berfokus untuk memberikan performa yang sempurna sekaligus membangun infrastruktur yang dapat digunakan kembali untuk model open weight. Pada tahun 2025, kami berencana untuk memanfaatkan pekerjaan ini guna mendukung model pihak ketiga yang lebih luas. Dengan pengoptimalan performa tambahan dan penekanan pada pengurangan lebih lanjut penggunaan memori, kami bermaksud untuk terus membuat model yang lebih mudah diakses pada berbagai perangkat yang lebih beragam. Untuk mengikuti pengembangan terbaru, atur notifikasi untuk ai_edge_torch di GitHub. Lebih banyak informasi lain yang akan segera hadir!


Ucapan Terima kasih

Advait Jain, Akshat Sharma, Alan Kelly, Andrei Kulik, Byungchul Kim, Chunlei Niu, Chun-nien Chan, Chuo-Ling Chang, Claudio Basile, Cormac Brick, Ekaterina Ignasheva, Eric Yang, Fengwu Yao, Frank Ban, Gerardo Carranza, Grant Jensen, Haoliang Zhang, Henry Wang, Ho Ko, Jae Yoo, Jiuqiang Tang, Juhyun Lee, Jun Jiang, Khanh LeViet, Kris Tonthat, Lin Chen, Lu Wang, Malini P V, Marissa Ikonomidis, Mark Sherwood, Matthew Soulanille, Matthias Grundmann, Mogan Shieh, Mohammadreza Heydary, Na Li, Pauline Sho, Pedro Gonnet, Ping Yu, Pulkit Bhuwalka, Quentin Khan, Ram Iyengar, Raman Sarokin, Rishika Sinha, Rishubh Khurana, Ronghui Zhu, Sachin Kotwani, Sebastian Schmidt, Steven Toribio, Suleman Shahid, T.J. Alumbaugh, Tenghui Zhu, Terry (Woncheol) Heo, Tyler Mullen, Vamsi Manchala, Vitalii Dziuba, Wai Hon Law, Weiyi Wang, Xu Chen, Yishuang Pang, Youchuan Hu, Yu-hui Chen, Zichuan Wei