Nous sommes fiers d’annoncer la disponibilité immédiate de la version bêta privée de Lokad pour la programmation différentiable destinée à l’optimisation de la supply chain quantitative. La programmation différentiable est l’héritière de l’apprentissage profond et représente la convergence de deux domaines algorithmiques : l’apprentissage automatique et l’optimisation numérique.

Chronologie de la programmation différentiable chez Lokad

La programmation différentiable débloque 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 de l’assortiment basée sur la fidélité, prévision de la demande pour des produits non standards (par exemple, des pierres précieuses, des œuvres d’art), optimisation de flux multi-échelons à grande échelle, optimisation conjointe multi-canal, optimisation des stocks en cas de valeurs de stocks électroniques partiellement incorrectes, 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 offre des résultats numériques supérieurs avec seulement une fraction des efforts des data scientists et des ressources informatiques.

Application aux Supply Chains

Au cœur de la programmation différentiable (DP), il y a un chemin pour unifier des problèmes qui sont restés déconnectés pendant trop longtemps et les résoudre conjointement : assortiment, tarification, prévision, planification, merchandising. Bien qu’une telle unification puisse sembler irréalistement ambitieuse, la réalité est que les entreprises appliquent déjà une quantité insensée de rustines à leurs propres processus pour faire face aux problèmes sans fin générés par le fait que ces défis ont été cloisonnés au sein de l’organisation en premier lieu. 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 totalement les prix.

La DP débloque l’énorme opportunité de prendre des décisions approximativement correctes dans une perspective globale de l’entreprise, au lieu d’être exactement fausses en déplaçant les problèmes au sein de l’organisation au lieu de les résoudre. Anecdotiquement, chercher une approximation correcte tout en tenant compte de l’entreprise dans son ensemble est exactement ce que la plupart des organisations basées sur les tableurs font ; et faute d’une technologie - comme la DP - capable d’adopter une perspective globale de l’entreprise, les tableurs restent l’option la moins terrible.

E-commerce : Pouvoir attribuer 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, les informations sur la fidélité ne sont généralement même pas utilisées de nos jours. La DP offre la possibilité de passer de la prévision basée sur les séries temporelles à la prévision basée sur les graphes temporels où chaque paire client-produit jamais observée compte ; ce qui permet de prendre des décisions plus intelligentes tant pour les stocks que pour les prix.

Les marques de luxe : l’optimisation des prix 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 du très faible volume de ventes par article par magasin - aussi bas qu’une unité vendue par produit par magasin par an. La DP offre des angles pour fournir des classes de solutions qui fonctionnent sur de tels ensembles de données ultra-épars, car elles sont conçues pour offrir une efficacité beaucoup plus grande en termes de données que les méthodes d’apprentissage profond classiques.

Les 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 au prix - cependant, l’optimisation conjointe des achats et des prix n’a pas pu être réalisée en raison du manque d’un outil capable de comprendre même ce couplage - c’est-à-dire la capacité d’acheter plus à un prix plus bas génère plus de demande (et vice versa). La DP offre l’expressivité nécessaire pour relever ce défi.

Fabrication : l’optimisation numérique de réseaux multi-échelons de grande taille échoue 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’il s’agit de traiter des millions de variables ou des comportements stochastiques. Malheureusement, la fabrication présente à la fois de nombreuses variables et des comportements stochastiques. La DP offre un angle pratique pour faire face au multi-échelon sans trahir la complexité des schémas de flux réels au sein du réseau.

MRO (maintenance, réparation, révision) : Si une pièce nécessaire à la réparation d’un système est manquante, alors tout le système - qui pourrait être un avion - reste hors service. Les prévisions probabilistes sont la première étape pour faire face à de tels modèles de demande erratiques et intermittents, mais comprendre les détails des co-occurrences des pièces requises et transformer cette analyse en recommandations d’inventaire exploitables était trop complexe pour être d’une utilité pratique. La DP simplifie la résolution de tels problèmes.

