Trovare la soluzione IA/ML giusta per la tua app

Questa guida è pensata per aiutarti a integrare le soluzioni di intelligenza artificiale generativa e machine learning (AI/ML) di Google nelle tue applicazioni. Fornisce indicazioni per aiutarti a orientarti tra le varie soluzioni di intelligenza artificiale e machine learning disponibili e scegliere quella più adatta alle tue esigenze. Lo scopo di questo documento è aiutarti a determinare quale strumento utilizzare e perché, concentrandosi sulle tue esigenze e sui tuoi casi d'uso.

Per aiutarti a selezionare la soluzione AI/ML più adatta alle tue esigenze specifiche, questo documento include una guida alle soluzioni. Rispondendo a una serie di domande sugli obiettivi e sui vincoli del tuo progetto, la guida ti indirizza verso gli strumenti e le tecnologie più appropriati.

Questa guida ti aiuta a scegliere la soluzione di AI migliore per la tua app. Tieni in considerazione i seguenti fattori: il tipo di dati (testo, immagini, audio, video), la complessità dell'attività (dalla semplice riepilogo ad attività complesse che richiedono conoscenze specialistiche) e le dimensioni dei dati (input brevi rispetto a documenti di grandi dimensioni). In questo modo, potrai decidere se utilizzare Gemini Nano sul tuo dispositivo o l'AI basata sul cloud di Firebase (Gemini Flash, Gemini Pro o Imagen).

Diagramma di flusso decisionale per i casi d'uso dell'AI generativa. I criteri includono modalità
           (testo, immagine rispetto ad audio, video, generazione di immagini), complessità
           (riassumere, riscrivere rispetto alla conoscenza del dominio) e finestra contestuale
           (input/output brevi rispetto a documenti/contenuti multimediali estesi), che portano
           all'AI generativa sul dispositivo (Gemini Nano) o a Firebase AI Logic (Gemini
           Flash, Pro, Imagen).
Figura 1: questa illustrazione rappresenta una guida alle soluzioni di alto livello per aiutarti a trovare la soluzione AI/ML giusta per la tua app per Android. Per una descrizione più dettagliata delle opzioni di AI e ML, consulta la guida alle soluzioni riportata più avanti in questo documento.

Sfruttare la potenza dell'inferenza sul dispositivo

Quando aggiungi funzionalità di AI e ML alla tua app per Android, puoi scegliere diversi modi per fornirle, sul dispositivo o utilizzando il cloud.

Le soluzioni on-device come Gemini Nano forniscono risultati senza costi aggiuntivi, offrono una maggiore privacy per gli utenti e funzionalità offline affidabili perché i dati di input vengono elaborati localmente. Questi vantaggi possono essere fondamentali per determinati casi d'uso, come il riepilogo dei messaggi, rendendo il dispositivo una priorità quando si scelgono le soluzioni giuste.

Gemini Nano ti consente di eseguire l'inferenza direttamente su un dispositivo Android. Se lavori con testo, immagini o audio, inizia con le API GenAI di ML Kit per soluzioni pronte all'uso. Le API GenAI di ML Kit sono basate su Gemini Nano e ottimizzate per attività specifiche sul dispositivo. Le API ML Kit GenAI sono un percorso ideale per la produzione delle tue app grazie alla loro interfaccia di livello superiore e alla loro scalabilità. Queste API ti consentono di implementare casi d'uso per riassumere, correggere e riscrivere il testo, generare descrizioni di immagini ed eseguire il riconoscimento vocale.

Per andare oltre i casi d'uso fondamentali forniti dalle API GenAI di ML Kit, valuta l'accesso sperimentale a Gemini Nano. L'accesso sperimentale a Gemini Nano ti offre un accesso più diretto ai prompt personalizzati con Gemini Nano.

Per le attività di machine learning tradizionali, hai la flessibilità di implementare i tuoi modelli personalizzati. Forniamo strumenti efficaci come ML Kit, MediaPipe, LiteRT e funzionalità di pubblicazione di Google Play per semplificare il processo di sviluppo.

