Differentiable Programming (Programmation Différentiable)

Le Differentiable Programming (Programmation Différenciable) est le descendant du Deep Learning et représente la convergence de deux domaines algorithmiques : l'apprentissage automatique et l'optimisation numérique. Le Differentiable Programming permet d'aborder un certain nombre de scénarios de la supply chain qui étaient auparavant considérés comme impossibles à résoudre : optimisation conjointe des prix et des stocks, optimisation de l'assortiment en fonction de la fidélité clients, prévision de la demande de produits non standards (par exemple, pierres précieuses, œuvres d'art), optimisation des flux multi-échelons à grande échelle, optimisation conjointe sur plusieurs canaux, optimisation des stocks en cas de valeurs de stocks électroniques partiellement incorrectes, maximisation des débits à grande échelle sous contraintes multiples, etc. Pour de nombreux autres scénarios qui pouvaient déjà être abordés avec des méthodes alternatives, le Differentiable Programming permet d'obtenir de meilleurs résultats numériques avec une fraction seulement de la charge de travail, tant en termes d'efforts des Data Scientists que de ressources de calcul.


Le Differentiable Programming en Action




Application aux supply chains

Le Differentiable Programming (DP) offre une approche permettant d'unifier des problèmes qui sont restés trop longtemps déconnectés et de les résoudre conjointement : assortiment, prix, prévisions, planification, marketing. Si ce type d'unification peut sembler très ambitieux, la réalité est que les entreprises appliquent déjà une quantité démesurée de correctifs à leurs propres processus, afin de faire face aux innombrables problèmes générés par le fait que ces défis ont été organisés en silos au sein de l'entreprise. Par exemple, la fixation des prix affecte clairement la demande et pourtant, la planification et les prévisions sont presque toujours faites en faisant complétement abstraction des prix.

Le DP représente l'opportunité colossale de prendre des décisions à peu près correctes avec une perspective holistique de l'activité, au lieu d'être exactement faux, et de déplacer les problèmes au sein de l'organisation sans les résoudre.

A titre anecdotique, la recherche d'un résultat correct approximatif tout en tenant compte de l'activité dans son ensemble est exactement ce que font la plupart des entreprises en utilisant des feuilles de calcul ; en l'absence de technologie adéquate - telle que le DP - capable d'embrasser une perspective de l'entreprise dans son ensemble, les tableurs restent la moins pire des options.

E-commerce

Etre capable de rattacher 100 % des unités vendues à des clients connus représente une énorme quantité d'informations latentes sur le marché ; pourtant, lorsqu'il s'agit de fixer les prix et d'optimiser les stocks, les informations sur la fidélité clients ne sont généralement même pas utilisées. Le DP offre la possibilité de passer des prévisions de séries temporelles à la prévision de graphes temporels où chaque paire client-produit jamais observée est pertinente, ce qui permet de prendre des décisions plus intelligentes en matière de stocks comme de prix.

Le luxe

L'optimisation des prix et des assortiments - jusqu'au niveau du point de ventes - a longtemps été considérée comme presque impossible en raison du caractère épars des données, c'est-à-dire du très faible volume de ventes par article et par magasin - qui peut aller jusqu'à une unité vendue par produit et par magasin en un an. Le DP apporte un angle de vue différent pour obtenir des types de solutions qui fonctionnent dans ce genre de scénarios. Ces solutions sont conçues pour permettre une efficacité des données bien plus grande que celle des méthodes telles que le Deep Learning.

La mode

L'optimisation conjointe des stocks et des prix est une nécessité évidente - puisque la demande pour de nombreux articles est très liée au prix -, mais l'optimisation conjointe des achats et des prix ne pouvait être réalisée sans un outil capable d'appréhender cette combinaison - i.e. la capacité d'acheter plus à un prix plus bas génère une demande plus importante (et vice-versa). Le DP apporte l'expressivité nécessaire pour relever ce défi.

Industrie

L'optimisation numérique des grands réseaux multi-échelons s'effondre lorsque nous l'abordons avec des solveurs numériques classiques (voir le paragraphe "Au-delà de l'optimisation "branch-and-cut"" ci-dessous). En effet, ces solveurs deviennent impratiquables lorsqu'il s'agit de traiter des millions de variables ou des comportements stochastiques. Malheureusement, le secteur de l'industrie et de la production en général présente à la fois de nombreuses variables et des comportements stochastiques. Le DP offre une approche pratique pour traiter le multi-échelons sans trahir la complexité des schémas de flux au sein du réseau.

MRO (maintenance, réparation et révision)

Si une pièce nécessaire à la réparation d'un système n'est pas disponible, alors l'ensemble du système - qui peut être un avion - est immobilisé au sol. Les prévisions probabilistes sont la première étape pour faire face à ces modèles de demande erratiques et intermittents, mais déchiffrer le détail des co-occurrences des pièces requises et transformer cette analyse en recommandations de stock utilisables était trop complexe une utilisation concrète. Le DP simplifie la résolution de ces problèmes.

Réseaux de distribution

La cannibalisations au sein des réseaux de distribution - généralement entre les produits, mais parfois aussi entre les magasins - est un phénomène reconnu depuis longtemps comme étant de première importance. Ce problème est amplifié par les promotions, précisément conçues pour orienter les clients d'une marque à l'autre. Le DP offre la possibilité d'aborder la cannibalisation en présence de promotions. Au lieu de se contenter de "prévoir les promotions", le DP permet d'optimiser les promotions pour ce qu'elles sont réellement : des offres rentables menées conjointement par le canal de distribution et la marque.

Au-delà de la mode de l'Intelligence Artificielle

L'Intelligence Artificielle (IA) a été, sans aucun doute, le buzzword 2018 et le buzz est toujours aussi fort en 2019. Cependant, bien que Lokad utilise de nombreuses techniques qui sont généralement classées dans la catégorie de l'IA - par exemple le Deep Learning - nous sommes réticents à mettre l'accent sur la partie "IA" de notre technologie. En effet, en ce qui concerne l'optimisation de la Supply Chain Quantitative, l'IA pré-packagée ne fonctionne tout simplement pas. Les supply chains ne ressemblent en rien à la vision par ordinateur : les données, les métriques et les tâches sont toutes extrêmement hétérogènes. Par conséquent, les entreprises qui ont acheté des solutions d'IA censées être "clé en main" commencent à réaliser que ces solutions ne fonctionneront tout simplement jamais, sauf peut-être dans les situations les plus simples où des systèmes "stupides" basés sur des règles auraient également très bien fonctionné. Par nature, les supply chains sont des systèmes complexes, conçus par l'homme, et il est souvent déraisonnable de s'attendre à ce que le système d'IA - basé uniquement sur des données - redécouvre par lui-même des informations stratégiques essentielles sur le domaine, comme par exemple :

  • faire des promotions pour une marque de luxe est un interdit à respecter.
  • les commandes négatives dans l'ERP sont en fait des retours de produits.
  • les produits alimentaires frais doivent être transportés à des températures spécifiques.
  • en ce qui concerne les vêtements, les variantes de couleurs peuvent être de bons substituts, mais pas les variantes de taille1.
  • la maintenance des avions est dictée par les heures et les cycles de vol.
  • les ventes au Royaume-Uni sont en GBP, même si l'ERP affiche EUR comme devise.
  • les gens achètent des pièces détachées 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 dans un avion entraîne son immobilisation au sol.
  • de nombreuses usines chimiques mettent des semaines à redémarrer après avoir été arrêtées.
Dans un avenir lointain, il pourra y avoir une époque où l'apprentissage automatique réussira à imiter l'intelligence humaine et obtiendra de bons résultats face à des problèmes complexes2, cependant, jusqu'à présent, les bons résultats obtenus ne l'ont été que pour des problèmes relativement étroits. Les technologies d'apprentissage automatique repoussent chaque année les limites de ce qui constitue un problème "étroit" et, après des décennies d'efforts, des problèmes importants tels que la conduite autonome en toute sécurité ou les traductions automatiques d'un niveau acceptable ont été résolus, ou sont très proches de l'être. Néanmoins, comme l'illustre la liste ci-dessus, les supply chains sont encore trop hétérogènes pour permettre l'application directe d'algorithmes d'apprentissage automatique pré-fabriqués. Même si le Deep Learning offre les plus grandes capacités de généralisation à ce jour, il faut encore l'apport d'un Supply Chain Scientist pour définir le problème d'une manière suffisamment étroite pour que les algorithmes fonctionnent.

À cet égard, le Deep Learning a connu un énorme succès car, contrairement à de nombreuses approches antérieures dans le domaine de l'apprentissage automatique, le Deep Learning est profondément compositionnel : il est possible d'adapter de manière significative la structure du modèle afin qu'il apprenne mieux dans une situation spécifique. L'adaptation de la structure du modèle est différente de l'adaptation de l' input du modèle, une tâche connue sous le nom de "feature engineering", qui était généralement la seule option disponible pour la plupart des algorithmes d'apprentissage automatique hors Deep Learning, tels que les "random forests"3.

Cependant, comme les frameworks du Deep Learning sont issus des "grands problèmes" de l'apprentissage automatique, à savoir la vision par ordinateur, la reconnaissance vocale, la synthèse vocale ou la traduction automatique, ces frameworks ont été pensés et conçus par nature pour des scénarios qui n'ont rien à voir avec les problèmes auxquels sont confrontées les supply chains. Ainsi, s'il est possible de tirer parti de ces frameworks4 à des fins d'optimisation de la supply chain, la tâche n'est pas aisée. En conclusion, avec les frameworks du Deep Learning, il est possible de réaliser beaucoup de choses pour les supply chains, mais le décalage entre les supply chain et les frameworks existants est important, ce qui augmente les coûts et les délais et limite l'applicabilité réelle de ces technologies.

Au-delà de l'optimisation "branch-and-cut"

La plupart des problèmes de la supply chain ont à la fois un aspect lié à l'apprentissage - résultant d'une connaissance imparfaite de l'avenir, de l'état actuel du marché, et parfois même du système de la supply chain elle-même (par exemple des erreurs dans le stock) - mais aussi un aspect lié à l'optimisation numérique. Les décisions doivent être optimisées en tenant compte des facteurs économiques tout en satisfaisant à de nombreuses contraintes non linéaires (par exemple, les MOQs sur les achats ou la taille des lots lors de la production).

Sur le front de l'optimisation numérique, l'optimisation linéaire en nombres entiers et ses techniques associées telles que la méthode "branch-and-cut" dominent le domaine depuis des décennies. Cependant, ces algorithmes "branch-and-cut" et les solutions logicielles qui leur sont associées ont pour la plupart échoué5 à apporter la flexibilité et la scalabilité nécessaires pour proposer des solutions opérationnelles à de nombreux défis de la supply chain, voire à la plupart d'entre eux. La programmation en nombres entiers est un outil extraordinaire lorsqu'il s'agit de résoudre des problèmes limités avec peu de variables (par exemple, le positionnement des composants dans un appareil électronique grand public), mais elle présente des limites drastiques lorsqu'il s'agit de problèmes à grande échelle où le hasard entre en jeu (par exemple, le rééquilibrage des stocks entre 10 millions de SKUs lorsqu'il faut faire face à la fois à une demande et à des délais de transport probabilistes).

