Gemini Nano è una delle tre versioni del modello di intelligenza artificiale sviluppato da Google. Progettato per essere multimodale, il che significa che può elaborare e comprendere simultaneamente diversi tipi di input, inclusi testo, immagini, audio e video, Gemini Nano è specificamente ottimizzato per l’uso sui dispositivi mobili, come smartphone e tablet. Il fatto che le attività di inferenza siano svolte in locale è un vantaggio non da poco per chi desidera evitare scambi di dati (e di informazioni personali) con server remoti. Inoltre, Gemini Nano si rivela adatto per quelle applicazioni che richiedono efficienza e prestazioni elevate su hardware modesto.
Gli sviluppatori possono integrare Gemini Nano nelle loro app: ecco come
A partire dal 1° ottobre 2024, tutti gli sviluppatori Android che dispongono dell’AI Edge SDK possono accedere a Gemini Nano in via sperimentale. Le prime sperimentazioni sono possibili con l’input di testo sui dispositivi della serie Pixel 9.
Ciò che rende particolarmente interessante la soluzione presentata da Google, è il fatto che l’elaborazione avviene direttamente sul dispositivo, senza la necessità di interfacciarsi con server esterni. Un approccio che, come evidenziato in precedenza, offre vantaggi significativi, tra cui la salvaguardia dei dati riservati, la possibilità di fruire delle funzionalità di intelligenza artificiale anche in assenza della connessione di rete, l’assenza di costi per la gestione di ogni singolo token (ne parliamo nell’articolo sugli LLM, Large Language Models).
Per quali attività è possibile utilizzare Gemini Nano in locale
Google ha spiegato che modelli di IA generativa eseguiti integralmente in locale, come Gemini Nano, richiedono meno risorse computazionali rispetto ai server cloud, risultando particolarmente adatti per attività specifiche, come riformulare un testo per renderlo più informale, generare risposte ai messaggi o riassumere contenuti.
Esempi concreti dell’utilizzo di Gemini Nano includono anche l’elaborazione del contenuto degli screenshot e l’analisi di quanto appare sul display, oltre all’elaborazione di immagini e voci, sfruttando le abilità multimodali.
Cos’è e come funziona Google AICore
Una delle sfide maggiori nell’integrazione dei modelli di IA direttamente nelle app destinate ai dispositivi mobili, risiede nell’elevata necessità di risorse computazionali e capacità di archiviazione. Per superare questo ostacolo, Google ha introdotto AICore, un nuovo servizio di sistema Android, che permette di beneficiare dell’intelligenza artificiale in locale senza dover distribuire un runtime specifico o modelli personalizzati, ottimizzando l’efficienza e riducendo la complessità per gli sviluppatori.
AICore è integrato nel contesto sicuro del Private Compute Core (PCC), un ambiente che mantiene i dati privati escludendo l’accesso diretto a Internet. Il sistema garantisce che l’intelligenza artificiale possa essere utilizzata in maniera sicura all’interno delle app, senza rischi di esposizione a software esterni, né registrazioni dei dati di input o output, offrendo così quel livello di trasparenza e protezione desiderato da un’ampia platea di sviluppatori e utenti finali.
Come integrare Gemini Nano nelle app Android
Per prima cosa, come spiega Google, è necessario includere il SDK (Software Development Kit) AI Edge nel progetto Android. Il pacchetto di sviluppo è progettato per eseguire modelli di IA direttamente sul dispositivo, sfruttando la libreria AICore di Android per gestire l’inferenza e la generazione dei contenuti, senza dipendere da server esterni.
Il programmatore è quindi chiamato ad aggiungere una dipendenza nel file build.gradle
:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
Il SDK AI Edge permette di personalizzare vari parametri per adattare il modello alle proprie esigenze:
- Temperature: Controlla la casualità delle risposte. Valori più alti aumentano la diversità e la creatività.
- Top K: Definisce quanti token tra i più rilevanti devono essere considerati per la risposta.
- Candidate Count: Numero massimo di risposte da restituire.
- Max Output Tokens: Lunghezza massima del testo generato.
Come gestire le richieste di generazione di contenuti con l’intelligenza artificiale
Il modello Gemini Nano può accettare sia stringhe singole che multiple ai fini dell’inferenza. Ecco un esempio di codice che mostra come inviare un prompt a Gemini Nano, in locale, e ottenere una risposta:
scope.launch {
val input = "Voglio che tu agisca come correttore di bozze in italiano. Ti fornirò dei testi e vorrei che li rivedessi per individuare eventuali errori di ortografia, grammatica o punteggiatura"
val response = generativeModel.generateContent(input)
print(response.text)
}
Di seguito, invece, un esempio con input multiplo:
scope.launch {
val response = generativeModel.generateContent(
content {
text("Voglio che tu agisca come correttore di bozze in italiano.")
text("Fornisci eventuali correzioni di ortografia, grammatica o punteggiatura.")
text("Ecco il testo che devi elaborare:")
text("[Frase o paragrafo da far gestire a Gemini Nano]")
}
)
print(response.text)
}
È importante utilizzare strategie di prompting efficaci per ottenere risultati ottimali. All’argomento, Google dedica un intero documento di supporto.
Il futuro di Gemini Nano nello sviluppo di software Android
Al momento, come sottolineato in precedenza, Gemini Nano si trova in una fase sperimentale ed è pensato per usi specifici, non per l’impiego “in produzione”. Ci si aspetta che le future versioni introducano ulteriori miglioramenti in termini di performance, qualità delle risposte e supporto per ulteriori dispositivi.
Alcune app Google come Talkback e Pixel Recorder già utilizzano Gemini Nano per migliorare la “comprensione” del testo e delle immagini. Le funzionalità multimodali permettono, ad esempio, di descrivere immagini per utenti non vedenti o ipovedenti e di fornire riassunti efficaci di lunghe registrazioni audio.