Per le applicazioni che richiedono soluzioni altamente specializzate, puoi utilizzare il tuo modello personalizzato, ad esempio Gemma o un altro modello creato su misura per il tuo caso d'uso specifico. Esegui il modello direttamente sul dispositivo dell'utente con LiteRT, che fornisce architetture di modelli predefinite per prestazioni ottimizzate.

Puoi anche prendere in considerazione la creazione di una soluzione ibrida sfruttando sia i modelli on-device che quelli cloud.

Le app mobile utilizzano comunemente modelli locali per piccoli dati di testo, come conversazioni di chat o articoli di blog. Tuttavia, per origini dati più grandi (come i PDF) o quando sono necessarie ulteriori conoscenze, potrebbe essere necessaria una soluzione basata su cloud con modelli Gemini più potenti.

Integrare i modelli Gemini avanzati

Gli sviluppatori Android possono integrare le funzionalità avanzate di AI generativa di Google, inclusi i potenti modelli Gemini Pro, Gemini Flash e Imagen, nelle loro applicazioni utilizzando l'SDK Firebase AI Logic. Questo SDK è progettato per esigenze di dati più grandi e offre funzionalità e adattabilità ampliate consentendo l'accesso a questi modelli di AI multimodale ad alte prestazioni.

Con l'SDK Firebase AI Logic, gli sviluppatori possono effettuare chiamate lato client ai modelli di AI di Google con il minimo sforzo. Questi modelli, come Gemini Pro e Gemini Flash, eseguono l'inferenza nel cloud e consentono alle app per Android di elaborare una varietà di input, tra cui immagini, audio, video e testo. Gemini Pro eccelle nel ragionamento su problemi complessi e nell'analisi di dati estesi, mentre la serie Gemini Flash offre una velocità superiore e una finestra contestuale abbastanza grande per la maggior parte delle attività.

Quando utilizzare il machine learning tradizionale

Sebbene l'AI generativa sia utile per creare e modificare contenuti come testo, immagini e codice, molti problemi del mondo reale si risolvono meglio utilizzando tecniche di machine learning (ML) tradizionali. Questi metodi consolidati eccellono in attività che riguardano la previsione, la classificazione, il rilevamento e la comprensione dei pattern all'interno dei dati esistenti, spesso con maggiore efficienza, costi di calcolo inferiori e implementazione più semplice rispetto ai modelli generativi.

I framework ML tradizionali offrono soluzioni robuste, ottimizzate e spesso più pratiche per le applicazioni incentrate sull'analisi dell'input, sull'identificazione delle funzionalità o sulla formulazione di previsioni basate su pattern appresi, anziché sulla generazione di output completamente nuovi. Strumenti come ML Kit, LiteRT e MediaPipe di Google forniscono potenti funzionalità personalizzate per questi casi d'uso non generativi, in particolare in ambienti di computing mobile ed edge.

Inizia l'integrazione del machine learning con ML Kit

ML Kit offre soluzioni pronte per la produzione e ottimizzate per il mobile per le attività di machine learning comuni, senza richiedere competenze di ML. Questo SDK mobile facile da usare porta l'esperienza di Google nel machine learning direttamente nelle tue app Android e iOS, consentendoti di concentrarti sullo sviluppo delle funzionalità anziché sull'addestramento e l'ottimizzazione dei modelli. ML Kit fornisce API predefinite e modelli pronti all'uso per funzionalità come la scansione di codici a barre, il riconoscimento del testo (OCR), il rilevamento del volto, l'etichettatura delle immagini, il rilevamento e il monitoraggio degli oggetti, l'identificazione della lingua e la risposta rapida.

Questi modelli sono in genere ottimizzati per l'esecuzione sul dispositivo, garantendo bassa latenza, funzionalità offline e maggiore privacy degli utenti, poiché i dati spesso rimangono sul dispositivo. Scegli ML Kit per aggiungere rapidamente funzionalità di ML consolidate alla tua app mobile senza dover addestrare modelli o richiedere output generativi. È ideale per migliorare in modo efficiente le app con funzionalità "smart" utilizzando i modelli ottimizzati di Google o implementando modelli TensorFlow Lite personalizzati.

Inizia a utilizzare le nostre guide complete e la documentazione sul sito per sviluppatori di ML Kit.