L'un des aspects les plus sous-estimés du Deep Learning est que son succès est autant le résultat de percées du côté apprentissage que du côté optimisation. La raison en est que la communauté scientifique a découvert que des algorithmes extrêmement efficaces réalisent des optimisations à grande échelle6. Non seulement ces algorithmes d'optimisation "Deep Learning" - qui tournent tous autour de la descente de gradient stochastique - sont beaucoup plus efficaces que leurs homologues de type "branch-and-cut", mais ils conviennent mieux au matériel informatique dont nous disposons, à savoir le SIMD CPU et (GP)GPU qui, dans la pratique, offre deux ou trois ordres de grandeur de vitesse supplémentaire. Ces percées en matière d'optimisation numérique pure sont d'une grande importance pour les supply chains afin d'optimiser les décisions décisions. Toutefois, si les frameworks du Deep Learning étaient déjà quelque peu mal adaptés pour traiter les problèmes de apprentissage dans les supply chains, ils le sont encore moins pour traiter 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, afin de permettre aux analystes de la supply chain d'implémenter les contraintes et les métriques à appliquer et à optimiser respectivement.

Vers le Differentiable Programming

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 une.

Walter J. Savitch, Pascal : Une Introduction à l'Art et à la Science de la Programmation (1984)


Le Differentiable Programming (DP) est la réponse qui permet d'apporter aux supply chains le meilleur de ce que le Deep Learning a à offrir, tant sur le plan de l'apprentissage que sur celui de l'optimisation numérique. Grâce au DP, les Supply Chain Scientists peuvent exploiter au mieux leurs connaissances métier humaines pour élaborer des formules numériques alignées - en profondeur - avec les objectifs de l'entreprise. Il n'y a pas de délimitation absolue entre le Deep Learning et le Differentiable Programming : il s'agit plutôt d'un continuum allant des systèmes qui passent le plus à l'échelle (Deep Learning) aux systèmes les plus expressifs (Differentiable Programming), avec de nombreuses constructions de programmation qui deviennent progressivement disponibles - au détriment de la scalabilité brute - lors de l'évolution vers le Differentiable Programming. Pourtant, notre expérience à Lokad indique que le passage d'outils conçus principalement pour la vision par ordinateur à des outils conçus pour les défis de la supply chain fait précisément toute la différence entre un prototype "intéressant" qui ne passera jamais en production, et un système de qualité industrielle et déployé à grande échelle.

