Nous sommes fiers d’annoncer la disponibilité immédiate de la version beta privée Lokad pour la programmation différentiable destinée à l’optimisation de la la Supply Chain Quantitative. La programmation différentiable est le descendant du deep learning, et représente la convergence de deux domaines algorithmiques : machine learning et l’optimisation numérique.

Timeline of differentiable programming at Lokad

La programmation différentiable ouvre la voie à une série de scénarios de supply chain qui étaient considérés comme largement inextricables : optimisation conjointe des prix et des stocks, optimisation d’assortiment guidée par la fidélisation, prévision de la demande pour des produits non standards (par exemple, pierres précieuses, œuvres d’art), optimisation des flux multi-niveaux à grande échelle, optimisation conjointe multi-canale, optimisation des stocks sous des valeurs électroniques de stocks partiellement erronées, maximisation des flux à grande échelle sous de nombreuses contraintes, etc. Pour de nombreux autres scénarios qui étaient déjà abordables avec des méthodes alternatives, la programmation différentiable fournit des résultats numériques supérieurs avec seulement une fraction des frais généraux, tant en termes d’efforts des data scientists que de ressources informatiques.

Application aux supply chains

Au cœur de tout cela, la programmation différentiable (DP) offre une voie pour unifier des problèmes qui sont restés déconnectés trop longtemps et les résout conjointement : assortiment, tarification, prévision, planification, merchandising. Bien qu’une telle unification puisse sembler irréaliste, la réalité est que les entreprises appliquent déjà une quantité folle de bricolage à leurs propres processus pour faire face aux innombrables problèmes générés par le fait que ces défis ont d’abord été isolés au sein de l’organisation. Par exemple, la tarification a évidemment un impact sur la demande et pourtant, la planification et la prévision sont presque toujours effectuées en ignorant complètement les prix.

La DP ouvre une opportunité massive de fournir des décisions approximativement correctes avec une perspective holistique sur l’entreprise, plutôt que d’être exactement incorrectes en déplaçant les problèmes au sein de l’organisation au lieu de les résoudre. Anecdotement, rechercher une correction approximative en tenant compte de l’entreprise dans son ensemble, c’est exactement ce que font la plupart des organisations guidées par les feuilles de calcul ; et en l’absence d’une technologie - comme la DP - capable d’adopter une perspective globale sur l’entreprise, les feuilles de calcul restent l’option la moins terrible.

Le e-commerce: Être capable d’associer 100 % des unités vendues à des clients connus représente une quantité latente massive d’informations sur le marché ; pourtant, en ce qui concerne la tarification et l’optimisation des stocks, l’information fidélité n’est généralement même pas utilisée de nos jours. La DP offre la possibilité de passer de la prévision des séries temporelles à la prévision par graphes temporels où chaque paire client-produit jamais observée compte, menant à des décisions plus intelligentes tant pour les stocks que pour les prix.

Marques de luxe : L’optimisation de la tarification et des assortiments - jusqu’au niveau du magasin - a longtemps été considérée comme largement inextricable en raison de la rareté des données, c’est-à-dire d’un volume de ventes très faible par article et par magasin - aussi bas qu’une unité vendue par produit et par magasin et par an. La DP offre des approches permettant d’aboutir à des classes de solutions qui fonctionnent sur de telles données ultra-dispersées, car elles sont conçues pour offrir une efficacité des données bien supérieure à celle des méthodes de deep learning classiques.

Marques de mode : L’optimisation conjointe des stocks et des prix est une exigence claire - car la demande pour de nombreux articles peut être très sensible aux prix - cependant, l’optimisation conjointe de l’achat et de la tarification n’a pu être réalisée en raison de l’absence d’un outil capable même d’appréhender ce couplage - c’est-à-dire, la capacité d’acheter plus à un prix inférieur génère une demande accrue (et vice versa). La DP offre l’expressivité nécessaire pour relever ce défi.

Manufacturing : L’optimisation numérique de réseaux multi-niveaux de taille considérable s’effondre lorsqu’elle est tentée avec des solveurs numériques classiques (voir « Au-delà de l’optimisation par branch-and-cut » ci-dessous). En effet, ces solveurs deviennent largement impraticables lorsqu’ils doivent gérer soit des millions de variables, soit des comportements stochastiques. Malheureusement, le secteur manufacturing présente les deux, avec de nombreuses variables et des comportements stochastiques. La DP offre une approche pratique pour gérer le multi-echelon sans trahir la complexité des schémas de flux réels au sein du réseau.

