Programación diferenciable como 'AI' que funciona
Estamos orgullosos de anunciar la disponibilidad inmediata de la Lokad private beta for differentiable programming destinada a la optimización de Supply Chain Quantitativa . Differentiable programming es el descendiente de deep learning, y representa la convergencia de dos campos algorítmicos: machine learning y la optimización numérica.

La programación diferenciable desbloquea una serie de scenarios de supply chain que se consideraban en gran medida intratables: optimización conjunta de precios y stocks, optimización de surtido basada en la lealtad, forecast de la demanda para productos no estándar (p.ej. piedras preciosas, obras de arte), optimización de flujos multi-echelon a gran escala, optimización conjunta de múltiples canales, optimización de stock bajo valores electrónicos de stock parcialmente incorrectos, maximización de flujos a gran escala bajo muchas restricciones, etc. Para muchos otros escenarios que ya eran abordables con métodos alternativos, la programación diferenciable ofrece resultados numéricos superiores con solo una fracción del esfuerzo, tanto en términos de la dedicación de los data scientists como de los recursos computacionales.
Aplicación a Supply Chains
En esencia, la programación diferenciable (DP) ofrece un camino para unificar problemas que han estado desconectados durante demasiado tiempo y los resuelve de manera conjunta: surtido, fijación de precios, forecast, planificación, merchandising. Aunque tal unificación pueda parecer irrealistamente ambiciosa, la realidad es que las empresas ya están aplicando una cantidad insana de cinta adhesiva a sus propios procesos para hacer frente a los interminables problemas generados por el hecho de que esos desafíos han sido aislados dentro de la organización en primer lugar. Por ejemplo, la fijación de precios impacta obviamente la demanda y, sin embargo, tanto la planificación como el forecast se realizan casi siempre sin tener en cuenta los precios.
DP desbloquea la enorme oportunidad de entregar decisiones aproximadamente correctas desde una perspectiva holística del negocio, en lugar de estar exactamente equivocadas al desplazar los problemas dentro de la organización en vez de resolverlos. De forma anecdótica, buscar una corrección aproximada teniendo en cuenta el negocio en su totalidad es exactamente de lo que se tratan la mayoría de las organizaciones impulsadas por hojas de cálculo; y ante la falta de una tecnología —como DP— capaz de abarcar una perspectiva empresarial completa, las hojas de cálculo siguen siendo la opción menos terrible.
Ecommerce: Poder asociar el 100% de las unidades vendidas a clientes conocidos representa una enorme cantidad latente de información sobre el mercado; sin embargo, cuando se trata de la optimización de fijación de precios e inventario, la información de loyalty normalmente ni siquiera se utiliza en la actualidad. DP ofrece la posibilidad de pasar de forecast de series temporales a forecast de graph temporal, donde cada par cliente-producto jamás dejado de contar importa; conduciendo a decisiones más inteligentes tanto para stocks como para precios.
Luxury brands: la optimización de fijación de precios y surtidos —hasta el nivel de tienda— ha sido considerada durante mucho tiempo como en gran medida intratable debido a la escasez de datos, es decir, al muy bajo volumen de ventas por artículo en cada tienda —hasta tan solo una unidad vendida por producto por tienda al año. DP ofrece ángulos para entregar clases de soluciones que funcionan en entornos ultra escasos, porque están diseñadas para ofrecer una eficiencia en datos mucho mayor que los métodos regulares de deep learning.
Fashion brands: la optimización conjunta de stocks y precios es un requisito claro —dado que la demanda de muchos artículos puede ser altamente sensible al precio—, sin embargo, la optimización conjunta tanto de compras como de fijación de precios no se pudo lograr debido a la falta de una herramienta capaz siquiera de comprender este acoplamiento —es decir, la capacidad de comprar más a un precio menor genera mayor demanda (y viceversa). DP ofrece la expresividad para abordar este desafío.
Manufacturing: la optimización numérica de redes multi-echelon de gran tamaño se desmorona cuando se intenta con solucionadores numéricos clásicos (véase “Beyond branch-and-cut optimization” más abajo). De hecho, esos solucionadores se vuelven en gran medida imprácticos al tratar con millones de variables o comportamientos estocásticos. Desafortunadamente, manufacturing presenta ambos, con muchas variables y comportamientos estocásticos. DP ofrece un ángulo práctico para hacer frente a multi-echelon sin traicionar la complejidad de los patrones reales de flujo dentro de la red.
MRO (maintenance, repair, overhaul): Si falta una parte necesaria para la reparación de un sistema, entonces el sistema completo —que podría ser un avión— queda inoperativo. Los forecast probabilísticos son el primer paso para lidiar con patrones de demanda erráticos e intermitentes, pero descubrir los pormenores de la co-ocurrencia de las partes requeridas y transformar este análisis en recomendaciones de inventario accionables fue demasiado complejo para ser de utilidad práctica. DP agiliza la resolución de tales problemas.
Retail networks: Las cannibalizaciones dentro de retail networks —usualmente entre productos pero a veces entre tiendas— han sido reconocidas como de primaria importancia desde hace mucho tiempo. Este problema se ve amplificado por las promotions, destinadas precisamente a dirigir a los clientes de una marca a otra. DP ofrece la posibilidad de abordar la canibalización en presencia de promotions. En lugar de simplemente “forecasting promotions”, DP ofrece la posibilidad de optimizar promotions por lo que son: ofertas rentables operadas conjuntamente tanto por el canal de distribución como por la marca.
Más allá del bombo de la Inteligencia Artificial
La Inteligencia Artificial (IA) ciertamente ha sido la palabra de moda tecnológica de 2018 y el bombo aún sigue fuerte en 2019. Sin embargo, mientras Lokad utiliza extensamente técnicas que normalmente califican para la etiqueta de IA —por ejemplo, deep learning— hemos sido reacios a poner énfasis en la parte de “AI” de la tecnología de Lokad. De hecho, en lo que respecta a la optimización de Supply Chain Quantitativa, la IA empaquetada simplemente no funciona. Las supply chains no son nada comparadas, digamos, con computer vision: los datos, métricas y tareas son extremadamente heterogéneos. Como resultado, las empresas que compraron supuestas soluciones “llave en mano” de IA están empezando a darse cuenta de que esas soluciones simplemente nunca funcionarán, salvo quizá en las situaciones más sencillas donde sistemas “tontos” basados en reglas también habrían funcionado perfectamente.
En esencia, las supply chains son sistemas complejos y creados por el hombre, y generalmente es irrazonable esperar que el sistema de IA —basado únicamente en datos— redescubra por sí solo insights fundamentales sobre el dominio, tales como:
- hacer promotions para una luxury brand es un gran no-no.
- los pedidos de ventas negativos en el ERP son en realidad devoluciones de producto.
- los productos de alimentación fresca deben transportarse dentro de rangos de temperatura especificados.
- las variantes en colores pueden ser buenos sustitutos de la ropa, pero no las variantes en tallas1.
- el mantenimiento de aeronaves se rige por las horas de vuelo y los ciclos de vuelo.
- las ventas en el Reino Unido están en realidad en GBP, aunque el ERP muestre EUR como moneda.
- la gente compra piezas de automóvil para sus vehículos, no para ellos mismos.
- cada diamante es único, pero los precios dependen principalmente del quilate, la claridad, el color y el corte.
- cualquier parte NOGO que falte en un avión hace que este quede en tierra.
- muchas plantas químicas tardan semanas en reiniciar después de apagarse.
En un futuro lejano, podría llegar un momento en que el machine learning logre emular la inteligencia humana y obtenga resultados al enfrentar wicked problems2, sin embargo, hasta ahora, solo se han obtenido resultados en problemas relativamente estrechos. Las tecnologías de machine learning están empujando constantemente, cada año, los límites de lo que constituye un problema “estrecho”, y tras décadas de esfuerzos, problemas importantes como la conducción autónoma segura y traducciones automatizadas decentes están resueltos, o muy cerca de serlo.
Sin embargo, como ilustra la lista anterior, las supply chains siguen siendo desesperadamente demasiado heterogéneas para una aplicación directa de algoritmos de machine learning empaquetados. Incluso si deep learning proporciona las capacidades de generalization más fuertes hasta la fecha, todavía se requiere la aportación de un supply chain scientist para enmarcar el desafío de una manera lo suficientemente estrecha como para que los algoritmos funcionen.
En este sentido, deep learning ha tenido un éxito tremendo porque, a diferencia de muchos enfoques anteriores en machine learning, deep learning es profundamente composicional: es posible dejar la estructura del modelo hecha a la medida para aprender mejor en una situación específica. Dejar la estructura del modelo hecha a la medida es diferente de dejar la entrada del modelo hecha a la medida —una tarea conocida como feature engineering— que era típicamente la única opción disponible para la mayoría de los algoritmos de machine learning no deep, tales como random forests3.
Sin embargo, a medida que los frameworks de deep learning surgieron de los “Big Problems” de machine learning, a saber, computer vision, reconocimiento de voz, síntesis de voz, traducción automatizada, esos frameworks han sido diseñados y ajustados en profundidad para escenarios que literalmente no se parecen a los problemas enfrentados en las supply chains. Así, aunque es posible aprovechar esos frameworks4 para fines de supply chain optimization, no fue una tarea fácil ni ligera.
En conclusión, con los frameworks de deep learning se puede lograr mucho para las supply chains, pero la disparidad entre las supply chains y los frameworks de deep learning existentes es fuerte; lo que incrementa los costos, los retrasos y limita la aplicabilidad real de esas tecnologías.

