Developpez.com

Le Club des Développeurs et IT Pro

Uber AI Labs déploie son premier projet open source : le langage de programmation probabiliste Pyro

Qui s'appuie sur Python et PyTorch

Le 2017-11-07 07:46:08, par Stéphane le calme, Chroniqueur Actualités
Uber a décidé de partager les fruits de ses efforts relatifs à ses recherches sur les voitures autonomes et l'intelligence artificielle en général : l’entreprise a proposé en open source Pyro, un langage de programmation probabiliste.

L’entreprise a fait valoir « Qu’atteindre l'objectif d'Uber d'offrir un transport fiable à tous exige une prédiction et une optimisation sans effort à chaque tournant. Les opportunités vont de l'adaptation des pilotes aux conducteurs, en passant par des itinéraires optimaux, la recherche de combinaisons de pool judicieux et même la création de la prochaine génération de véhicules intelligents. Pour résoudre ces problèmes, nous combinons des techniques d'intelligence artificielle (IA) de pointe avec la riche expertise des spécialistes des données, des ingénieurs et d'autres utilisateurs. Nous sommes en train d'explorer une approche qui nous permettra à nous et à d'autres de faire la prochaine génération de solutions AI.

« Dans le cadre de cette initiative, Uber AI Labs est heureux d'annoncer la version open source de notre langage de programmation probabiliste Pyro ! Pyro est un outil de modélisation probabiliste profond, unifiant le meilleur de l'apprentissage profond moderne et de la modélisation bayésienne. Le but de Pyro est d'accélérer la recherche et les applications de ces techniques, et de les rendre plus accessibles à la communauté IA toute entière. »

Pyro est le premier projet public publié par Uber AI Labs, à en croire le Tweet d’un représentant de l'entreprise.


L’entreprise explique qu’en déployant Pyro en open source, elle espère encourager le monde scientifique à collaborer pour rendre les outils d’IA plus flexibles, ouverts et faciles à utiliser. « Nous pensons que la version actuelle (alpha !) de Pyro intéressera surtout les modélisateurs probabilistes qui veulent tirer parti de grands ensembles de données et de réseaux profonds, les utilisateurs de PyTorch qui veulent un calcul bayésien facile à utiliser et les scientifiques de données prêts à explorer une technologie de pointe nouvelle. »

Le nouveau langage de programmation est dû à Uber AI Labs, qui a été créé suite à l'acquisition d'une startup baptisée Geometric Intelligence l'année dernière. La recherche sur l'IA devient tellement coûteuse que seule une poignée d'entreprises peuvent espérer opérer à la fine pointe de la technologie, et Uber a recueilli des milliards de dollars en répandant l'idée selon laquelle elle sera l'une des sociétés les mieux positionnées pour bénéficier de l'avènement des véhicules autonomes.

Pyro s'appuie sur la bibliothèque PyTorch, qui inclut la différenciation automatique. PyTorch construit dynamiquement des gradients, ce qui permet aux programmes Pyro d'inclure une structure de contrôle stochastique, c'est-à-dire que les choix aléatoires dans un programme Pyro peuvent contrôler la présence d'autres choix aléatoires dans le programme. La structure de contrôle stochastique est cruciale pour rendre un PPL (Probabilistic programming language) universel. Par conséquent, Pyro peut représenter n'importe quel modèle probabiliste, tout en fournissant une inférence automatique basée sur l'optimisation qui est flexible et évolutive pour les grands ensembles de données.

Dans Pyro, les modèles génératifs et les guides d'inférence peuvent inclure des réseaux neuronaux profonds en tant que composants. Uber assure que les modèles probabilistes profonds qui en résultent ont montré de grandes promesses dans les travaux récents, en particulier pour les problèmes d'apprentissage automatique non supervisés et semi-supervisés.

Selon Uber, Pyro s’appuie sur quatre principes :
  • Universel : Pyro est un PPL universel - il peut représenter n'importe quelle distribution de probabilité calculable. Comment ? En partant d'un langage universel avec itération et récursion (code Python arbitraire), puis en ajoutant l'échantillonnage aléatoire, l'observation et l'inférence ;
  • Évolutif : Pyro s'adapte aux grands ensembles de données avec peu de surcharge au-dessus du code. Comment ? En construisant des techniques modernes d'optimisation de la boîte noire, qui utilisent des mini lots de données, pour approximer l'inférence ;
  • Minimal : Pyro est agile et maintenable. Comment ? Pyro est implémenté avec un petit noyau d'abstractions puissantes et modulables. Dans la mesure du possible, le levage lourd est délégué à PyTorch et à d'autres bibliothèques ;
  • Flexible : Pyro vise l'automatisation quand vous le voulez et contrôle quand vous en avez besoin. Comment ? Pyro utilise des abstractions de haut niveau pour exprimer des modèles génératifs et d'inférence, tout en permettant aux experts de personnaliser facilement l'inférence.


Source : Uber, Tweet Melanie Ensign
  Discussion forum
4 commentaires
  • htoukour
    Membre régulier
    Une chose de plus pour embrouiller mon cerveau.
  • Olala, que ça doit être galère à débugger, une structure de contrôle stochastique....
  • abriotde
    Membre chevronné
    J'ai vraiment l'impression que Pyro apporte quelques chose de nouveau et même simplifie l'usage de l'IA. Cependant j'ai du mal a voir exactement de quoi il en retourne (son usage précis) mais je ne m'y suis pas assez plongé.
  • Chauve souris
    Membre expert
    Envoyé par htoukour
    Une chose de plus pour embrouiller mon cerveau.
    Oh que oui ! Déjà que ma petite cervelle n'est pas trop portée sur les mathématiques...