MRO (maintenance, repair, overhaul) : Si une pièce nécessaire à la réparation d’un système manque, alors l’ensemble du système - qui pourrait être un avion - reste en panne. Les prévisions probabilistes sont la première étape pour traiter de tels schémas de demande erratiques et intermittents, mais déterminer les subtilités des cooccurrences des pièces requises et transformer cette analyse en recommandations sur les stocks était trop complexe pour être d’une utilité pratique. La DP rationalise la résolution de tels problèmes.

Réseaux de distribution : Les cannibalismes au sein des réseaux de distribution - généralement entre produits mais parfois entre magasins - sont reconnus comme d’une importance primordiale depuis longtemps. Ce problème est amplifié par les promotions, précisément destinées à orienter les clients d’une marque à l’autre. La DP offre la possibilité de traiter la cannibalisation en présence de promotions. Au lieu de simplement « prévoir les promotions », la DP offre la possibilité d’ optimiser les promotions pour ce qu’elles sont : des offres rentables gérées conjointement par le canal de distribution et la marque.

Au-delà du battage de l’intelligence artificielle

L’intelligence artificielle (IA) a certainement été le mot à la mode de la tech en 2018 et le battage continue en force en 2019. Cependant, bien que Lokad utilise de manière intensive des techniques qui cadrent généralement avec le mot à la mode de l’IA - par exemple, deep learning - nous avons hésité à mettre l’accent sur la partie « IA » de la technologie de Lokad. En effet, en ce qui concerne l’optimisation de la Supply Chain Quantitative, l’IA conditionnée ne fonctionne tout simplement pas. Les supply chains ne ressemblent en rien, par exemple, à la vision par ordinateur : les données, les métriques et les tâches sont extrêmement hétérogènes. Par conséquent, les entreprises qui ont acheté des solutions supposément « clés en main » d’IA commencent à se rendre compte que ces solutions ne fonctionneront tout simplement jamais, sauf peut-être dans les situations les plus simples où des systèmes « idiots » basés sur des règles auraient également très bien fonctionné.

Au cœur, les supply chains sont des systèmes complexes, créés par l’homme, et il est généralement déraisonnable de s’attendre à ce que le système IA - basé uniquement sur les données - redécouvre par lui-même des insights fondamentaux du domaine tels que :

  • faire des promotions pour une marque de luxe est fortement déconseillé.
  • les commandes de vente négatives dans l’ERP sont en réalité des retours de produits.
  • les produits alimentaires frais doivent être transportés dans des plages de température spécifiées.
  • les variantes de couleurs peuvent être de bons substituts vestimentaires, mais pas les variantes de tailles1.
  • la maintenance des avions est déterminée par les heures de vol et les cycles de vol.
  • les ventes au Royaume-Uni sont en réalité en GBP même si l’ERP affiche l’EUR comme devise.
  • les gens achètent des pièces automobiles pour leurs véhicules, et non pour eux-mêmes.
  • chaque diamant est unique, mais les prix dépendent principalement du carat, de la pureté, de la couleur et de la taille.
  • toute pièce NOGO manquante d’un avion fait en sorte que l’avion soit cloué au sol.
  • de nombreuses usines chimiques mettent des semaines à redémarrer après avoir été arrêtées.

Dans un futur lointain, il pourrait arriver un temps où le machine learning parviendra à imiter l’intelligence humaine et obtiendra des résultats face à des problèmes complexes2, cependant, jusqu’à présent, des résultats n’ont été obtenus que sur des problèmes relativement restreints. Les technologies de machine learning repoussent chaque année les limites de ce qui constitue un problème « restreint », et après des décennies d’efforts, des problèmes importants tels que la conduite autonome sécurisée et des traductions automatiques décentes sont résolus, ou très proches d’être résolus.

