00:00:07 Потенциальные области применения дифференцируемого программирования в цепях поставок.
00:00:31 Применение дифференцируемого программирования к розничным магазинам и с точки зрения клиентов.
00:02:56 Революционное свойство дифференцируемого программирования при моделировании поведения клиентов.
00:06:05 Влияние дифференцируемого программирования на работу склада и прогнозирование будущего спроса.
00:07:11 Сглаживание кривых отгрузок на складе с помощью дифференцируемого программирования.
00:09:38 Важность своевременного обслуживания клиентов и его влияние на цепи поставок.
00:10:40 Роль дифференцируемого программирования в моделировании сложных сетей цепей поставок.
00:13:01 Контроль качества и недостатки в производственных системах.
00:14:17 Применение дифференцируемого программирования для моделирования неопределенностей в фармацевтической промышленности.
00:16:00 Дифференцируемое программирование и его преимущества в условиях разреженных данных.
00:17:41 Истечение срока действия патента как пример применения дифференцируемого программирования в фармацевтической промышленности.
00:19:57 Принятие сложности и учет ключевых бизнес-факторов с помощью дифференцируемого программирования.
00:21:59 Сбалансированность простоты и сложности в моделях на основе бизнес-требований.
00:22:42 Дифференцируемое программирование как эволюция программного подхода Lokad, преимущества и возможности для клиентов.

Резюме

В этом выпуске интервью ведущий Киран Чандлер и основатель Lokad Жоанн Верморель исследуют применение дифференцируемого программирования и его влияние на управление цепями поставок. Традиционные модели временных рядов испытывают трудности с моделированием каннибализации и замещения, тогда как дифференцируемое программирование предлагает ориентированный на клиента подход, учитывающий его желания и потребности для более обоснованного принятия решений. Этот подход может привести к более точному прогнозированию спроса, управлению запасами и оптимизации складских операций. Дифференцируемое программирование решает сложные многоуровневые задачи и учитывает производственные недостатки, что делает его подходящим для различных отраслей. Верморель подчеркивает, что дифференцируемое программирование позволяет бизнесу включать отраслевые знания в модели машинного обучения, что приводит к более точным, эффективным и адаптированным решениям для конкретных задач.

Расширенное резюме

В этом выпуске серии интервью о дифференцируемом программировании ведущий Киран Чандлер и основатель Lokad Жоанн Верморель обсуждают потенциальные области применения и последствия использования этой технологии в цепях поставок, в частности, в розничной торговле. Дифференцируемое программирование имеет потенциал для улучшения управления цепями поставок за счет решения различных проблем, с которыми традиционные подходы на основе временных рядов справляются неэффективно.

Одна из ключевых проблем в управлении цепями поставок заключается в сложности моделирования каннибализации и замещения, которые особенно актуальны для таких отраслей, как товары класса люкс, быстрая мода и торговля продуктами питания. Традиционные модели временных рядов испытывают трудности с учетом этих факторов, часто прибегая к временным, не самым оптимальным решениям.

Дифференцируемое программирование предлагает новый взгляд на эти проблемы, сосредотачиваясь на клиентской перспективе, а не только на продукте. Это позволяет менеджерам по цепям поставок учитывать такие факторы, как желания и потребности клиентов, а также их вероятность выбирать или не выбирать товары из текущего ассортимента с учетом наличия на складе. Такой подход, ориентированный на клиента, обеспечивает более точное и детализированное понимание розничной среды, что приводит к более обоснованному принятию решений.

Революционный аспект дифференцируемого программирования заключается в его способности моделировать предпочтения клиентов относительно определенных товаров в каталоге. Этот процедурный процесс позволяет менеджерам цепей поставок учитывать различные факторы, такие как влияние новизны на покупки клиентов и то, что постоянные клиенты вряд ли купят один и тот же товар повторно. Эти инсайты могут привести к более точному прогнозированию спроса и управлению запасами.

