in

Développement d'IA sur un PC Copilot+ ? Pas encore

Microsoft et ses partenaires matériels ont récemment lancé ses PC Copilot+, alimentés par des processeurs Arm avec des unités de traitement neuronal intégrées. Il s'agit d'une redirection intéressante par rapport aux précédentes plates-formes x64 grand public, initialement axées sur les processeurs Snapdragon X Arm de Qualcomm et exécutant les dernières versions de Windows on Arm de Microsoft. Achetez-en un maintenant, et il exécute déjà la version 24H2 de Windows 11, au moins quelques mois avant que 24H2 n'atteigne un autre matériel.

Prêt à l'emploi, le Copilot+ est un PC rapide, doté de toutes les fonctionnalités que nous attendons d'un ordinateur portable moderne. La durée de vie de la batterie est excellente et les tests de référence natifs Arm sont aussi bons, voire meilleurs, que la plupart des matériels Intel ou AMD. Ils donnent même du fil à retordre aux processeurs Apple M2 et M3 Arm. Cela les rend idéaux pour les tâches de développement les plus courantes utilisant Visual Studio et Visual Studio Code. Les deux ont des versions Arm64, ils n'ont donc pas besoin de subir la complexité supplémentaire fournie par la couche d'émulation Prism de Windows On Arm.

PC Arm pour le développement Arm

Avec GitHub ou un autre système de contrôle de version pour gérer le code, les développeurs travaillant sur les versions Arm des applications peuvent rapidement cloner un référentiel, configurer une nouvelle branche, créer, tester et apporter des modifications locales avant de pousser leur branche vers le référentiel principal, prête à être utilisée. demande de fusionner les modifications. Cette approche devrait accélérer le développement de versions Arm des applications existantes, le matériel performant faisant désormais partie du cycle de vie du développement logiciel.

Pour être honnête, cela ne change pas beaucoup par rapport au matériel Windows On Arm antérieur. Si c'est tout ce dont vous avez besoin, cette nouvelle génération de matériel apporte simplement un ensemble plus large de sources. Si vous avez un contrat d'achat avec Dell, HP ou Lenovo, vous pouvez rapidement ajouter du matériel Arm à votre flotte et vous n'êtes pas obligé d'utiliser la Surface de Microsoft.

La caractéristique la plus intéressante des nouveaux appareils est l'unité de traitement neuronal (NPU) intégrée. Offrant au moins 40 TOP de capacités de calcul supplémentaires, le NPU apporte des capacités d'inférence locale avancées aux PC, prenant en charge de petits modèles de langage et d'autres fonctionnalités d'apprentissage automatique. Microsoft les présente initialement avec un outil de sous-titrage en direct et une sélection de différents filtres vidéo en temps réel dans le chemin de traitement de la caméra de l'appareil. (L'outil d'indexation Recall AI prévu est en cours de réaménagement pour répondre aux problèmes de sécurité.)

Créez votre propre IA sur du matériel IA

Les applications d'IA fournies sont intéressantes et potentiellement utiles, mais il serait peut-être préférable de les considérer comme des indicateurs des capacités du matériel. Comme toujours, Microsoft compte sur ses développeurs pour fournir des applications plus complexes capables de pousser le matériel dans ses derniers retranchements. C'est l'objectif du Copilot Runtime, avec la prise en charge du runtime d'inférence ONNX et, si ce n'est pas dans la version Windows d'origine, une version de son API d'inférence DirectML pour les PC Copilot+ et leur NPU Qualcomm.

Bien que la prise en charge de DirectML simplifie la création et l’exécution d’applications d’IA, Microsoft a déjà commencé à fournir certains des outils nécessaires pour créer vos propres applications d’IA. Ne vous attendez pas à ce que ce soit facile, car de nombreux éléments manquent encore, ce qui rend le flux de travail de développement de l'IA difficile à mettre en œuvre.

Par où commencer ? L'endroit évident est l'AI Toolkit for Visual Studio Code. Il est conçu pour vous aider à essayer et à régler de petits modèles de langage pouvant s'exécuter sur des PC et des ordinateurs portables, en utilisant le CPU, le GPU et le NPU. Les dernières versions prennent en charge Arm64, vous pouvez donc installer AI Toolkit et Visual Studio Code sur vos appareils de développement.

Travailler avec AI Toolkit pour Visual Studio

L'installation est rapide, grâce aux outils Marketplace intégrés. Si vous envisagez de créer des applications d'IA, il est utile d'installer les outils Python et C#, ainsi que les outils de connexion à GitHub ou à d'autres référentiels de code source. Parmi les autres fonctionnalités utiles à ajouter, citons la prise en charge d'Azure et les extensions nécessaires pour fonctionner avec le sous-système Windows pour Linux (WSL).

Une fois installé, vous pouvez utiliser AI Toolkit pour évaluer une bibliothèque de petits modèles de langage destinés à s'exécuter sur des PC et du matériel Edge. Cinq sont actuellement disponibles : quatre versions différentes du Phi-3 de Microsoft et une instance de Mistral 7b. Ils sont tous téléchargés localement et vous pouvez utiliser le modèle de terrain de jeu d'AI Toolkit pour expérimenter les instructions contextuelles et les invites utilisateur.

Malheureusement, le terrain de jeu du modèle n'utilise pas le NPU, vous ne pouvez donc pas avoir une idée de la façon dont le modèle fonctionnera sur le NPU. Néanmoins, il est bon d'expérimenter le développement du contexte de votre application et de voir comment le modèle répond aux entrées de l'utilisateur. Ce serait bien d'avoir un moyen de créer une application plus complète autour du modèle, par exemple en implémentant Prompt Flow ou un outil d'orchestration d'IA similaire pour expérimenter l'ancrage de votre petit modèle de langage dans vos propres données.

