Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Wolfram Language et Mathematica v12.1 permettent de mieux se servir du machine learning
Tandis que WolframScript permet au code Wolfram Language d'être exécuté à partir de n'importe quel terminal

Le , par Stéphane le calme

743PARTAGES

12  0 
Wolfram Mathematica est un logiciel de calcul édité par Wolfram Research depuis 1988 et utilisé dans les milieux scientifiques pour effectuer des calculs algébriques et créer des programmes. Wolfram Research a publié la version 12.1 de son langage de programmation Wolfram Language ainsi que de Wolfram Mathematica.

La quantité de nouvelles fonctionnalités détaillées dans un billet de blog du créateur Stephen Wolfram est assez vaste et a beaucoup à offrir à ceux qui utilisent l'un des produits pour se familiariser avec l'apprentissage automatique. La version 12.1, par exemple, a vu l'ajout de Julia et R à la collection de langages externes, ce qui signifie que les capacités du système devraient être désormais plus accessibles aux data scientists :

« Dans la version 12.1, nous avons ajouté Julia, Ruby et R à notre collection de langages externes. Il y a bien sûr toutes sortes de problèmes pratiques. Nous devons nous assurer qu'une installation appropriée existe sur l'ordinateur d'un utilisateur et que les types de données utilisés dans les programmes peuvent être convertis de manière significative en Wolfram Language

« En fait c'est très pratique. Dans un notebook, tapez simplement> au début d'une ligne, sélectionnez votre langage, entrez le code et procédez à l’évaluation :


« Cela ne fonctionne pas uniquement de manière interactive. C'est également très pratique par programmation. Par exemple, vous pouvez créer une fonction dans le langage externe, qui est ensuite représentée symboliquement dans le Wolfram Language en tant qu'objet ExternalFunction, et qui, lorsqu'elle est appelée, exécute du code dans le langage externe:


« Pour chaque langage différent, cependant, on a affaire à un tout nouveau monde de structures. Mais puisque nous avons un support intégré pour ZeroMQ (ainsi qu'une connexion à Jupyter disponible), nous disposons au moins de l’architecture pour gérer un très large éventail de langages.

« En particulier pour les langages comme Python où nous avons une connectivité intégrée complète, l'une des choses importantes qui deviennent possibles est d'avoir des fonctions qui fonctionnent exactement comme les fonctions Wolfram Language standard mais qui sont entièrement ou partiellement implémentées dans un langage complètement différent. Bien sûr, pour que ce travail fonctionne de manière transparente, il faut pas mal de support système, pour une installation automatisée, le sandboxing, etc. Et par exemple, une des choses à venir est la possibilité d'appeler des fonctions contenant du code Python même dans Wolfram Cloud ».

GAN, BERT, GPT-2, ONNX : les dernières avancées de l'apprentissage automatique

Les utilisateurs qui se servent régulièrement du référentiel de réseaux de neurones Wolfram y trouveront 25 nouveaux types de réseaux, parmi lesquels le modèle de représentation de langage populaire BERT, et le Generative Pretrained Transformer 2 qui est utilisé pour les systèmes de génération de texte. Le système est désormais également livré avec un NetGANOperator symbolique et une option TrainingUpdateSchedule, qui sont destinés, par exemple, à permettre aux fonctions générales de NetTrain dans Wolfram de fonctionner avec des réseaux contradictoires génératifs comme ceux souvent utilisés dans l'apprentissage non supervisé ou par renforcement.

En dehors de cela, l'importation d'implémentations de nouveaux réseaux neuronaux devrait devenir un peu plus facile à l'avenir, car la version 12.1 prend désormais en charge ONNX, un format ouvert pour représenter les modèles d'apprentissage automatique. Ceux qui travaillent dans le traitement d'image obtiennent plus d'aide avec des ajouts comme FindImageText, qui détecte le texte dans une image et le marque, tandis que les audiophiles vont profiter de SpeechInterpreter et SpeechCases.

« L'apprentissage automatique fait fureur ces jours-ci. Bien sûr, nous y avons participé il y a très longtemps. Nous avons introduit les premières versions de nos fonctions d'apprentissage automatique hautement automatisées Classify et Predict en 2014, et nous avons introduit notre première fonction explicitement basée sur un réseau neuronal — ImageIdentify — au début de 2015.

« Depuis lors, nous avons construit un système très solide pour l’apprentissage automatique en général, et pour les réseaux neuronaux en particulier. Plusieurs choses à ce sujet ressortent. Premièrement, nous avons mis l'accent sur l'automatisation élevée - en utilisant l'apprentissage automatique pour automatiser le machine learning dans la mesure du possible, afin que même les non-experts puissent immédiatement utiliser des capacités de pointe. La deuxième grande chose est que nous avons organisé des réseaux de neurones, tout comme nous organisons tant d'autres choses. Cela signifie donc que nous avons des classificateurs et des prédicteurs préformés et des extracteurs de fonctionnalités que vous pouvez utiliser immédiatement et de manière transparente. Et l'autre grande chose est que tout notre système de réseau neuronal est symbolique - dans le sens où les réseaux neuronaux sont spécifiés comme des constructions symboliques calculables qui peuvent être manipulées, visualisées, etc.

« Dans la version 12.1, nous avons poursuivi notre développement de pointe en apprentissage automatique. Il existe 25 nouveaux types de réseaux neuronaux dans notre Wolfram Neural Net Repository, y compris des réseaux tels que BERT et GPT-2. Et avec la façon dont les choses sont configurées, vous pouvez utiliser immédiatement l'un de ces réseaux. (De plus, la version 12.1 prend en charge la nouvelle norme de spécification de réseau neuronal ONNX, qui facilite l'importation des tout derniers réseaux neuronaux publiés dans presque tous les formats).