Например, в книжном магазине клиент, купивший книгу, вряд ли приобретет тот же самый том при следующем визите. Традиционные модели временных рядов с трудом учитывают такое поведение, в то время как дифференцируемое программирование может напрямую моделировать эти индивидуальные решения о покупке. Это приводит к более точному пониманию спроса клиентов и жизненного цикла товаров.

Дифференцируемое программирование позволяет менеджерам цепей поставок моделировать поведение клиентов, которые регулярно посещают магазин, например, тех, кого привлекает новизна. Такой подход может помочь предсказать, насколько популярными станут новые товары и когда спрос на них снизится. В отличие от моделей временных рядов, которые используют косвенные методы моделирования этих закономерностей, дифференцируемое программирование предлагает более прямое и точное решение.

Верморель объясняет, что дифференцируемое программирование позволяет более точно моделировать поведение клиентов в точке продажи. Традиционные статистические модели с трудом включали даже базовые сведения о поведении клиентов, что делало обучение с нуля очень сложным. В то же время дифференцируемое программирование предлагает более прямой способ понять, что происходит в магазине, и может быть легко интегрировано в модели машинного обучения.

Что касается складирования, дифференцируемое программирование может помочь оптимизировать и сгладить поток товаров. Склады часто сталкиваются с проблемами пропускной способности на входе и выходе, и было бы идеально, если бы можно было вносить небольшие корректировки в расписание отгрузок, чтобы избежать столкновений поставок и сократить потребность во временном персонале. Традиционные методы оптимизации испытывали трудности с решением этой проблемы, поскольку она включала аспекты как обучения, так и оптимизации. Однако дифференцируемое программирование может справиться с огромным числом переменных, участвующих в этом процессе, что делает возможной оптимизацию отгрузки миллионов SKU и учет тонких взаимодействий.

На уровне производства дифференцируемое программирование может помочь решать сложные многоуровневые задачи. Традиционные подходы, как правило, фокусировались на отдельных звеньях цепи поставок и стремились обеспечить высокий уровень сервиса для определенных товаров. Однако Верморель утверждает, что на самом деле имеет значение то, доступны ли готовые товары для клиентов, делая многие промежуточные этапы цепи поставок несущественными. Дифференцируемое программирование позволяет более точно моделировать сложную сеть компонентов и сборок в цепи поставок, что в конечном итоге помогает лучше и своевременно обслуживать клиентов.

Кроме того, дифференцируемое программирование может помочь учитывать недостатки в производственной системе, например, проблемы контроля качества. В таких отраслях, как фармацевтика, где живые организмы участвуют в производстве современных лекарств, производственные партии могут теряться из-за биологических процессов. Дифференцируемое программирование может учитывать эти потери и помогать оптимизировать общий процесс производства.

Верморель объясняет, что фармацевтическая промышленность сталкивается с высоким уровнем неопределенности из-за специфики своих процессов. Например, если в партии культур возникает проблема, вся партия, вероятно, будет утрачена, в отличие от автомобильной промышленности, где лишь небольшая часть изделий может не пройти контроль качества. Традиционные модели машинного обучения могут испытывать трудности с таким уровнем неопределенности, поскольку у них может не быть достаточного количества релевантных исторических данных для точного прогноза результатов.

Дифференцируемое программирование предлагает альтернативу, позволяя компаниям напрямую включать свои знания отрасли в модель машинного обучения. Верморель подчеркивает, что дифференцируемое программирование не заключается в закидывании огромного количества данных в систему ИИ, а в том, чтобы извлекать максимум из разреженных и ценных данных. Например, в фармацевтической промышленности влияние истечения срока действия патента на ценообразование лекарств является хорошо известным явлением. Дифференцируемое программирование позволяет включить эти знания в модель, повышая её точность и эффективность.

Универсальность дифференцируемого программирования делает его подходящим для различных отраслей, каждая из которых имеет свои уникальные проблемы. Верморель приводит пример автомобильного вторичного рынка, где совместимость между запчастями и конкретными моделями автомобилей имеет решающее значение. Игнорирование этого аспекта в упрощенной модели может привести к неоптимальным результатам, в то время как дифференцируемое программирование помогает уловить эти ключевые бизнес-факторы.