Réseaux de vente au détail : Les cannibalisations au sein des réseaux de vente au détail - généralement entre les produits mais parfois entre les magasins - sont reconnues depuis longtemps comme étant d’une importance primordiale. Ce problème est amplifié par les promotions destinées précisément à orienter les clients d’une marque à une 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 exploitées conjointement par le canal de distribution et la marque.

Au-delà du battage médiatique sur l’intelligence artificielle

L’intelligence artificielle (IA) a certainement été le mot à la mode technologique de 2018 et le battage médiatique se poursuit en 2019. Cependant, bien que Lokad utilise largement des techniques qui correspondent généralement au terme à la mode “IA” - par exemple, l’apprentissage profond - nous avons été réticents à mettre l’accent sur la partie “IA” de la technologie de Lokad. En effet, en ce qui concerne l’optimisation quantitative de la supply chain, l’IA pré-emballée ne fonctionne tout simplement pas. Les supply chains ne ressemblent en rien, par exemple, à la vision par ordinateur : les données, les mesures et les tâches sont tous extrêmement hétérogènes. En conséquence, les entreprises qui ont acheté des solutions prétendument “clés en main” d’IA commencent à réaliser que ces solutions ne fonctionneront tout simplement jamais, sauf peut-être dans les situations les plus simples où des systèmes basés sur des règles “bêtes” auraient également très bien fonctionné.

Au cœur de leur fonctionnement, 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 d’IA - basé uniquement sur les données - redécouvre par lui-même des connaissances fondamentales sur le domaine, telles que :

  • faire des promotions pour une marque de luxe est une très mauvaise idée.
  • les commandes de vente négatives dans le 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 tailles[^enfants].
  • la maintenance des avions est basée sur 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 de voiture pour leurs véhicules, pas pour eux-mêmes.
  • chaque diamant est unique, mais les prix dépendent principalement du carat, de la clarté, de la couleur et de la taille.
  • toute pièce NOGO manquante sur un avion entraîne l’immobilisation de l’avion.
  • de nombreuses usines chimiques mettent des semaines à redémarrer après avoir été arrêtées.

Dans un futur lointain, il se peut qu’il y ait un moment où l’apprentissage automatique réussit à émuler l’intelligence humaine et à obtenir des résultats face à des problèmes complexes[^problemescomplexes], cependant, jusqu’à présent, les résultats n’ont été obtenus que sur des problèmes relativement restreints. Les technologies d’apprentissage automatique 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 les traductions automatisées correctes sont résolus, ou très proches d’être résolus.

Néanmoins, comme le montre la liste ci-dessus, les supply chains restent désespérément trop hétérogènes pour une application directe d’algorithmes d’apprentissage automatique pré-packagés. Même si l’apprentissage profond offre les capacités de généralisation les plus puissantes à ce jour, il faut toujours l’intervention d’un Supply Chain Scientist pour définir le défi de manière suffisamment restreinte pour que les algorithmes puissent fonctionner.

À cet égard, l’apprentissage profond a connu un succès considérable car, contrairement à de nombreuses approches antérieures en apprentissage automatique, l’apprentissage profond est profondément compositionnel : il est possible d’adapter considérablement 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’entrée 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 d’apprentissage automatique non profonds tels que les forêts aléatoires[^foretsaleatoires].

Cependant, à mesure que les frameworks d’apprentissage profond ont émergé des “grands problèmes” de l’apprentissage automatique, à 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 en rien aux problèmes auxquels sont confrontées les supply chains. Ainsi, bien qu’il soit possible d’utiliser ces frameworks[^temoignage] à des fins d’optimisation de la supply chain, cela n’a pas été une tâche facile ni légère.

En conclusion, avec les frameworks d’apprentissage profond, beaucoup de choses peuvent être réalisées pour les supply chains, mais l’incompatibilité entre les supply chains et les frameworks d’apprentissage profond existants est forte ; ce qui augmente les coûts, les retards et limite l’applicabilité réelle de ces technologies.

programmation différentiable

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

