Déployer un modèle Gemma 270m affiné avec la pile Google AI Edge

Ce tutoriel vous guide tout au long du processus de déploiement d'un modèle Gemma personnalisé dans une application exemple Android.

Dans ce tutoriel, nous allons :

  1. Commencer avec un modèle affiné
  2. Convertir le modèle affiné avec la bibliothèque AI Edge Torch
    1. Cela convertira le point de contrôle HuggingFace en fichier .litertlm.
  3. Évaluer la qualité du modèle affiné
  4. Exécutez les commandes adb pour transférer le modèle personnalisé vers un appareil de test.
    1. Cela enverra le modèle au format .litertlm à un appareil Android pour les tests locaux.
  5. Exécutez l'application exemple Pirate Gemma.
    1. Cela utilisera la bibliothèque Kotlin LiteRT-LM pour exécuter l'inférence sur le modèle affiné dans un exemple d'application Android.

Étape 1 : Commencez par un modèle affiné

Pour ce tutoriel, nous allons commencer par un modèle affiné. Pour montrer clairement la différence entre un modèle de base et un modèle affiné, nous avons pris un modèle Gemma270m et l'avons affiné pour qu'il parle comme un pirate.

Vous trouverez le modèle Pirate Gemma pré-affiné sur https://huggingface.co/erintwalsh/pirate-gemma.

Pour en savoir plus sur le réglage précis d'un modèle, consultez les guides Gemma Cookbook et Unsloth.

Étape 2 : Convertissez et exécutez votre modèle personnalisé dans la ligne de commande

Maintenant que vous avez publié un modèle personnalisé sur HuggingFace, vous pouvez utiliser la bibliothèque AI Edge Torch pour télécharger et convertir ce modèle au format .litertlm.

Prérequis

Assurez-vous que l'outil uv et Python 3.11 ou version ultérieure sont installés sur votre appareil.

Convertir un modèle

uv tool install litert-torch-nightly

litert-torch export_hf \
  --model=[YOUR-HF-USERNAME]/pirate-gemma \
  --output_dir=/tmp/pirate-gemma \
  --externalize_embedder

Exécuter votre modèle en local

uv tool install litert-lm

litert-lm run  \
  /tmp/pirate-gemma/model.litertlm \
  --prompt="Where is the nearest buried treasure?"

Étape 3 : Évaluer la qualité du modèle

Évaluer la qualité de l'affinage

Une fois votre modèle exécuté en local, vous pouvez utiliser l'outil CLI AI Edge evaluation pour analyser la qualité du modèle LiteRT-LM après l'affinage. Cet outil propose une validation intégrée de la parité de qualité post-conversion entre le modèle HF d'origine et le modèle LiteRT-LM converti avec des ensembles de données publics. En plus des ensembles de données publics, vous pouvez créer des tâches d'évaluation personnalisées à l'aide de vos propres données et de métriques spécifiques. Consultez un exemple de tâche personnalisée pour évaluer ce modèle affiné à l'aide de LLM-as-a-Judge.

uv tool install ai-edge-eval

GEMINI_API_KEY="your_actual_api_key_here"
ai_edge_eval \
  --framework custom \
  --runner litert-lm \
  --model-path /path/to/your/model.litertlm \
  --custom-tasks-file pirate_gemma_custom_task.py \
  --tasks pirate_gemma_eval \
  --output-dir /tmp/results

Étape 4 : Envoyez votre modèle local sur votre appareil de test

Utilisez ces instructions adb pour transférer le modèle que vous venez d'exécuter sur votre appareil Android physique.

adb shell rm -r /data/local/tmp/llm/ # Remove any previously loaded models

adb shell mkdir -p /data/local/tmp/llm/

adb push /tmp/pirate-gemma/model.litertlm  /data/local/tmp/llm/pirate-gemma.litertlm

Étape 5 : Exécuter l'inférence sur votre modèle personnalisé avec l'application exemple Captain Gemma

Captain Gemma est une application qui montre comment interagir avec le modèle sur l'appareil. Trouvez-le sur GitHub et clonez le dépôt pour l'exécuter dans Android Studio.

Ouvrez l'application exemple Captain Gemma et exécutez-la sur votre appareil. Il s'agit d'une application qui utilise des éléments Android Compose pour montrer comment exécuter l'inférence sur un modèle affiné sur votre appareil Android. L'application prend le texte saisi par un utilisateur et renvoie la sagesse pirate du modèle Gemma affiné.

Exécutez l'application sur votre appareil de test, sur lequel vous venez d'envoyer le fichier .litertlm. Saisissez une requête et consultez la sortie du modèle dans la bulle de dialogue blanche.

Écran principal de l'application exemple

Exemple de code

Consultez des exemples de configuration de votre modèle et d'exécution de l'inférence avec les API LiteRT-LM dans l'exemple de code Captain Gemma.

Étape 6 : Déploiement du modèle

Une fois que vous avez terminé de tester votre modèle personnalisé en local et que vous êtes prêt à le déployer, vous pouvez l'héberger de différentes manières :

  • Vous pouvez transférer votre fichier .litertlm vers le dépôt de modèles HuggingFace que vous avez créé précédemment, puis le télécharger dans votre application à l'aide des API HuggingFace.
  • Vous pouvez utiliser un service d'hébergement tel que Firebase, qui fournit des API permettant à votre application de récupérer l'URL de votre modèle et de le télécharger pour Android ou iOS.