Несмотря на сложность дифференцируемого программирования, Верморель утверждает, что бизнес не должен уклоняться от его внедрения. Хотя более простые модели могут работать, они часто достигаются за счет точности и глубокого понимания бизнеса. Дифференцируемое программирование позволяет применять более индивидуальный подход, способный решать конкретные задачи и учитывать особенности ситуации.

Дифференцируемое программирование представляет собой эволюцию программного подхода Lokad к оптимизации цепей поставок. Оно позволяет компаниям включать свои отраслевые знания в модели машинного обучения, что приводит к более рациональной работе и повышенной точности. Дифференцируемое программирование предоставляет бизнесу возможность пересмотреть существующие проблемы и разработать масштабируемые решения, которые лучше соответствуют их уникальным вызовам.

Полная расшифровка

Kieran Chandler: Сегодня мы завершаем нашу короткую серию, рассматривая подробнее некоторые потенциальные области применения и далеко идущие последствия, которые это может иметь при применении в цепочке поставок. Итак, Жоанн, какие проблемы, по вашему мнению, можно улучшить, используя дифференцируемое программирование? Начнем, пожалуй, с розничных магазинов, то есть с точки контакта с клиентами.

Joannes Vermorel: На данный момент почти все, что делается в цепочке поставок, рассматривается с точки зрения временных рядов, когда у вас есть продукт, и вы наблюдаете за продажами, спросом или обслуживанием, в зависимости от того, какой магазин вы ведете. Очевидно, что магазин в аэрокосмической отрасли — это не то же самое, что магазин быстрой моды, но суть в том, что подход заключается в анализе временного ряда для каждого продукта. Проблема этого подхода, например, заключается в том, что такие явления, как каннибализация и замещение, которые особенно характерны для товаров класса люкс, быстрой моды или даже торговли продуктами питания, очень сложно смоделировать. Во многих случаях их почти нельзя отследить. Дифференцируемое программирование дает возможность напрямую решать проблему с точки зрения клиента, говоря: “У меня есть клиентская база, которая заходит в мой магазин, имеет свои желания и потребности, и они будут выбирать или не выбирать те товары, которые им предлагаются, с учетом текущего ассортимента и наличия на складе.” Это очень интересно, потому что при использовании дифференцируемого программирования мы можем работать на уровне, который не сводится к анализу временных рядов для продуктовых позиций, представленных в магазине. Мы можем учитывать взгляд клиента, и это действительно меняет правила игры. Наш опыт с подходом временных рядов показывает, что, как правило, лучшее, что можно сделать, — это применить некий “клей” к вашим числовым моделям, чтобы они не были слишком разрушены при столкновении с проблемами каннибализации и замещения, но это далеко от идеала. В лучшем случае это всего лишь временное решение.

Kieran Chandler: Итак, давайте подытожим то, что мы обсудили в предыдущих выпусках. Какое это революционное свойство, о котором вы говорили, которое делает все это возможным?

Joannes Vermorel: Подход дифференцируемого программирования позволяет буквально смоделировать тот факт, что у клиента есть особая предрасположенность к любому товару из вашего каталога, и вы можете описать это процедурным процессом. Например, пусть есть клиенты, которые возвращаются в мой магазин, и, возможно, их привлекает новизна. Как смоделировать нечто столь простое, как то, что, раз клиент зашел в магазин, чтобы купить книгу, по определению он не купит ту же книгу при следующем визите? Он купит другой том, а не тот же самый. С классической точки зрения временных рядов практически невозможно учесть такой базовый момент, что возвращающийся клиент, заходящий в книжный магазин раз в месяц, не купит тот же товар повторно. Так, если вы видите всплеск спроса на книгу, то, скорее всего, этот спрос погасится из-за того, что если все ваши постоянные клиенты купят эту новую, популярную книгу, то при следующем визите они по определению не купят её снова. Очевидно, вы можете смоделировать это с помощью временного ряда, используя эффект жизненного цикла, когда вы вводите новый продукт, у которого в самом начале наблюдается пик, а затем спрос постепенно снижается. Но это очень косвенный способ моделирования проблемы. Более прямой подход — использовать другие

