Lire en anglais Modifier

Partager via


Questions fréquemment posées sur l’utilisation de l’IA dans les applications Windows

Général

Comment puis-je intégrer l’IA dans mon application cliente Windows ?

L’intégration de l’IA à votre application Windows peut se faire selon via deux méthodes principales : un modèle local ou un modèle basé sur le cloud. Pour l’option de modèle local, vous avez la possibilité d’utiliser un modèle préexistant ou d’entraîner votre propre modèle à l'aide de plateformes telles que TensorFlow ou pyTorch, puis de l’incorporer dans votre application via OnnxRuntime. Windows Copilot Runtime propose des API pour différentes fonctions, notamment l'OCR ou l'utilisation du modèle Phi Silicon. D'autre part, l’hébergement de votre modèle sur le cloud et son accès via une API REST permettent à votre application de rester rationalisée en déléguant les tâches gourmandes en ressources au cloud. Pour plus d’informations, consultez Utiliser les modèles Machine Learning dans votre application Windows.

Quels sont les meilleurs langages de programmation pour développer l’IA dans les applications clientes Windows ?

Vous pouvez utiliser le langage de programmation de votre choix. Par exemple, C# est largement utilisé pour créer des applications clientes Windows. Si vous avez besoin d’un meilleur contrôle sur les détails de bas niveau, C++ est une excellente option. Vous pouvez également envisager d’utiliser Python. Vous pouvez également utiliser le sous-système Windows pour Linux (WSL) pour exécuter des outils d’IA basés sur Linux sur Windows.

Quelles sont les meilleures infrastructures d'IA pour les applications clientes Windows ?

Nous vous recommandons d’utiliser OnnxRuntime.

Comment gérer la confidentialité et la sécurité des données lors de l’utilisation de l’IA dans les applications clientes Windows ?

Le respect de la confidentialité et de la sécurité des données utilisateur est essentiel lors du développement d’applications basées sur l’IA. Vous devez suivre les meilleures pratiques pour la gestion des données, telles que le chiffrement des données sensibles, l’utilisation de connexions sécurisées et l’obtention du consentement de l’utilisateur avant de collecter des données. Vous devez également être transparent sur la façon dont vous utilisez les données et donner aux utilisateurs le contrôle de leurs données. Veillez à lire Développement d’applications et de fonctionnalités d’IA générative responsable sur Windows également.

Quelle est la configuration système requise pour l’exécution de l’IA dans les applications clientes Windows ?

La configuration requise pour les applications Windows qui utilisent l’IA dépend de la complexité du modèle d'IA et de l’accélération matérielle utilisée. Pour les modèles simples, un processeur moderne peut être suffisant, mais pour des modèles plus complexes, un GPU ou un NPU peut être nécessaire. Vous devez également prendre en compte les besoins en mémoire et en stockage de votre application, ainsi que la bande passante réseau requise pour les services d'IA basés sur le cloud.

Comment optimiser les performances de l’IA dans les applications clientes Windows ?

Pour optimiser les performances de l’IA dans les applications Windows, vous devez envisager d’utiliser l’accélération matérielle, comme les processeurs graphiques (GPU) ou les unités de traitement neuronal (NPU), pour accélérer l’inférence d’un modèle. Les ordinateurs portables Windows Copilot+ sont optimisés pour les charges de travail d'IA et peuvent fournir une amélioration significative des performances pour les tâches d'IA. Voir aussi Vue d’ensemble d’AI Toolkit for Visual Studio Code.

Puis-je utiliser des modèles d'IA préentraînés dans mon application cliente Windows ?

Oui, vous pouvez utiliser des modèles d'IA préentraînés dans votre application Windows. Vous pouvez télécharger des modèles préentraînés à partir d’Internet ou utiliser un service d'IA basé sur le cloud pour accéder aux modèles préentraînés. Vous pouvez ensuite intégrer ces modèles dans votre application à l’aide d’une infrastructure telle qu’OnnxRuntime.

Qu’est-ce que DirectML ?

DirectML est une API de bas niveau pour l’apprentissage automatique qui propose une accélération de GPU pour les tâches courantes d’apprentissage automatique sur un large éventail de matériels et de pilotes pris en charge, y compris tous les GPU compatibles avec DirectX 12 provenant de fournisseurs tels que AMD, Intel, NVIDIA et Qualcomm.

Qu’est-ce qu’ONNX ?

