Unit 4 / 11

AI Pada Peranti: Core ML, TensorFlow Lite dan ML Kit

Keuntungan:

  • Keupayaan untuk memutuskan pada peranti atau awan dan memilih alat yang betul (ML Kit, Core ML, TensorFlow Lite) berdasarkan privasi, keperluan luar talian, saiz model dan kriteria bateri
  • Keupayaan untuk mengelakkan ralat senyap dengan mengesahkan prapemprosesan input (saiz dan normalisasi) daripada dokumen model dalam penyepaduan model
  • Keupayaan untuk menilai skor keyakinan dan mengukur keputusan dengan kelulusan pengguna dan pada peranti sebenar, tanpa mengemukakan ramalan keyakinan rendah sebagai kebenaran mutlak.

Setakat ini, kami telah menggunakan AI sebagai bantuan untuk mempercepatkan proses pembangunan. Sekarang kita beralih kepada peranan kedua AI: bakat yang tertanam dalam aplikasi. Telefon moden mempunyai kuasa untuk menjalankan model AI seperti pengecaman imej, terjemahan teks, transkripsi pertuturan, dsb. terus pada peranti (pada peranti — dalam pemproses telefon sendiri tanpa pergi ke pelayan). AI pada peranti; Ia menawarkan kelebihan hebat berbanding penyelesaian awan dari segi kelajuan, privasi dan operasi luar talian. Dalam unit ini, kita akan belajar cara membenamkan AI ke dalam aplikasi dengan ML Teras iOS, TensorFlow Lite merentas platform (kini dikenali sebagai LiteRT) dan penyelesaian siap sedia Google ML Kit, dan cara menggunakan AI sebagai pembantu dalam penyepaduan ini.

Pada peranti atau awan?

Ini adalah keputusan seni bina yang pertama dan paling penting. AI pada peranti tidak mengalih keluar data daripada telefon — kemenangan besar untuk privasi. Ia juga serta-merta dan berfungsi di luar talian kerana tiada kependaman rangkaian. Walau bagaimanapun, ia dihadkan oleh kuasa pemprosesan dan memori peranti; Model yang sangat besar (cth. model lidah gergasi) tidak akan muat dalam telefon atau akan menghabiskan bateri. Cloud AI, sebaliknya, menawarkan kuasa tanpa had, tetapi menghantar data ke pelayan, memerlukan rangkaian dan mencipta kependaman.

kriteria

Pada peranti

Awan (cloud API)

Privasi

Data kekal pada peranti, kukuh

Data pergi ke pelayan, perhatian diperlukan

kelajuan

Segera, tiada rangkaian

Bergantung pada kependaman rangkaian

luar talian

Ia berfungsi

tidak berfungsi

Saiz model

Terhad (sumber telefon)

tidak terhad

bateri / haba

Kesan dengan penggunaan berat

Pelayan sedang dimuatkan, peranti dilonggarkan

kos

Percuma (sumber peranti)

Bayaran setiap penggunaan

Peraturan keputusan: Pilih pada peranti jika data peribadi/sensitif sedang diproses, perlu berfungsi di luar talian atau respons segera adalah penting. Jika anda memerlukan model yang sangat besar, beralih kepada awan. Unit ini difokuskan pada peranti; Kami akan meliputi cloud AI dalam unit seterusnya.

Petua: Sentiasa jadikan pada peranti lalai anda untuk ciri yang mengendalikan data sensitif (kesihatan, biometrik, lokasi). Frasa "data tidak meninggalkan peranti" sangat berharga untuk pematuhan privasi dan kepercayaan pengguna, dan membuat perubahan besar dalam label privasi kedai.

Tiga cara: ML Kit, Core ML, TensorFlow Lite

ML Kit (Google) ialah cara paling mudah untuk bermula: ia memberikan keupayaan sedia seperti pengecaman teks (OCR — membaca teks dalam imej), pengesanan muka, bacaan kod bar, terjemahan dalam beberapa baris. Anda tidak perlu melatih model anda sendiri. Core ML (Apple) ialah cara paling berkesan untuk menjalankan model anda sendiri atau model siap pakai pada iOS; Ia menggunakan perkakasan Enjin Neural Apple (pemproses rangkaian saraf tiruan). TensorFlow Lite/LiteRT ialah penyelesaian merentas platform yang membolehkan anda menjalankan model terlatih anda sendiri pada kedua-dua Android dan iOS.

