00:00:07 Programación diferenciable como un nuevo término.
00:01:38 La idea central de la optimización basada en gradiente en deep learning.
00:03:48 El avance revolucionario de la diferenciación automática en el cálculo de gradientes.
00:06:00 Los orígenes de la programación diferenciable y su impacto en machine learning.
00:07:43 La complejidad de tareas aparentemente simples y el progreso iterativo en IA.
00:09:33 Transición de redes neuronales a deep learning y programación diferenciable.
00:11:22 Los beneficios de la programación diferenciable en la optimización de supply chain.
00:13:26 Integrando precios, forecast de demanda y asignación de stock en la gestión de supply chain.
00:15:00 La programación diferenciable en machine learning y el abordaje de las incertidumbres.
00:16:00 La programación diferenciable en supply chain y su comparación con las grandes empresas tecnológicas.
00:18:19 Aplicando técnicas de IA de otros campos a problemas de supply chain.
00:20:15 Beneficios de la programación diferenciable para el modelado predictivo y la optimización en supply chain.
00:22:01 Los desafíos futuros para la programación diferenciable en la gestión de supply chain.
00:24:16 Reflexiones finales.

Resumen

Kieran Chandler entrevistó a Joannes Vermorel, fundador de Lokad, acerca de programación diferenciable y su importancia en IA y en la optimización de supply chain. La programación diferenciable surgió a partir de avances en técnicas de diferenciación automática y ha evolucionado desde las redes neuronales y el deep learning. La modularidad de la programación diferenciable permite un ensamblaje de modelos más flexible y versátil, lo que la hace útil para la optimización de supply chain. Aunque existen inquietudes sobre la fiabilidad, Vermorel destaca la efectividad de las técnicas de machine learning. Lokad, a pesar de contar con un presupuesto menor, se mantiene competitiva adaptando investigaciones de gigantes tecnológicos para aplicaciones en supply chain. La programación diferenciable ofrece una solución más expresiva para elaborar recetas numéricas que se ajusten a problemas empresariales, aunque lograr resultados consistentes sin fallos sigue siendo un desafío.

Resumen Extendido

Kieran Chandler, el presentador de la entrevista, discutió el tema de la programación diferenciable con Joannes Vermorel, fundador de Lokad, una empresa de software especializada en la optimización de supply chain. Vermorel ofreció una visión sobre los orígenes y la importancia de la programación diferenciable como concepto y su relación con la IA y el deep learning.

Yann LeCun, el director de investigación en IA de Facebook, sugirió recientemente que el término “deep learning” ha dejado de ser útil como palabra de moda y propuso el uso de “programación diferenciable” para reflejar los desarrollos más recientes en software. Vermorel comentó sobre la constante evolución de la terminología en el campo de la IA, afirmando que tan pronto como se encuentra una solución para un problema, ya no se considera IA y se le asigna un nuevo nombre, siendo la programación diferenciable el último ejemplo.

Los orígenes de la programación diferenciable se remontan a la optimización basada en gradientes, un concepto central en deep learning. La optimización basada en gradientes implica entrenar un modelo con millones de parámetros utilizando una función objetivo, que evalúa la calidad de los resultados del modelo. A medida que se observan nuevos puntos de datos, se calcula el gradiente, o derivada multidimensional, para orientar los ajustes a los parámetros, mejorando gradualmente el modelo.

Históricamente, las redes neuronales, que preceden al deep learning, empleaban técnicas complejas como la retropropagación para calcular gradientes. Estas técnicas eran difíciles de implementar y tenían un rendimiento relativamente lento. Un avance revolucionario se produjo hace aproximadamente una década, cuando los investigadores comenzaron a utilizar la diferenciación automática, una técnica descubierta por primera vez en los años 60. La diferenciación automática simplifica el cálculo de gradientes, pero permaneció mayormente ignorada por la comunidad científica hasta que se reconoció su potencial más recientemente.

