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 di 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 conto di questi fattori: il tipo di dati (testo, immagini, audio, video), la complessità dell'attività (riepilogo semplice o attività complesse che richiedono conoscenze specialistiche) e le dimensioni dei dati (input brevi o 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 o Gemini Pro).

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).
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 suddivisione 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 implementarle, sul dispositivo o utilizzando il cloud.

Le soluzioni on-device come Gemini Nano forniscono risultati senza costi aggiuntivi, offrono una maggiore privacy degli 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, che utilizza AICore come servizio di sistema sottostante, e sono ottimizzate per attività specifiche sul dispositivo. Le API GenAI di ML Kit sono un percorso ideale per la produzione delle tue app grazie alla loro interfaccia di livello superiore e alla scalabilità. Queste API ti consentono di inviare richieste in linguaggio naturale con input di testo e immagini, consentendo una serie di casi d'uso come la comprensione delle immagini, traduzioni brevi, riepiloghi guidati e altro ancora.

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, come Gemma o un altro modello personalizzato 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à di AI generativa avanzate di Google, inclusi i potenti modelli Gemini Pro e Gemini Flash, 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 ML precedenti. 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 dei volti, 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 e la nostra documentazione complete 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 perimetrali, 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 tracciamento delle mani, la stima della postura, il rilevamento della mesh del volto e il rilevamento di oggetti, il tutto consentendo 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.

Integrare l'app con l'assistente del dispositivo

Mentre l'integrazione tradizionale dell'AI si concentra sull'inserimento dell'AI nella tua app, puoi anche inserire la tua app nell'AI. Se contribuisci con le funzionalità della tua app alle funzionalità di AI del sistema, consenti agli assistenti a livello di sistema (come Gemini) di scoprire e richiamare le funzionalità della tua app in modo autonomo. AppFunctions è il modo principale per ottenere questa integrazione, consentendo alla tua app di partecipare all'ecosistema AI di Android più ampio.

Scegli un approccio

Quando integri l'AI per migliorare la tua app per Android, devi prendere in considerazione tre approcci principali: eseguire l'elaborazione sul dispositivo, sfruttare modelli basati sul cloud o aggiungere la funzionalità della tua app all'AI a livello di sistema. Strumenti come ML Kit, Gemini Nano e LiteRT consentono funzionalità sul dispositivo, mentre le API Gemini cloud con Firebase AI Logic forniscono una potente elaborazione basata sul cloud. AppFunctions rappresenta un terzo percorso, che ti consente di "integrare la tua app nell'AI" rendendo le sue funzionalità disponibili per il sistema.

Quando scegli l'approccio, prendi in considerazione questi fattori:

Fattorizzazione Soluzioni sul dispositivo Soluzioni cloud
Connettività e funzionalità offline Ideale per l'utilizzo offline; funziona senza connessione di rete. Richiede una connessione di rete per comunicare con i server remoti.
Privacy dei dati Elabora e archivia i dati sensibili localmente sul dispositivo. I dati vengono trasmessi al cloud, il che richiede fiducia nella sicurezza del provider.
Visibilità e copertura L'integrazione diretta del sistema operativo (AppFunctions) consente agli assistenti di scoprire le funzionalità. Il rilevamento è in genere limitato all'interfaccia utente interna dell'app o a integrazioni API specifiche.
Funzionalità del modello Ottimizzato per bassa latenza e attività specifiche meno intensive. Modelli avanzati in grado di gestire un'elevata complessità e input di grandi dimensioni.
Considerazioni sui costi Nessun addebito diretto per utilizzo; utilizza l'hardware del dispositivo esistente. In genere, prevede prezzi basati sull'utilizzo o costi di abbonamento continuativi.
Risorse del dispositivo Utilizza lo spazio di archiviazione locale, la RAM e la batteria. Impatto locale minimo; il lavoro pesante viene scaricato sul server.
Ottimizzazione Flessibilità limitata; vincoli dovuti alle funzionalità dell'hardware locale. Maggiore flessibilità per una personalizzazione estesa e un'ottimizzazione su larga scala.
Coerenza multipiattaforma La disponibilità può variare in base al sistema operativo e al supporto hardware. Esperienza coerente su qualsiasi piattaforma con accesso a internet.

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 ML tradizionale e percezione
  • C) Migliorare la funzionalità dell'app per integrarla con le funzionalità di AI del sistema (integrare l'app nell'AI)? → Vai a Inserire la tua app nell'AI

ML tradizionale e percezione

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

Quale attività specifica stai svolgendo?

  • A) Ti serve un'integrazione rapida di funzionalità ML mobile comuni e predefinite? (ad es. scansione di codici a barre, riconoscimento del testo (OCR), riconoscimento facciale, etichettatura delle immagini, rilevamento di oggetti e monitoraggio, 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. tracciamento delle mani, stima della postura, mesh del volto, rilevamento di oggetti e segmentazione 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 i modelli ML tradizionali (potenzialmente implementati utilizzando LiteRT o il cloud) sono adatti o se l'elaborazione del linguaggio naturale avanzata richiede modelli generativi (torna a Start, scegli A). Per la classificazione, il sentiment o la traduzione basati sul cloud:
    • → Utilizzo: soluzioni basate sul cloud (ad es. API Google Cloud Natural Language , API Google Cloud Translation , a cui si può accedere 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 del 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à cloud e la scalabilità sono più importanti o funzionalità specifiche richiedono il cloud.

AI generativa on-device (con Gemini Nano)

Avvertenze: richiede dispositivi Android compatibili, supporto iOS limitato, i modelli sono meno potenti delle controparti cloud.

Con l'API Prompt di ML Kit puoi inviare richieste in linguaggio naturale con input di solo testo o di testo e immagini per una serie di casi d'uso, come la comprensione delle immagini, traduzioni brevi e riepiloghi guidati. Se i tuoi casi d'uso possono essere soddisfatti da questi limiti di token, le API ML Kit GenAI sono la scelta migliore per l'AI generativa sul dispositivo. ML Kit offre anche API semplificate per attività comuni come il riepilogo e la risposta rapida.

  • → Utilizzo: API ML Kit GenAI (basate su Gemini Nano)
  • Perché: il modo più semplice per integrare le attività di AI generativa sul dispositivo utilizzando prompt in linguaggio naturale, la soluzione sul dispositivo con la priorità più alta.

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 personalizzato, 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?

AppFunctions

Devi migliorare la funzionalità della tua app per integrarla con le funzionalità di AI di sistema (inserire la tua app nell'AI).

  • → Utilizzo: AppFunctions
  • Perché: consente alle funzionalità di AI di sistema, come l'assistente, di scoprire e richiamare le funzionalità della tua app.