Guadagni:
- Possibilità di decidere se utilizzare il dispositivo o il cloud e di scegliere lo strumento giusto (ML Kit, Core ML, TensorFlow Lite) in base alla privacy, alle esigenze offline, alle dimensioni del modello e ai criteri della batteria
- Capacità di prevenire errori silenziosi verificando la preelaborazione dell'input (dimensione e normalizzazione) dal documento del modello nell'integrazione del modello
- Capacità di valutare il punteggio di confidenza e misurare il risultato con l'approvazione dell'utente e sul dispositivo reale, senza presentare previsioni a bassa confidenza come verità assoluta.
Finora abbiamo utilizzato l’intelligenza artificiale come ausilio per accelerare il processo di sviluppo. Passiamo ora al secondo ruolo dell’IA: il talento incorporato nell’applicazione. I telefoni moderni hanno il potere di eseguire modelli di intelligenza artificiale come il riconoscimento delle immagini, la traduzione del testo, la trascrizione del parlato, ecc. direttamente sul dispositivo (sul dispositivo, nel processore del telefono senza passare al server). AI sul dispositivo; Offre grandi vantaggi rispetto alle soluzioni cloud in termini di velocità, privacy e funzionamento offline. In questa unità impareremo come incorporare l'intelligenza artificiale nell'applicazione con Core ML di iOS, TensorFlow Lite multipiattaforma (ora noto come LiteRT) e la soluzione già pronta ML Kit di Google, e come utilizzare l'intelligenza artificiale come assistente in questa integrazione.
Sul dispositivo o nel cloud?
Questa è la prima e più importante decisione architettonica. L’intelligenza artificiale sul dispositivo non rimuove i dati dal telefono: un enorme vantaggio per la privacy. Inoltre è istantaneo e funziona offline poiché non c'è latenza di rete. Tuttavia, è limitato dalla potenza di elaborazione e dalla memoria del dispositivo; I modelli molto grandi (ad esempio i modelli con linguetta gigante) non entrano nel telefono o consumano la batteria. Il Cloud AI, invece, offre una potenza illimitata, ma invia i dati al server, richiede la rete e crea latenza.
criterio
Sul dispositivo
Cloud (API cloud)
Privacy
I dati rimangono sul dispositivo, forte
I dati vanno al server, è necessaria attenzione
velocità
Istantaneo, senza rete
Dipende dalla latenza della rete
non in linea
Funziona
Non funziona
Dimensioni del modello
Limitato (risorsa telefonica)
illimitato
batteria/calore
Effetti con un uso intenso
Server sotto carico, dispositivo rilassato
Costo
Gratuito (origine dispositivo)
Tariffa per utilizzo
Regola decisionale: scegli sul dispositivo se i dati personali/sensibili vengono elaborati, se è necessario lavorare offline o se è essenziale una risposta immediata. Se hai bisogno di un modello molto grande, rivolgiti al cloud. Questa unità è focalizzata sul dispositivo; Tratteremo l'intelligenza artificiale nel cloud nella prossima unità.
Suggerimento: imposta sempre sul dispositivo l'impostazione predefinita per una funzionalità che gestisce dati sensibili (salute, dati biometrici, posizione). La frase "i dati non lasciano il dispositivo" ha un valore inestimabile sia per la conformità alla privacy che per la fiducia degli utenti e fa una grande differenza nell'etichetta sulla privacy del negozio.
Tre modalità: ML Kit, Core ML, TensorFlow Lite
ML Kit (Google) è il modo più semplice per iniziare: offre funzionalità già pronte come il riconoscimento del testo (OCR — lettura del testo in un'immagine), il rilevamento dei volti, la lettura dei codici a barre, la traduzione in poche righe. Non è necessario addestrare il proprio modello. Core ML (Apple) è il modo più efficiente per eseguire il proprio modello o un modello già pronto su iOS; Utilizza l'hardware Neural Engine (processore di rete neurale artificiale) di Apple. TensorFlow Lite/LiteRT è una soluzione multipiattaforma che ti consente di eseguire il tuo modello addestrato sia su Android che su iOS.
Il flusso generale di integrazione con l'intelligenza artificiale è il seguente:
- Definizione del talento. Un obiettivo chiaro, come "Voglio leggere il testo nella foto".
- Selezione del percorso. Se c'è talento pronto, ML Kit; Core ML/TF Lite se è disponibile un modello speciale.
- Formato del modello. .mlmodel (Core ML), .tflite (TF Lite). Spiega le fasi di trasformazione dell'IA.
- Codice di integrazione. Caricamento del modello, preelaborazione dell'input, interpretazione dell'output.
- Prova delle prestazioni. Misurazione della velocità, della memoria e della batteria sul dispositivo reale.
Attenzione: l'errore più comune dell'intelligenza artificiale nell'integrazione del modello sul dispositivo è la preelaborazione dell'input, ovvero la conversione dell'immagine nel formato di dimensioni e colore previsto dal modello. Se il modello si aspetta 224x224 pixel e gli dai 300x300, il risultato non avrà senso, ma non riceverai un messaggio di errore. Verificare i valori di preelaborazione dal documento del modello.
Conoscere i limiti del modello
Un modello sul dispositivo prende decisioni in base ai dati su cui è stato addestrato. Un modello di riconoscimento degli oggetti addestrato solo su foto scattate durante il giorno sarà sbagliato sulle immagini notturne. Il modello ha un punteggio di confidenza (confidenza: quanto è sicuro il modello riguardo alla sua risposta, solitamente compreso tra 0 e 1); È pericoloso presentare all'utente risultati con scarsa affidabilità come accurati. Ad esempio, un'applicazione di scansione di macchie cutanee non dovrebbe dire "decisamente benigno", ma dovrebbe dire "la previsione del modello è questa, consultare un medico". Il risultato del modello è una raccomandazione, non una diagnosi.
tre mini custodie
Caso 1 — Accelerazione con OCR. Un'app per il monitoraggio delle spese ha eliminato l'onere di inserire manualmente le ricevute con il riconoscimento del testo di ML Kit. L'utente scatta una foto della ricevuta e l'importo e la data vengono inseriti automaticamente. Il tempo di inserimento manuale è diminuito da 40 secondi a 8 secondi per ricevuta. Il team chiedeva sempre all'utente di confermare l'importo letto dall'IA; perché le ricevute spiegazzate avevano un margine di errore del 6%. Automazione + approvazione umana erano il giusto equilibrio.
Caso 2: errore di preelaborazione. Un team ha integrato un modello di riconoscimento delle piante con TensorFlow Lite; Sul tester, i risultati erano casuali. Il problema era che il codice generato dall'intelligenza artificiale non normalizzava l'immagine nell'intervallo [0,1] previsto dal modello (i valori dei pixel erano lasciati su 0-255). Quando è stata aggiunta la normalizzazione, la precisione è aumentata dal 30% all'89%. Lezione: la preelaborazione è silenziosa ma mortale.
Caso 3 – Guadagno in termini di privacy. Un'applicazione sanitaria ha rilevato un'anomalia nei dati sulla frequenza cardiaca con il modello Core ML sul dispositivo. I dati non sono mai andati al server. Questa scelta ha permesso all'applicazione di ricevere la dicitura "non raccoglie dati" nell'etichetta privacy dell'App Store e di aumentarne la velocità di download rispetto alla concorrenza. La scelta del dispositivo è stata sia etica che commercialmente vantaggiosa.
Prompt debole / Prompt forte
Prompt debole: "Aggiungi il riconoscimento delle immagini alla mia app".
Suggerimento potente: "Aggiungi la funzione di lettura dell'importo e della data alla mia applicazione Android/Kotlin. - Utilizza il riconoscimento del testo del kit ML di Google (sul dispositivo, offline) - Scatta un'immagine dalla fotocamera o dalla galleria - Estrai l'importo e la data dal testo riconosciuto con regex - Presenta il risultato all'utente per l'approvazione nel campo MODIFICABILE, salva automaticamente - Gestisci il flusso di autorizzazione e il rifiuto della fotocamera. Annota le situazioni di pre-elaborazione e di errore, spiega i passaggi."
Modelli copiabili
Modello di selezione del percorso: "Voglio creare la seguente funzionalità: [funzionalità]. Dovrebbe essere sul dispositivo o nel cloud? Confronta in base a: privacy, necessità offline, dimensioni del modello, batteria, costo. Consiglia lo strumento appropriato (ML Kit / Core ML / TF Lite) e giustifica."
Modello di integrazione: "Scrivi l'integrazione di [modello/capacità] per [piattaforma]:1) Caricamento del modello2) Preelaborazione dell'input (dimensione e normalizzazione previste)3) Chiamata di inferenza4) Interpretazione dell'output e controllo del punteggio di confidenza5) Avviso per l'utente in caso di risultato con scarsa confidenzaRicordami di verificare i valori di preelaborazione dalla documentazione del modello."
Modello di punteggio di confidenza: "Considera il punteggio di confidenza in questo codice di inferenza:- Presenta il risultato 'esatto' al di sotto della soglia (ad es. 0,6)- Mostra la nota 'si tratta di una stima' all'utente- Rivolgiti a un esperto se l'area critica (salute, sicurezza) [codice]"
Modello di verifica delle prestazioni: "Elenca le metriche che devo misurare sul dispositivo reale per questa integrazione del modello sul dispositivo: tempo di inferenza, aumento della memoria, impatto della batteria, riscaldamento. Indica il metodo di misurazione per ciascuno."
Errori comuni
- Saltare la preelaborazione o eseguirla in modo errato. Una dimensione/normalizzazione errata produce silenziosamente un risultato errato.
- Ignorando il punteggio di confidenza. Presentare una stima poco attendibile come accurata ingannerà l'utente.
- Testare il modello nell'emulatore. La velocità effettiva del dispositivo e la batteria sono molto diverse; misurare sempre su hardware reale.
- Invio inutilmente di dati sensibili al cloud. Scegliere il cloud quando è possibile utilizzare il dispositivo è un rischio per la privacy.
- Ignorando le dimensioni del modello. Le app di modelli di grandi dimensioni aumentano le dimensioni del download e si bloccano su hardware scarso.
- Dimenticando il limite di addestramento del modello. La modella sbaglia nella condizione in cui non vede (notte, lingua diversa); Rendilo chiaro all'utente.
In sintesi
L'intelligenza artificiale sul dispositivo garantisce privacy, velocità e funzionamento offline mantenendo i dati sul telefono; Il limite è la potenza del dispositivo e le dimensioni del modello. ML Kit viene utilizzato per funzionalità pronte all'uso, Core ML (iOS) e TensorFlow Lite (multipiattaforma) vengono utilizzati per modelli personalizzati. Il killer silenzioso dell’integrazione è la preelaborazione impropria; La dimensione dell'input e la normalizzazione sono verificate dalla documentazione del modello. Ogni risultato è accompagnato da un punteggio di confidenza e le previsioni con un basso livello di confidenza non vengono presentate come verità assoluta. Le decisioni vengono misurate sul dispositivo reale, non sull'emulatore.
Compito dell'applicazione
Per una funzionalità di "lettura di testo da foto" o "lettura di codici a barre", chiedi all'IA se deve essere sul dispositivo o nel cloud con il "modello di selezione del percorso", quindi chiedi un progetto basato su ML Kit con il "modello di integrazione". Verificare che la fase di preelaborazione e il flusso di approvazione/modifica dell'utente siano presenti nel codice. Imposta una soglia del punteggio di affidabilità e scrivi cosa farai se il risultato è basso.
lista di controllo
- [ ] Ho preso la decisione sul dispositivo/cloud in base a criteri
- [ ] Ho scelto lo strumento giusto (ML Kit / Core ML / TF Lite)
- [] Ho verificato la dimensione di preelaborazione e la normalizzazione dalla documentazione del modello
- [ ] Ho controllato il punteggio di affidabilità e ho avvisato in caso di risultati di affidabilità bassi
- [ ] Ho presentato il risultato all'utente con approvazione/modifica, non l'ho salvato alla cieca
- [ ] Ho misurato le prestazioni sul dispositivo reale, non sull'emulatore