Платформа Lokad
Содержание
В основе Lokad лежит Envision — предметно-ориентированный язык программирования. Он предназначен для экспертов по цепочкам поставок, а не для инженеров-программистов. Наша основная цель — передать оптимизацию цепочки поставок тем, кто непосредственно понимает предметную область. Устраняя посредников между бизнесом и ИТ, Lokad снижает риски таких инициатив.
Envision значительно превосходит возможности систем расширенного планирования (APS), «передовых» лишь по названию, средств бизнес-аналитики (BI) и даже специализированных инструментов прогнозирования. Кроме того, по сравнению с такими универсальными языками, как Python, Lokad позволяет создавать более безопасные приложения, которые проще сопровождать.
За пределами таблиц
Excel по-прежнему остается самым распространенным инструментом в цепях поставок. В Lokad мы признаем его сильные стороны: он прост, выразителен, нагляден и, что особенно важно, позволяет постоянно держать данные под рукой. Excel заслужил свой мировой успех, и в Envision мы много работали над тем, чтобы сохранить эти достоинства.
Однако для цепи поставок Excel не является вершиной аналитики. Его главная сила одновременно является и главной слабостью: вычислительная логика и данные неизбежно переплетаются, что порождает бесконечные проблемы по мере роста таблиц. А крупные таблицы почти неизбежны там, где компания управляет сотнями или тысячами товаров.
Эту связку логики и данных невозможно исправить внутри Excel, не разрушив то, что делает его сильным инструментом. Поэтому в Lokad мы разработали Envision — технологию, которая сохраняет ценные свойства таблиц и одновременно масштабируется до сотен миллионов заказов или SKU.
Кроме того, таблицы не подходят для некоторых специализированных, но жизненно важных расчетов в оптимизации цепочек поставок. Например, они почти не позволяют работать с вероятностными прогнозами. В результате приходится ориентироваться на средние значения, что вредит качеству решений. Точно так же у таблиц почти нет средств для оптимизации с ограничениями в условиях неопределенности. Поэтому даже такие обычные ограничения, как минимальный объем заказа (MOQ), приходится учитывать вручную.
Envision предлагает специализированные конструкции, такие как алгебра случайных величин, которые необходимы для предиктивной оптимизации цепочек поставок и полностью отсутствуют в таблицах. Приложения, созданные на Envision, также намного проще сопровождать, чем табличные модели, которые плохо справляются с усложнением задач.
Не просто изучать данные, а действовать
В цепочках поставок BI не справляется с ростом масштаба задач, но, в отличие от Excel, причина не в обработке данных: хорошие инструменты BI способны обрабатывать огромные объемы. Ежедневно генерировать миллионы чисел дешево, а вот ежедневно получать десять действительно важных чисел, которые стоит прочитать и использовать для действий, чрезвычайно трудно. При всех своих недостатках Excel позволяет решать конкретные задачи, а BI — нет.
Именно эту ориентацию на действие мы хотели сохранить в Envision. Envision предназначен для создания приложений. Например, он может формировать списки действий в порядке приоритета:
- Товары, по которым в первую очередь следует поддерживать низкую валовую маржу, чтобы оказывать давление на конкурентов
- Количества, необходимые для точного заполнения следующего контейнера
- Товары, которые нужно распродать в первую очередь, чтобы освободить склад
- Товары, которые клиенты постоянно возвращают и которые стоит убрать из ассортимента
Количественные решения, генерируемые Envision, затем можно автоматически загрузить обратно в ERP или выгрузить в таблицы. Точный охват Envision зависит от того, какие приоритеты вы устанавливаете для бизнеса.
Без своего кода не обойтись
Цепи поставок включают тысячи товаров, а часто и намного больше. Каждая цена, каждый уровень запасов, каждый ассортимент должны постоянно корректироваться. Достичь приемлемой производительности без автоматизации этих рутинных задач невозможно. Но одной автоматизации недостаточно: нужна умная автоматизация, глубоко согласованная с логикой бизнеса. Именно это и требует программируемости.
Каждый раз, когда кто-то где-то в организации создает сложную формулу в таблице, этот человек уже использует программную выразительность таблицы. Из табличного хаоса нельзя выбраться, пока у команд нет лучшего способа внедрять свои знания предметной области в системы. Envision и задуман как такая лучшая альтернатива.
За пределами Python
Во-первых, Python требует инженеров-программистов. Как и любой язык общего назначения, Python заставляет автора кода разбираться во множестве технических тонкостей. Ожидать, что один человек одновременно будет экспертом в цепочках поставок и программной инженерии, — слишком много. Возможности программирования должны быть доступны широкому кругу специалистов с технической подготовкой, а не только профессиональным разработчикам.
Во-вторых, стоимость сопровождения поспешно написанных прототипов на Python резко растет. Эти затраты необходимо сдерживать. Python неэкономно расходует вычислительные ресурсы, а оптимизация цепочек поставок — далеко не упорядоченный процесс. Для данных из множества ненадежных систем нужны надежные конвейеры; несовершенные и постоянно меняющиеся процессы необходимо документировать и моделировать; метрики оптимизации должны отражать изменения стратегии бизнеса. В Python почти нет заложенных в устройство языка гарантий корректности, которые помогли бы решать эти задачи.
Envision — наш ответ на эти задачи. Он обладает преимуществами, которых Python просто не может обеспечить:
- Эшелонированная защита, предотвращающая целые классы проблем безопасности, возникающих при использовании языков общего назначения
- Автоматическое управление производительностью, не позволяющее создавать программы, которые будут слишком медленными для практического применения в промышленной эксплуатации
- Незаметные для пользователя обновления, позволяющие идти в ногу с постоянно меняющимися передовыми технологиями: улучшения обычно внедряются путем автоматического переписывания кода в фоновом режиме
- Готовый программный стек, избавляющий от необходимости собирать десятки компонентов даже для простейшего приложения
Python — отличный язык, но, в отличие от Envision, он не решает должным образом задачу оптимизации цепочек поставок. Создать и сопровождать готовое к промышленной эксплуатации приложение машинного обучения на Python возможно, но дорого. Без целой команды инженеров-программистов, полностью занятой этой задачей, оно не будет работать в промышленной эксплуатации.