Kieran Chandler: Ваше программное обеспечение позволяет точно моделировать происходящее в магазине гораздо более прямым способом, чем это было возможно ранее. Можете объяснить, как это меняет способ использования статистических моделей в оптимизации цепей поставок?

Joannes Vermorel: С дифференцируемым программированием становится проще внедрять базовые представления о поведении клиентов в статистические модели. Это означает, что моделям не приходится начинать обучение с нуля, лишенные каких-либо бизнес-инсайтов, что ранее было сложной задачей.

Kieran Chandler: Как дифференцируемое программирование помогает в аспектах складирования в цепях поставок? Речь идет в основном о прогнозировании будущего спроса?

Joannes Vermorel: Дифференцируемое программирование также может помочь решить задачи на уровне склада, например, сгладить поток отправлений. Склады часто сталкиваются с проблемами пропускной способности на входе и выходе, и одним из решений является интеллектуальная организация отправлений для предотвращения их столкновений и снижения нагрузки на логистические платформы. Внося небольшие коррективы в график отправок, операции могут стать более плавными, простыми и дешевыми в управлении, что снижает потребность во временной рабочей силе и уменьшает сопутствующую операционную сложность.

Kieran Chandler: Было ли сложно достичь такого уровня оптимизации с использованием существующих методов?

Joannes Vermorel: Существующими методами было сложно сочетать обучение и оптимизацию. Когда у вас есть тысячи продуктов и сотни клиентов, вы сталкиваетесь с миллионами переменных для оптимизации, и традиционные методы не справляются с этой сложностью. Дифференцируемое программирование позволяет лучше оптимизировать эти ситуации, даже при множестве тонких взаимодействий, таких как необходимость отправить больше продуктов в магазин, если он близок к тому, чтобы оказаться без товара.

Kieran Chandler: У вас есть обратная связь между тем, что вы решаете, и тем, что прогнозируете, а с более традиционной точки зрения такую оптимизацию можно было бы проводить, но это было бы гораздо более трудоемко из-за необходимости проведения этапного анализа. По сути, было очень сложно учесть все обратные связи, существующие в системе. Ладно, а если мы сделаем последний шаг назад в этой цепочке поставок и посмотрим на вещи с точки зрения производства, то как дифференцируемое программирование помогает нам решать эти многоуровневые задачи?

Joannes Vermorel: Суть становится еще более острой, когда речь заходит о многоуровневой оптимизации. Большинство того, что происходит на каждом узле, в определенной степени не имеет значения, так как является артефактом. Вам не важна доступность запасов в случайных точках вашей сложной сети деталей и сборок, которые превращаются в готовую продукцию. Единственное, что действительно имеет значение в графе, — это то, обслуживаете ли вы клиента вовремя, а это имеет значение только для готовой продукции.

Что насчет всего графа зависимостей, который у вас лежит в основе? Тот факт, что на каждом промежуточном этапе происходит что-то, — этот сложный граф зависимостей, где ваша ведомость материалов создает этот граф, — принципиально не важен. Это артефакт, который имеет значение только с точки зрения того, обслуживаете ли вы своих клиентов в самом конце процесса.

Кстати, это возвращает меня к моей критике DDMRP, которую я высказывал пару недель назад. Если вы можете применить бинарную схему оценивания к этому графу и сказать, что для определенных узлов необходим высокий уровень обслуживания, то нет смысла требовать высокого уровня обслуживания для продукта, если вашим клиентам это безразлично, потому что они его не покупают. Единственное, что их волнует, — это доступность готовой продукции, которую вы продаете.

Differentiable programming помогает намного точнее моделировать то, что происходит в этой сети. Некоторые этапы могут иметь вероятностное время, а некоторые — нет. Возможно, на некоторых этапах определенная доля потока не проходит контроль качества. Конечно, если у вас идеальная цепочка поставок, контроль качества будет 100%. Таким образом, если вам нужно поставить 100 единиц, после этапа обработки у вас будет 100 готовых изделий. Но иногда есть контроль качества, и ваша производственная система несовершенна, и вы можете потерять часть объема.

