«Ашан Ритейл Россия» — российское подразделение Auchan Retail (входит в Auchan Holding). «Ашан Ритейл Россия» — крупная торговая сеть, работающая на российском рынке с 2002 года. На сегодняшний день открыто 260 магазинов трех форматов: гипермаркеты, суперсторы и супермаркеты. В компании работает 35 000 человек.
Ритейл становится все технологичнее, ритейлерам важно быстро принимать точные решения, чтобы быть конкурентоспособными. Поэтому одним из глобальных трендов стало внедрение прогнозных и рекомендательных систем на основе Machine Learning.
Наше подразделение Big Data занимается целым рядом задач, которые напрямую влияют на ключевые показатели эффективности бизнеса: это решения в области прогнозирования спроса на различные товары и определения оптимальной цены (так называемая эластичность спроса), сегментации клиентов, повышения лояльности и другие.
В рамках стратегии цифровой трансформации компании команда Big Data и бизнес-эксперты разработали алгоритмы машинного обучения. Их промышленное внедрение помогло бы нам повысить как долю рынка, так и эффективность бизнеса.
Одним из основных препятствий, мешающих развернуть AI-решения, было отсутствие современной инфраструктуры и технологий для работы с большими данными. Наиболее яркий пример — наш алгоритм прогнозирования спроса, который позволяет планировать закупки, сокращать издержки и количество нереализованных остатков на складах. Да, он дает точность прогноза на 20-25% выше, чем существовавшие до этого алгоритмы, но используемые на тот момент базы данных и системы не могли работать с технологиями Big Data (Python, Spark).
Поэтому все обучение шло на рабочих компьютерах Data Scientists. Для витрин данных использовали on-premise базу данных Oracle Exadata, которая также служила OLTP-базой для обеспечения работы бизнеса. Мощности рабочих станций хватило для пилотного проекта, но было понятно, что для промышленной эксплуатации нужны другие ресурсы: нельзя было масштабироваться, в частности, из-за невозможности параллельной обработки данных, кроме того, работу нужно было автоматизировать, а не делать все вручную.
Также аналитические проекты на Oracle Exadata влияли на производительность базы и стабильность основных процессов. Это не устраивало нас и бизнес, в том числе поэтому надо было вынести задачи, связанные с аналитикой, в отдельный контур.
Решить все эти проблемы могла бы единая Big Data-платформа для тестирования и тренировки моделей машинного обучения, ad-hoc отчетов и исследований, которая позволила бы:
Сначала мы решили определиться с тем, какие технологии нужны, чтобы Big Data Platform соответствовала всем вышеуказанным целям. Для этого мы составили список AI-продуктов, которые нужны нашей компании в ближайшие два года.
Также мы решили, что архитектура платформы должна отвечать следующим требованиям:
Для каждого AI-продукта мы выбрали технологии реализации и сделали предварительную оценку требуемых ресурсов: диски, RAM, CPU, сеть. В список технологий вошли современные инструменты для работы с ML: Hadoop, Spark, Kubernetes и другие. После этого мы стали определяться с тем, где разместить платформу: на своих мощностях или в облаке.
У каждого варианта есть свои плюсы и минусы, самый волнующий для всех — это затраты. Мы посчитали, что затраты на построение платформы в облаке в первые два года будут существенно ниже, чем при ее развертывании на собственных мощностях, что благотворно скажется на ROI от инвестиций в инфраструктуру Big Data.
При этом, по нашим оценкам, на горизонте пяти лет затраты на развертывание и поддержку платформы накопительным итогом равны между собой.
Также облачную инфраструктуру легко масштабировать — можно быстро получить нужные ресурсы для поддержки наших ML-решений. Еще в облаке доступны многие необходимые нам технологии в готовом виде — как aaS.
Мы поняли, что для построения единой облачной платформы для ML-экспериментов, Data Science и аналитики необходим надежный провайдер, который соответствовал бы нашим требованиям и предлагал все нужные технологии.
При выборе облачных провайдеров для пилотного проекта ориентировались на несколько параметров.
Также смотрели на успешность пилота, который был сложным: нужно было уложиться в определенный временной интервал, создать определенное число моделей, загрузить их, чтобы они были доступны, развернуть инфраструктуру, показать, что она работает.
Облачная платформа VK Cloud соответствовала всем требованиям, а еще здесь хорошая техподдержка, которая помогала оперативно решать все вопросы, поэтому выбор остановили на этой платформе.
Миграция и развертывание компонентов платформы прошли без проблем. Исторические данные на новую Big Data-платформу наши дата-инженеры переносили самостоятельно, у них большие компетенции в работе с Hadoop. Использовали такие инструменты, как Talend и Apache Sqoop, который входит в состав сборки Hadoop от VK Cloud. Sqoop предназначен для транспортировки в Hadoop данных из классических реляционных баз, таких как Oracle, MySQL и PostgreSQL. Также настраивали Check Point для организации VPN.
Для реализации Big Data-платформы используем следующие облачные сервисы:
Мы использовали лучшие практики для реализации архитектуры Big Data-платформы. На текущий момент на платформе не только ведется разработка AI-продуктов, но и уже развернуты два решения искусственного интеллекта и лаборатории данных.
С учетом небольших корректировок по итогам шести месяцев работы Auchan Big Data Platform выглядит так:
Здесь есть внутренние и внешние источники, из которых мы загружаем данные в Hadoop. Для загрузки данных из источников используем Sqoop, Talend, а также Kafka для загрузки данных в режиме реального времени или близком к нему.
Далее обрабатываем данные с помощью Spark (он работает на тех же виртуальных машинах), строим витрины данных для аналитиков. Витрины данных и детальные данные, которые часто используются, передаются в ClickHouse, которая может быстро отдавать результаты.
Пока Spark работает поверх Hadoop, но с ростом числа ML-моделей планируем поднять отдельный кластер Spark, где будут развернуты алгоритмы, и запускать его из Kubernetes. В Hadoop загружаем исторические данные с глубиной в несколько лет, причем только те, что необходимы для наших ML-решений. Общий объем данных уже превысил 120 Тб, то есть через платформу проходит большой объем данных.
Далее планируем для ad-hoc запросов и построения тяжелых витрин, объединяющих несколько источников, передавать данные в Arenadata DB Cloud. Эта СУБД на основе Greenplum позволяет объединять большие объемы разных данных и строить массивные таблицы, например, миллиард строк продаж объединить с миллионами клиентов — получается десятки миллиардов строк пересечений. В Hadoop это делать долго, в ClickHouse почти невозможно.
Arenadata DB Cloud позволит организовать лабораторию данных для различных департаментов нашей компании: логистики, коммерческой дирекции, маркетинга. У них будет возможность проводить исследования, использовать ad-hoc аналитику, ad-hoc репортинг.
Также в будущем предполагается использовать Kubernetes для построения ETL-потоков и тренировки моделей машинного обучения. Kubernetes в реализации VK Cloud подходит для тестирования ML-моделей, так как позволяет использовать нужное количество ресурсов с минимальными затратами. Если обучать за раз десятки тысяч моделей, для этого нужно много ресурсов. Но происходит такое обучение не постоянно, условно — раз в сутки. Держать для постоянного использования необходимые сотни серверов невыгодно. Kubernetes с помощью функции автоскейлинга кластеров позволяет использовать ресурсы для обучения моделей, когда они нужны, а потом возвращать обратно.
Кроме того, в облаке развернут Airflow — оркестратор, позволяющий выстраивать сложные цепочки взаимозависимых процессов, следующих друг за другом, и GitLab для поддержки процессов CI/CD.
Решение реализовано в закрытом контуре внутри облака, установлен криптошлюз + МЭ Check Point для организации VPN, чтобы не было никаких утечек и никто не мог зайти просто так из внешнего интернета.
СУБД Oracle Exadata подразделением Big Data больше не используется, с нее сняли OLAP-нагрузку, она осталась для OLTP.
Облачная Big Data Platform удовлетворяет всем нашим требованиям. Она дает возможность обрабатывать аналитические запросы любой сложности, строить любые прогнозные модели. Кластерные технологии и возможность параллельных вычислений позволяют масштабировать наши ML-решения в любом объеме. Когда мы начнем использовать Kubernetes, это придаст инфраструктуре дополнительную гибкость, мы сможем быстро разворачивать и сворачивать вычислительные ресурсы, снизится стоимость владения.
Мы ожидаем от масштабирования ML-решения для прогнозирования спроса на другие точки сокращения излишних запасов в магазинах на 5% и увеличения продаж на 2%. В рамках всего бизнеса это колоссальный эффект.
Сейчас на единой облачной платформе мы можем использовать ИИ и машинное обучение, тестировать гипотезы с помощью аналитических методов, формировать ad-hoc отчеты. На одной платформе размещены лаборатория данных, разработка и развертывание ML-решений. Различные компоненты поддерживают разные функции и направления в рамках платформы, их можно добавлять и убирать, собирать как аналитический конструктор.
Планируем расширять сотрудничество с VK Cloud и развивать Big Data-платформу, дополнить ее новыми компонентами и сервисами, разрабатывать и внедрять ML-алгоритмы в облачной инфраструктуре.