Néanmoins, comme l’illustre la liste ci-dessus, les supply chains restent désespérément trop hétérogènes pour une application directe des algorithmes de machine learning empaquetés. Même si le deep learning offre les capacités de generalization les plus fortes à ce jour, il nécessite toujours l’intervention d’un supply chain scientist pour cadrer le défi de manière suffisamment restreinte afin que les algorithmes puissent fonctionner.

À cet égard, le deep learning a rencontré un immense succès car, contrairement à de nombreuses approches antérieures du machine learning, le deep learning est profondément compositionnel : il est possible d’adapter de manière extensive la structure du modèle pour mieux apprendre dans une situation spécifique. Adapter la structure du modèle est différent d’adapter l’input du modèle - une tâche connue sous le nom d’ingénierie des caractéristiques - qui était généralement la seule option disponible pour la plupart des algorithmes de machine learning non profonds tels que les forêts aléatoires3.

Cependant, comme les frameworks de deep learning ont émergé des « Big Problems » du machine learning, à savoir la vision par ordinateur, la reconnaissance vocale, la synthèse vocale, la traduction automatisée, ces frameworks ont été conçus et ajustés en profondeur pour des scénarios qui ne ressemblent littéralement en rien aux problèmes rencontrés dans les supply chains. Ainsi, bien qu’il soit possible de tirer parti de ces frameworks4 à des fins d’optimisation de la supply chain, ce n’était ni une entreprise facile ni légère.

En conclusion, avec les frameworks de deep learning, beaucoup peut être accompli pour les supply chains, mais le décalage d’impédance entre les supply chains et les frameworks de deep learning existants est important, augmentant les coûts, les délais et limitant l’applicabilité réelle de ces technologies.

differentiable programming

Au-delà de l’optimisation par branch-and-cut

La plupart des problèmes dans les supply chains possèdent à la fois un aspect d’apprentissage - causé par une connaissance imparfaite du futur, une connaissance imparfaite de l’état actuel du marché, et parfois même une connaissance imparfaite du système de supply chain lui-même (par exemple, des inexactitudes de stocks) - mais aussi un aspect d’optimisation numérique. Les décisions doivent être optimisées en fonction des leviers économiques tout en satisfaisant de nombreuses contraintes non linéaires (par exemple, les MOQs lors de l’achat ou les tailles de lots lors de la production).

Sur le front de l’optimisation numérique, la programmation en nombres entiers et ses techniques associées telles que le branch-and-cut dominent le domaine depuis des décennies. Cependant, ces algorithmes de branch-and-cut et leurs solutions logicielles associées ont en grande partie échoué5 à offrir la flexibilité et l’évolutivité nécessaires pour fournir des solutions opérationnelles à de nombreux défis de supply chain, sinon la plupart. La programmation en nombres entiers est un outil fantastiquement performant pour résoudre des problèmes serrés avec peu de variables (par exemple, le placement des composants dans un appareil électronique grand public) mais montre des limitations drastiques lorsqu’il s’agit de problèmes à grande échelle impliquant de l’aléa (par exemple, le rééquilibrage des stocks entre 10 millions de SKUs face à une demande probabiliste et des temps de transport probabilistes).

L’un des aspects les moins appréciés du deep learning est que son succès résulte autant des avancées dans le domaine de l’apprentissage que de celles de l’optimisation. C’est parce que la communauté scientifique a découvert que des algorithmes d’une efficacité remarquable réalisent des optimisations à grande échelle6.

Non seulement ces algorithmes d’optimisation de « deep learning » - tous centrés sur le gradient stochastique descendant - sont-ils immensément plus efficaces que leurs homologues de branch-and-cut, mais ils s’adaptent également bien mieux au matériel informatique dont nous disposons, à savoir les CPU SIMD et (GP)GPU qui, en pratique, offrent un gain de vitesse de deux à trois ordres de grandeur supplémentaires.

Ces avancées en optimisation numérique pure revêtent une grande importance pour les supply chains afin d’optimiser les décisions. Cependant, si les frameworks de deep learning étaient déjà quelque peu inadaptés pour traiter les problèmes d’apprentissage dans les supply chains, ils le sont encore moins pour aborder les problèmes d’optimisation dans les supply chains. En effet, ces problèmes d’optimisation sont encore plus dépendants de l’expressivité du framework pour permettre aux supply chain scientists d’implémenter les contraintes et les métriques devant être respectivement appliquées et optimisées.