Например, в фармацевтике, когда используются очень продвинутые биологические процессы, вы можете потерять партию продукции, поскольку это культура клеток для производства более сложных лекарств. Несмотря на десятилетия усилий, когда вы работаете с живыми организмами, производящими химические соединения, которые вы хотите извлечь и включить в состав лекарства, очень сложно обеспечить полностью 100% надежный процесс. Это совсем не похоже на механическую обработку в автомобильной промышленности.

Kieran Chandler: Так, является ли это примером моделирования исходов, которые не являются полностью детерминированными?

Joannes Vermorel: Да, но также имеется в виду и то, что можно получить очень конкретные инсайты относительно типов проблем, с которыми можно столкнуться. Например, в фармацевтической отрасли, если возникает проблема, скорее всего, вы потеряете всю партию культур, находящихся на заводе. Это не будет похоже на механическую обработку в автомобильной промышленности, где одна деталь из десяти тысяч не проходит контроль качества. Если вы в фарме и у вас есть культуры, производящие определенные химические соединения, вы можете потерять всю партию при возникновении проблемы.

Kieran Chandler: Это полностью меняет характер неопределенности, и вы можете попытаться извлечь это из данных, но это сложно, потому что у вас может не быть 20 лет релевантных данных. Вы как бы усложняете проблему больше, чем нужно, поскольку хотели бы выразить этот вид инсайта, физическую реальность вашего бизнеса, непосредственно в модель. Так что вероятностный подход очень хорош, но я хочу спросить: что насчет подхода, подобного дифференцируемому программированию, когда вы формулируете задачи так, чтобы напрямую направлять алгоритмы машинного обучения к конкретной неопределенности, которую вы ожидаете обнаружить, потому что знаете многое о своей сети? И это может кардинально изменить игру, ведь внезапно вам понадобится гораздо меньше данных для достижения сверхэффективности.

Joannes Vermorel: Абсолютно. Истинное достоинство заключается в идее программирования. Вы ведь не пытаетесь обучить ИИ, которому можно просто дать данные и сказать «учи»; всё здесь работает наоборот. Речь идет о том, что данные разрежены, и я хочу быть предельно точным, но мне нужно максимально использовать те данные, которые у меня есть. Это не похоже на Google, который анализирует миллиард веб-страниц; у нас нет бесконечного объема данных. Данные разрежены, они хаотичны и очень ценны, потому что у нас не так много точек данных. Поэтому нам действительно нужно максимально их использовать. Например, если мы хотим вернуться к фарме и делать очень проницательные стратегические прогнозы, здесь важен вопрос истечения срока действия патента.

Истечение срока действия патента движет фармацевтическими гигантами. У вас есть продукт, запатентованный препарат, и когда патент истекает, существует риск, что конкуренты войдут на ваш рынок с более низкой ценой и начнут с вами конкурировать, вынуждая вас снижать цены, что может значительно снизить вашу прибыль. Этот механизм истечения патентных прав совершенно очевиден для тех, кто знаком с фармацевтикой, и он на протяжении десятилетий стимулирует инновации и активность крупных фармацевтических компаний. Если вы ожидаете, что алгоритм машинного обучения сам по себе вновь откроет этот механизм истечения патента, это немного безумие. В отличие от этого, дифференцируемое программирование похоже на инструмент для специалистов по цепям поставок, который позволяет сказать: «Я знаю, что у меня есть проблема истечения патента. Но я не знаю точно, какова вероятность того, что конкуренты войдут на рынок и начнут конкурировать по цене. И я не знаю точно, как это повлияет на нас, если вдруг нам придется поставлять те же объемы, которые мы продаем, просто потому что конкуренты появились, а наши фиксированные затраты остаются прежними».

Если я сохраняю ту же производственную мощность, у меня остаются множество затрат, которые абсолютно фиксированы и не зависят от объема производства, и поэтому, если конкуренты входят на рынок, влияние на мои маржи может быть совершенно нелинейным. Так что вы правы; все дело в способности моделировать ключевые инсайты, специфичные для одной вертикали или отрасли, программно интегрируя их в модель машинного обучения.

