Construire son propre Siri en local et on-device, sans cloud
(thehyperplane.substack.com)- Comment créer soi-même un assistant vocal personnel exécuté on-device, sans dépendre d’une API LLM ni du cloud
- Cet assistant comprend le langage naturel, effectue des appels de fonctions personnelles et fonctionne uniquement en local, ce qui permet de garantir une confidentialité totale
- Pour cela, le modèle LLaMA 3.1 est affiné avec LoRA, puis Whisper est utilisé pour convertir la voix en texte, avant d’interpréter le tout comme des commandes exécutées directement sur l’appareil
- Le projet se compose de génération du dataset → fine-tuning → connexion de l’interface vocale → tests et déploiement, et il est proposé sous la forme d’une mini-série gratuite en 5 parties
- L’article met en garde contre l’idée reçue selon laquelle « exécution on-device = simplicité » et souligne que même en local, une approche MLOps et un contrôle qualité rigoureux sont indispensables
Pourquoi construire maintenant un assistant vocal local ?
- Discuter avec ChatGPT est utile, mais faut-il vraiment envoyer au cloud jusqu’aux commandes les plus simples ?
- Si le modèle est installé directement sur votre appareil, vous gagnez à la fois en vitesse, en confidentialité et en contrôle
- C’est particulièrement utile dans des environnements sensibles comme la santé, le droit ou les outils internes d’entreprise
Vue d’ensemble de l’architecture
Composants du projet
- Reconnaissance vocale (Whisper) → conversion en texte
- LLM (LLaMA 3.1) → interprétation des commandes
- Exécuteur de fonctions → exécution de fonctions réelles comme
lock_screen()
Part 1 : architecture et approche MLOps
Pourquoi le MLOps est nécessaire, même en local
- Des problèmes de model drift, de changements de prompts, de fiabilité du dataset et de manque de logs pour le débogage subsistent
- Penser que « le local suffit » est risqué, et une approche structurée est nécessaire
Développement en ligne vs exécution hors ligne
- Le développement (fine-tuning, génération de données) se fait dans le cloud, tandis que l’exécution se fait en local
- Le cœur du MLOps consiste à séparer clairement ces étapes et à les gérer de manière systématique
Génération du dataset (Dataset Generation Flow)
- Il ne s’agit pas simplement de collecter des prompts, mais de concevoir des schémas structurés d’appels de fonctions et des requêtes conversationnelles
- Création d’un dataset de haute qualité couvrant des formulations variées, des intentions diverses et des cas d’échec
Points clés
lock_screen()→ inclure différentes formulations naturelles comme « verrouille l’écran »- Vérifier, via un moteur de validation automatique, que la sortie correspond bien à la forme attendue
Fine-tuning (Instruction Tuning for Function Calling)
- Affinage d’un petit modèle (méthode SFT) pour assurer une correspondance précise des commandes
- Utilisation d’outils de production tels que Unsloth, W&B et l’export au format GGUF
Objectifs
- Convertir LLaMA 3.1 8B en un modèle 4bit pouvant fonctionner en local
- Viser un allègement suffisant pour cibler jusqu’au Raspberry Pi
Intégration du modèle et exécution réelle
- Whisper convertit l’entrée vocale en texte
- Le LLM fine-tuné interprète la commande
- Connexion à un exécuteur de fonctions API local (
lock_screen(),get_battery_status(), etc.)
Résultat
- Possibilité de faire fonctionner un assistant vocal en temps réel
- Aucun réseau nécessaire, aucune fuite de données personnelles, contrôle total pour l’utilisateur
Gestion des risques lors de l’étape hors ligne
- Nécessité de tester sur divers appareils et systèmes d’exploitation
- Mise en place indispensable d’un système de logs (soumission manuelle sur opt-in)
- Avant le déploiement officiel, stress tests et retours utilisateurs pour détecter les problèmes au plus tôt
Plan à venir
- Le cours suivant portera sur un atelier pratique de génération de dataset pour les appels de fonctions
- Construction structurée d’un dataset dédié à l’apprentissage du mapping entre commandes en langage naturel et appels API
- Scraping interdit, uniquement simulation à base de prompts et données validées automatiquement
Conclusion
- Les systèmes d’IA locaux paraissent simples, mais leur stabilité et leur qualité exigent une gestion d’un niveau plus élevé
- Comme ils ne dépendent ni des logs cloud ni des hotfixes, ils exigent davantage de fiabilité et de responsabilité
- Il faut donc appliquer dès le départ une approche MLOps et une conception structurée
> « L’ère des véritables assistants IA centrés sur la confidentialité et pensés local-first est arrivée »
> Le prochain épisode commencera un atelier concret sur la génération de datasets pour le mapping commandes-fonctions.
2 commentaires
La 3.1 est difficile à utiliser pour les utilisateurs non anglophones, et avec la 3.3 ou la 4 le coréen devrait aussi être possible, mais si on veut faire tourner ça on-device, vu que pour les langues non anglaises il faut au moins du 32b ou plus pour que ça ait un vrai intérêt, ça semble encore difficile pour l’instant...
Réactions sur Hacker News