Keuntungan:
- Kemampuan untuk memutuskan perangkat atau cloud dan memilih alat yang tepat (ML Kit, Core ML, TensorFlow Lite) berdasarkan privasi, kebutuhan offline, ukuran model, dan kriteria baterai
- Kemampuan untuk mencegah kesalahan diam dengan memverifikasi prapemrosesan input (ukuran dan normalisasi) dari dokumen model dalam integrasi model
- Kemampuan untuk mengevaluasi skor keyakinan dan mengukur hasilnya dengan persetujuan pengguna dan pada perangkat sebenarnya, tanpa menampilkan prediksi dengan keyakinan rendah sebagai kebenaran mutlak.
Sejauh ini, kami telah menggunakan AI sebagai bantuan untuk mempercepat proses pembangunan. Sekarang kita beralih ke peran kedua AI: bakat yang tertanam dalam aplikasi. Ponsel modern memiliki kemampuan untuk menjalankan model AI seperti pengenalan gambar, terjemahan teks, transkripsi ucapan, dll. langsung di perangkat (di perangkat — di prosesor ponsel itu sendiri tanpa perlu masuk ke server). AI di perangkat; Ini menawarkan keuntungan besar dibandingkan solusi cloud dalam hal kecepatan, privasi, dan operasi offline. Dalam unit ini, kita akan mempelajari cara menyematkan AI ke dalam aplikasi dengan Core ML iOS, TensorFlow Lite lintas platform (sekarang dikenal sebagai LiteRT) dan solusi siap pakai ML Kit Google, serta cara menggunakan AI sebagai asisten dalam integrasi ini.
Di perangkat atau cloud?
Ini adalah keputusan arsitektur pertama dan terpenting. AI pada perangkat tidak menghapus data dari ponsel — sebuah keuntungan besar dalam hal privasi. Ini juga instan dan berfungsi offline karena tidak ada latensi jaringan. Namun, hal ini dibatasi oleh kekuatan pemrosesan dan memori perangkat; Model yang sangat besar (misalnya model lidah raksasa) tidak akan muat di dalam ponsel atau akan menguras baterai. Cloud AI, di sisi lain, menawarkan daya tak terbatas, namun mengirimkan data ke server, memerlukan jaringan, dan menciptakan latensi.
kriteria
Di perangkat
Awan (API awan)
Privasi
Data tetap ada di perangkat, kuat
Data masuk ke server, perlu perhatian
kecepatan
Instan, tanpa jaringan
Tergantung pada latensi jaringan
luring
Ini berhasil
Tidak berfungsi
Ukuran model
Terbatas (sumber daya telepon)
tidak terbatas
baterai/panas
Efek dengan penggunaan berat
Server sedang dimuat, perangkat santai
Biaya
Gratis (sumber perangkat)
Biaya per penggunaan
Aturan pengambilan keputusan: Pilih di perangkat jika data pribadi/sensitif sedang diproses, perlu bekerja secara offline, atau respons instan sangat penting. Jika Anda membutuhkan model yang sangat besar, beralihlah ke cloud. Unit ini berfokus pada perangkat; Kami akan membahas cloud AI di unit berikutnya.
Tips: Selalu jadikan perangkat sebagai default untuk fitur yang menangani data sensitif (kesehatan, biometrik, lokasi). Ungkapan “data tidak keluar dari perangkat” sangat berharga baik untuk kepatuhan privasi maupun kepercayaan pengguna, dan membuat perbedaan besar pada label privasi toko.
Tiga cara: ML Kit, Core ML, TensorFlow Lite
ML Kit (Google) adalah cara termudah untuk memulai: ia memberikan kemampuan siap pakai seperti pengenalan teks (OCR — membaca teks dalam gambar), deteksi wajah, pembacaan kode batang, terjemahan dalam beberapa baris. Anda tidak perlu melatih model Anda sendiri. Core ML (Apple) adalah cara paling efisien untuk menjalankan model Anda sendiri atau model siap pakai di iOS; Ia menggunakan perangkat keras Neural Engine (prosesor jaringan saraf tiruan) Apple. TensorFlow Lite/LiteRT adalah solusi lintas platform yang memungkinkan Anda menjalankan model terlatih Anda sendiri di Android dan iOS.
Alur integrasi umum dengan AI berjalan seperti ini:
- Definisi bakat. Tujuan yang jelas, seperti “Saya ingin membaca teks di foto”.
- Pemilihan jalur. Jika ada talent yang siap, ML Kit; Core ML/TF Lite jika model khusus tersedia.
- format model. .mlmodel (Inti ML), .tflite (TF Lite). Menjelaskan langkah-langkah transformasi AI.
- Kode integrasi. Memuat model, memproses masukan terlebih dahulu, menafsirkan keluaran.
- Tes kinerja. Kecepatan, memori, pengukuran baterai pada perangkat nyata.
Perhatian: Kesalahan AI yang paling umum dalam integrasi model pada perangkat adalah prapemrosesan input — mengonversi gambar ke ukuran dan format warna yang diharapkan model. Jika model mengharapkan 224x224 piksel dan Anda memberikannya 300x300, hasilnya tidak ada artinya, tetapi Anda tidak akan menerima pesan kesalahan. Verifikasi nilai prapemrosesan dari dokumen model.
Mengetahui batasan model
Model pada perangkat membuat keputusan berdasarkan data yang dilatihnya. Model pengenalan objek yang dilatih hanya pada foto yang diambil pada siang hari akan salah pada gambar malam hari. Model memiliki skor keyakinan (keyakinan — seberapa yakin model terhadap jawabannya, biasanya antara 0 dan 1); Berbahaya jika menyajikan hasil dengan tingkat kepercayaan rendah kepada pengguna sebagai hasil yang akurat. Misalnya, aplikasi pemindaian bintik kulit tidak boleh mengatakan "pasti tidak berbahaya", tetapi harus mengatakan "prediksi modelnya seperti ini, harap konsultasikan dengan dokter". Hasil model adalah sebuah rekomendasi, bukan diagnosis.
tiga kasus mini
Kasus 1 — Akselerasi dengan OCR. Aplikasi pelacakan pengeluaran telah menghilangkan beban memasukkan tanda terima secara manual dengan pengenalan teks ML Kit. Pengguna mengambil foto tanda terima, dan jumlah serta tanggal diisi secara otomatis. Waktu entri manual berkurang dari 40 detik menjadi 8 detik per tanda terima. Tim selalu meminta pengguna mengonfirmasi jumlah yang dibaca AI; karena kwitansi yang kusut memiliki margin kesalahan 6%. Otomatisasi + persetujuan manusia adalah keseimbangan yang tepat.
Kasus 2 — Kesalahan prapemrosesan. Satu tim mengintegrasikan model pengenalan tanaman dengan TensorFlow Lite; Pada tester, hasilnya acak. Masalahnya adalah kode yang dihasilkan AI tidak menormalkan gambar ke kisaran [0,1] yang diharapkan model (nilai piksel dibiarkan pada 0-255). Ketika normalisasi ditambahkan, akurasi meningkat dari 30% menjadi 89%. Pelajaran: pra-pemrosesan tidak bersuara namun mematikan.
Kasus 3 — Keuntungan privasi. Aplikasi kesehatan mendeteksi anomali dari data detak jantung dengan model Core ML di perangkat. Data tidak pernah masuk ke server. Pilihan ini memungkinkan aplikasi menerima frasa "tidak mengumpulkan data" di label privasi App Store dan meningkatkan kecepatan pengunduhannya dibandingkan pesaing. Pilihan pada perangkat bersifat etis dan menguntungkan secara komersial.
Perintah lemah / Perintah kuat
Perintah lemah: "Tambahkan pengenalan gambar ke aplikasi saya."
Perintah yang kuat: "Tambahkan fitur pembacaan jumlah dan tanggal ke aplikasi Android/Kotlin saya. - Gunakan Pengenalan Teks Google ML Kit (di perangkat, offline) - Ambil gambar dari kamera atau galeri - Ekstrak jumlah dan tanggal dari teks yang dikenali dengan regex - Sajikan hasilnya kepada pengguna untuk disetujui di bidang EDITABLE, simpan otomatis - Tangani alur dan penolakan izin kamera. Tulis pra-pemrosesan dan situasi kesalahan, jelaskan langkah-langkahnya."
Templat yang dapat disalin
Templat pemilihan jalur: "Saya ingin membuat fitur berikut: [fitur]. Apakah harus di perangkat atau cloud? Bandingkan berdasarkan: privasi, kebutuhan offline, ukuran model, baterai, biaya. Rekomendasikan alat yang sesuai (ML Kit / Core ML / TF Lite) dan berikan alasan."
Templat integrasi:"Tulis integrasi [model/kemampuan] untuk [platform]:1) Pemuatan model2) Pemrosesan awal masukan (ukuran dan normalisasi yang diharapkan)3) Panggilan inferensi4) Interpretasi keluaran dan pemeriksaan skor keyakinan5) Peringatan kepada pengguna tentang hasil dengan keyakinan rendahIngatkan saya untuk memverifikasi nilai prapemrosesan dari dokumentasi model."
Templat skor keyakinan:"Pertimbangkan skor keyakinan dalam kode inferensi ini: - Tunjukkan hasil 'tepat' di bawah ambang batas (misalnya 0,6) - Tunjukkan catatan 'ini adalah perkiraan' kepada pengguna - Rujuk ke ahli jika area kritis (kesehatan, keselamatan) [kode]"
Templat verifikasi kinerja: "Buat daftar metrik yang perlu saya ukur pada perangkat sebenarnya untuk integrasi model pada perangkat ini: waktu inferensi, peningkatan memori, dampak baterai, pemanasan. Beri tahukan metode pengukuran untuk masing-masing metrik."
Kesalahan umum
- Melewatkan pra-pemrosesan atau melakukannya dengan tidak benar. Ukuran/normalisasi yang salah secara diam-diam menghasilkan hasil yang salah.
- Mengabaikan skor kepercayaan diri. Menyajikan perkiraan dengan tingkat keyakinan rendah sebagai akurat akan menyesatkan pengguna.
- Menguji model di emulator. Kecepatan perangkat dan baterai sebenarnya sangat berbeda; selalu mengukur pada perangkat keras nyata.
- Mengirim data sensitif ke cloud jika tidak perlu. Memilih cloud saat memungkinkan di perangkat merupakan risiko privasi.
- Mengabaikan ukuran model. Aplikasi model besar memperbesar ukuran unduhan dan mogok pada perangkat keras rendah.
- Melupakan batas pelatihan model. Model salah dalam kondisi tidak melihat (malam, beda bahasa); Jelaskan hal ini kepada pengguna.
Singkatnya
AI pada perangkat memberikan privasi, kecepatan, dan pengoperasian offline dengan menyimpan data di ponsel; Batasannya adalah kekuatan perangkat dan ukuran model. ML Kit digunakan untuk kemampuan out-of-the-box, Core ML (iOS) dan TensorFlow Lite (lintas platform) digunakan untuk model kustom. Pembunuh diam-diam dari integrasi adalah pra-pemrosesan yang tidak tepat; Ukuran masukan dan normalisasi diverifikasi dari dokumentasi model. Setiap hasil dilengkapi dengan skor keyakinan, dan prediksi dengan keyakinan rendah tidak disajikan sebagai kebenaran mutlak. Keputusan diukur pada perangkat sebenarnya, bukan pada emulator.
Tugas aplikasi
Untuk fitur “pembacaan teks dari foto” atau “pembacaan barcode”, tanyakan kepada AI apakah harus dilakukan di perangkat atau cloud dengan “Template pemilihan jalur”, lalu minta cetak biru berbasis ML Kit dengan “Templat integrasi”. Verifikasi bahwa langkah prapemrosesan dan alur persetujuan/edit pengguna ada dalam kode. Tetapkan ambang batas skor kepercayaan dan tulis apa yang akan Anda lakukan jika hasilnya adalah kepercayaan rendah.
daftar periksa
- [ ] Saya membuat keputusan di perangkat/cloud berdasarkan kriteria
- [ ] Saya memilih alat yang tepat (ML Kit / Core ML / TF Lite)
- [] Saya memverifikasi dimensi prapemrosesan dan normalisasi dari dokumentasi model
- [ ] Saya memeriksa skor kepercayaan dan memperingatkan hasil kepercayaan yang rendah
- [ ] Saya mempresentasikan hasilnya kepada pengguna dengan persetujuan/edit, saya tidak menyimpannya begitu saja
- [ ] Saya mengukur kinerja pada perangkat sebenarnya, bukan emulator