Open Network Neural Exchange, ou ONNX, est un format de norme ouverte de représentation des modèles de ML. Les infrastructures de modèles de ML populaires comme TensorFlow, PyTorch, SciKit-Learn, Keras, Chainer, MXNet, MATLAB, etc., peuvent être exportés ou convertis au format ONNX standard. Une fois au format ONNX, le modèle peut s’exécuter sur une multitude de plateformes et d’appareils. ONNX est adapté à l’utilisation d’un modèle de ML dans un format différent de celui sur lequel il a été entraîné.

Qu’est-ce qu’ORT ?

OnnxRuntime, ou ORT, est un outil d’exécution unifié permettant d’exécuter des modèles dans différents frameworks (PyTorch, TensorFlow, etc.), qui prend en charge les accélérateurs matériels (processeurs de périphérique, GPU ou NPU).

Comment ONNX diffère-t-il des autres infrastructures de ML, comme PyTorch ou TensorFlow ?

PyTorch et TensorFlow sont utilisés pour le développement, l’entraînement et l’exécution de modèles de Deep Learning utilisés dans les applications d’IA. PyTorch est souvent utilisé pour la recherche, TensorFlow est souvent utilisé pour le déploiement du secteur, et ONNX est un format d’échange de modèle normalisé qui permet de combler l’écart, ce qui vous permet de basculer entre les infrastructures selon les besoins, et qui est compatible entre les plateformes.

Qu’est-ce qu’une NPU ? En quoi diffère-t-elle d’une UN ou d’une GPU ?

Une unité de traitement neuronal ou NPU est une puce IA dédiée spécifiquement conçue pour effectuer des tâches d’IA. L’objectif d’une NPU diffère de celui d’un processeur ou d’un GPU. Une unité centrale, ou UC, est le processeur principal d’un ordinateur, responsable de l’exécution d’instructions et de calculs à usage général. Un processeur graphique, ou GPU, est un processeur spécialisé conçu pour le rendu des graphiques et optimisé pour le traitement parallèle. Il est capable de restituer des images complexes pour l’édition vidéo et les tâches de gaming.

Les NPU sont conçus pour accélérer les algorithmes de Deep Learning et peuvent supprimer une partie du travail de l’UC ou du GPU d’un ordinateur, afin que l’appareil puisse fonctionner plus efficacement. Les NPU sont spécialement conçues pour accélérer les tâches de réseau neuronal. Elles excellent dans le traitement de grandes quantités de données en parallèle, ce qui en fait un outil idéal pour les tâches d’IA courantes telles que la reconnaissance d’images ou le traitement du langage naturel. Par exemple, lors d’une tâche de reconnaissance d’image, la NPU peut être responsable de la détection d’objets ou de l’accélération de l’image, tandis que la GPU prend en charge le rendu d’images.

Comment puis-je savoir de quel type d’UC, de GPU ou de NPU dispose mon appareil ?

Pour vérifier le type d’UC , de GPU ou de NPU sur votre appareil Windows et son fonctionnement, ouvrez le Gestionnaire des tâches (Ctrl + Alt + Supprimer), puis sélectionnez l’onglet Performances, qui répertorie l’UC, la mémoire, le Wi-Fi, le GPU et/ou la NPU, ainsi que des informations sur sa vitesse, son taux d’utilisation et d’autres données.

Qu’est-ce que WinML ?

WinML, ou Windows Machine Learning, est une API de haut niveau permettant de déployer des modèles d’apprentissage automatique (ML) à accélération matérielle sur des appareils Windows qui permettent aux développeurs d’utiliser les capacités de l’appareil pour effectuer l’inférence de modèle. L’objectif porte sur le chargement, la liaison et l’évaluation du modèle. WinML utilise le format de modèle ONNX.

Concepts d’IA utiles

Qu’est-ce qu’un grand modèle de langage (LLM) ?

Un LLM est un type de modèle d’apprentissage automatique (ML) connu pour sa capacité de génération et de compréhension de langage à usage général. Les LLM sont des réseaux neuronaux artificiels qui acquièrent des capacités en apprenant des relations statistiques à partir de grandes quantités de documents texte au cours d’un processus de formation auto-supervisé et semi-supervisé nécessitant beaucoup de ressources de calcul. Les LLM sont souvent utilisés pour la génération de texte, une forme d’IA générative qui, compte tenu d’un texte d’entrée, génère des mots (ou « jetons ») susceptibles de créer des phrases cohérentes et contextuellement pertinentes en retour. Il existe également des petits modèles de langage (SLM) qui ont moins de paramètres et une capacité plus limitée, mais qui peuvent être plus efficaces (nécessitant moins de ressources de calcul), rentables et adéquats pour des domaines spécifiques.

Qu’est-ce que l’apprentissage du modèle de ML ?