Deployment di ML personalizzato con LiteRT

Per un maggiore controllo o per eseguire il deployment dei tuoi modelli di ML, utilizza uno stack ML personalizzato basato su LiteRT e Google Play Services. Questo stack fornisce gli elementi essenziali per il deployment di funzionalità di ML ad alte prestazioni. LiteRT è un toolkit ottimizzato per l'esecuzione efficiente di modelli TensorFlow su dispositivi mobili, incorporati e edge con risorse limitate, che ti consente di eseguire modelli molto più piccoli e veloci che consumano meno memoria, energia e spazio di archiviazione. Il runtime LiteRT è altamente ottimizzato per vari acceleratori hardware (GPU, DSP, NPU) sui dispositivi edge, consentendo un'inferenza a bassa latenza.

Scegli LiteRT quando devi eseguire il deployment in modo efficiente di modelli di ML addestrati (in genere per la classificazione, la regressione o il rilevamento) su dispositivi con potenza di calcolo o durata della batteria limitate, come smartphone, dispositivi IoT o microcontrollori. È la soluzione preferita per il deployment di modelli predittivi personalizzati o standard all'edge, dove la velocità e il risparmio di risorse sono fondamentali.

Scopri di più sul deployment di ML con LiteRT.

Integra la percezione in tempo reale nelle tue app con MediaPipe

MediaPipe fornisce soluzioni di machine learning open source, multipiattaforma e personalizzabili progettate per contenuti multimediali live e in streaming. Sfrutta strumenti predefiniti e ottimizzati per attività complesse come il monitoraggio della mano, la stima della postura, il rilevamento della mesh del volto e il rilevamento degli oggetti, che consentono un'interazione in tempo reale e ad alte prestazioni anche sui dispositivi mobili.

Le pipeline basate su grafici di MediaPipe sono altamente personalizzabili e ti consentono di adattare le soluzioni per applicazioni Android, iOS, web, desktop e di backend. Scegli MediaPipe quando la tua applicazione deve comprendere e reagire istantaneamente ai dati dei sensori in tempo reale, in particolare ai flussi video, per casi d'uso come il riconoscimento dei gesti, gli effetti AR, il monitoraggio dell'attività fisica o il controllo degli avatar, tutti incentrati sull'analisi e l'interpretazione dell'input.

Esplora le soluzioni e inizia a creare con MediaPipe.

Scegli un approccio: su dispositivo o cloud

Quando integri funzionalità di AI/ML nella tua app per Android, una decisione iniziale cruciale è se eseguire l'elaborazione direttamente sul dispositivo dell'utente o nel cloud. Strumenti come ML Kit, Gemini Nano e TensorFlow Lite consentono funzionalità on-device, mentre le API Gemini Cloud con Firebase AI Logic possono fornire un'elaborazione potente basata sul cloud. La scelta giusta dipende da una serie di fattori specifici per il tuo caso d'uso e le esigenze degli utenti.

Per prendere una decisione, considera i seguenti aspetti:

  • Connettività e funzionalità offline: se la tua applicazione deve funzionare in modo affidabile senza una connessione a internet, le soluzioni sul dispositivo come Gemini Nano sono ideali. L'elaborazione basata sul cloud, per sua natura, richiede l'accesso alla rete.
  • Privacy dei dati: per i casi d'uso in cui i dati utente devono rimanere sul dispositivo per motivi di privacy, l'elaborazione on-device offre un vantaggio distinto mantenendo le informazioni sensibili a livello locale.
  • Funzionalità del modello e complessità dell'attività: i modelli basati sul cloud sono spesso molto più grandi, potenti e aggiornati più frequentemente, il che li rende adatti ad attività di AI molto complesse o quando si elaborano input più grandi in cui la qualità dell'output e le funzionalità estese sono fondamentali. Le attività più semplici possono essere gestite bene dai modelli sul dispositivo.
  • Considerazioni sui costi: le API cloud in genere prevedono prezzi basati sull'utilizzo, il che significa che i costi possono variare in base al numero di inferenze o alla quantità di dati elaborati. L'inferenza sul dispositivo, sebbene generalmente esente da costi diretti per utilizzo, comporta costi di sviluppo e può influire sulle risorse del dispositivo, come la durata della batteria e le prestazioni complessive.
  • Risorse del dispositivo: i modelli sul dispositivo consumano spazio di archiviazione sul dispositivo dell'utente. È anche importante conoscere la compatibilità dei dispositivi con modelli on-device specifici, come Gemini Nano, per assicurarti che il tuo pubblico di destinazione possa utilizzare le funzionalità.
  • Ottimizzazione e personalizzazione: se hai bisogno di ottimizzare i modelli per il tuo caso d'uso specifico, le soluzioni basate sul cloud in genere offrono maggiore flessibilità e opzioni più estese per la personalizzazione.
  • Coerenza multipiattaforma: se le funzionalità di AI coerenti su più piattaforme, incluso iOS, sono fondamentali, tieni presente che alcune soluzioni sul dispositivo, come Gemini Nano, potrebbero non essere ancora disponibili su tutti i sistemi operativi.

