12 march 2023
Ce que Microsoft propose pour travailler avec l'IA
Aujourd'hui, tout le monde a entendu les mots intelligence artificielle, réseaux de neurones, ChatGPT. Le sujet est si pertinent et important qu’il est tout simplement impossible de l’ignorer. Dans cet article, je vais discuter un peu de ce qu'est l'intelligence artificielle moderne et vous parler des services que vous pouvez utiliser dans Azure pour travailler avec les réseaux de neurones.
Avant de vous parler des services Microsoft Azure pour travailler avec l'apprentissage automatique et l'intelligence artificielle, j'aimerais parler un peu de l'intelligence artificielle elle-même…

Cela semble magique : vous confiez des tâches à un chatbot ou un générateur d'images et il fait tout pour vous. De beaux textes et images sont produits, et cela semble comme si un humain les avait écrits et dessinés. Mais en réalité, ce n'est pas tout à fait comme ça.

L'intelligence artificielle moderne est un outil, et il est important de le comprendre clairement, car comme tout autre outil, il a ses avantages et ses inconvénients.

Je ne parlerai probablement pas des avantages ici, car ils sont bien connus. Concentrons-nous donc sur les inconvénients.

Tout d'abord, les réseaux neuronaux, comme tout autre algorithme et outil, nécessitent certaines ressources informatiques, et avant de les utiliser dans votre application, vous devez comprendre comment créer correctement un réseau neuronal et comment le déployer correctement. Ce sont des tâches complètement différentes et elles nécessitent généralement des compétences différentes. En d'autres termes, c'est coûteux et compliqué.

Deuxièmement, un réseau neuronal n'est pas intelligent, ce n'est pas un humain, et il ne sait pas comment penser. Il peut effectuer certaines tâches routinières qu'un humain peut faire, probablement même mieux qu'un humain. Par exemple, un réseau neuronal peut probablement reconnaître les races de chats avec une précision plus élevée qu'un humain, mais il y aura encore des erreurs. Il n'y a pas de réseaux neuronaux efficaces à 100 %, tout comme il n'y a pas d'êtres humains efficaces à 100 %.

Pourquoi ai-je dit qu'un réseau neuronal et une intelligence artificielle ne sont pas une intelligence dans notre compréhension humaine ? Parce qu'en fin de compte, c'est juste un algorithme qui transforme les données d'entrée en données de sortie d'une certaine manière (bien que extrêmement complexe).

Jetons un coup d'œil à deux exemples.

Le premier est le bien connu ChatGPT.

Ce chat produit des textes comme s'ils étaient écrits par un humain. Ils sont très vivants, variés et toujours intéressants. Mais le réseau neuronal lui-même, qui est derrière ce chat, ne comprend pas le sens des textes qu'il produit. Tout ce qu'il fait, c'est simplement sélectionner les mots les plus probables qui devraient suivre les mots précédents.

Il y a un article que je vous recommande vivement de lire: "What Is ChatGPT Doing … and Why Does It Work?" par Stephen Wolfram. Il est long et complexe et explique comment fonctionne le chat GPT. En bref, cela ressemble à ceci.

Vous entrez des séquences de mots et le chat analyse ce que vous avez saisi et sélectionne les mots les plus probables pour suivre la séquence de mots actuelle. Vraiment, il ne choisit pas exactement le mot le plus probable, mais un peu moins probable. Cela est fait pour rendre le texte plus naturel. Si le mot le plus probable était choisi, le texte serait souvent répétitif et pas aussi 'vivant'. Au lieu de cela, le texte devient plus intéressant et varié. Le réseau neuronal est utilisé pour sélectionner les mots les plus probables et déterminer leurs probabilités. L'article contient une description assez détaillée de la manière dont cela est fait.

Donc, une fois de plus, ChatGPT ne pense pas ou n'analyse pas. Il génère simplement du texte en fonction de ce qui existe déjà. Chaque mot suivant inséré dans le texte est généré en fonction de l'expérience du réseau neuronal dans la lecture de textes similaires. Autrement dit, le chat ne comprend pas le sens de ce qu'il vous écrit. Il est important de savoir et d'accepter cela, car cela impose certaines limitations sur l'utilisation de cette technologie. Je pense que si vous avez beaucoup utilisé ce chat, vous avez probablement remarqué une certaine linéarité dans ses réponses.

Le deuxième exemple concerne les problèmes qui peuvent survenir lors de l'utilisation de la sortie d'un réseau neuronal. Disons que nous avons une caméra qui surplombe une route très fréquentée. Sa tâche est de reconnaître les plaques d'immatriculation de toutes les voitures qui passent. Comme nous le savons tous, les réseaux neuronaux ne fonctionnent pas avec une probabilité de 100 %. Même 95 %, c'est très bien. Un bon résultat en pratique serait probablement quelque part autour de 85-90 % pour chaque image.