Aliran integrasi umum dengan AI adalah seperti ini:

  1. Definisi bakat. Matlamat yang jelas, seperti "Saya mahu membaca teks dalam foto."
  2. Pemilihan laluan. Jika ada bakat sedia, ML Kit; Teras ML/TF Lite jika model khas tersedia.
  3. Format model. .mlmodel (Core ML), .tflite (TF Lite). Menerangkan langkah-langkah transformasi AI.
  4. Kod integrasi. Memuatkan model, pramemproses input, mentafsir output.
  5. Ujian prestasi. Kelajuan, memori, ukuran bateri pada peranti sebenar.
Awas: Kesilapan AI yang paling biasa dalam penyepaduan model pada peranti ialah prapemprosesan input — menukar imej kepada saiz dan format warna yang diharapkan model. Jika model menjangkakan 224x224 piksel dan anda memberikannya 300x300, hasilnya tidak akan bermakna, tetapi anda tidak akan menerima mesej ralat. Sahkan nilai prapemprosesan daripada dokumen model.

Mengetahui had model

Model pada peranti membuat keputusan berdasarkan data yang digunakan untuk dilatih. Model pengecaman objek yang dilatih hanya pada foto yang diambil pada siang hari akan menjadi salah pada imej malam. Model mempunyai skor keyakinan (keyakinan — sejauh mana keyakinan model tentang jawapannya, biasanya antara 0 dan 1); Adalah berbahaya untuk membentangkan hasil yang kurang keyakinan kepada pengguna sebagai tepat. Sebagai contoh, aplikasi pengimbasan bintik kulit tidak sepatutnya mengatakan "pasti jinak", tetapi harus mengatakan "ramalan model adalah ini, sila dapatkan nasihat doktor". Hasil model adalah cadangan, bukan diagnosis.

tiga kes mini

Kes 1 — Pecutan dengan OCR. Apl penjejakan perbelanjaan telah menghapuskan beban memasukkan resit secara manual dengan pengecaman teks ML Kit. Pengguna mengambil gambar resit, dan jumlah dan tarikh diisi secara automatik. Masa kemasukan manual berkurangan daripada 40 saat kepada 8 saat setiap resit. Pasukan sentiasa meminta pengguna mengesahkan jumlah yang dibaca oleh AI; kerana resit yang berkedut mempunyai margin ralat sebanyak 6%. Automasi + kelulusan manusia adalah keseimbangan yang tepat.

Kes 2 — Ralat prapemprosesan. Satu pasukan menyepadukan model pengecaman tumbuhan dengan TensorFlow Lite; Pada penguji, keputusan adalah rawak. Masalahnya ialah kod yang dihasilkan AI tidak menormalkan imej kepada julat [0,1] model yang dijangkakan (nilai piksel dibiarkan pada 0-255). Apabila normalisasi ditambah, ketepatan meningkat daripada 30% kepada 89%. Pengajaran: prapemprosesan adalah senyap tetapi membawa maut.

Kes 3 — Keuntungan privasi. Aplikasi kesihatan mengesan anomali daripada data kadar denyutan jantung dengan model Core ML pada peranti. Data tidak pernah pergi ke pelayan. Pilihan ini membolehkan aplikasi menerima frasa "tidak mengumpul data" dalam label privasi App Store dan meningkatkan kadar muat turunnya berbanding pesaing. Pilihan pada peranti adalah beretika dan menguntungkan secara komersial.

Gesaan lemah / Gesaan kuat

Gesaan lemah: "Tambahkan pengecaman imej pada apl saya."

Gesaan berkuasa: "Tambahkan amaun dan ciri bacaan tarikh pada aplikasi Android/Kotlin saya. - Gunakan Google ML Kit Text Recognition (pada peranti, luar talian) - Ambil imej dari kamera atau galeri - Ekstrak amaun dan tarikh daripada teks yang diiktiraf dengan regex - Bentangkan hasilnya kepada pengguna untuk kelulusan dalam medan EDITABLE, auto-save - Kendalikan aliran kebenaran kamera dan jelaskan langkah-langkah sebelum penolakan.

