Utiliser les modèles Machine Learning dans votre application Windows
Ce guide aide les développeurs d’applications à travailler avec des modèles d’intelligence artificielle (IA) et d’apprentissage automatique (ML) en répondant à des questions courantes, en partageant des concepts et des ressources de base et en offrant des recommandations sur la façon d’utiliser les modèles d’IA et de ML dans une application Windows.
Machine Learning (ML) est une branche de l’intelligence artificielle (IA) qui permet aux ordinateurs d’apprendre à partir de données et de prendre des prédictions ou des décisions.
Les modèles ML sont des algorithmes qui peuvent être formés sur des données, puis déployés pour effectuer différentes tâches, telles que la génération de contenus, le raisonnement sur le contenu, la reconnaissance d’images, le traitement du langage naturel, l’analyse des sentiments, etc.
Comment les applications Windows peuvent-elles tirer profit des modèles ML ?
Voici quelques façons dont les applications Windows peuvent tirer profit des modèles ML pour améliorer leurs fonctionnalités et leur expérience utilisateur :
- Les applications peuvent utiliser des modèles d’IA Générative pour comprendre les sujets complexes pour résumer, réécrire, créer un rapport ou s’étendre.
- Les applications peuvent utiliser des modèles qui transforment du contenu de forme libre en un format structuré que votre application peut comprendre.
- Les applications peuvent utiliser des modèles de recherche sémantique qui permettent aux utilisateurs de rechercher du contenu par sens et de trouver rapidement du contenu associé.
- Les applications peuvent utiliser des modèles de traitement du langage naturel pour raisonner sur les exigences complexes du langage naturel et planifier et exécuter des actions pour accomplir la demande de l’utilisateur.
- Les applications peuvent utiliser des modèles de manipulation d’images pour modifier intelligemment des images, effacer ou ajouter des sujets, une mise à l’échelle ou générer du nouveau contenu.
- Les applications peuvent utiliser des modèles de diagnostic prédictifs pour identifier, prédire les problèmes et guider l’utilisateur ou le faire pour eux.
Modèles ML dans les API sauvegardées par l’IA
La Windows Copilot Runtime associe plusieurs façons d’interagir avec le système d’exploitation qui utilise l’IA. Cela inclut les fonctionnalités prêtes à l’emploi de l’IA appelées Windows Copilot Runtime APIs. Consultez Prise en main de l’utilisation d’API sauvegardées par l’IA dans votre application Windows pour obtenir des conseils sur ces fonctionnalités et API prêtes à l’emploi qui prennent en charge les scénarios répertoriés ci-dessus.
L’exécution Windows Copilot Runtime APIs localement, directement sur l’appareil Windows, vous pouvez également choisir d’utiliser un modèle cloud via une API prête à l’emploi. Qu’elles exécutent un cloud local ou dans le cloud, ces API éliminent le modèle ML sous-jacent afin que vous n’ayez pas à optimiser, mettre en forme ou affiner le réglage.
Toutefois, vous souhaiterez peut-être trouver votre propre modèle ML à utiliser localement sur Windows. Vous devrez peut-être optimiser ce modèle afin qu’il s’exécute correctement sur des appareils Windows ou ajuste un modèle afin qu’il soit formé avec vos propres données personnalisées spécifiques à votre cas d’utilisation ou à votre entreprise. Cet article traite de certains concepts, outils et bibliothèques open source pour vous guider tout au long de ce processus.
Exécution d’un modèle Small Language localement par rapport à un modèle de Large Language dans le cloud
Les Modèles SLM (Small Language Models) sont conçus pour être compacts et efficaces, souvent formés pour des tâches ou des domaines spécifiques sur des jeux de données plus petits afin de permettre le stockage et l’exécution du modèle localement avec un temps de performances d’inférence plus rapide. Les modèles SLM sont limités dans la quantité de données utilisées pour les entraîner et ne fournissent pas de connaissances ou de raisonnement complexes aussi étendus qu’un modèle Large Language (LLM). Toutefois, les SLM peuvent fournir une alternative plus sécurisée et économique aux machines virtuelles locales, car ils nécessitent moins de puissance de calcul pour exécuter et améliorer la confidentialité des données, en conservant vos informations de conversation localement locales sur votre appareil.
Les SLM conviennent parfaitement à une utilisation locale, car l’exécution d’un modèle ML sur un appareil signifie que la taille ne doit pas dépasser la capacité de stockage et de traitement de l’appareil en cours d’exécution. La plupart des machines virtuelles LLM seraient trop volumineuses pour s’exécuter localement.
Les modèles Microsoft Phi-2 et Phi-3 sont des exemples de SLM.
Les modèles Large Language (LLM) ont été formés sur de grandes quantités de données avec un plus grand nombre de paramètres, ce qui les rend plus complexes et plus volumineux pour le stockage. En raison de leur taille, les modèles LLM peuvent être plus capables de comprendre des modèles plus nuancés et complexes dans les données, couvrant un spectre plus large sur les connaissances avec la possibilité d’utiliser des modèles plus complexes. Ils nécessitent également des ressources de calcul plus importantes pour l’apprentissage et l’inférence. La plupart des modèles LLM ne peuvent pas s’exécuter sur un appareil local.
Les modèles de langage OpenAI GPT-4o, GPT-4 Turbo, GPT-3.5 Turbo, DALL-E et Whisper sont tous des exemples de LLM.
Pour obtenir des conseils supplémentaires sur la différence entre l’utilisation d’un SLM localement et d’un LLM dans le cloud, consultez Considérations relatives à l’utilisation d’API basées sur l’IA locale et basée sur le cloud dans votre application Windows.
Rechercher modèles ML open source sur le web
Les modèles ML open source qui sont prêts à être utilisés et peuvent être personnalisés avec vos propres données ou préférences, sont disponibles dans divers endroits, quelques-uns des plus populaires incluent :
- Hugging Face : un hub de plus de 10 000 modèles ML préformés pour le traitement du langage naturel, alimenté par la bibliothèque Transformers. Vous trouverez des modèles pour la classification de texte, la réponse aux questions, la synthèse, la traduction, la génération, etc.
- ONNX Model Zoo : collection de modèles ML préformés au format ONNX qui couvrent un large éventail de domaines et de tâches, tels que la vision par ordinateur, le traitement du langage naturel, la parole, etc.
- Qualcomm AI Hub : plateforme qui permet d’accéder à un large éventail de modèles et d’outils ML optimisés pour les appareils Qualcomm Snapdragon. Vous trouverez des modèles pour le traitement d’images, de vidéos, d’audio et de capteurs, ainsi que des frameworks, des bibliothèques et des kits SDK pour la création et le déploiement d’applications ML sur des appareils mobiles. Le Qualcomm AI Hub offre également des didacticiels, des guides et un support communautaire pour les développeurs et les chercheurs.
- Pytorch Hub : référentiel de modèles préformés conçu pour faciliter la reproductibilité de la recherche et permettre de nouvelles recherches. Il s’agit d’une API et d’un flux de travail simples qui fournissent les blocs de construction de base pour améliorer la reproductibilité de la recherche sur l’apprentissage automatique. Le PyTorch Hub se compose d’un référentiel de modèles préformés conçu spécifiquement pour faciliter la reproductibilité de la recherche.
- TensorFlow Hub : référentiel de modèles ML préformés et de composants réutilisables pour TensorFlow, qui est une infrastructure populaire pour la réalisation et la formation de modèles de ML. Vous pouvez trouver des modèles pour le traitement d’images, de texte, de vidéo et d’audio, ainsi que l’apprentissage et le réglage précis.
- Model Zoo : plateforme qui organise et classe les meilleurs modèles ML open source pour diverses infrastructures et tâches. Vous pouvez parcourir les modèles par catégorie, cadre, licence et évaluation, et voir les démos, le code et les documents pour chaque modèle.
Certaines bibliothèques de modèles ne sont pas destinées à être personnalisées et distribuées via une application, mais sont des outils utiles pour l’exploration et la découverte pratiques dans le cadre du cycle de vie du développement, tels que :
- Ollama : Ollama est un marketplace de modèles ML prêts à l’emploi pour différentes tâches, telles que la détection des visages, l’analyse des sentiments ou la reconnaissance vocale. Vous pouvez parcourir, tester et intégrer les modèles dans votre application en quelques clics.
- LM Studio : Lmstudio est un outil qui vous permet de créer des modèles ML personnalisés à partir de vos propres données, à l’aide d’une interface glisser-déplacer. Vous pouvez choisir parmi différents algorithmes ML, prétraiter et visualiser vos données et entraîner et évaluer vos modèles.
Chaque fois que vous trouvez un modèle ML avec l’objectif de l’utiliser dans votre application Windows, nous vous recommandons vivement de suivre les instructions Développement d’applications et de fonctionnalités d’IA générative responsable sur Windows. Ces conseils vous aideront à comprendre les politiques, les pratiques et les processus de gouvernance, à identifier les risques, à recommander des méthodes de test, à utiliser des mesures de sécurité telles que des modérateurs et des filtres, et énonce des considérations précises au moment de choisir un modèle qui est sécuritaire et responsable.
Comment optimiser un modèle ML pour l’exécuter sur Windows ?
Il existe différentes façons d’utiliser des modèles ML dans les applications Windows, en fonction du type, de la source et du format des modèles et du type d’application.
Voici quelques-uns des formats que vous trouverez parmi les modèles ML :
ONNX : un standard open pour représenter et échanger des modèles ML sur différents frameworks et plateformes. Si vous trouvez un modèle ML préformé au format ONNX, vous pouvez utiliser ONNX Runtime (ORT) pour charger et exécuter le modèle dans votre application Windows. ORT vous permet d’accéder aux fonctionnalités d’inférence accélérées matérielles de votre appareil et d’optimiser les performances de votre modèle ML. Si vous avez un modèle ML préformé dans un autre format, tel que PyTorch ou TensorFlow, vous pouvez le convertir en ONNX à l’aide d’un outil d’optimisation de modèle comme Olive. Pour obtenir de l’aide sur l’utilisation d’Olive, voir Affiner la SLM avec Microsoft Olive (série Journey pour l’architecture d’applications d’IA générative). Pour obtenir des didacticiels sur la création et l’utilisation de modèles ONNX, consultez les Didacticiels ONNX sur GitHub. Pour obtenir des exemples illustrant comment utiliser des modèles ONNX dans une application Windows, consultez Galerie d’exemples d’IA sur Windows.
PyTorch : infrastructure de deep learning open source très populaire disponible avec une interface Python et C++. Il s’agit probablement du format le plus courant que vous trouverez pour les modèles ML. Si vous souhaitez utiliser des modèles PyTorch ML dans votre application Windows (C# ou C++) ou dans une application web, vous pouvez utiliser TorchSharp et LibTorch, qui sont des liaisons .NET et C++ pour la bibliothèque PyTorch. TorchSharp et LibTorch vous permettent de créer, charger et manipuler des tenseurs, générer et exécuter des réseaux neuronaux, ainsi que d’enregistrer et charger des modèles à l’aide du format PyTorch. Pour obtenir des exemples, consultez TorchSharp Examples, TorchScript for Deployment, PyTorch C++ Examples. Pour les applications web, consultez Créer une application web avec ONNX Runtime. Pour obtenir des exemples d’exécution de modèles PyTorch avec DirectML, consultez la Galerie d’exemples d’IA sur Windows.
TensorFlow est une autre bibliothèque de logiciels open source populaire pour l’apprentissage automatique et l’intelligence artificielle utilisée pour créer et déployer des modèles d’apprentissage automatique pour différentes tâches.
API WebNN pour les applications web : un standard Web pour accéder à l’accélération matérielle du réseau neuronal dans les navigateurs, basé sur les API WebIDL et JavaScript. Il permet aux développeurs Web de créer et d’exécuter efficacement des modèles d’apprentissage automatique côté client, sans compter sur les services cloud ou les bibliothèques natives. Exemples WebNN sur GitHub. Exemples WebNN utilisant ONNX Runtime dans l’IA sur la Galerie d’exemples Windows.
Comment ajuster un modèle ML avec mes données personnalisées pour l’exécuter sur Windows ?
AI Toolkit pour Visual Studio Code est une extension VS Code qui vous permet de télécharger et d’exécuter localement des modèles IA. AI Tookit peut également vous aider à :
- Tester des modèles dans un terrain de jeu intuitif ou dans votre application avec une API REST.
- Ajuster votre modèle IA, localement ou dans le cloud (sur une machine virtuelle) pour créer de nouvelles compétences, améliorer la fiabilité des réponses, définir le ton et le format de la réponse.
- Ajuster les modèles populaires de petits langages (SLM), tels que Phi-3 et Mistral.
- Déployez votre fonctionnalité IA dans le cloud ou avec une application qui s’exécute sur un appareil.
Comment puis-je tirer parti de l’accélération matérielle pour améliorer les performances avec les fonctionnalités d’IA
DirectML est une API de bas niveau qui permet au matériel de votre appareil Windows d’accélérer les performances des modèles ML en utilisant le GPU ou le NPU de l’appareil. L’association de DirectML avec le ONNX Runtime est généralement le moyen le plus simple pour les développeurs d’offrir à leurs utilisateurs une IA accélérée par le matériel à grande échelle. En savoir plus : Vue d’ensemble de DirectML.