La discusión gira en torno al concepto de programación diferenciable y su desarrollo, así como sus aplicaciones en la optimización de supply chain.

La programación diferenciable surgió como resultado de los avances en las técnicas de diferenciación automática, que permitieron el cálculo de gradientes para cualquier programa, y no solo para cualquier función. Este enfoque posibilitó el desarrollo de redes computacionales más complejas que podían aplicarse a una amplia gama de problemas. El término “programación diferenciable” proviene de la idea de calcular la derivada de un programa.

El desarrollo de la programación diferenciable ha sido iterativo, construyéndose sobre conceptos previos de redes neuronales y deep learning. El progreso en el campo ha sido constante durante los últimos 50-60 años, aunque inicialmente existía la creencia errónea de que ciertos problemas, como identificar un perro, serían más fáciles de resolver que cálculos complejos como el cálculo de un logaritmo. En realidad, problemas aparentemente simples como el reconocimiento de objetos y el mantenimiento del equilibrio resultaron ser más desafiantes, mientras que los cálculos se volvieron relativamente fáciles con la arquitectura informática moderna.

La transición de redes neuronales a deep learning implicó desechar la inspiración biológica para centrarse en lo que funcionaba con el hardware informático. La siguiente etapa, la programación diferenciable, se basó en la modularidad del deep learning, permitiendo la composición, apilamiento, concatenación y mezcla de modelos de machine learning. Esta modularidad fue crucial para la optimización de supply chain, que involucra elementos diversos como precios, productos, clientes, ubicaciones y contenedores.

A medida que la gente comenzó a construir kits de herramientas de deep learning que se parecían a lenguajes de programación, la idea de la programación diferenciable surgió como una extensión natural. Las técnicas de diferenciación automática facilitaron el diseño y la ingeniería de los kits de herramientas necesarios. En la práctica, la programación diferenciable implica combinar diversos modelos y bloques, de manera similar a un enfoque de piezas de Lego. Sin embargo, en comparación con el deep learning, la programación diferenciable permite un ensamblaje de modelos más flexible y versátil.

Vermorel explica que la programación diferenciable permite una expresividad programática, habilitando a los usuarios para revisar problemas y expresar sus soluciones de manera más precisa y eficiente. Proporciona un ejemplo de cómo se puede utilizar la programación diferenciable para optimizar la fijación de precios, el forecast de demanda y la asignación de stock. Estos factores están interconectados; modificar la estrategia de precios impactará en la demanda, lo que a su vez afecta la producción requerida y los niveles de stock.

La programación diferenciable permite a los usuarios escribir programas que dejan espacios en blanco para que se optimicen parámetros. Un Supply Chain Scientist puede escribir estos programas y utilizar la tecnología adecuada para la optimización. Chandler plantea preocupaciones acerca de la fiabilidad de las soluciones producidas por la programación diferenciable, ya que implica espacios en blanco y depende del machine learning. Vermorel reconoce las limitaciones, pero señala que las técnicas de machine learning ya han demostrado su efectividad, como lo evidencia su éxito al superar a jugadores humanos en juegos como Go y ajedrez.

Cuando se le preguntó sobre los esfuerzos de investigación y desarrollo en programación diferenciable en Lokad en comparación con las grandes empresas tecnológicas como Facebook, Vermorel admite que su presupuesto es significativamente menor. Sin embargo, enfatiza que la investigación conducida por estos gigantes tecnológicos suele ser publicada, lo que permite a empresas más pequeñas como Lokad estudiarla y tomar inspiración de su trabajo. El principal desafío para Lokad es mantenerse al día con estas publicaciones y adaptar los hallazgos de la investigación para ajustarse a una mentalidad de supply chain.

Vermorel señala que el enfoque principal de las grandes empresas tecnológicas está en los grandes problemas de IA, como la visión por computadora, el reconocimiento de voz, la síntesis de voz y el procesamiento del lenguaje natural. Estas áreas no están directamente relacionadas con la gestión de supply chain, que es donde reside la experticia de Lokad. Al estar muy atentos a la investigación producida por estos gigantes tecnológicos y reingenierizarla para aplicaciones en supply chain, Lokad aspira a mantenerse competitiva en el campo de la programación diferenciable para la optimización de supply chain.

