Pocket Guide

MATLAB avec Python pour l’intelligence artificielle

Découvrez comment intégrer MATLAB à PyTorch et TensorFlow et exploitez des grands modèles de langage (LLM) dans vos workflows d’IA.

Ce guide pratique est conçu pour vous aider à combiner des modèles basés sur MATLAB et Python® dans vos workflows d’intelligence artificielle (IA). Découvrez comment effectuer des conversions entre MATLAB, PyTorch® et TensorFlow™ avec Deep Learning Toolbox.

En s’intégrant avec PyTorch et TensorFlow, MATLAB vous permet :

  •   De simplifier la collaboration inter-plateformes et inter-équipes
  •   De tester les performances des modèles et l’intégration aux systèmes
  •   D’accéder aux outils MATLAB et Simulink pour le design de systèmes techniques
Diagramme représentant un flux de conversion.

Effectuer des conversions entre MATLAB, PyTorch et TensorFlow

Deep Learning Toolbox et MATLAB vous permettent d’accéder à des modèles pré-entraînés et de concevoir tous types de réseaux de neurones profonds. Cependant, tous les professionnels de l’IA ne travaillent pas dans MATLAB. Afin de simplifier la collaboration inter-plateformes et inter-équipes lors du design de systèmes basés sur l’IA, Deep Learning Toolbox s’intègre à PyTorch et TensorFlow.

Pourquoi importer des modèles PyTorch et TensorFlow dans MATLAB

Lors de la conversion d’un modèle PyTorch ou TensorFlow en réseau MATLAB, vous pouvez utiliser votre réseau converti avec tous les outils d’IA intégrés à MATLAB, comme les fonctions et les applications, pour l’apprentissage par transfert, l’IA explicable et la vérification, la simulation et le test au niveau système, la compression des réseaux ainsi que la génération automatique de code pour le déploiement sur cibles.

Préparer des modèles PyTorch et TensorFlow en vue de l’importation

Avant d’importer des modèles PyTorch et TensorFlow dans MATLAB, vous devez préparer les modèles et les enregistrer au bon format. Vous pouvez utiliser le code ci-dessous dans Python pour préparer vos modèles.

L’outil d’importation de PyTorch attend un modèle PyTorch tracé. Après avoir tracé le modèle PyTorch, enregistrez-le. Pour en savoir plus sur comment tracer un modèle PyTorch, accédez à la documentation Torch : Tracer une fonction.

X = torch.rand(1,3,224,224)
traced_model = torch.jit.trace(model.forward,X)
traced_model.save("torch_model.pt")

Votre modèle TensorFlow doit être enregistré au format SavedModel.

model.save("myModelTF")

Comment importer des modèles PyTorch et TensorFlow

Diagramme montrant comment PyTorch et TensorFlow peuvent être intégrés à MATLAB.

Vous pouvez importer des modèles depuis PyTorch et TensorFlow dans MATLAB, puis les convertir en réseaux MATLAB avec une simple ligne de code.

Utilisez la fonction importNetworkFromPyTorch et spécifiez PyTorchInputSizes avec la taille en entrée correspondant au modèle PyTorch concerné. Cela permet à la fonction de créer une couche d’entrée d’image pour le réseau importé, car les modèles PyTorch ne disposent pas intrinsèquement de couches d’entrée. Pour en savoir plus, consultez Conseils sur l’importation de modèles depuis PyTorch et TensorFlow.

net = importNetworkFromPyTorch("mnasnet1_0.pt",PyTorchInputSizes=[NaN,3,224,224])

Pour importer un réseau depuis TensorFlow, utilisez la fonction importNetworkFromTensorFlow.

Importer des modèles PyTorch et TensorFlow de manière interactive

Vous pouvez importer des modèles depuis PyTorch de manière interactive grâce à l’application Deep Network Designer. Ensuite, vous pouvez afficher, modifier et analyser le réseau importé depuis l’application. Vous pouvez même exporter le réseau directement dans Simulink depuis l’application. 

Comment exporter des modèles depuis MATLAB vers PyTorch et TensorFlow

Diagramme montrant que les modèles MATLAB peuvent être exportés vers PyTorch ainsi que vers ONNX et TensorFlow.

Vous pouvez exporter et partager vos réseaux MATLAB vers TensorFlow et PyTorch. Utilisez exportNetworkToTensorFlow pour exporter directement vers TensorFlow, et la fonction exportONNXNetwork pour exporter vers PyTorch via ONNX™.

exportNetworkToTensorFlow(net,"myModel")

Pour un essai dans votre navigateur

Importez un modèle TensorFlow et expliquez la prédiction.

LIME (paon).

Exécuter conjointement des modèles basés sur Python dans MATLAB et Simulink

Utilisez des modèles d’IA basés sur Python directement dans votre workflow MATLAB ou système Simulink afin de tester les performances du modèle et l’intégration aux systèmes.

Comparaison : exécution conjointe et conversion des modèles

Pour commencer, comparez l’exécution conjointe d’un modèle PyTorch ou TensorFlow dans votre environnement MATLAB à la conversion du modèle de plateforme externe en réseau MATLAB afin de déterminer quel workflow convient le mieux à votre tâche.

 

Exécution conjointe

Conversion du modèle

Fonctionne pour tous les modèles PyTorch et TensorFlow

Oui

Non

Simuler le modèle dans Simulink

Oui

Oui

Générer votre code automatiquement

Non

Oui

Appliquer des techniques d’explicabilité

Uniquement pour la détection d’objets

Oui

Vérifier la robustesse et la fiabilité

Non

Oui