Se valuti attentamente i requisiti del tuo caso d'uso e le opzioni disponibili, puoi trovare la soluzione di AI/ML perfetta per migliorare la tua app per Android e offrire esperienze intelligenti e personalizzate ai tuoi utenti.


Guida alle soluzioni AI/ML

Questa guida alle soluzioni può aiutarti a identificare gli strumenti per sviluppatori appropriati per integrare le tecnologie di AI/ML nei tuoi progetti Android.

Qual è l'obiettivo principale della funzionalità AI?

  • A) Generazione di nuovi contenuti (testo, descrizioni di immagini) o esecuzione di semplici operazioni di elaborazione del testo (riepilogo, correzione bozze o riscrittura del testo)? → Vai a AI generativa
  • B) Analizzi dati/input esistenti per previsione, classificazione, rilevamento, comprensione di pattern o elaborazione di stream in tempo reale (come video/audio)? → Vai a Machine learning tradizionale e percezione

ML tradizionale e percezione

Devi analizzare l'input, identificare le funzionalità o fare previsioni in base a pattern appresi, anziché generare un output completamente nuovo.

Quale attività specifica stai eseguendo?

  • A) Ti serve un'integrazione rapida di funzionalità ML mobile comuni e predefinite? (ad es. scansione di codici a barre, riconoscimento del testo (OCR), rilevamento del volto, etichettatura delle immagini, rilevamento e monitoraggio degli oggetti, identificazione della lingua, risposta rapida di base)
    • → Utilizzo: ML Kit (API tradizionali)
    • Perché: integrazione più semplice per attività di ML mobile consolidate, spesso ottimizzate per l'utilizzo sul dispositivo (bassa latenza, offline, privacy).
  • B) Devi elaborare dati di streaming in tempo reale (come video o audio) per attività di percezione? (ad es. monitoraggio delle mani, stima della postura, mesh del volto, rilevamento e segmentazione degli oggetti in tempo reale nei video)
    • → Utilizzo: MediaPipe
    • Perché: framework specializzato per pipeline di percezione in tempo reale ad alte prestazioni su varie piattaforme.
  • C) Hai bisogno di eseguire in modo efficiente il tuo modello ML personalizzato (ad es. per classificazione, regressione, rilevamento) sul dispositivo, dando la priorità a prestazioni e basso utilizzo delle risorse?
    • → Utilizzo: LiteRT (TensorFlow Lite Runtime)
    • Perché: runtime ottimizzato per il deployment efficiente di modelli personalizzati su dispositivi mobili ed edge (dimensioni ridotte, inferenza rapida, accelerazione hardware).
  • D) Devi addestrare il tuo modello ML personalizzato per un'attività specifica?
    • → Utilizzo: LiteRT (runtime TensorFlow Lite) + addestramento di modelli personalizzati
    • Perché: fornisce gli strumenti per addestrare ed eseguire il deployment di modelli personalizzati, ottimizzati per dispositivi mobili ed edge.
  • E) Hai bisogno di classificazione avanzata dei contenuti, analisi del sentiment o traduzione di molte lingue con sfumature elevate?
    • Valuta se sono adatti i modelli ML tradizionali (potenzialmente implementati utilizzando LiteRT o il cloud) o se l'elaborazione del linguaggio naturale avanzata richiede modelli generativi (torna a Start e scegli A). Per la classificazione, il sentiment o la traduzione basati sul cloud:
    • → Utilizza: soluzioni basate sul cloud (ad es. API Google Cloud Natural Language, API Google Cloud Translation, potenzialmente accessibili utilizzando un backend personalizzato o Vertex AI). (Priorità inferiore rispetto alle opzioni sul dispositivo se offline o la privacy è fondamentale).
    • Motivo: le soluzioni cloud offrono modelli potenti e un ampio supporto linguistico, ma richiedono connettività e potrebbero comportare costi.