Vermorel enfatiza que muchos de los conocimientos obtenidos de la investigación en IA no son específicos de imágenes o voz, sino más bien fundamentales para aprender de los datos. Estos conocimientos pueden aplicarse a diferentes problemas, incluida la gestión de supply chain, donde incluso podrían funcionar mejor.

El principal beneficio de la programación diferenciable en la gestión de supply chain, según Vermorel, es su capacidad para manejar incertidumbres y modelado predictivo sin descarrilar el negocio. El desafío radica en alinear las soluciones numéricas con los impulsores comerciales específicos, manteniéndose a la vez versátil y expresiva. La programación diferenciable ofrece una solución más expresiva, facilitando la elaboración de recetas numéricas que se adapten al problema empresarial.

Vermorel señala que uno de los mayores desafíos al aplicar la programación diferenciable en la gestión de supply chain es establecer una serie de constructos y bloques de construcción programáticos que funcionen bien para la industria. Aunque la diferenciación automática puede diferenciar cualquier programa, es crucial encontrar maneras específicas de formular problemas que produzcan no solo buenos resultados, sino también resultados constantes y fiables aptos para producción. El objetivo es lograr resultados consistentes sin fallos catastróficos, lo cual sigue siendo un desafío por delante.

Transcripción Completa

Kieran Chandler: Hoy vamos a continuar nuestra mini-serie analizando sus orígenes. Entonces, Joannes, la programación diferenciable es otra palabra de moda en el mundo de la tecnología. ¿Realmente necesitamos otra?

Joannes Vermorel: Supongo que sí. Es muy interesante porque tan pronto como la gente tiene una solución que funciona para los problemas, de repente ya no se considera IA. Se le asigna un nombre diferente. IA es el término genérico para decir que es terra incognita; no sabemos cómo resolver ese tipo de problemas. Tan pronto como tenemos una solución, la solución recibe un nombre, y normalmente ha sido el resultado de una serie de avances relativamente iterativos con muchas iteraciones. Luego se le asigna un nombre que refleja lo que predomina como parte de la receta numérica en esta solución.

Kieran Chandler: Bien, y luego pasamos a la programación diferenciable. ¿Cuál es la historia detrás de eso? ¿De dónde proviene el nombre y cómo llegamos a ello?

Joannes Vermorel: El nombre proviene de uno de los ingredientes que impulsó el deep learning, que es la idea de la optimización basada en gradientes. ¿Qué significa eso? Una optimización basada en gradientes implica que tienes un modelo con potencialmente millones de parámetros. La forma de entrenar esos parámetros es mediante el uso de una función objetivo, una ecuación que te indica si tus resultados son buenos o malos. La idea es que cada vez que observas un punto de datos, recibes la información que fluye a través de esta función, y puedes calcular el gradiente. El gradiente te indica que si ajustas los parámetros ligeramente en esta dirección, mejorará localmente la función objetivo, aunque sea un poco. Esa es la idea central del descenso de gradiente estocástico, que es el algoritmo utilizado para optimizar los algoritmos modernos de machine learning y, por ejemplo, todo el deep learning. Así, tenemos este enfoque basado en gradientes con muchos parámetros, y la idea es mover los parámetros un poco cada vez que se observa un nuevo punto de datos, para que puedas mejorar gradualmente. El problema entonces se convierte en cómo calcular este gradiente. Por cierto, el gradiente es simplemente un nombre para las derivadas multidimensionales. Si tienes álgebra de secundaria, miras las derivadas, la pendiente de una curva en una dimensión. Si tienes muchas dimensiones, te referirás a ellas como un gradiente. Porque tienes muchos parámetros, deseas calcular la pendiente para cada uno de esos parámetros. Resulta que históricamente, las redes neuronales, que probablemente existían antes del deep learning, contaban con todo tipo de técnicas muy complicadas denominadas retropropagación de los gradientes. En términos de complejidad de implementación y rendimiento, era complicado y tenía un rendimiento relativamente lento. No es que fuera lento, pero sí más lento que lo que tenemos hoy en día. Uno de los avances revolucionarios que impulsó la programación diferenciable fue que la gente comenzó a darse cuenta, hace unos diez años, de que podían usar una técnica llamada diferenciación automática, que, por cierto, tiene 50 años de antigüedad. Se descubrió por primera vez a mediados de los años 60, así que ha pasado bastante tiempo. Pero permaneció mayormente ignorada por la comunidad científica. Se redescubrió varias veces, pero de alguna manera esos descubrimientos no alcanzaron una atención generalizada.

