Grands modèles de langage sur l'appareil avec Keras et TensorFlow Lite

1. Avant de commencer

Les grands modèles de langage (LLM) font partie des récentes avancées révolutionnaires du machine learning. Ils permettent de générer du texte, de traduire des langues, et de répondre à des questions de façon exhaustive et informative. Les LLM (comme Google LaMDA et PaLM) sont entraînées sur d'énormes quantités de données textuelles. Cela leur permet d'apprendre les modèles statistiques, et les relations entre les mots et les expressions. Ils peuvent ainsi générer un texte semblable à un texte rédigé par un être humain et traduire des langues avec un haut niveau de précision.

Les LLM imposent un stockage très volumineux et leur exécution demande généralement une importante puissance de calcul. Ils sont donc habituellement déployés dans le cloud et leur application au machine learning sur appareil (ODML) reste difficile en raison de la puissance de calcul limitée des appareils mobiles. Toutefois, il est possible d'exécuter des LLM à plus petite échelle (GPT-2, par exemple) sur un appareil Android moderne tout en obtenant des résultats impressionnants.

Dans cet atelier de programmation, vous découvrirez comment créer une application alimentée par LLM avec :

  • KerasNLP pour importer un LLM préentraîné (GPT-2) ;
  • KerasNLP pour régler un LLM (GPT-2) ;
  • TensorFlow Lite pour convertir, optimiser et déployer le LLM sur Android.

Conditions préalables

  • Connaissances intermédiaires sur Keras et TensorFlow Lite
  • Connaissances de base sur le développement Android

Points abordés

  • Utiliser KerasNLP pour importer un LLM préentraîné et l'ajuster
  • Quantifier et convertir un LLM en TensorFlow Lite
  • Exécuter une inférence sur le modèle TensorFlow Lite converti

Ce dont vous avez besoin

  • Un accès à Colab
  • La dernière version d'Android Studio.
  • Un appareil Android moderne avec plus de 4 Go de RAM

2. Configuration

Pour télécharger le code de cet atelier de programmation, procédez comme suit :

  1. Accédez au dépôt GitHub pour cet atelier de programmation.
  2. Cliquez sur Code > Download ZIP (Code > Télécharger le fichier ZIP) afin de télécharger l'ensemble du code pour cet atelier de programmation.

image du dépôt

  1. Décompressez le fichier ZIP téléchargé pour accéder au dossier racine examples contenant toutes les ressources nécessaires.

3. Exécuter l'application de démarrage

  1. Importez le dossier examples/lite/examples/generative_ai dans Android Studio.
  2. Démarrez Android Emulator, puis cliquez sur execute.png Run (Exécuter) dans le menu de navigation.

Exécuter et explorer l'application

L'application doit se lancer sur votre appareil Android. Elle s'appelle "Auto-complete" (Saisie semi-automatique). L'interface utilisateur est assez simple : vous pouvez saisir plusieurs mots sources dans la zone de texte, puis appuyer sur Generate (Générer). L'application exécute alors une inférence sur un LLM et génère du texte supplémentaire en fonction de votre saisie.

Sur le moment, rien ne se passe lorsque vous appuyez sur Generate (Générer) après avoir saisi quelques mots. En effet, l'application n'exécute pas encore de LLM.

capture d'écran de l'application de démarrage

4. Préparer le LLM pour un déploiement sur l'appareil

5. Finaliser l'application Android

Vous avez converti le modèle GPT-2 en TensorFlow Lite. Vous pouvez maintenant le déployer dans l'application.

Exécuter l'application

  1. Faites glisser le fichier de modèle autocomplete.tflite téléchargé lors la dernière étape dans le dossier app/src/main/assets/ d'Android Studio.

ajout d'un modèle à Android Studio

  1. Dans le menu de navigation, cliquez sur execute.png Run (Exécuter), puis attendez que l'application charge.
  2. Saisissez plusieurs mots sources dans le champ de texte, puis appuyez sur Generate (Générer).

capture d'écran de l'appli finalisée

6. Notes sur l'IA responsable

Comme indiqué dans l'annonce OpenAI GPT-2 d'origine, le modèle GPT-2 fait l'objet d'importantes mises en garde et limites. En réalité, les LLM présentent généralement des problématiques connues, comme les hallucinations, l'impartialité ou encore le biais. En effet, ces modèles sont entraînés sur des données réelles et reflètent donc des problèmes concrets.

Cet atelier de programmation vise uniquement à décrire comment créer une application reposant sur des LLM avec les outils TensorFlow. Le modèle créé dans cet atelier de programmation est fourni à titre purement éducatif et n'est pas destiné à être utilisé en production.

Pour utiliser un LLM en production, vous devez soigneusement sélectionner les ensembles de données d'entraînement et réduire intégralement les risques de sécurité. Pour en savoir plus sur l'IA responsable dans le contexte des LLM, regardez la session technique Safe and Responsible Development with Generative Language Models (Développement sécurisé et responsable avec des modèles de langage génératifs) de Google I/O 2023 et consultez le kit d'outils pour une IA responsable.

7. Conclusion

Félicitations ! Vous avez créé une application pour générer un texte cohérent en fonction des entrées utilisateur en exécutant un grand modèle de langage préentraîné uniquement sur l'appareil.

En savoir plus