LiteRT memungkinkan Anda menjalankan model TensorFlow, PyTorch, dan JAX di aplikasi Android. Sistem LiteRT menyediakan lingkungan eksekusi bawaan dan yang dapat disesuaikan untuk menjalankan model di Android dengan cepat dan efisien, termasuk opsi untuk akselerasi hardware.
Misalnya, aplikasi Android yang menggunakan LiteRT, lihat repositori contoh LiteRT.
Model machine learning
LiteRT menggunakan model TensorFlow, PyTorch, dan JAX yang dikonversi menjadi format model machine learning yang lebih kecil, portabel, dan lebih efisien. Anda dapat menggunakan model bawaan dengan LiteRT di Android, atau mem-build model Anda sendiri dan mengonversinya ke format LiteRT.
Halaman ini membahas penggunaan model machine learning yang sudah dibuat dan tidak mencakup pembuatan, pelatihan, pengujian, atau konversi model. Pelajari lebih lanjut cara memilih, mengubah, mem-build, dan mengonversi model machine learning untuk LiteRT di halaman Model.
Menjalankan model di Android
Model LiteRT yang berjalan di dalam aplikasi Android mengambil data, memproses data, dan menghasilkan prediksi berdasarkan logika model. Model LiteRT memerlukan lingkungan runtime khusus untuk dieksekusi, dan data yang diteruskan ke model harus dalam format data tertentu, yang disebut tensor. Saat memproses data, yang dikenal sebagai menjalankan inferensi, model akan menghasilkan hasil prediksi sebagai tensor baru, dan meneruskannya ke aplikasi Android agar dapat mengambil tindakan, seperti menampilkan hasil kepada pengguna atau menjalankan logika bisnis tambahan.
Gambar 1. Alur eksekusi fungsional untuk model LiteRT di aplikasi Android.
Pada tingkat desain fungsional, aplikasi Android Anda memerlukan elemen berikut untuk menjalankan model LiteRT:
- Lingkungan runtime LiteRT untuk menjalankan model
- Pemroses input model untuk mengubah data menjadi tensor
- Pemroses output model untuk menerima tensor hasil output dan menafsirkannya sebagai hasil prediksi
Bagian berikut menjelaskan cara library dan alat LiteRT menyediakan elemen fungsional ini.
Mem-build aplikasi dengan LiteRT
Bagian ini menjelaskan jalur yang direkomendasikan dan paling umum untuk menerapkan LiteRT di Aplikasi Android Anda. Anda harus memperhatikan bagian lingkungan runtime dan library pengembangan. Jika Anda telah mengembangkan model kustom, pastikan untuk meninjau bagian Jalur pengembangan lanjutan.
Opsi lingkungan runtime
Ada beberapa cara untuk mengaktifkan lingkungan runtime guna menjalankan model di aplikasi Android Anda. Berikut adalah opsi yang lebih disukai:
- LiteRT di lingkungan runtime layanan Google Play (direkomendasikan)
- Lingkungan runtime LiteRT mandiri
Secara umum, Anda harus menggunakan lingkungan runtime yang disediakan oleh layanan Google Play karena lebih hemat ruang daripada lingkungan standar karena dimuat secara dinamis, sehingga ukuran aplikasi Anda tetap lebih kecil. Layanan Google Play juga otomatis menggunakan rilis runtime LiteRT terbaru dan stabil, sehingga memberi Anda fitur tambahan dan performa yang lebih baik dari waktu ke waktu. Jika Anda menawarkan aplikasi di perangkat yang tidak menyertakan layanan Google Play atau Anda perlu mengelola lingkungan runtime ML dengan cermat, Anda harus menggunakan runtime LiteRT standar. Opsi ini memaketkan kode tambahan ke dalam aplikasi, sehingga Anda dapat memiliki kontrol lebih besar atas runtime ML di aplikasi dengan mengorbankan peningkatan ukuran download aplikasi.
Anda mengakses lingkungan runtime ini di aplikasi Android dengan menambahkan library pengembangan LiteRT ke lingkungan pengembangan aplikasi. Untuk informasi tentang cara menggunakan lingkungan runtime standar di aplikasi Anda, lihat bagian berikutnya.
Perpustakaan
Anda dapat mengakses Interpreter API menggunakan layanan Google Play. Anda dapat menggunakan library inti dan dukungan LiteRT di aplikasi Android. Untuk detail pemrograman tentang penggunaan library LiteRT dan lingkungan runtime, lihat Alat pengembangan untuk Android.
Mendapatkan model
Menjalankan model di aplikasi Android memerlukan model berformat LiteRT. Anda dapat menggunakan model bawaan atau mem-build model dan mengonversinya ke format Lite. Untuk informasi selengkapnya tentang cara mendapatkan model untuk aplikasi Android, lihat halaman Model LiteRT.
Menangani data input
Setiap data yang Anda teruskan ke model ML harus berupa tensor dengan struktur data tertentu, yang sering disebut bentuk tensor. Untuk memproses data dengan model, kode aplikasi Anda harus mengubah data dari format native-nya, seperti data gambar, teks, atau audio, menjadi tensor dalam bentuk yang diperlukan untuk model Anda.
Menjalankan inferensi
Memproses data melalui model untuk menghasilkan hasil prediksi dikenal sebagai menjalankan inferensi. Menjalankan inferensi di aplikasi Android memerlukan LiteRT lingkungan runtime, model, dan data input.
Kecepatan model dalam menghasilkan inferensi di perangkat tertentu bergantung pada ukuran data yang diproses, kompleksitas model, dan resource komputasi yang tersedia seperti memori dan CPU, atau prosesor khusus yang disebut akselerator. Model machine learning dapat berjalan lebih cepat di pemroses khusus ini seperti unit pemrosesan grafis (GPU) dan unit pemrosesan tensor (TPU), menggunakan driver hardware LiteRT yang disebut delegasi. Untuk informasi selengkapnya tentang delegasi dan akselerasi hardware pemrosesan model, lihat Ringkasan akselerasi hardware.
Menangani hasil output
Model menghasilkan hasil prediksi sebagai tensor, yang harus ditangani oleh aplikasi Android Anda dengan mengambil tindakan atau menampilkan hasil kepada pengguna. Hasil output model dapat sesederhana angka yang sesuai dengan satu hasil (0 =, 1 = kucing, 2 = burung) untuk klasifikasi gambar, hingga hasil yang jauh lebih kompleks, seperti beberapa kotak pembatas untuk beberapa objek yang diklasifikasikan dalam gambar, dengan rating keyakinan prediksi antara 0 dan 1.
Jalur pengembangan lanjutan
Saat menggunakan model LiteRT yang lebih canggih dan disesuaikan, Anda mungkin perlu menggunakan pendekatan pengembangan yang lebih canggih daripada yang dijelaskan di atas. Bagian berikut menjelaskan teknik lanjutan untuk menjalankan model dan mengembangkannya untuk LiteRT di aplikasi Android.
Lingkungan runtime lanjutan
Selain runtime standar dan lingkungan runtime layanan Google Play untuk LiteRT, ada lingkungan runtime tambahan yang dapat Anda gunakan dengan aplikasi Android. Penggunaan yang paling mungkin untuk lingkungan ini adalah jika Anda memiliki model machine learning yang menggunakan operasi ML yang tidak didukung oleh lingkungan runtime standar untuk LiteRT.
- Runtime fleksibel untuk LiteRT
- Runtime LiteRT buatan kustom
Runtime fleksibel LiteRT memungkinkan Anda menyertakan operator tertentu yang diperlukan untuk model Anda. Sebagai opsi lanjutan untuk menjalankan model, Anda dapat mem-build LiteRT untuk Android guna menyertakan operator dan fungsi lain yang diperlukan untuk menjalankan model machine learning TensorFlow. Untuk informasi selengkapnya, lihat Mem-build LiteRT untuk Android.
API C dan C++
LiteRT juga menyediakan API untuk menjalankan model menggunakan C dan C++. Jika aplikasi Anda menggunakan Android NDK, sebaiknya pertimbangkan untuk menggunakan API ini. Anda juga dapat mempertimbangkan untuk menggunakan API ini jika ingin dapat membagikan kode di antara beberapa platform. Untuk informasi selengkapnya tentang opsi pengembangan ini, lihat halaman Alat pengembangan.
Eksekusi model berbasis server
Secara umum, Anda harus menjalankan model di aplikasi pada perangkat Android untuk memanfaatkan latensi yang lebih rendah dan privasi data yang lebih baik bagi pengguna. Namun, ada kasus saat menjalankan model di server cloud, di luar perangkat, adalah solusi yang lebih baik. Misalnya, jika Anda memiliki model besar yang tidak mudah dikompresi menjadi ukuran yang sesuai dengan perangkat Android pengguna, atau dapat dijalankan dengan performa yang wajar di perangkat tersebut. Pendekatan ini juga dapat menjadi solusi pilihan Anda jika performa model yang konsisten di berbagai perangkat adalah prioritas utama.
Google Cloud menawarkan serangkaian layanan lengkap untuk menjalankan model AI. Untuk informasi selengkapnya, lihat halaman Produk AI dan machine learning Google Cloud.
Pengembangan dan pengoptimalan model kustom
Jalur pengembangan yang lebih canggih kemungkinan akan mencakup pengembangan model machine learning kustom dan mengoptimalkan model tersebut untuk digunakan di perangkat Android. Jika Anda berencana untuk membuat model kustom, pastikan Anda mempertimbangkan untuk menerapkan teknik kuantisasi ke model untuk mengurangi biaya memori dan pemrosesan. Untuk informasi selengkapnya tentang cara mem-build model berperforma tinggi untuk digunakan dengan LiteRT, lihat Praktik terbaik performa di bagian Model.