No era que estuviéramos trabajando en mezclar cosas que eran campos completamente diferentes, y por lo tanto esos avances quedaron, diría, mayormente ignorados. Y así, teníamos a la comunidad de machine learning que estaba algo estancada con las técnicas de back propagation que eran muy complicadas, muy tediosas de implementar, y de repente la gente empezó a darse cuenta de que con aquellas técnicas de automatic differentiation, podías calcular el gradiente para literalmente cualquier programa, no solo cualquier función, cualquier programa. Y eso fue algo que cambió totalmente el juego en términos de implementación. De repente podías idear una red computacional que era arbitrariamente complicada, no solo apilando más capas, sino teniendo un programa completamente arbitrario y luego aplicar estas mismas técnicas de gradient descent. Y de ahí proviene el término differentiable programming, viene de la idea de que vas a diferenciar, es decir, calcular la derivada de un programa. De ahí surgió el nombre, y refleja un poco la ambición de esos últimos avances en machine learning de pensar en arquitecturas super complejas para las redes computacionales que pueden ser como programas arbitrarios y el nombre differentiable programming.

Kieran Chandler: Bien, se han abarcado muchas cosas. Así que intentemos desmenuzarlo un poco. Dijiste que algunas de estas ideas surgieron en los años ‘50 y ‘60. No es realmente como el desarrollo rápido que estamos viendo en la IA y cosas así. Entonces, ¿existe en realidad un enfoque bastante iterativo para llegar al differentiable programming?

Joannes Vermorel: Absolutamente, pero la realidad es que incluso el deep learning antes de eso era muy iterativo y las redes neuronales antes de eso también lo eran. Quiero decir, el ritmo del progreso ha sido en realidad bastante rápido en los últimos 50-60 años. Ha sido increíblemente rápido. Y lo que es intrigante es que, ya sabes, a principios de los ‘60, la gente pensaba: “Oh, si podemos descifrar la multiplicación, la expansión o todos esos cálculos complicados, entonces identificar un perro será super fácil. Después de todo, cualquier persona en la calle puede decir ’esto es un perro’, pero se necesita un matemático super entrenado para calcular el logaritmo. Así que, obviamente, calcular un logaritmo es mucho más complicado que identificar si tienes un perro enfrente.”

Y la mayor sorpresa vino del hecho de que en realidad es al revés. Esos problemas que damos completamente por sentados, como por ejemplo, poder mantener el equilibrio mientras estás de pie sobre dos pies, son complicados. Quiero decir, es en donde, si simplemente dejas de moverte, simplemente caes. Así que es completamente dinámico. No es, ya sabes, mantenerse erguido; tener un robot bípedo es como una pesadilla de ingeniería. Es mucho más fácil tener cosas que simplemente funcionan sobre ruedas y que son completamente estables por diseño.

Así que los problemas súper simples, como mantenerse erguido, identificar si lo que tienes enfrente es un perro o un pollo, o algo completamente diferente, como simplemente un póster con una imagen de un perro en lugar de tener un perro real. Esos problemas son muy difíciles, y problemas como calcular tus logaritmos son en realidad súper fáciles con la arquitectura computacional que tenemos. Así que fue una gran sorpresa, y literalmente tomó varias décadas darnos cuenta de que teníamos que descubrir incluso para empezar a abordar problemas súper fundamentales.

