1. Prima di iniziare
Una delle scoperte più interessanti del machine learning di recente è costituita dai modelli linguistici di grandi dimensioni (LLM). Possono essere utilizzati per generare testi, tradurre lingue e rispondere alle domande in modo completo e informativo. Gli LLM, come Google LaMDA e PaLM, 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. Ciò consente loro di generare testi simili a quelli scritti da persone e di tradurre le lingue con un elevato grado di accuratezza.
Gli LLM sono molto grandi in termini di archiviazione e generalmente consumano molta potenza di calcolo per essere eseguiti, il che significa che di solito vengono implementati nel cloud e sono piuttosto impegnativi per il machine learning on-device (ODML) a causa della potenza di calcolo limitata sui dispositivi mobili. Tuttavia, è possibile eseguire LLM su scala ridotta (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 velocità di 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 dell'LLM su Android
Prerequisiti
- Conoscenza intermedia di Keras e TensorFlow Lite
- Conoscenza di base dello sviluppo di Android
Obiettivi didattici
- Come utilizzare KerasNLP per caricare un LLM preaddestrato e perfezionarlo
- Come quantificare 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 Codice > Scarica il file ZIP per scaricare tutto il codice per questo codelab.
- Decomprimi il file ZIP scaricato per aprire una cartella principale
examples
con tutte le risorse di cui hai bisogno.
3. Esegui l'app iniziale
- 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.
Esegui ed esplora 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 è ancora in esecuzione un LLM.
4. Prepara l'LLM per il deployment sul dispositivo
- Apri Colab ed esamina il blocco note (ospitato nel repository GitHub di TensorFlow Codelabs).
5. Completa l'app per 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 dall'ultimo passaggio nella cartellaapp/src/main/assets/
di Android Studio.
- Fai clic su Esegui nel menu di navigazione, quindi attendi il caricamento dell'app.
- Digita alcune parole iniziali nel campo di testo, quindi tocca Genera.
6. Note sull'IA responsabile
Come indicato nell'annuncio originale di OpenAI GPT-2, il modello GPT-2 prevede avvertenze e limitazioni notevoli. Infatti, oggi i modelli LLM hanno generalmente alcune sfide ben note, come allucinazioni, output offensivi, equità e pregiudizi. perché questi modelli sono addestrati su dati del mondo reale, il che li fa riflettere i problemi del mondo reale.
Questo codelab è creato solo per dimostrare come creare un'app basata sugli LLM con gli strumenti TensorFlow. Il modello prodotto in questo codelab è solo a scopo didattico e non è destinato all'uso in produzione.
L'utilizzo della produzione LLM richiede una selezione accurata dei set di dati di addestramento e misure di sicurezza complete. Per scoprire di più sull'IA responsabile nel contesto degli LLM, assicurati di guardare la sessione tecnica Sviluppo sicuro e responsabile con i modelli linguistici generativi al Google I/O 2023 e dai un'occhiata al Toolkit per l'IA responsabile.
7. Conclusione
Complimenti! Hai creato un'app per generare testo coerente basato sull'input dell'utente eseguendo un modello linguistico di grandi dimensioni preaddestrato esclusivamente sul dispositivo.