AI generativa

Devi creare nuovi contenuti, riassumere, riscrivere o eseguire attività complesse di comprensione o interazione.

Hai bisogno che l'AI funzioni offline, vuoi la massima privacy dei dati (mantenendo i dati dell'utente sul dispositivo) o vuoi evitare i costi di inferenza nel cloud?

  • A) Sì, la modalità offline, la massima privacy o l'assenza di costi del cloud sono fondamentali.
  • B) No, la connettività è disponibile e accettabile, le funzionalità e la scalabilità del cloud sono più importanti o funzionalità specifiche richiedono il cloud.

AI generativa on-device (con Gemini Nano)

Avvertenze: richiede dispositivi Android compatibili, supporto iOS limitato, limiti specifici per i token (1024 prompt, 4096 contesto), i modelli sono meno potenti delle controparti cloud.

Il tuo caso d'uso corrisponde specificamente alle attività semplificate offerte dalle API ML Kit GenAI? (riassumere il testo, correggere il testo, riscrivere il testo, generare descrizioni di immagini o eseguire il riconoscimento vocale) E i limiti di token sono sufficienti?

  • A) Sì:
    • → Utilizzo: API ML Kit GenAI (basate su Gemini Nano)
    • Perché: il modo più semplice per integrare attività generative specifiche e comuni sul dispositivo, soluzione sul dispositivo con la massima priorità.
  • B) No (hai bisogno di prompt o attività più flessibili oltre alle API ML Kit GenAI specifiche, ma vuoi comunque l'esecuzione on-device all'interno delle funzionalità di Nano):
    • → Utilizzo: accesso sperimentale a Gemini Nano
    • Motivo: offre funzionalità di prompt aperto sul dispositivo per casi d'uso che vanno oltre le API ML Kit GenAI strutturate, rispettando le limitazioni di Nano.

AI generativa su cloud

Utilizza modelli più potenti, richiede connettività, di solito comporta costi di inferenza, offre una copertura più ampia dei dispositivi e una coerenza più semplice tra le piattaforme (Android e iOS).

Qual è la tua priorità: facilità di integrazione in Firebase O massima flessibilità/controllo?

  • A) Preferisci un'integrazione più semplice, un'esperienza API gestita e probabilmente utilizzi già Firebase?
  • B) Hai bisogno della massima flessibilità, dell'accesso alla più ampia gamma di modelli (inclusi quelli di terze parti/personalizzati), della messa a punto avanzata e vuoi gestire la tua integrazione backend (più complessa)?
    • → Utilizzo: API Gemini con un backend cloud personalizzato (utilizzando Google Cloud Platform)
    • Perché: offre il massimo controllo, l'accesso più ampio ai modelli e opzioni di addestramento personalizzate, ma richiede un notevole sforzo di sviluppo del backend. Adatto a esigenze complesse, su larga scala o altamente personalizzate.

(Hai scelto l'SDK Firebase AI Logic) Di che tipo di attività generativa e profilo di rendimento hai bisogno?

  • A) Hai bisogno di un equilibrio tra prestazioni e costi, adatto ad applicazioni di generazione di testo, riepilogo o chat generiche in cui la velocità è importante?
  • B) Hai bisogno di una qualità e di una capacità superiori per la generazione di testi complessi, il ragionamento, l'NLU avanzato o il rispetto delle istruzioni?
  • C) Hai bisogno di una generazione di immagini sofisticata o di una comprensione o manipolazione avanzata delle immagini in base a prompt di testo?