De ahí el hecho de que hemos estado hablando de IA durante décadas, el progreso ha sido muy real, muy constante, pero es que había tanto por descubrir que, tal vez desde un punto de vista externo, parecía que era algo lento, simplemente porque la gente estableció expectativas equivocadas desde el principio. Pero está en camino, y literalmente aún está avanzando mucho, y ahora nos hemos dado cuenta de que probablemente

Kieran Chandler: ¿Y qué hay del differentiable programming? ¿Cuál fue la inspiración detrás de eso?

Joannes Vermorel: La clave, una percepción muy interesante, fue la transición de redes neuronales al deep learning. La idea era abandonar completamente toda la inspiración biológica y darnos cuenta de que, si queríamos avanzar, teníamos que descartar esa inspiración para enfocarnos en lo que realmente funciona con el hardware de computadoras. Uno de los insights clave que impulsó el deep learning fue su modularidad. Puedes construir modelos de machine learning de una manera extremadamente modular; puedes componerlos, apilarlos, concatenarlos y mezclarlos de muchas formas.

Kieran Chandler: ¿Y por qué es eso de primordial interés para supply chains?

Joannes Vermorel: Es porque queremos mezclar cosas como precios, productos, clientes, ubicaciones, contenedores y todo tipo de objetos muy diversos que necesitan ser combinados para resolver problemas de supply chain. Necesitas abordar toda esa diversidad. Cuando empiezas a tener modelos que puedes componer de muchas maneras, terminas con un lenguaje de programación, literalmente. Lo interesante es que la gente empezó a construir kits de herramientas en deep learning que estaban cada vez más cerca de lenguajes de programación reales. Por ejemplo, Microsoft lanzó su kit de red computacional, CNTK, que tenía BrainScript, un lenguaje de programación específico para deep learning. La siguiente etapa fue pasar a la programación completa.

Kieran Chandler: Así que es como un enfoque de ladrillo Lego, combinando diferentes bloques de distintos lugares y combinando estos modelos de diferentes maneras. ¿Cómo funciona eso en la práctica? ¿Cómo están implementando este código detrás de ello?

Joannes Vermorel: Los Legos eran prácticamente el arquetipo de lo que la gente tenía con deep learning, de hecho. Se trataba de combinar bloques, pero de maneras que eran bastante limitadas. Existe un espectro entre el deep learning y el differentiable programming sin una demarcación clara. La diferencia es que la gente pasó de los Legos, donde solo se trataba de ensamblar partes, a la programación, donde puedes hacer lo mismo pero con expresividad programática. Para supply chains, eso significa que puedes reexaminar problemas y expresar tu solución de una manera mucho más sucinta y al grano del problema que estás intentando resolver.

Kieran Chandler: ¿Puedes dar un ejemplo?

Joannes Vermorel: Claro, intentemos optimizar conjuntamente la fijación de precios, el forecast de la demanda y la asignación de stock. Cuando lo piensas, todas esas cosas están completamente acopladas. Estoy haciendo forecast de la demanda, pero sé que si ajusto mi estrategia de precios, modificaré la demanda. Si modifico la demanda, tiene un impacto en cuánto debo producir y almacenar, porque la demanda será diferente. Todas estas cosas están completamente acopladas, y tienen dependencias que literalmente puedes escribir.

Kieran Chandler: Es complicado de alguna manera. Si tengo más demanda, necesito más stock para satisfacerla. Es bastante obvio, y si pongo el precio en un punto más alto, entonces, para la demanda que mantendré, tendré un margen mayor. Hay muchas cosas que son como cálculos completos y muy básicos, pero la cuestión es, ¿cómo juntas todos esos ingredientes para hacer algo que sea tanto una predicción como una optimización?

