Modelli linguistici di grandi dimensioni on-device con Keras e TensorFlow Lite

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.

PaLM su Pixel 7 Pro

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:

  1. Vai al repository GitHub per questo codelab.
  2. Fai clic su Codice > Scarica il file ZIP per scaricare tutto il codice per questo codelab.

immagine repository

  1. Decomprimi il file ZIP scaricato per aprire una cartella principale examples con tutte le risorse di cui hai bisogno.

3. Esegui l'app iniziale

  1. Importa la cartella examples/lite/examples/generative_ai/android in Android Studio.
  2. Avvia l'emulatore Android, quindi fai clic su execute.png 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.

screenshot per app iniziale

4. Prepara l'LLM per il deployment sul dispositivo

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

  1. Trascina il file del modello autocomplete.tflite scaricato dall'ultimo passaggio nella cartella app/src/main/assets/ di Android Studio.

aggiungi modello ad Android Studio

  1. Fai clic su execute.png Esegui nel menu di navigazione, quindi attendi il caricamento dell'app.
  2. Digita alcune parole iniziali nel campo di testo, quindi tocca Genera.

screenshot dell'app completata

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.

Scopri di più