TensorFlow Dev Summit

Dua minggu lalu di TensorFlow Dev Summit, sejumlah perkembangan baru yang menarik untuk Android (rekaman sesi) diumumkan. Mereka termasuk akselerasi delegasi GPU (2-7x lebih cepat vs CPU), dokumentasi yang diperluas dan code lab baru yang menunjukkan cara menggunakan model TensorFlow Lite di Android. Postingan ini menyoroti beberapa pengumuman ini dan juga merangkum beberapa percakapan menarik yang saya lakukan dengan developer.



Akselerasi GPU menghadirkan ML pada-perangkat ke banyak orang

Tajuk machine learning sering kali berfokus pada terobosan terbaru mengenai perangkat terbaru dan paling kuat. Untuk developer seluler, yang sebenarnya paling penting adalah mampu memberikan pengalaman pengguna yang baik di berbagai ponsel. Itulah sebabnya developer Android yang saya ajak bicara sangat bersemangat tentang seberapa besar delegasi GPU TensorFlow Lite eksperimental baru bisa mempercepat inferensi (menjalankan model ML) pada perangkat dengan OpenGL ES 3.1, yang diperkenalkan sebagai bagian dari Android API Level 21 (Lollipop).
Untuk menggunakannya, developer harus mengupdate file build.gradle aplikasi mereka:

Saat mengimpor interpreter model TensorFlow, gunakan kode berikut:

Fungsionalitas ini bersifat eksperimental dan tim TensorFlow sangat menantikan masukan komunitas developer tentang bagaimana ini bisa semakin ditingkatkan. Selain itu, tim sedang bekerja untuk segera membuatnya open source. Detail selengkapnya bisa dibaca di entri blog peluncuran delegasi GPU.



Dokumentasi yang diperluas dan contoh Android baru

Tim TensorFlow memperluas dokumentasi mereka sebagai bagian dari rilis alfa TensorFlow 2.0. Favorit pribadi saya adalah bagian contoh TensorFlow Lite yang baru. Di sini Anda akan menemukan berbagai contoh Android (dan iOS) untuk mengintegrasikan berbagai jenis model termasuk deteksi objek dan pengenalan ucapan. Sebelum contoh ini ada, tugas-tugas seperti transformasi gambar (untuk menggambar hasil analisis di atas gambar kamera) bisa rumit diterapkan. Sekarang lebih mudah. Misalnya, contoh deteksi objek dilengkapi dengan kode pelacak dan utilitas gambar untuk transformasi umum.

Contoh TensorFlow Lite



TensorFlow Lite, ML Kit dan NNAPI

Google menyediakan berbagai macam produk developer machine learning pada-perangkat. Bagi kebanyakan developer, dua titik awal untuk memulai adalah:
  • ML Kit Base API jika salah satu model pada-perangkat Google, seperti pengenalan teks, deteksi wajah, dll. (daftar model yang didukung), sesuai dengan kebutuhan Anda, atau
  • TensorFlow untuk menggunakan model lain yang sudah dilatih sebelumnya atau untuk membangun dan melatih model Anda sendiri
Jika Anda ingin menggali lebih dalam tentang cara menggunakan TensorFlow (dan fitur ML lainnya), berikut adalah ringkasan yang lebih terperinci tentang opsi pengembangan Anda (dalam urutan kompleksitas):
  • Gunakan model Google yang sudah dilatih sebelumnya (mis. deteksi wajah) — ML Kit Base API
  • Gunakan model lain yang sudah dilatih sebelumnya— Developer bisa menggunakan model TensorFlow Lite yang sudah dilatih sebelumnya, seperti estimasi pose (deteksi tubuh dan anggota badan) dan segmentasi gambar (orang vs latar belakang)
  • Buat model kustom Anda sendiri:
  1. Melatih model kustom — TensorFlow
  2. Mengonversi dan menjalankan model yang sudah jadi pada perangkat Android / iOS / IoT — TensorFlow Lite
  3. Menayangkan model TensorFlow Lite yang sudah dikonversi ke pengguna akhir — penayangan model Kustom ML Kit
Semua produk ini bekerja bersama untuk memberikan pengalaman end-to-end bagi developer. Misalnya, ML Kit Base API menggunakan model TensorFlow Lite di belakang layar untuk memberikan model terlatih Google ke aplikasi Anda. Ketika model TensorFlow Lite ini berjalan di perangkat seluler, kinerjanya ditingkatkan melalui NNAPI.
Interaksi antara developer dengan NNAPI sangat jarang diperlukan. Satu-satunya pengecualian adalah jika Anda ingin membuat framework machine learning Anda sendiri.



Kasus-penggunaan yang baru, pada-perangkat

Perluasan kemampuan TensorFlow pada-perangkat memberikan peluang baru bagi developer seluler dalam dua cara:



1. Menjalankan model yang lebih kuat pada-perangkat



Di TensorFlow Dev Summit, kami menunjukkan contoh deteksi objek di mana model tidak hanya mendeteksi objek tetapi juga menampilkan lokasi objek dalam gambar.
Sejumlah peserta dikejutkan oleh betapa kuatnya perangkat seluler (Android dan iOS) sehingga fungsionalitas tersebut mampu tersedia pada-perangkat. Ada banyak keuntungan dengan menjalankan model pada-perangkat seperti akses offline dan privasi. Keuntungan lain dari menjalankan model secara lokal adalah mengurangi latensi, sehingga memungkinkan pengalaman realtime.



2. Seluler sebagai perangkat ML serbaguna

Selama bertahun-tahun, ada harapan bahwa perangkat Internet of Things (IoT), seperti mesin industri atau gadget smart home, dapat membawa ML ke birai internet. Ini semakin terdorong dengan diperkenalkannya Edge TPUs di Dev Summit. Menariknya bagi saya adalah bahwa perangkat IoT ini cenderung bertujuan tunggal — mis. menyortir ukuran alpukat, atau mengatur suhu ruangan yang nyaman. Ini adalah jenis kasus penggunaan amat penting yang telah dipikirkan industri untuk waktu yang lama.
Apa yang baru adalah bahwa dengan platform seluler seperti Android, kami tiba-tiba memiliki perangkat ML serbaguna. ML bisa membantu pengguna mencatat log aktivitas fisik selama satu menit kemudian memindai SIM di waktu yang lain. Peluang seperti ini tampaknya masih kurang dieksplorasi. Dengan seluler+ML, akan ada pola desain baru dan aplikasi Android baru.



Cara terbaik untuk belajar adalah mencoba

Banyak peserta yang saya temui lebih terbiasa memikirkan ML dalam istilah superkomputer, bukan seluler. Mereka sangat bersemangat melihat platform baru yang menyediakan machine learning pada-perangkat dan menjanjikan penemuan baru yang akan segera datang.
Saya mendorong developer Android untuk memeriksa contoh Android guna merasakan apa yang bisa dilakukan dengan hal ini:
Machine learning pada-perangkat lebih mudah diakses dan lebih mudah dimulai daripada sebelumnya. Lain kali Anda dihadapkan dengan masalah, ML pada-perangkat mungkin bisa menjadi solusi.