Si vous voulez voir ce qu'il y a à l'intérieur, cliquez simplement dessus et continuez à cliquer pour explorer de plus en plus de détails:


Vous pouvez maintenant utiliser immédiatement GPT-2, par exemple en générant progressivement un morceau de texte aléatoire, un jeton à la fois:


« Soit dit en passant, les gens parlent parfois de l'apprentissage automatique et des réseaux de neurones comme étant en opposition avec le code du langage de programmation traditionnel. Et en quelque sorte, c'est exact. Un réseau neuronal apprend simplement à partir d'exemples ou d'expériences du monde réel, tandis qu'un langage de programmation traditionnel consiste à donner une spécification abstraite précise de ce que doit faire un ordinateur en détail. Nous sommes dans une position merveilleuse avec le Wolfram Language, parce que ce que nous avons est déjà quelque chose qui s'étend sur ces mondes: nous avons un langage de calcul à grande échelle qui tire parti de toutes ces capacités de calcul précises, mais qui peut représenter et calculer de manière significative des choses dans le monde réel.

« Il a donc été très satisfaisant ces dernières années de voir comment l’apprentissage automatique moderne peut être intégré au Wolfram Language. Nous nous sommes particulièrement intéressés aux nouvelles superfonctions, telles que Predict, Classify, AnomalyDetection, LearnDistribution et SynthesizeMissingValues, qui effectuent des opérations ‘spécifiées symboliquement’, mais à l'aide de réseaux neuronaux et de l'apprentissage automatique moderne.

« Dans la version 12.1, nous continuons dans cette direction et nous nous dirigeons vers des superfonctions qui utilisent des flux de travail de réseau neuronal plus élaborés, comme les GAN. En particulier, la version 12.1 introduit le symbolique NetGANOperator, ainsi que la nouvelle option TrainingUpdateSchedule. Et il s'avère que ce sont les seules choses que nous avons dû changer pour permettre à notre fonction générale NetTrain de fonctionner avec les GAN ».

Le début du calcul vidéo

Si cette dimension n'est pas déjà suffisante, les nouvelles versions sont les premières à prendre en charge activement les calculs sur du matériel vidéo. Les développeurs de systèmes de reconnaissance complexes peuvent donc enfin utiliser l'apprentissage automatique ou les capacités de traitement d'image sur vidéo, ou faire des choses plus simples comme extraire des séquences d'images ou calculer toutes sortes de valeurs moyennes.