Templat yang boleh disalin

Templat pemilihan laluan: "Saya ingin membuat ciri berikut: [ciri]. Adakah ia harus pada peranti atau awan? Bandingkan berdasarkan: privasi, keperluan luar talian, saiz model, bateri, kos. Syorkan alat yang sesuai (ML Kit / Core ML / TF Lite) dan wajarkan."

Templat penyepaduan:"Tulis penyepaduan [model/keupayaan] untuk [platform]:1) Pemuatan model2) Prapemprosesan input (saiz yang dijangkakan dan normalisasi)3) Panggilan inferens4) Tafsiran output dan semakan skor keyakinan5) Amaran kepada pengguna tentang keputusan keyakinan rendahIngatkan saya untuk mengesahkan nilai prapemprosesan daripada dokumen model."

Templat skor keyakinan:"Pertimbangkan skor keyakinan dalam kod inferens ini:- Bentangkan hasil 'tepat' di bawah ambang (cth. 0.6)- Tunjukkan nota 'ini anggaran' kepada pengguna- Rujuk pakar jika kawasan kritikal (kesihatan, keselamatan)[kod]"

Templat pengesahan prestasi: "Senaraikan metrik yang saya perlukan untuk mengukur pada peranti sebenar untuk penyepaduan model pada peranti ini: masa inferens, peningkatan memori, kesan bateri, pemanasan. Beritahu kaedah pengukuran untuk setiap satu."

Kesilapan biasa

  • Melangkau prapemprosesan atau melakukannya dengan tidak betul. Saiz/penormalan yang salah secara senyap menghasilkan hasil yang salah.
  • Mengabaikan skor keyakinan. Membentangkan anggaran keyakinan rendah sebagai tepat akan mengelirukan pengguna.
  • Menguji model dalam emulator. Kelajuan peranti dan bateri sebenar sangat berbeza; sentiasa mengukur pada perkakasan sebenar.
  • Menghantar data sensitif ke awan tanpa perlu. Memilih awan apabila pada peranti adalah mungkin adalah risiko privasi.
  • Mengabaikan saiz model. Apl model besar mengembang saiz muat turun dan ranap pada perkakasan rendah.
  • Melupakan had latihan model. Model tersilap dalam keadaan di mana ia tidak melihat (malam, bahasa yang berbeza); Jelaskan perkara ini kepada pengguna.

Secara ringkasnya

AI pada peranti menyediakan privasi, kelajuan dan operasi luar talian dengan menyimpan data pada telefon; Hadnya ialah kuasa peranti dan saiz model. ML Kit digunakan untuk keupayaan luar biasa, Core ML (iOS) dan TensorFlow Lite (cross-platform) digunakan untuk model tersuai. Pembunuh senyap integrasi ialah prapemprosesan yang tidak betul; Saiz input dan normalisasi disahkan daripada dokumentasi model. Setiap keputusan disertakan dengan skor keyakinan, dan ramalan keyakinan rendah tidak dibentangkan sebagai kebenaran mutlak. Keputusan diukur pada peranti sebenar, bukan emulator.

Tugasan permohonan

Untuk ciri "bacaan teks daripada foto" atau "bacaan kod bar", tanya AI sama ada ia harus berada pada peranti atau awan dengan "Templat pemilihan laluan", kemudian minta pelan tindakan berasaskan ML Kit dengan "Templat Integrasi". Sahkan bahawa langkah prapemprosesan dan aliran kelulusan/edit pengguna terdapat dalam kod. Tetapkan ambang skor amanah dan tulis perkara yang akan anda lakukan jika keputusannya adalah kepercayaan yang rendah.

senarai semak

  • [ ] Saya membuat keputusan pada peranti/awan berdasarkan kriteria
  • [ ] Saya memilih alat yang betul (ML Kit / Core ML / TF Lite)
  • [ ] Saya mengesahkan dimensi prapemprosesan dan normalisasi daripada dokumentasi model
  • [ ] Saya menyemak skor kepercayaan dan memberi amaran tentang keputusan kepercayaan yang rendah
  • [ ] Saya membentangkan hasilnya kepada pengguna dengan kelulusan/edit, saya tidak menyimpannya secara membabi buta
  • [ ] Saya mengukur prestasi pada peranti sebenar, bukan emulator