Más allá de la optimización branch-and-cut
La mayoría de los problemas en las supply chains tienen tanto un ángulo de aprendizaje —causado por un conocimiento imperfecto del futuro, un conocimiento imperfecto del estado actual del mercado, y a veces incluso un conocimiento imperfecto del propio sistema de supply chain (p.ej. inexactitudes en el inventario)— como un ángulo de optimización numérica. Las decisiones deben ser optimizadas en función de impulsores económicos mientras se satisfacen muchas restricciones no lineales (p.ej. MOQs al comprar o tamaños de lote al producir).
En el frente de la optimización numérica, la programación entera y sus técnicas relacionadas, como branch-and-cut, han dominado el campo durante décadas. Sin embargo, estos algoritmos de branch-and-cut y sus soluciones de software asociadas han fallado en su mayoría5 en entregar la flexibilidad y escalabilidad necesarias para proporcionar soluciones operativas para muchos, si no la mayoría, de los desafíos de supply chain. La programación entera es una herramienta fantásticamente capaz cuando se trata de resolver problemas ajustados con pocas variables (p.ej. la colocación de componentes dentro de un dispositivo electrónico de consumo) pero muestra limitaciones drásticas cuando se trata de problemas a gran escala en los que interviene la aleatoriedad (p.ej. reequilibrar stocks entre 10 millones de SKUs al enfrentarse tanto a una demanda probabilística como a tiempos de transporte probabilísticos).
Uno de los aspectos menos apreciados de deep learning es que su éxito es tanto el resultado de avances en el lado del aprendizaje como de avances en el lado de la optimización. Es porque la comunidad científica ha descubierto que algoritmos tremendamente eficientes están realizando optimizaciones a gran escala6.
Estos algoritmos de optimización de “deep learning” —todos basados en el descenso de gradiente estocástico— no solo son mucho más eficientes que sus contrapartes branch-and-cut, sino que se ajustan mucho mejor al hardware de computación que tenemos, a saber, CPU SIMD y (GP)GPU, lo que en la práctica proporciona dos o tres órdenes de magnitud de aceleración adicional.
Estos avances en la optimización numérica pura son de gran relevancia para las supply chains a fin de optimizar las decisiones. Sin embargo, si los frameworks de deep learning ya eran algo inadecuados para abordar problemas de aprendizaje en las supply chains, son aún menos adecuados para abordar los problemas de optimización en las supply chains. De hecho, estos problemas de optimización dependen aún más de la expresividad del framework para permitir que los supply chain scientist implementen las restricciones y métricas que deben ser, respectivamente, aplicadas y optimizadas.
Hacia la Programación Diferenciable
En teoría, no hay diferencia entre la teoría y la práctica. Pero, en la práctica, sí la hay. Walter J. Savitch, Pascal: An Introduction to the Art and Science of Programming (1984)
La Programación Diferenciable (DP) es la respuesta para llevar a las supply chains lo mejor que deep learning tiene para ofrecer tanto en el frente del aprendizaje como en el de la optimización numérica. A través de DP, los supply chain scientist pueden aprovechar al máximo sus conocimientos humanos para elaborar numerical recipes alineadas —en profundidad— con los objetivos del negocio.
No existe una delimitación absoluta entre deep learning y la programación diferenciable: es más bien un continuo que va desde los sistemas más escalables (deep learning) hasta los sistemas más expresivos (programación diferenciable), con muchos constructos de programación que se están haciendo disponibles gradualmente —a expensas de la escalabilidad pura— al avanzar hacia la programación diferenciable.
Sin embargo, nuestra experiencia en Lokad indica que la transición de herramientas diseñadas predominantemente para computer vision a herramientas diseñadas para desafíos de supply chain marca precisamente la diferencia entre un prototipo “interesante” que nunca llega a producción y un sistema de grado industrial implementado a escala.
Deep Learning | Programación Diferenciable | |
---|---|---|
Propósito principal | Aprendizaje | Aprendizaje+Optimización |
Uso típico | Aprende una vez, evalúa muchas | Aprende una vez, evalúa una vez |
Granularidad de entrada | Objetos pesados (imágenes, secuencias de voz, escaneos lidar, páginas de texto completas) | Objetos delgados (productos, clientes, SKUs, precios) |
Variedad de entradas | Objetos homogéneos (por ejemplo, imágenes con la misma relación altura/ancho) | Objetos heterogéneos (tablas relacionales, gráficos, series temporales) |
Volumen de entrada | Desde megabytes hasta petabytes | Desde kilobytes hasta decenas de gigabytes |
Aceleración de hardware | Excepcionalmente buena | Buena |
Expresividad | Grafos estáticos de operaciones de tensores | (Casi) programas arbitrarios |
Recetas numéricas estocásticas | Integrado | Idem |
El uso típico es un punto sutil pero importante. Desde la perspectiva del “Big AI”, el tiempo de entrenamiento puede ser (casi) arbitrariamente largo: está bien que una red computacional se entrene durante semanas, o incluso meses. Más adelante, la red computacional resultante usualmente necesita evaluarse en tiempo real (por ejemplo, para el reconocimiento de patrones en la conducción autónoma). Este enfoque es completamente distinto a los supply chains, donde los mejores resultados se obtienen reentrenando la red cada vez. Además, desde una perspectiva DP, los parámetros entrenados son frecuentemente los mismos resultados que buscamos obtener; lo que hace que toda la restricción de evaluación en tiempo real sea irrelevante.
Las expectativas en torno a las entradas de datos, tanto en granularidad, variedad y volumen, también son muy diferentes. Típicamente, la perspectiva del “Big AI” enfatiza cantidades casi infinitas de training data (por ejemplo, todas las páginas de texto de la web) donde el desafío principal es encontrar métodos tremendamente escalables que puedan aprovechar efectivamente esos conjuntos de datos masivos. En contraste, los problemas de supply chain deben abordarse con una cantidad limitada de datos altamente estructurados pero diversos.
Esto dirige el deep learning hacia marcos basados en tensores, los cuales pueden acelerarse masivamente mediante hardware de cómputo dedicado, inicialmente GPUs y, cada vez más, TPUs. Differentiable Programming, al basarse en el descenso de gradiente estocástico, también exhibe muchas buenas propiedades para la aceleración de hardware, aunque en menor medida si se compara con los grafos estáticos de operaciones de tensores. La importancia de las recetas numéricas estocásticas es doble. Primero, estas recetas desempeñan un papel importante desde una perspectiva de aprendizaje. Autoencoders variacionales o dropouts son ejemplos de tales recetas numéricas. Segundo, dichas recetas cumplen un rol esencial desde la perspectiva de modelado para incorporar adecuadamente comportamientos probabilísticos dentro de los sistemas de supply chain (por ejemplo, tiempos de entrega variables). Conversely, there is a huge gap between differentiable programming and mixed integer programming - the dominant approach over the last few decades has been to perform complex numerical optimizations.
Conversamente, existe una gran brecha entre differentiable programming y la programación entera mixta: el enfoque dominante durante las últimas décadas ha sido realizar optimizaciones numéricas complejas.
Programación entera mixta | Differentiable Programming | |
---|---|---|
Propósito principal | Optimización | Aprendizaje+Optimización |
Granularidad y variedad de entrada | Objetos delgados, heterogéneos | Idem |
Volumen de entrada | Desde bytes hasta decenas de megabytes | Desde kilobytes hasta decenas de gigabytes |
Aceleración de hardware | Pobre | Buena |
Expresividad | Desigualdades sobre formas lineales y cuadráticas | (Casi) programas arbitrarios |
Recetas numéricas estocásticas | Ninguna | Integrado |
En defensa de las herramientas de programación entera mixta, dichas herramientas —cuando logran abordar un problema— a veces pueden demostrar —en el sentido matemático— que han obtenido la solución óptima. Ni el deep learning ni differentiable programming ofrecen ninguna prueba formal al respecto.
Conclusiones
Differentiable Programming es un gran avance para los supply chains. Se construye sobre el deep learning, que resultó tremendamente exitoso para resolver numerosos problemas de “Big AI” como la visión por computadora, pero ha sido reingenierizado en su núcleo para encarar los desafíos del mundo real que enfrentan los supply chains.
Lokad ha estado aprovechando su deep learning forecasting technology para hacer la transición hacia Differentiable Programming, la próxima generación de nuestra tecnología predictiva. Sin embargo, DP es más que simplemente ser predictivo: unifica la optimización y el aprendizaje, desbloqueando soluciones para una vasta cantidad de problemas que antes no tenían soluciones viables.
¿Interesado en participar en nuestra beta privada? Envíanos un correo electrónico a contact@lokad.com
-
Anecdóticamente, existe un segmento en el que las tallas de ropa no importan tanto y aún actúan como buenos sustitutos: es la ropa infantil. De hecho, los padres con presupuestos ajustados frecuentemente compran varias tallas por adelantado para sus hijos, anticipando su crecimiento, al presentárseles un fuerte descuento. ↩︎
-
Muchos, si no la mayoría, de los problemas de supply chain son “wicked” en el sentido de problemas cuya complejidad social implica que no tienen un punto de finalización determinable. Consulte wicked problem en Wikipedia. ↩︎
-
Random Forests ofrecen unas pocas y diminutas opciones para una meta-parametrización del modelo en sí: la profundidad máxima del árbol, la razón de muestreo. Esto significa que, cualesquiera que sean los patrones que el random forest no logre capturar, deberán ser diseñados mediante ingeniería de características por falta de opciones mejores. Véase también Columnar Random Forests. ↩︎
-
El hecho de que los marcos de deep learning funcionen en absoluto para fines de supply chain es un testamento al tremendo poder detrás de estos avances, cuyos principios descubiertos se extienden mucho más allá del alcance original del estudio que dio origen a dichos marcos. Véase también Deep Learning en Lokad. ↩︎
-
Software de optimización como CPLEX, Gurobi y ahora su equivalente de código abierto han estado disponibles por más de 3 décadas. En teoría, cada situación de compra enfrentada a MOQs (cantidad mínima de pedido) o descuentos debería haber sido abordada con software que ofreciera capacidades similares. Sin embargo, a pesar de haber tenido la oportunidad de contactar con más de 100 empresas durante la última década en muchos sectores, nunca he visto que algún departamento de compras utilice estas herramientas en ningún lugar. Mi experiencia con tales herramientas indica que pocos problemas encajan en un conjunto de desigualdades estáticas que incluyen únicamente formas lineales y cuadráticas. ↩︎
-
El algoritmo Adam (2015) es probablemente el mejor representante de esos algoritmos de optimización simples pero tremendamente eficientes que han impulsado un gran avance en todo el campo de machine learning. ↩︎