Vers la Programmation Différentiable

En théorie, il n’y a aucune différence entre la théorie et la pratique. Mais, en pratique, il y en a une. Walter J. Savitch, Pascal: An Introduction to the Art and Science of Programming (1984)

La Programmation Différentiable (DP) est la solution pour apporter aux supply chains le meilleur de ce que le deep learning a à offrir sur le front de l’apprentissage et de l’optimisation numérique. Grâce à la DP, les supply chain scientists peuvent tirer le meilleur parti de leurs intuitions humaines pour concevoir des recettes numériques en adéquation - en profondeur - avec les objectifs de l’entreprise.

Il n’existe pas de délimitation absolue entre le deep learning et la programmation différentiable : c’est plutôt un continuum allant des systèmes les plus évolutifs (deep learning) aux systèmes les plus expressifs (programmation différentiable), avec de nombreux éléments de programmation qui deviennent progressivement disponibles - au détriment de l’évolutivité brute - lors de la transition vers la programmation différentiable.

Pourtant, notre expérience chez Lokad indique que passer d’outils conçus principalement pour la vision par ordinateur à des outils conçus pour les défis de supply chain fait précisément la différence entre un prototype « intéressant » qui n’atteint jamais la production et un système de qualité industrielle déployé à grande échelle.

Deep Learning Programmation Différentiable
Primary purpose Apprentissage Apprentissage+Optimisation
Typical usage Apprendre une fois, évaluer plusieurs fois Apprendre une fois, évaluer une fois
Input granularity Objets volumineux (images, séquences vocales, scans lidar, pages de texte complètes) Objets légers (produits, clients, SKUs, prix)
Variété d’entrée Objets homogènes (par ex. des images ayant toutes le même rapport hauteur/largeur) Objets hétérogènes (tableaux relationnels, graphes, séries temporelles)
Volume d’entrée De mégaoctets à pétaoctets De kilo-octets à des dizaines de gigaoctets
Accélération matérielle Exceptionnellement bonne Bonne
Expressivité Graphes statiques d’opérations sur tenseurs (Presque) des programmes arbitraires
Recettes numériques stochastiques Intégré Idem

Le cas d’usage typique est une subtilité mais également un point important. Du point de vue du “Big AI”, le temps d’entraînement peut être (presque) arbitrairement long : il est acceptable qu’un réseau de calcul soit entraîné pendant des semaines, voire des mois. Par la suite, le réseau de calcul résultant doit généralement être évalué en temps réel (par ex. la reconnaissance de motifs pour la conduite autonome). Cet angle est totalement différent des supply chains, où les meilleurs résultats sont obtenus en ré-entraînant le réseau à chaque fois. De plus, du point de vue de la DP, les paramètres entraînés sont fréquemment les résultats mêmes que nous cherchons à obtenir, rendant toute la contrainte d’évaluation en temps réel caduque.

Les attentes entourant les entrées de données, tant en granularité, en variété qu’en volume, sont également très différentes. Typiquement, le point de vue du “Big AI” met en avant des quantités quasi infinies de données d’entraînement (par ex. toutes les pages de texte du web), où le principal défi consiste à trouver des méthodes d’une évolutivité extraordinaire capables d’exploiter efficacement ces ensembles de données massifs. En revanche, les problèmes de supply chain doivent être résolus avec une quantité limitée de données hautement structurées mais diversifiées.

Cela oriente le deep learning vers des frameworks basés sur les tenseurs, qui peuvent être massivement accélérés grâce à du matériel de calcul dédié, initialement les GPUs et désormais de plus en plus les TPUs. La Differentiable Programming, reposant sur la descente de gradient stochastique, présente également de nombreuses bonnes propriétés pour l’accélération matérielle, mais dans une moindre mesure comparée aux graphes statiques d’opérations sur tenseurs.

L’importance des recettes numériques stochastiques est double. Premièrement, ces recettes jouent un rôle important du point de vue de l’apprentissage. Les auto-encodeurs variationnels ou les dropouts sont des exemples de ces recettes numériques. Deuxièmement, ces recettes jouent également un rôle important du point de vue de la modélisation, afin d’intégrer correctement les comportements probabilistes au sein des systèmes de supply chain (par ex. des délais variables).