Qu'est-ce que cela signifie ? Cela signifie que même si nous avons une probabilité de 99,9 %, en moyenne, avec 100 détections, nous obtiendrons une erreur. Comme notre caméra est sur une route très fréquentée, si nous parlons de 100 voitures, c'est une erreur, 1 000 voitures - c'est 10 erreurs, et s'il s'agit de 100 000 voitures, c'est déjà 1 000 erreurs. Cependant, si la caméra est vraiment suspendue sur une grande route avec une circulation très dense, il peut y avoir même des millions de voitures qui passent en une journée.
Et c'est presque une probabilité inatteignable pour le fonctionnement d'un réseau neuronal. Il y aura probablement plus d'erreurs car les probabilités de reconnaissance sont généralement plus faibles. Et la pratique montre que tout dépend fortement de la manière dont la caméra est installée, de l'éclairage, et ainsi de suite.

Je vous écris tout cela pour dire que ne croyez pas ceux qui disent qu'ils ont un système entièrement automatique utilisant l'intelligence artificielle qui reconnaît quelque chose. Les réseaux génératifs ne fonctionnent pas non plus parfaitement, par exemple, il y a encore de gros problèmes avec la génération de doigts sur les mains.

Dans notre cas avec les numéros de voiture, il doit y avoir une vérification supplémentaire des résultats. Il doit y avoir une personne qui vérifiera qu'il n'y a pas d'erreur. La même chose se produit probablement dans n'importe quel grand service qui opère sur le marché. En fin de compte, un groupe de personnes vérifie le résultat du travail du réseau neuronal.

En conclusion, je voudrais dire à nouveau que l'intelligence artificielle n'est pas une panacée. C'est un outil merveilleux qui résout bien certaines tâches, mais il est nécessaire de comprendre que cet outil doit être utilisé correctement et qu'il a également ses inconvénients. Et le deuxième point que je veux répéter est que, selon mon opinion personnelle, l'intelligence artificielle n'est pas une intelligence. Elle ne peut pas penser et comprendre.

Maintenant, revenons au sujet de l'article et voyons quels services Microsoft propose pour travailler avec l'intelligence artificielle.

Le premier est le service Azure Machine Learning. Il s'agit d'un excellent service qui vous permet d'expérimenter avec des modèles. De plus, non seulement pour entraîner ces modèles sous une forme abstraite, mais aussi pour les publier et ensuite les utiliser dans vos projets. Vous pouvez utiliser toute la puissance des services de données Azure comme sources de données pour l'entraînement. Et vous pouvez utiliser Azure ML Studio avec une interface visuelle simple et claire. En général, ces outils vous permettent d'accélérer considérablement et de simplifier la création et l'utilisation de vos propres réseaux neuronaux.
Le service suivant découle logiquement du précédent. Si nous avons déjà des outils pour l'entraînement, pourquoi ne pas pré-entraîner certains modèles et les rendre disponibles à tout le monde ? Ainsi, Azure Cognitive Services est un ensemble de modèles pré-entraînés qui couvrent un large éventail de tâches : travail avec la voix et le texte (y compris la conversion de l'un à l'autre et vice versa), traitement d'images, détection d'anomalies, modération de contenu, etc.

C'est également là que se trouve le célèbre Open AI.
Le produit est assez nouveau et est encore en phase de prévisualisation. En bref, il existe deux types de modèles. Le premier est un modèle lié aux langues réelles, certains analogues du ChatGPT. Avec OpenAI, vous pouvez intégrer un chat de type GPT dans votre système. Le deuxième travaille avec le code (comme GitHub Copilot). En conséquence, vous pouvez ajouter la capacité de générer automatiquement du code à vos applications.

Et pour finir, voici quelques liens relatifs au travail avec des réseaux neuronaux capables de reconnaître des images.

L'une des bibliothèques les plus célèbres pour travailler avec des images est PyTorch. Microsoft est un contributeur très actif à cet écosystème et il existe même un service PyTorch distinct sur Azure qui simplifie grandement le travail avec cette bibliothèque en déployant rapidement tout ce qui est nécessaire dans le cloud en quelques clics seulement.

Le deuxième lien est lié à un autre écosystème pour travailler avec des images - YOLOv8. Il s'agit d'un ensemble de modèles prêts à l'emploi pour différentes tâches d'image. Je vous fournis un lien vers le projet GitHub qui vous permet d'importer et d'utiliser des modèles YOLOv8 dans le service Azure Machine Learning.

Comme vous pouvez le voir, Microsoft est à la pointe et l'écosystème qu'il propose couvre toutes les tâches nécessaires pour travailler avec l'apprentissage automatique et l'intelligence artificielle. Vous pouvez utiliser des outils pour créer et entraîner vos propres modèles, vous pouvez utiliser des modèles prêts à l'emploi, et surtout, vous pouvez travailler avec des réseaux neuronaux génératifs au sein d'OpenAI.

C'est tout pour moi. Je vous souhaite un travail merveilleux et productif sur des projets avec des réseaux neuronaux ! Et laissez Microsoft vous aider dans cette voie ! :)