Modelli linguistici di grandi dimensioni sul dispositivo con Keras e TensorFlow Lite
Informazioni su questo codelab
1. Prima di iniziare
Uno dei progressi più entusiasmanti del machine learning di recente è rappresentato dai modelli linguistici di grandi dimensioni (LLM). Possono essere utilizzati per generare testo, tradurre lingue e rispondere a domande in modo completo e informativo. Gli LLM, come LaMDA e PaLM di Google, vengono addestrati su enormi quantità di dati di testo, il che consente loro di apprendere i pattern statistici e le relazioni tra parole e frasi. In questo modo, possono generare testi simili a quelli scritti da persone e tradurre le lingue con un elevato grado di precisione.
Gli LLM sono molto grandi in termini di spazio di archiviazione e in genere consumano molta potenza di calcolo per essere eseguiti, il che significa che di solito vengono implementati sul cloud e sono piuttosto difficili per l'On-Device Machine Learning (ODML) a causa della potenza di calcolo limitata sui dispositivi mobili. Tuttavia, è possibile eseguire LLM di scala inferiore (ad esempio GPT-2) su un dispositivo Android moderno e ottenere comunque risultati impressionanti.
Ecco una demo dell'esecuzione di una versione del modello Google PaLM con 1,5 miliardi di parametri su Google Pixel 7 Pro senza accelerazione della riproduzione.
In questo codelab imparerai le tecniche e gli strumenti per creare un'app basata su LLM (utilizzando GPT-2 come modello di esempio) con:
- KerasNLP per caricare un LLM preaddestrato
- KerasNLP per ottimizzare un LLM
- TensorFlow Lite per convertire, ottimizzare ed eseguire il deployment del LLM su Android
Prerequisiti
- Conoscenza intermedia di Keras e TensorFlow Lite
- Conoscenza di base dello sviluppo Android
Obiettivi didattici
- Come utilizzare KerasNLP per caricare un LLM preaddestrato e ottimizzarlo
- Come quantizzare e convertire un LLM in TensorFlow Lite
- Come eseguire l'inferenza sul modello TensorFlow Lite convertito
Che cosa ti serve
- Accesso a Colab
- L'ultima versione di Android Studio
- Un dispositivo Android moderno con più di 4 GB di RAM
2. Configurazione
Per scaricare il codice per questo codelab:
- Vai al repository GitHub per questo codelab.
- Fai clic su Code > Download zip per scaricare tutto il codice di questo codelab.
- Decomprimi il file ZIP scaricato per estrarre una cartella principale
examples
con tutte le risorse necessarie.
3. Esegui l'app di base
- Importa la cartella
examples/lite/examples/generative_ai/android
in Android Studio. - Avvia l'emulatore Android, quindi fai clic su
Esegui nel menu di navigazione.
Eseguire ed esplorare l'app
L'app dovrebbe avviarsi sul tuo dispositivo Android. L'app si chiama "Completamento automatico". L'interfaccia utente è piuttosto semplice: puoi digitare alcune parole iniziali nella casella di testo e toccare Genera; l'app esegue quindi l'inferenza su un LLM e genera testo aggiuntivo in base all'input.
Al momento, se tocchi Genera dopo aver digitato alcune parole, non succede nulla. Questo perché non esegue ancora un LLM.
4. Preparare l'LLM per il deployment on-device
- Apri Colab ed esegui il notebook (ospitato nel repository GitHub di TensorFlow Codelabs).
5. Completare l'app Android
Ora che hai convertito il modello GPT-2 in TensorFlow Lite, puoi finalmente eseguirne il deployment nell'app.
Esegui l'app
- Trascina il file del modello
autocomplete.tflite
scaricato nell'ultimo passaggio nella cartellaapp/src/main/assets/
di Android Studio.
- Fai clic su
Esegui nel menu di navigazione e poi attendi il caricamento dell'app.
- Digita alcune parole chiave nel campo di testo e poi tocca Genera.
6. Note sull'AI responsabile
Come indicato nell'annuncio originale di OpenAI GPT-2, il modello GPT-2 presenta avvertenze e limitazioni notevoli. Infatti, gli LLM oggi presentano in genere alcune sfide ben note, come allucinazioni, output offensivi, equità e bias, perché questi modelli vengono addestrati su dati del mondo reale, il che li porta a riflettere i problemi del mondo reale.
Questo codelab è stato creato solo per dimostrare come creare un'app basata su LLM con gli strumenti TensorFlow. Il modello prodotto in questo codelab è solo a scopo didattico e non è destinato all'utilizzo in produzione.
L'utilizzo in produzione di LLM richiede una selezione ponderata dei set di dati di addestramento e mitigazioni complete della sicurezza. Per scoprire di più sull'AI responsabile nel contesto degli LLM, assicurati di guardare la sessione tecnica Safe and Responsible Development with Generative Language Models al Google I/O 2023 e consulta il Responsible AI Toolkit.
7. Conclusione
Complimenti! Hai creato un'app per generare testo coerente in base all'input dell'utente eseguendo un modello linguistico di grandi dimensioni preaddestrato esclusivamente sul dispositivo.