Joannes Vermorel: La respuesta es differentiable programming con técnicas específicas donde puedes escribir esos programas que dejarán mucho espacio en blanco. Eso va a representar todos los parámetros que deseas optimizar, y tendrás a un Supply Chain Scientist escribiendo eso y la tecnología adecuada para hacer la optimización.

Kieran Chandler: Entonces, ¿lo que dices con estos espacios en blanco es que en realidad estás escribiendo un programa donde realmente no conoces todas las respuestas?

Joannes Vermorel: Sí, es correcto.

Kieran Chandler: ¿Cómo puedes saber eso y tener confianza en que realmente vas a llegar a la respuesta correcta si hay estos espacios en blanco?

Joannes Vermorel: De hecho, es similar a los fenómenos en machine learning. Estás aprendiendo, por lo que no tienes ninguna garantía de que obtendrás buenos resultados. Dicho esto, no creo que hoy en día sea diferente del deep learning y de todas las técnicas anteriores de machine learning. Por ejemplo, los programas de machine learning ya han superado a todos los jugadores humanos en juegos como Go y ajedrez. Así que, no es que no tuviéramos señales claras de que eso realmente funcionaba, incluso más allá de la capacidad humana para problemas que aún son bastante limitados, a diferencia de identificar dónde está un perro en un entorno urbano desordenado, lo cual es un problema mucho más difícil.

Kieran Chandler: Mencionaste algunas de las perspectivas de supply chain para differentiable programming. Desde una perspectiva de investigación y desarrollo, ¿qué tan cerca está lo que estamos haciendo aquí en Lokad comparado con lo que Facebook y otras grandes compañías tecnológicas están haciendo en differentiable programming?

Joannes Vermorel: Creo que los gigantes tecnológicos como Google, Facebook y Microsoft tienen un presupuesto mucho mayor para investigación y desarrollo. En Lokad, estamos haciendo lo mejor que podemos, pero seamos realistas, no tengo ni siquiera el 1% del presupuesto de IA de Microsoft o Facebook. Esa es la realidad para la mayoría de las empresas B2B en este momento. Esos mercados siguen siendo bastante de nicho, y no hay ninguna compañía en la supply chain que diría que tiene 2,000 investigadores en IA. Sin embargo, la buena noticia es que esos gigantes como Google, Amazon y Facebook están publicando mucho, por lo que la mayor parte de su investigación se publica. Esto significa que uno de los desafíos clave que enfrentamos en Lokad es mantener un ojo atento a todas esas publicaciones e inspirarnos en ellas de manera constante. Reingeniamos lo que ellos están haciendo pero desde una mentalidad de supply chain, porque esos grandes equipos están trabajando en los grandes problemas de IA como visión por computadora, reconocimiento de voz, síntesis de voz y procesamiento de lenguaje natural, que no es en absoluto lo que la gente está tratando de resolver en la supply chain.

Kieran Chandler: Entonces, ¿cómo podrías pasar de esos grandes problemas de IA, como el reconocimiento de imágenes y el reconocimiento de voz, a la supply chain? ¿Cómo pueden estar relacionados en absoluto?

Joannes Vermorel: La gente ha estado descubriendo el insight clave del progreso en las últimas décadas, que es el mecanismo central del aprendizaje y el mecanismo central detrás de la optimización numérica eficiente y escalable. Lo que es muy interesante es que la mayoría de los insights que están descubriendo no son específicos de las imágenes. Son más a nivel fundamental de

Kieran Chandler: Entonces, he oído hablar de un truco que solo funciona para imágenes, pero hay muchas publicaciones donde el truco o el insight descubierto no es específico en absoluto. Simplemente sucede que, para validar los insights y experimentos, tienen que diseñar una solución, y esta solución está diseñada para imágenes. Pero el truco podría aplicarse a problemas completamente diferentes. Puede que no funcione naturalmente con la misma eficiencia en problemas completamente diferentes, pero a veces incluso funcione mejor. ¿Puedes elaborar sobre eso?