Kieran Chandler: И проблема, с которой сталкиваются многие, заключается в том, что дифференцируемое программирование довольно сложное в некоторых аспектах. Неужели мы иногда используем кувалду для того, чтобы расколоть орех, и существуют ли более простые методы, которые мы могли бы применить?

Joannes Vermorel: Всегда можно использовать более простые методы, но я думаю, основной вопрос, который клиенты должны себе задавать, таков: если вы управляете сложной цепочкой поставок, можете ли вы действительно игнорировать сложность бизнеса, в котором работаете? Например, если вы продаете автомобильные запчасти на электронной платформе и обслуживаете автовладельцев…

Kieran Chandler: Можете ли вы действительно игнорировать проблемы, с которыми сталкиваетесь, такие как механическая совместимость между транспортными средствами и запчастями? Факт в том, что люди, приходящие на ваш сайт за автозапчастями, на самом деле не являются конечными клиентами, их клиенты — это их транспортные средства. Таким образом, транспортное средство является конечным потребителем этих запчастей, и в основе спроса лежит проблема механической совместимости. Если у вас много запчастей, являющихся идеальными заменителями, потому что они все механически совместимы с каким-либо транспортным средством, это чрезвычайно важный аспект вашего бизнеса. Я говорю, что это пример, когда нужно принять эту особенность, поскольку это действительно суть вашего бизнеса. Простой подход, который игнорирует проблему совместимости запчастей и транспортных средств, что является абсолютно критичным для автомобильного послепродажного рынка, может сработать, но ценой чрезвычайно грубого подхода с точки зрения бизнеса.

Joannes Vermorel: Я говорю, что если сравнивать с применением кувалды, то не стоит использовать модные технологии ради модных технологий. Если вы применяете что-то, что просто игнорирует ключевой бизнес-драйвер вашего бизнеса, то любая модель, которую вы создадите, окажется невероятно упрощенной, и не стоит ожидать, что изящное числовое решение или что-то подобное решит вашу бизнес-проблему, если ваш числовой рецепт с самого начала игнорирует эту бизнес-составляющую. Моя точка зрения: нужно быть настолько простыми, насколько это возможно, но не проще, чем того требует ваш бизнес.

Kieran Chandler: Если подвести итоги на сегодня, ранее в Lokad мы использовали весьма программный подход. Какое же существенное изменение дает нам дифференцируемое программирование и как компании могут адаптироваться, чтобы воспользоваться им?

Joannes Vermorel: Дифференцируемое программирование действительно является продолжением того программного подхода, который долгое время был движущей силой Lokad. Теперь этот программный подход интегрируется в самую суть нашей технологии машинного обучения. Раньше это было не просто ядром нашей Big Data платформы с механизмами обработки больших данных, а простыми фильтрацией, агрегацией и типичной предварительной обработкой, очисткой данных, и так далее. Это уже было полностью программно, но ядро машинного обучения было несколько жестким. С глубоким обучением мы стали гораздо более гибкими, чем были в предыдущем поколении, но это новый этап. Для наших клиентов, я считаю, это возможность пересмотреть многие проблемы и ситуации, в которых раньше мы использовали множество временных решений. Когда у вас нет чего-то гибкого, вы вроде как «скрепляете» проблему умными трюками, но они не так масштабируемы, как хотелось бы; они могут быть несколько грубыми и приближать бизнес-инсайт субоптимальными способами. Здесь же появляется возможность пересмотреть всё это и сделать практически то же самое, но более рационально в плане исполнения и с большей эффективностью по точности, когда ошибка измеряется в евро или долларах с бизнес-точки зрения.

Kieran Chandler: Отлично, большое спасибо за ваше время сегодня. Это всё для нашей мини-серии о дифференцируемом программировании. На следующей неделе мы вернёмся с очередным эпизодом на новую тему, а до тех пор спасибо за просмотр. До свидания.