Inversement, il existe un énorme fossé entre la Differentiable Programming et la programmation en nombres entiers mixtes - l’approche dominante depuis quelques décennies ayant été de réaliser des optimisations numériques complexes.

Programmation en nombres entiers mixtes Differentiable Programming
Objectif principal Optimisation Apprentissage+Optimisation
Granularité et variété d’entrée Objets minces, hétérogènes Idem
Volume d’entrée De quelques octets à des dizaines de mégaoctets De kilo-octets à des dizaines de gigaoctets
Accélération matérielle Faible Bonne
Expressivité Inégalités sur des formes linéaires et quadratiques (Presque) des programmes arbitraires
Recettes numériques stochastiques Aucune Intégré

En défense des outils de programmation en nombres entiers mixtes, ces outils - lorsqu’ils parviennent à résoudre un problème - peuvent parfois prouver - au sens mathématique - qu’ils ont obtenu la solution optimale. Ni le deep learning ni la programmation différentiable ne fournissent de preuve formelle à cet égard.

Conclusions

La programmation différentiable représente une avancée majeure pour les supply chains. Elle repose sur le deep learning, qui s’est avéré extrêmement performant pour résoudre de nombreux problèmes du type “Big AI” tels que la vision par ordinateur, mais a été repensée au niveau fondamental afin de convenir aux défis concrets auxquels sont confrontées les supply chains réelles.

Lokad a développé sa technologie de prévision par deep learning pour amorcer la transition vers la programmation différentiable, qui constitue la nouvelle génération de notre technologie prédictive. Cependant, la programmation différentiable va au-delà de la simple prédiction : elle unifie l’optimisation et l’apprentissage, débloquant ainsi des solutions pour une multitude de problèmes qui n’avaient auparavant aucune solution viable.

Intéressé à participer à notre bêta privée ? Envoyez-nous un e-mail à contact@lokad.com


  1. Anecdotiquement, il existe un segment où les tailles de vêtements n’ont pas une importance capitale et où elles servent encore de bons substituts : il s’agit des vêtements pour enfants. En effet, les parents au budget restreint achètent fréquemment plusieurs tailles d’avance pour leurs enfants, anticipant leur croissance, lorsqu’une forte réduction de prix leur est proposée. ↩︎

  2. De nombreux, voire la plupart, des problèmes de supply chain sont “wicked” au sens où il s’agit de problèmes dont la complexité sociale implique qu’il n’existe aucun point d’arrêt déterminable. Voir wicked problem sur Wikipedia. ↩︎

  3. Les Random Forests offrent quelques options minimes pour une méta-paramétrisation du modèle lui-même : la profondeur maximale de l’arbre et le taux d’échantillonnage. Cela signifie que, quels que soient les schémas que la Random Forest ne parvient pas à saisir, il faut les concevoir via l’ingénierie des caractéristiques faute de meilleures options. Voir également Columnar Random Forests↩︎

  4. Le fait que les frameworks de deep learning fonctionnent du tout pour les besoins de la supply chain témoigne de l’immense puissance de ces avancées, dont les principes découverts s’étendent bien au-delà du cadre d’étude initial qui a donné naissance à ces frameworks. Voir aussi Deep Learning chez Lokad. ↩︎

  5. Les logiciels d’optimisation tels que CPLEX, Gurobi et désormais leur équivalent open-source existent depuis plus de trois décennies. En théorie, chaque situation d’achat confrontée aux MOQ (minimal order quantity) ou aux seuils de prix devrait être résolue par un logiciel offrant des capacités similaires. Pourtant, bien que j’aie eu l’opportunité d’être en contact avec plus de 100 entreprises au cours de la dernière décennie dans de nombreux secteurs, je n’ai jamais vu aucun département des achats utiliser l’un de ces outils nulle part. Mon expérience personnelle avec ces outils indique que peu de problèmes correspondent réellement à un ensemble d’inégalités statiques ne comportant que des formes linéaires et quadratiques. ↩︎

  6. L’algorithme Adam (2015) est probablement le meilleur représentant de ces algorithmes d’optimisation, simples mais extrêmement efficaces, qui ont propulsé l’ensemble du domaine du machine learning. ↩︎