Dans l’apprentissage automatique, l’entraînement de modèle implique l’alimentation d’un jeu de données dans un modèle (un LLM ou SLM), ce qui lui permet d’apprendre à partir des données afin que le modèle puisse effectuer des prédictions ou prendre des décisions en fonction de ces données, en reconnaissant les modèles. Il peut également impliquer l’ajustement itératif des paramètres de modèle pour optimiser ses performances.

Qu’est-ce que l’inférence ?

Le processus d’utilisation d’un modèle Machine Learning entraîné pour effectuer des prévisions ou des classifications sur de nouvelles données non consultées est appelé « Inférence ». Une fois qu’un modèle de langage a été entraîné sur un jeu de données, en apprenant ses modèles et relations sous-jacents, il est prêt à appliquer ces connaissances à des scénarios réels. L’inférence est le moment de vérité d’un modèle IA, un test de la façon dont il peut appliquer des informations apprises pendant l’entraînement pour effectuer une prévision ou apporter une solution à une tâche. Le processus d’utilisation d’un modèle existant pour l’inférence est différent de la phase d’entraînement, qui nécessite l’utilisation des données d’entraînement et de validation pour développer le modèle et ajuster ses paramètres.

Qu’est-ce que l’ajustement de modèle de ML ?

L’ajustement est une étape cruciale de l’apprentissage automatique au cours de laquelle un modèle préentraîné est adapté pour effectuer une tâche spécifique. Au lieu d’entraîner un modèle en partant de zéro, l’ajustement commence par un modèle existant (généralement entraîné sur un jeu de données volumineux) et règle ses paramètres à l’aide d’un jeu de données plus petit et propre à une tâche. Grâce à l’ajustement, le modèle apprend les fonctionnalités propres aux tâches tout en conservant les connaissances générales acquises lors du pré-entraînement, pour ainsi améliorer les performances pour des applications spécifiques.

Qu’est-ce que l’ingénierie d’invite ?

L’ingénierie d’invite est une approche stratégique utilisée avec l’IA générative pour façonner le comportement et les réponses d’un modèle de langage. Elle implique l’élaboration réfléchie d’invites d’entrée ou de requêtes pour obtenir le résultat souhaité de la part d’un modèle de langage (comme GPT-3 ou GPT-4). En concevant une invite efficace, vous pouvez guider un modèle ML pour qu’il produise le type de réponse souhaité. Les techniques incluent l’ajustement de la formulation, la spécification du contexte ou l’utilisation de codes de contrôle pour influencer la sortie du modèle.

Qu’est-ce que l’accélération matérielle (en ce qui concerne l’entraînement du modèle de ML) ?

L’accélération matérielle fait référence à l’utilisation de matériel informatique spécialisé conçu pour accélérer les applications d’IA au-delà de ce qui est réalisable avec des UC à usage général. L’accélération matérielle améliore la vitesse, l’efficacité énergétique et les performances globales des tâches d’apprentissage automatique, telles que les modèles d’entraînement, les prévisions ou le calcul de déchargement sur des composants matériels dédiés qui excellent au niveau du traitement parallèle pour les charges de travail de Deep Learning. Les GPU et les NPU sont des exemples d’accélérateurs matériels.

Quelles sont les différences entre un scientifique des données, un ingénieur ML et un développeur d’applications qui souhaite appliquer des fonctionnalités d’IA dans ses applis ?

Le processus de création et d’utilisation de modèles de ML implique trois rôles principaux : Scientifiques des données : responsables de la définition du problème, de la collecte et de l’analyse des données, du choix et de l’entraînement de l’algorithme de ML, de l’évaluation et de l’interprétation des résultats. Ils utilisent des outils tels que Python, R, Jupyter Notebook, TensorFlow, PyTorch et scikit-learn pour réaliser ces tâches. Ingénieurs ML : responsables du déploiement, de la surveillance et de la maintenance des modèles de ML dans les environnements de production. Ils utilisent des outils tels que Docker, Kubernetes, Azure ML, AWS SageMaker et Google Cloud AI Platform pour garantir la scalabilité, la fiabilité et la sécurité des modèles de ML. Développeurs d’applications : responsabled de l’intégration des modèles de ML dans la logique d’application, l’IU et l’expérience utilisateur. Ils utilisent des outils tels que Windows Copilot Runtime, OnnxRuntime ou les API REST et traitent l’entrée utilisateur et la sortie du modèle. Chaque rôle implique différentes responsabilités et compétences, mais la collaboration et la communication entre ces rôles sont nécessaires pour obtenir les meilleurs résultats. En fonction de la taille et de la complexité du projet, ces rôles peuvent être assumés par la même personne ou par différentes équipes.