Exécuter un LLM local (Gemma 3) sur iOS avec MLC-LLM
(blog.devstory.co.kr)Voici un billet qui récapitule la méthode pour exécuter localement le modèle Gemma 3 sur un appareil iOS via MLC-LLM, ainsi que des indicateurs de performances mesurés en conditions réelles.
Résumé
- Utilisation de MLC-LLM : mise en place d’un environnement d’inférence fluide sur mobile, avec une latence quasiment nulle grâce à l’accélération par l’API Metal
- Processus de build de Gemma 3 1B : guide complet du workflow, du téléchargement du modèle depuis Hugging Face à la quantification q4f16_1, en passant par l’application du template de dialogue (gemma3_instruction) et la compilation des kernels Metal
- Indicateurs de performances et de ressources :
- Gemma 2 2B : environ 2,4 Go de VRAM utilisés
- Gemma 3 1B : environ 1,14 Go de VRAM utilisés
- Conseils d’exécution : inclut la méthode pour packager un modèle personnalisé dans un projet Xcode via la configuration
mlc-package-config.json
Évaluation
- Avec MLC-LLM, il est possible de porter directement des LLM performants sur des appareils iOS tout en bénéficiant à la fois de la protection de la vie privée et d’une exécution hors ligne
- Le modèle semble avoir un peu de mal à générer des réponses structurées, comme au format JSON
- Pour des fonctionnalités nécessitant des system prompts complexes ou des tâches d’extraction de données, un travail complémentaire de prompt engineering ou de fine-tuning supplémentaire semble nécessaire
- Si l’on y ajoute à l’avenir une connexion à des pipelines dédiés au modèle et un travail d’optimisation du projet, il devrait être possible de construire des services d’IA on-device encore plus pratiques
8 commentaires
J’utilise qwen 3 0.6b q5 sur un Galaxy Fold 4, mais pour l’instant je trouve ça encore un peu décevant.
Je me demande sur quel point vous avez été déçu.
Est-ce parce que le modèle est trop petit et que les performances du LLM sont décevantes, ou bien parce que les performances d’exécution en local sont décevantes ?
Les performances sont décevantes. Le support du GPU ou de certains NPU n’est pas encore disponible, donc c’est lent..
J’étudie le modèle gemma3 1b int4 sur un Galaxy Note 20 Ultra.
Il tourne à un niveau acceptable sur les anciens modèles.
Oh, est-ce que l’accélération Vulkan est prise en charge ?
Censé fonctionner, mais chez moi ça ne marche pas :'(
Sur un Galaxy Note20, il sera sans doute difficile de l’utiliser de façon fluide tant qu’un modèle capable de bien fonctionner sur un CPU moins puissant — donc mieux optimisé — ne sera pas disponible.
D’après ce qui est indiqué plus haut, cela a été conçu pour des kernels Metal dédiés au Mac.
Si l’on utilise MLX, il me semble qu’on peut obtenir un chargement et une exécution plus rapides qu’avec un GGUF classique.
Mais jusqu’à la 4b, ça reste mitigé ;;