Ne vous attendez pas à pouvoir peaufiner un modèle sur un PC Copilot+. Ils répondent à la plupart des exigences, avec la prise en charge des versions Arm64 WSL correctes d'Ubuntu, mais le matériel Qualcomm n'inclut pas de GPU Nvidia. Son NPU est conçu uniquement pour l'inférence, il ne fournit donc pas les capacités nécessaires au réglage fin des algorithmes.

Cela ne vous empêche pas d'utiliser un appareil Arm dans le cadre d'un flux de travail de réglage fin, car il peut toujours être utilisé avec une machine virtuelle hébergée dans le cloud qui a accès à un GPU entier ou partiel. Microsoft Dev Box et GitHub Codespaces disposent tous deux d'options de machine virtuelle compatibles GPU, bien que celles-ci puissent être coûteuses si vous exécutez un travail volumineux. Vous pouvez également utiliser un PC équipé d'un GPU Nvidia si vous travaillez avec des données confidentielles.

Une fois que vous disposez d’un modèle qui vous convient, vous pouvez commencer à l’intégrer dans une application. C'est là qu'il y a une grande lacune dans le flux de travail de développement de l'IA sur PC Copilot+, car vous ne pouvez pas passer directement d'AI Toolkit à l'édition de code. Au lieu de cela, commencez par rechercher le répertoire caché contenant la copie locale du modèle que vous avez testé (ou téléchargez une version optimisée à partir du service de réglage fin de votre choix), configurez un runtime ONNX prenant en charge le NPU du PC et utilisez cela pour commencer à créer et tester le code.

Création d'un runtime d'IA pour les NPU Qualcomm

Bien que vous puissiez créer un environnement Arm ONNX à partir des sources, tous les éléments dont vous avez besoin sont déjà disponibles, il vous suffit donc d'assembler votre propre environnement d'exécution. AI Toolkit inclut un point de terminaison de serveur Web de base pour un modèle chargé, et vous pouvez l'utiliser avec des outils tels que Postman pour voir comment il fonctionne avec les entrées et sorties REST, comme si vous l'utilisiez dans une application Web.

Si vous préférez créer votre propre code, il existe une version Arm64 de Python 3 pour Windows, ainsi qu'une version prédéfinie du fournisseur d'exécution ONNX pour les NPU QNN de Qualcomm. Cela devrait vous permettre de créer et de tester du code Python à partir de Visual Studio Code une fois que vous avez validé votre modèle à l'aide de l'inférence CPU dans AI Toolkit. Bien que ce ne soit pas une approche idéale, elle vous permet d'utiliser un PC Copilot+ comme environnement de développement d'IA. Vous pouvez même l'utiliser avec la version Python du cadre d'orchestration d'agents Semantic Kernel AI de Microsoft.

Les développeurs C# ne sont pas en reste. Il existe une version .NET de l'outil QNN ONNX disponible sur NuGet, vous pouvez donc rapidement prendre des modèles locaux et les inclure dans votre code. Vous pouvez utiliser AI Toolkit et Python pour valider les modèles avant de les intégrer dans des applications .NET.

Il est important de comprendre les limites de l'outil QNN ONNX. Il est uniquement conçu pour les modèles quantifiés, ce qui nécessite de s'assurer que tous les modèles que vous utilisez sont quantifiés pour utiliser des entiers de 8 ou 16 bits. Vous devez consulter la documentation avant d'utiliser un modèle disponible dans le commerce pour voir si vous devez apporter des modifications avant de l'inclure dans vos applications.

Si proche, mais pourtant si loin

Bien que la plateforme PC Copilot+ (et le Copilot Runtime associé) soit très prometteuse, la chaîne d’outils est encore fragmentée. Dans l’état actuel des choses, il est difficile de passer du modèle au code puis à l’application sans avoir à sortir de votre IDE. Cependant, il est possible de voir comment une future version de AI Toolkit for Visual Studio Code peut regrouper les environnements d'exécution QNN ONNX, ainsi que les rendre disponibles pour une utilisation via DirectML pour le développement d'applications .NET.

Cette future version doit être publiée le plus tôt possible, car les appareils sont déjà entre les mains des développeurs. Obtenir l’inférence de l’IA sur les appareils locaux est une étape importante dans la réduction de la charge sur les centres de données Azure.

Oui, l'état actuel du développement de l'IA Arm64 sur Windows est décevant, mais c'est davantage parce qu'il est possible de voir ce que cela pourrait être, et non par manque d'outils. De nombreux éléments nécessaires sont ici ; ce qu'il faut, c'est un moyen de les regrouper pour nous offrir une plate-forme de développement d'applications d'IA de bout en bout afin que nous puissions tirer le meilleur parti du matériel.

Pour l'instant, il serait peut-être préférable de s'en tenir au Copilot Runtime et au modèle Phi-Silica intégré avec ses API prêtes à l'emploi. Après tout, j'ai acheté l'un des nouveaux ordinateurs portables Surface équipés d'Arm et je veux le voir tenir ses promesses en tant que matériel de développement d'IA que j'espère utiliser. J'espère que Microsoft (et Qualcomm) combleront les lacunes et me donneront l'expérience de codage NPU que je souhaite.

Copyright © 2024 IDG Communications, Inc.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

GIPHY App Key not set. Please check settings

    Résurgence du Covid-19 : Le Minsanté contre-attaque

    marbre en serpentinite et traces d’un océan en haut des montagnes