« Nous y travaillons depuis près de 15 ans… et enfin nous y sommes : le calcul avec la vidéo! Nous avons introduit images dans le langage en 2008; audio en 2016. Mais maintenant, dans la version 12.1, nous avons pour la première fois le calcul avec la vidéo. Il y aura beaucoup plus à venir dans les prochaines versions, mais il y en a déjà pas mal en 12.1.

« Donc… tout comme l'image et l'audio, qui représentent symboliquement les images et l'audio, nous avons maintenant la vidéo.

« Ceci demande cinq images d'une vidéo:


« La vidéo est un domaine compliqué, avec de nombreux encodages différents optimisés pour différentes finalités. Dans la version 12.1, nous en prenons en charge plus de 250 d’entre eux pour l'importation, l'exportation et le transcodage.

« En plus la vidéo s'intègre désormais à tout. Ainsi, par exemple, vous pouvez immédiatement utiliser des fonctions de traitement d'image ou de traitement audio ou d'apprentissage automatique sur la vidéo ».

Autres points marquants

L'équipe Wolfram a également retravaillé des ensembles de données. Les utilisateurs seront ravis d'apprendre qu'ils peuvent désormais définir des valeurs par défaut pour le nombre de lignes et de colonnes à afficher et qu'ils peuvent désormais mieux contrôler l'apparence d'un ensemble de données. Les données au-delà de ce qui peut être vu dans un bloc-notes sont stockées directement dans le bloc-notes dans la nouvelle version, ce qui signifie qu'elles seront toujours accessibles une fois rouvert. Pendant ce temps, les données bidimensionnelles peuvent désormais être saisies et visualisées à l'aide de la fonction expérimentale TableView.

Avec la version 12.1, les paclets sont devenus une partie entièrement prise en charge de Wolfram Language.

Wolfram lui-même les a décrits dans son introduction comme des packages modulaires de code et d'autres ressources pour fournir des fonctionnalités. « Un paclet peut configurer du code à exécuter au moment du démarrage. Il peut définir des symboles dont les définitions seront chargées automatiquement. Il peut installer la documentation. Il peut mettre des éléments dans les menus. Et en général, il peut configurer des ressources à utiliser dans presque toutes les parties de la structure assez complexe qu'est un système Wolfram Language déployé »

La structure du fichier paclet contient « des actifs ou des ressources de divers types, ainsi qu'un fichier PacletInfo.wl spécial qui définit comment le paclet doit s'intégrer dans un système Wolfram Language». Et comme les paclets sont généralement distribués dans un seul fichier d'archive, ils sont faciles à partager, c'est pourquoi un point de contact central pour le faire est déjà en préparation et devrait être disponible bientôt. Cependant, alors que le référentiel de fonctions conserve la cohérence et la structure du langage, le référentiel paclet ne le fera pas nécessairement et est considéré comme un moyen de partager des environnements complets pour des tâches spécifiques.

WolframScript (pour la ligne de commande)

WolframScript permet d'exécuter du code Wolfram Language à partir de n'importe quel terminal, qu'un noyau Wolfram soit disponible ou non sur le système.

Avec WolframScript, les utilisateurs peuvent décider où et comment exécuter leur code Wolfram Language. Outre les paramètres de noyau et de cloud configurables, WolframScript comprend une collection de fonctions pratiques pour une grande variété de tâches, notamment l'exécution de fonctions pures avec une entrée de ligne de commande, l'appel d'API cloud et l'exportation de données vers n'importe quel format pris en charge par Wolfram Language. Vous pouvez maintenant exécuter du code dans Wolfram Cloud avec wolframscript -cloud ou avec #!/usr/bin/env wolframscript -cloud dans les scripts shell Unix.

Télécharger WolframScript

Source : Wolfram, WolframScript

Et vous ?

Avez-vous déjà entendu parler de Wolfram Mathematica, Language et/ou WolframScript ?
Qu'en pensez-vous ?
Apporte-t-il un plus par rapport à la concurrence ?
Vient-il répondre à des besoins d'un marché de niche ?

Une erreur dans cette actualité ? Signalez-le nous !