Joannes Vermorel: Sí, tienes razón. A veces se descubre una técnica que es buena para imágenes pero no revolucionaria. Se publica de todas formas, ya que se considera novedosa y contribuye al progreso científico. Sin embargo, cuando aplicas esta técnica a un contexto diferente, como una supply chain, puedes lograr avances significativos. Así que, va en ambas direcciones.

Kieran Chandler: ¿Cuál es el principal beneficio, desde la perspectiva de Lokad, del differential programming? ¿Es la idea de que puedes responder a todas esas incógnitas que existen en una supply chain y a todos esos espacios en blanco donde realmente no sabes qué va a pasar en el futuro?

Joannes Vermorel: El gran desafío que enfrentamos en la supply chain es cómo tener modelos predictivos y optimización predictiva que no traicionen el negocio. No es trivial porque no se trata de obtener respuestas genéricas; se trata de tener una clase muy específica de decisiones que optimizan el negocio de maneras altamente específicas, que se alinean con los impulsores del negocio que defines. No intentamos que las técnicas de IA descubran los objetivos del negocio; los objetivos del negocio se establecen con inteligencia a nivel humano para definir la estrategia y la perspectiva. El problema tiene mucha estructura, y el mayor desafío es asegurarse de que las recetas numéricas que elaboras se alineen con esos impulsores del negocio. Es muy difícil –usualmente terminas con un agujero redondo y un taco cuadrado que simplemente no encajan. Differentiable programming es una forma de abordar este problema.

Kieran Chandler: Ser mucho más expresivo, y esta es la clave para asegurarte de que puedes, ya sabes, enmarcar recetas numéricas que realmente se ajusten al problema del negocio que tienes enfrente. Ya sabes, si tienes acceso a un lenguaje de programación, entonces eres mucho más, diría, expresivo y versátil. De repente se vuelve, ya sabes, en la práctica, mucho más fácil lograr que las cosas encajen. Bien, empecemos a concluir. Mencionaste al principio que el differential programming era, en gran medida, el comienzo de un largo camino con muchos desafíos por delante.

Joannes Vermorel: Sí, en donde estamos en ese camino y cuáles son los mayores desafíos que vamos a enfrentar… El mayor desafío es probablemente establecer una serie de, probablemente identificar, una serie de constructos y bloques de construcción de programación que realmente funcionen bien para la supply chain. Así que, recuerda, la automatic differentiation te permite diferenciar cualquier programa, es cierto, pero como señalaste, no es porque, ya sabes, detengas o empieces a verter parámetros en tu programa y digas: “Bueno, cualquier cosa funcionará porque puedo optimizar mis parámetros.” No, la realidad es que no es cualquier tipo de programa el que funciona. Sí, puedes diferenciar cualquier programa que tenga esos parámetros, pero la realidad es que, si estuvieras escribiendo un programa al azar con parámetros en el medio, cuando actives tu optimización, ya sabes, tu automatic differentiation, los resultados que obtendrás serán completamente basura. Así que no, tiene que ser; necesitamos identificar formas específicas de diseñar esos problemas que en realidad arrojen no solo resultados que sean buenos, sino también muy estables y confiables. Ya ves, queremos tener cosas que podamos pasar a producción, por lo que ser mejor en promedio no es suficiente. Quieres tener algo que no solo sea mejor, sino también muy confiable, y de ese modo no generas, ya sabes, maravillas puntuales, algo que sea críticamente malo. Quieres resultados que sean muy estables, muy confiables, que no, diría, fallen de manera catastrófica una vez al año. Y eso aún probablemente está, en parte, por delante de nosotros.

Kieran Chandler: Brillante. Muy bien, pues ahí lo dejamos por hoy. Gracias por tu tiempo, Joannes.

Joannes Vermorel: Gracias.

Kieran Chandler: Muchas gracias por sintonizar. Volveremos la próxima semana con nuestro último en esta mini-serie sobre differentiable programming. Pero hasta entonces, gracias por ver.