La plupart des problèmes dans les supply chains ont à 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 la supply chain lui-même (par exemple, des inexactitudes d’inventaire) - mais aussi un aspect d’optimisation numérique. Les décisions doivent être optimisées en fonction des facteurs économiques tout en satisfaisant de nombreuses contraintes non linéaires (par exemple, les MOQs lors des achats ou les tailles de lot lors de la production).

Sur le front de l’optimisation numérique, la programmation entière et ses techniques connexes 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 principalement échoué1 à fournir la flexibilité et l’évolutivité nécessaires pour fournir des solutions opérationnelles à de nombreux, voire à la plupart, des défis de la supply chain. La programmation entière est un outil extrêmement performant lorsqu’il s’agit de résoudre des problèmes complexes avec peu de variables (par exemple, le placement des composants dans un appareil électronique grand public), mais elle présente des limitations drastiques lorsqu’il s’agit de problèmes à grande échelle impliquant de l’aléatoire (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 plus sous-estimés de l’apprentissage profond est que son succès est autant le résultat de percées du côté de l’apprentissage que le résultat de percées du côté de l’optimisation. C’est parce que la communauté scientifique a découvert des algorithmes extrêmement efficaces pour effectuer des optimisations à grande échelle2.

Non seulement ces algorithmes d’optimisation “d’apprentissage profond” - tous basés sur la descente de gradient stochastique - sont beaucoup plus efficaces que leurs homologues de branch-and-cut, mais ils sont également beaucoup mieux adaptés au matériel informatique dont nous disposons, à savoir les CPU SIMD et les (GP)GPU, ce qui se traduit en pratique par un gain de vitesse supplémentaire de deux à trois ordres de grandeur.

Ces percées dans l’optimisation numérique pure sont d’une grande pertinence pour les supply chains afin d’optimiser les décisions. Cependant, si les frameworks d’apprentissage profond étaient déjà quelque peu mal adaptés pour résoudre les problèmes d’apprentissage dans les supply chains, ils le sont encore moins pour résoudre les problèmes d’optimisation dans les supply chains. En effet, ces problèmes d’optimisation dépendent encore plus de l’expressivité du framework pour permettre aux scientifiques de la supply chain de mettre en œuvre les contraintes et les métriques à respecter et à optimiser respectivement.

Vers la programmation différentiable

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

La programmation différentiable (DP) est la réponse pour apporter aux supply chains le meilleur de ce que l’apprentissage profond a à offrir à la fois sur le front de l’apprentissage et sur le front de l’optimisation numérique. Grâce à la DP, les scientifiques de la supply chain peuvent tirer le meilleur parti de leurs connaissances humaines pour élaborer des recettes numériques alignées - en profondeur - avec les objectifs commerciaux.

Il n’y a pas de délimitation absolue entre l’apprentissage profond et la programmation différentiable : c’est plutôt un continuum allant des systèmes les plus évolutifs (apprentissage profond) aux systèmes les plus expressifs (programmation différentiable) avec de nombreux concepts de programmation qui deviennent progressivement disponibles - au détriment de l’évolutivité brute - lorsqu’on se dirige vers la programmation différentiable.

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

Deep Learning Programmation Différentiable
Objectif principal Apprentissage Apprentissage+Optimisation
Utilisation typique Apprentissage-une fois, Évaluation-multiple Apprentissage-une fois, Évaluation-une fois
Granularité de l’entrée Objets volumineux (images, séquences vocales, scans lidar, pages de texte complètes) Objets fins (produits, clients, SKUs, prix)
Variété de l’entrée Objets homogènes (par exemple, des images ayant toutes le même rapport hauteur/largeur) Objets hétérogènes (tables relationnelles, graphes, séries temporelles)
Volume de l’entrée De mégaoctets à pétaoctets De kilo-octets à dizaines de gigaoctets
Accélération matérielle Exceptionnellement bonne Bonne
Expressivité Graphes statiques d’opérations tensorielles Programmes (presque) arbitraires
Recettes numériques stochastiques Intégrées Idem

L’utilisation typique est un point subtil mais important. Du point de vue de l’“IA Big”, le temps d’entraînement peut être (presque) arbitrairement long : il est acceptable qu’un réseau computationnel soit entraîné pendant des semaines, voire des mois. Plus tard, le réseau computationnel résultant doit généralement être évalué en temps réel (par exemple, la reconnaissance de motifs pour la conduite autonome). Cet angle est complètement différent de celui 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 ainsi la contrainte d’évaluation en temps réel sans objet.

Les attentes entourant les données d’entrée, tant en termes de granularité, de variété que de volume, sont également largement différentes. Typiquement, la perspective de l’“IA Big” met l’accent sur des quantités quasi infinies de données d’entraînement (par exemple, toutes les pages de texte du web) où le défi principal est de trouver des méthodes extrêmement évolutives qui peuvent exploiter efficacement ces ensembles de données massifs. En revanche, les problèmes de supply chain doivent être abordés avec une quantité limitée de données hautement structurées mais diverses.

Cela oriente l’apprentissage profond vers des frameworks basés sur les tenseurs, qui peuvent être massivement accélérés grâce à du matériel informatique dédié, initialement des GPU et maintenant de plus en plus des TPU. La programmation différentiable, étant basée 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 par rapport aux graphes statiques d’opérations tensorielles.

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 telles recettes numériques. Deuxièmement, ces recettes jouent également un rôle important du point de vue de la modélisation afin de prendre en compte correctement les comportements probabilistes au sein des systèmes de la supply chain (par exemple, les délais de livraison variables).

En revanche, il existe un écart énorme entre la programmation différentiable et la programmation en nombres entiers mixtes - l’approche dominante au cours des dernières décennies a été de réaliser des optimisations numériques complexes.

Programmation en nombres entiers mixtes Programmation différentiable
Objectif principal Optimisation Apprentissage+Optimisation
Granularité et variété des entrées Objets fins, hétérogènes Idem
Volume des entrées De quelques octets à des dizaines de mégaoctets De quelques kilooctets à des dizaines de gigaoctets
Accélération matérielle Faible Bonne
Expressivité Inégalités sur des formes linéaires et quadratiques Programmes (presque) arbitraires
Recettes numériques stochastiques Aucune Intégrées

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 l’apprentissage profond ni la programmation différentiable ne fournissent de preuve formelle à cet égard.

Conclusions

La programmation différentiable est une avancée majeure pour les supply chains. Elle est basée sur l’apprentissage profond, qui s’est révélé extrêmement efficace pour résoudre de nombreux problèmes d’“IA Big” tels que la vision par ordinateur, mais réinventé au cœur pour être adapté aux défis du monde réel tels qu’ils sont rencontrés par les supply chains du monde réel.

Lokad s’appuie sur sa technologie de prévision par apprentissage profond pour passer à la programmation différentiable, qui est la prochaine génération de notre technologie prédictive. Cependant, la programmation différentiable va au-delà de la simple prévision, elle unifie l’optimisation et l’apprentissage en débloquant des solutions pour une multitude de problèmes qui n’avaient pas de solutions viables auparavant.

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


  1. Des logiciels d’optimisation tels que CPLEX, Gurobi et maintenant leur équivalent open-source sont disponibles depuis plus de 3 décennies. En théorie, chaque situation d’achat confrontée à des quantités minimales de commande (MOQ) ou à des réductions de prix aurait dû être traitée avec des logiciels offrant des capacités similaires. Pourtant, bien que j’aie eu l’occasion 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 service d’achat utiliser aucun de ces outils nulle part. Mon expérience personnelle avec de tels outils indique que peu de problèmes s’inscrivent réellement dans un ensemble d’inégalités statiques comprenant uniquement des formes linéaires et quadratiques. ↩︎

  2. L’algorithme Adam (2015) est probablement le meilleur représentant de ces algorithmes d’optimisation simples mais extrêmement efficaces qui ont fait avancer tout le domaine de l’apprentissage automatique. ↩︎