Deep learningDifferentiable programming
Objectif principal Apprentissage Apprentissage+Optimisation
Usage typique Apprentissage ponctuel, évaluations multiples Apprentissage ponctuel, évaluation ponctuelle
Granularité des entrées Objets "fat" (images, séquences vocales, scans lidar, pages de texte intégrales) Objets "thin" (produits, clients, SKUs, prix)
Variété des entrées Objets homogènes (e.g. images ayant le même rapport hauteur/largeur) Objets hétérogènes (tableaux relationnels, graphiques, séries temporelles)
Volume des entrées De megabytes à petabytes De kilobytes à dizaines de gigabytes
Accélération du hardware Exceptionnellement bonne Bonne
Expressivité Graphes statiques des opérations tensorielles Des programmes (presque) arbitraires
Formules numériques stochastiques Built-in Idem

L'usage typique est un point subtil mais important. Du point de vue de la "Big AI", le temps d'entraînement peut être (presque) arbitrairement long : il est normal qu'un réseau informatique 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 exemple, la reconnaissance de schémas pour la conduite autonome). Cet angle est totalement différent des supply chains, où les meilleurs résultats sont obtenus en entraînant à nouveau le réseau à chaque fois. De plus, du point de vue du DP, les paramètres entraînés sont souvent les résultats mêmes que l'on cherche à obtenir, ce qui rend toute la contrainte d'évaluation en temps réel inutile. Les attentes concernant les données en entrée, tant en termes de granularité, de variabilité et de volume, sont également très différentes. Généralement, la perspective de la "Big AI" met l'accent sur des quantités presque infinies de données d'entraînement (par exemple toutes les pages de texte du web) où le principal défi est de trouver des méthodes passant extrêmement bien à l'échelle, qui peuvent efficacement exploiter ces énormes jeux de données. En revanche, les problèmes de la supply chain doivent être traités avec une quantité limitée de données, très structurées, mais diverses. Cela oriente le Deep Learning vers des frameworks basés sur des tenseurs, qui peuvent être considérablement accélérés par du hardware de calcul spécifique, au départ les GPUs et maintenant, de plus en plus, les TPUs. Le Differentiable Programming, basé sur la descente de gradient stochastique présente également de nombreuses bonnes propriétés pour l'accélération hardware, mais à un degré réduit par rapport aux graphes statiques des opérations tensorielles. L'importance des recettes numériques stochastiques est double. Tout d'abord, ces recettes jouent un rôle important du point de vue de l'apprentissage. Les "auto-encoders" variables 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 de prendre en compte correctement les comportements probabilistes au sein des systèmes de la supply chain (par exemple, la variation des délais d'approvisionnement). Inversement, il existe un écart énorme entre le Differentiable Programming et l'optimisation linéaire en nombres entiers ; l'approche dominante au cours des dernières décennies a été de réaliser des optimisations numériques complexes.

Optimisation linéaire en nombres entiersDifferentiable Programming
Objectif principal Optimisation Apprentissage+Optimisation
Granularité et variété des entrées Objets "thin", hétérogènes Idem
Volume des entrées De bytes à des dizaines de megabytes De kilobytes à des dizaines de gigabytes
Accélération du hardware Faible Bonne
Expressivité Inégalités sous formes linéaires et quadratiques Programmes (presque) arbitraires
Recettes numériques stochastiques Aucune Intégrées

Pour défendre les outils d'optimisation linéaire en nombres entiers, il faut noter que ces outils, lorsqu'ils parviennent à résoudre un problème, peuvent parfois permettre de prouver, au sens mathématique, qu'ils ont obtenu une solution optimale. Ni le Deep Learning ni le Differentiable Programming ne fournissent de preuve formelle à cet égard.

Conclusions

Le Differentiable Programming est une avancée majeure pour les supply chains. Il repose sur le Deep Learning, qui s'est avéré être extrêmement efficace pour résoudre de nombreux problèmes d'Intelligence Artificielle tels que la vision par ordinateur, mais qui a dû été remanié en profondeur pour être adapté aux défis du monde réel auxquels sont confrontées les supply chains. Lokad a développé sa technologie de prévision basée sur le Deep Learning pour faire la transition vers le Differentiable Programming, qui est la prochaine génération de notre technologie de prévision. Toutefois, le DP ne se limite pas à être prédictif : il réunit optimisation et apprentissage en apportant des solutions à un grand nombre de problèmes qui n'avaient pas de solution valable auparavant.

Vous souhaitez participer à notre version bêta privée ? Contactez-nous