Utiliser des applications d’IA low-code

Non

Oui

Compresser un réseau

Non

Oui

Exécuter conjointement des modèles basés sur Python dans MATLAB

Appelez des modèles PyTorch et TensorFlow, ou tout code Python, directement depuis MATLAB. Cela vous permet de comparer des modèles basés sur Python, par exemple, afin d’identifier le modèle offrant la plus grande précision dans le cadre du workflow d’IA que vous avez créé dans MATLAB.

Diagramme montrant comment vous pouvez appeler des modèles PyTorch et TensorFlow, ou tout code Python, directement depuis MATLAB.

Exécuter conjointement des modèles basés sur Python dans Simulink

Simulez et testez des modèles PyTorch, TensorFlow, ONNX et Python personnalisés dans les systèmes utilisant les blocs d’exécution conjointe Simulink. Cela vous permet d’effectuer des itérations sur votre design, d’évaluer le comportement des modèles et de tester les performances du système.

Diagramme montrant comment simuler et tester des modèles PyTorch, TensorFlow, ONNX et Python personnalisés dans les systèmes utilisant les blocs d’exécution conjointe Simulink.

Pourquoi utiliser Simulink pour les modèles d’IA

En combinant l’IA avec l’approche Model-Based Design, en plus de tester l’intégration des modèles de Deep Learning dans des systèmes plus vastes, les ingénieurs peuvent accélérer et améliorer le design de systèmes complexes pour des applications telles que le design de capteurs virtuels.

Détection des voies de circulation et des véhicules dans Simulink avec du Deep Learning.

Appeler MATLAB depuis Python

Diagramme décrivant comment appeler MATLAB depuis Python.

Une autre option permettant de combiner MATLAB avec Python pour votre workflow d’IA consiste à appeler MATLAB depuis votre environnement Python. Cette option vous permet de préparer des données que vous introduisez dans un modèle basé sur Python à l’aide d’outils MATLAB spécifiques à un domaine, ou d’appeler les outils d’IA MATLAB pour visualiser et interpréter les décisions d’un modèle d’IA basé sur Python.

Ouvrir un référentiel dans MATLAB Online

Vous pouvez travailler avec des LLM dans MATLAB Online. Les référentiels File Exchange et GitHub® comportant du code MATLAB ont un bouton Open in MATLAB Online . Ce bouton permet d’ouvrir le référentiel directement dans MATLAB Online.


Accéder à des LLM depuis MATLAB

Vous pouvez accéder à des grands modèles de langage (LLM) tels que gpt-4, llama3 et mixtral depuis MATLAB, via une API ou en installant les modèles en local. Vous pouvez ensuite utiliser le modèle de votre choix pour générer du texte. Vous pouvez également utiliser un modèle BERT pré-entraîné, qui est inclus dans MATLAB.

Les LLM pour le traitement du langage naturel

Les LLM ont révolutionné le traitement du langage naturel (NLP), car ils permettent de saisir les relations complexes entre les mots et les nuances du langage humain. Les LLM de MATLAB ne constituent qu’une partie du pipeline NLP (consultez L’IA MATLAB pour le traitement du langage naturel). Exploitez des outils disponibles dans MATLAB pour créer le pipeline complet. Par exemple, vous pouvez utiliser les fonctions de Text Analytics Toolbox pour accéder aux données textuelles et les préparer.

Illustration du workflow du traitement du langage naturel.

Pipeline du traitement du langage naturel.

Référentiel : LLM avec MATLAB

Vous pouvez connecter MATLAB à l’API Chat Completions d’OpenAI® (qui anime ChatGPT™), Ollama™ (pour les LLM locaux), et aux services Azure® OpenAI en utilisant les LLM avec le référentiel MATLAB.

Accéder à des LLM via l’API OpenAI

En utilisant le code dans le référentiel, vous pouvez interfacer l’API OpenAI depuis votre environnement MATLAB et utiliser des modèles (tels que GPT-4 et GPT-4 Turbo) pour différentes tâches de NLP, y compris la création de votre propre chatbot et l’analyse de sentiment. Pour interfacer l’API OpenAI, vous devez obtenir une clé d’API OpenAI. Consultez API OpenAI pour en savoir plus sur les clés et les coûts.

Illustration d’une requête d’utilisateur passant par un chatbot pour générer une réponse.

Création d’un chatbot.

Accéder aux LMM via un service Azure OpenAI

Pour utiliser les services Azure OpenAI vous devez d’abord déployer un modèle sur votre compte Azure et obtenir une clé pour le modèle. Azure OpenAI codéveloppe ses API avec OpenAI et ajoute les fonctionnalités de sécurité de Microsoft® Azure. Les LLM disposant du référentiel MATLAB vous fournissent du code pour vous connecter aux services Azure OpenAI depuis MATLAB.

Accéder aux LLM locaux via Ollama

En utilisant le code dans le référentiel et en connectant MATLAB à un serveur Ollama local, vous pouvez accéder aux LLM locaux populaires, tels que llama3, mistral et gemma. Vous pouvez utiliser des LLM locaux pour des tâches de NLP, comme la génération augmentée de récupération (RAG), qui permet d’augmenter la précision du LLM en utilisant vos propres données.

Illustration d’un workflow pour la génération augmentée de récupération.

Workflow de la génération augmentée de récupération.

Pour un essai dans votre navigateur

Créez un chatBot simple avec MATLAB et l’API OpenAI.


Navigation dans l'interface

Tutoriel

Deep Learning Onramp

Découvrez les fondamentaux du Deep Learning pour les problèmes de classification d’images dans MATLAB