Це гостьовий пост, написаний Axfood AB.
У цій публікації ми розповідаємо про те, як Axfood, великий шведський роздрібний продавець продуктів харчування, покращив роботу та масштабованість своїх існуючих операцій штучного інтелекту (AI) і машинного навчання (ML), створивши прототип у тісній співпраці з експертами AWS і використовуючи Amazon SageMaker.
Axfood є другим за величиною роздрібним продавцем продовольчих товарів у Швеції з понад 13,000 300 співробітників і понад XNUMX магазинами. Axfood має структуру з декількома децентралізованими групами обробки даних із різними сферами відповідальності. Разом із командою центральної платформи обробки даних групи наукових спеціалістів привносять в організацію інновації та цифрову трансформацію за допомогою рішень штучного інтелекту та машинного навчання. Компанія Axfood використовує Amazon SageMaker, щоб обробляти свої дані за допомогою ML, і вже багато років випускає моделі. Останнім часом рівень витонченості та величезна кількість моделей у виробництві зростає в геометричній прогресії. Однак, незважаючи на високий темп інновацій, різні команди розробили власні способи роботи та шукали нову найкращу практику MLOps.
Наш виклик
Щоб залишатися конкурентоспроможними з точки зору хмарних сервісів і AI/ML, Axfood обрав партнерство з AWS і співпрацює з ними протягом багатьох років.
Під час одного з наших регулярних сеансів мозкового штурму з AWS ми обговорювали, як найкраще співпрацювати між командами, щоб прискорити інновації та ефективність наукових спеціалістів з даних і ML. Ми вирішили докласти спільних зусиль, щоб створити прототип на основі найкращої практики MLOps. Мета прототипу полягала в тому, щоб створити шаблон моделі для всіх команд з обробки даних для створення масштабованих і ефективних моделей машинного навчання — основи для нового покоління платформ ШІ та машинного навчання для Axfood. Шаблон має поєднувати та поєднувати найкращі практики від експертів AWS ML і моделі найкращих практик для конкретної компанії — найкраще з обох світів.
Ми вирішили створити прототип на основі однієї з найбільш розроблених на даний момент моделей машинного навчання в Axfood: прогнозування продажів в магазинах. Зокрема, прогноз щодо фруктів і овочів майбутніх кампаній для роздрібних магазинів продовольчих товарів. Точне щоденне прогнозування підтримує процес замовлення в магазинах, підвищуючи стабільність за рахунок мінімізації харчових відходів у результаті оптимізації продажів шляхом точного прогнозування необхідного рівня запасів у магазинах. Це було ідеальне місце для початку для нашого прототипу — Axfood не тільки отримає нову платформу AI/ML, але ми також отримаємо можливість порівняти наші можливості ML і повчитися у провідних експертів AWS.
Наше рішення: новий шаблон ML на Amazon SageMaker Studio
Створення повного конвеєра машинного навчання, розробленого для реального бізнес-кейсу, може бути складним завданням. У цьому випадку ми розробляємо модель прогнозування, тому потрібно виконати два основні кроки:
- Навчіть модель робити прогнози з використанням історичних даних.
- Застосуйте навчену модель, щоб спрогнозувати майбутні події.
У випадку з Axfood добре функціонуючий конвеєр для цієї мети вже був створений за допомогою ноутбуків SageMaker і організований сторонньою платформою керування робочим процесом Airflow. Проте є багато очевидних переваг модернізації нашої платформи машинного навчання та переходу до неї Студія Amazon SageMaker та Трубопроводи Amazon SageMaker. Перехід до SageMaker Studio надає багато попередньо визначених функцій:
- Моніторинг моделі та якості даних, а також пояснення моделі
- Вбудовані засоби інтегрованого середовища розробки (IDE), такі як налагодження
- Моніторинг вартості/результативності
- Структура прийняття моделі
- Модельний реєстр
Однак найважливішим стимулом для Axfood є можливість створювати власні шаблони проектів за допомогою Проекти Amazon SageMaker для використання в якості плану для всіх команд з обробки даних і практиків ML. Команда Axfood вже мала надійний і зрілий рівень моделювання машинного навчання, тому основна увага була приділена створенню нової архітектури.
Огляд рішення
Запропонована Axfood нова структура машинного навчання побудована навколо двох основних конвеєрів: конвеєр побудови моделі та конвеєр пакетного висновку:
- Ці конвеєри керуються версіями в двох окремих сховищах Git: одному сховищі збірки та одному репозиторію розгортання (виведення). Разом вони утворюють надійний конвеєр для прогнозування фруктів і овочів.
- Конвеєри упаковані в спеціальний шаблон проекту за допомогою SageMaker Projects в інтеграції зі стороннім репозиторієм Git (Bitbucket) і конвеєрами Bitbucket для безперервної інтеграції та компонентів безперервного розгортання (CI/CD).
- Шаблон проекту SageMaker містить початковий код, що відповідає кожному етапу конвеєрів побудови та розгортання (ми докладніше обговорюємо ці кроки далі в цій публікації), а також визначення конвеєра — рецепт того, як слід виконувати кроки.
- Налагоджено автоматизацію побудови нових проектів на основі шаблону Каталог послуг AWS, де створюється портфоліо, що служить абстракцією для кількох продуктів.
- Кожен продукт перетворюється на AWS CloudFormation шаблон, який розгортається, коли фахівець із обробки даних створює новий проект SageMaker на основі нашого плану MLOps. Це активує an AWS Lambda функція, яка створює проект Bitbucket із двома репозиторіями — створення моделі та розгортання моделі, — що містить вихідний код.
Наведена нижче схема ілюструє архітектуру рішення. Робочий процес A зображує складний потік між двома конвеєрами моделі — побудовою та висновком. Робочий процес B показує процес створення нового проекту ML.
Конвеєр побудови моделі
Конвеєр побудови моделі керує життєвим циклом моделі, починаючи з попередньої обробки, просуваючись через навчання та закінчуючи реєстрацією в реєстрі моделі:
- Попередня обробка – Ось, SageMaker
ScriptProcessor
клас використовується для розробки функцій, у результаті чого буде створено набір даних, на якому навчатиметься модель. - Навчання та пакетне перетворення – Спеціальні контейнери навчання та висновків від SageMaker використовуються для навчання моделі на історичних даних і створення прогнозів на основі даних оцінки за допомогою оцінювача SageMaker і трансформатора для відповідних завдань.
- Оцінка – Навчена модель проходить оцінку шляхом порівняння згенерованих прогнозів на даних оцінки з основною правдою за допомогою
ScriptProcessor
. - Базові роботи – Конвеєр створює базові лінії на основі статистики у вхідних даних. Вони важливі для моніторингу даних і якості моделі, а також для приписування функцій.
- Модельний реєстр – Навчена модель зареєстрована для майбутнього використання. Модель буде схвалено призначеними спеціалістами з обробки даних для розгортання моделі для використання у виробництві.
У виробничих середовищах надходження даних і механізми запуску керуються за допомогою первинної оркестровки Airflow. Тим часом під час розробки конвеєр активується кожного разу, коли в репозиторій Bitbucket збірки моделі вводиться новий комміт. На наступному малюнку зображено конвеєр побудови моделі.
Конвеєр пакетного висновку
Конвеєр пакетного висновку обробляє фазу висновку, яка складається з таких кроків:
- Попередня обробка – Дані попередньо обробляються за допомогою
ScriptProcessor
. - Пакетне перетворення – Модель використовує спеціальний контейнер висновків із SageMaker Transformer і генерує прогнози на основі вхідних попередньо оброблених даних. Використана модель є останньою схваленою навченою моделлю в реєстрі моделей.
- Подальша обробка – Прогнози проходять серію етапів постобробки за допомогою
ScriptProcessor
. - Моніторинг – Безперервне спостереження завершує перевірки на дрейфи, пов’язані з якістю даних, якістю моделі та атрибуцією функцій.
Якщо виникають розбіжності, бізнес-логіка в сценарії постобробки оцінює, чи потрібне перенавчання моделі. Трубопровід планується запускати з регулярними інтервалами.
На наступній діаграмі показано конвеєр пакетного висновку. Робочий процес A відповідає попередній обробці, перевірці якості даних і атрибуції ознак, висновку та постобробці. Робочий процес B відповідає перевірці дрейфу якості моделі. Ці конвеєри розділені, оскільки перевірка дрейфу якості моделі запускатиметься лише за наявності нових наземних даних.
Монітор моделі SageMaker
з Монітор моделі Amazon SageMaker інтегровані, конвеєри отримують вигоду від моніторингу в режимі реального часу на наступне:
- Якість даних – Відстежує будь-який дрейф або невідповідність даних
- Якість моделі – Стежить за будь-якими коливаннями продуктивності моделі
- Атрибуція ознак – Перевіряє дрейф у атрибутах функцій
Моніторинг якості моделі потребує доступу до наземних правдивих даних. Незважаючи на те, що інколи буває складно отримати фактичну інформацію, використання даних або моніторингу дрейфу атрибуції функцій служить компетентним показником якості моделі.
Зокрема, у разі зміни якості даних система звертає увагу на наступне:
- Концепція дрейфу – Це стосується змін у співвідношенні між входом і виходом, що вимагає базової правди
- Коваріативний зсув – Тут акцент робиться на змінах у розподілі незалежних вхідних змінних
Функція дрейфу даних SageMaker Model Monitor ретельно фіксує та перевіряє вхідні дані, розгортаючи правила та статистичні перевірки. Щоразу, коли виявляються аномалії, надсилаються сповіщення.
Паралельно з використанням перевірки дрейфу якості даних як проксі для моніторингу погіршення моделі, система також відстежує дрейф атрибуції ознак за допомогою нормалізованого дисконтованого сукупного приросту (NDCG). Ця оцінка чутлива як до змін у порядку ранжирування ознак, так і до необроблених оцінок атрибуції функцій. Відстежуючи дрейф у атрибуції для окремих ознак і їх відносну важливість, можна легко помітити погіршення якості моделі.
Пояснення моделі
Пояснюваність моделі є ключовою частиною розгортання ML, оскільки вона забезпечує прозорість прогнозів. Для детального розуміння використовуємо Роз'яснити Amazon SageMaker.
Він пропонує як глобальні, так і локальні модельні пояснення за допомогою моделі-агностичної техніки атрибуції ознак, заснованої на концепції цінності Шеплі. Це використовується для декодування того, чому під час логічного висновку було зроблено певний прогноз. Такі пояснення, які за своєю суттю є контрастними, можуть відрізнятися залежно від різних вихідних даних. SageMaker Clarify допомагає визначити цю базову лінію за допомогою K-середніх або K-прототипів у вхідному наборі даних, який потім додається до конвеєра побудови моделі. Ця функція дає нам змогу створювати генеративні додатки штучного інтелекту в майбутньому для кращого розуміння того, як працює модель.
Індустріалізація: від прототипу до виробництва
Проект MLOps включає високий ступінь автоматизації та може слугувати схемою для подібних випадків використання:
- Інфраструктуру можна повністю використовувати повторно, тоді як вихідний код можна адаптувати для кожного завдання, причому більшість змін обмежується визначенням конвеєра та бізнес-логікою для попередньої обробки, навчання, висновків і постобробки.
- Сценарії навчання та висновків розміщуються за допомогою користувацьких контейнерів SageMaker, тому різноманітні моделі можуть бути розміщені без змін у даних і етапах моніторингу моделі чи пояснюваності моделі, якщо дані мають табличний формат.
Після завершення роботи над прототипом ми звернулися до того, як використовувати його у виробництві. Для цього ми відчули потребу внести деякі додаткові зміни в шаблон MLOps:
- Оригінальний початковий код, використаний у прототипі для шаблону, включав етапи попередньої та постобробки, які виконуються до та після основних кроків ML (навчання та висновок). Однак під час масштабування для використання шаблону для кількох варіантів використання у виробництві вбудовані етапи попередньої та постобробки можуть призвести до зниження загальності та відтворення коду.
- Щоб підвищити загальність і звести до мінімуму повторюваний код, ми вирішили ще більше скоротити конвеєри. Замість виконання етапів попередньої та постобробки як частини конвеєра ML, ми запускаємо їх як частину первинної оркестровки повітряного потоку до та після запуску конвеєра ML.
- Таким чином, завдання обробки, пов’язані з конкретними випадками використання, абстрагуються від шаблону, і залишається основний конвеєр ML, який виконує загальні завдання для багатьох випадків використання з мінімальним повторенням коду. Параметри, які відрізняються в різних варіантах використання, надаються як вхідні дані в конвеєр ML від основної оркестровки Airflow.
Результат: швидкий і ефективний підхід до створення та розгортання моделі
Прототип у співпраці з AWS призвів до створення шаблону MLOps відповідно до поточних найкращих практик, який тепер доступний для використання всіма групами Axfood з обробки даних. Створивши новий проект SageMaker у SageMaker Studio, спеціалісти з обробки даних можуть швидко розпочати роботу над новими проектами ML і плавно перейти до виробництва, забезпечуючи більш ефективне управління часом. Це стало можливим завдяки автоматизації нудних, повторюваних завдань MLOps як частини шаблону.
Крім того, кілька нових функціональних можливостей було автоматично додано до наших налаштувань ML. Ці переваги включають:
- Моніторинг моделі – Ми можемо виконувати дрейфові перевірки моделі та якості даних, а також пояснюваності моделі
- Модель і походження даних – Тепер можна точно відстежити, які дані використовувалися для якої моделі
- Модельний реєстр – Це допомагає нам каталогізувати моделі для виробництва та керувати версіями моделей
Висновок
У цьому дописі ми обговорили, як Axfood покращив роботу та масштабованість наших існуючих операцій штучного інтелекту та машинного навчання у співпраці з експертами AWS і за допомогою SageMaker і пов’язаних з ним продуктів.
Ці вдосконалення допоможуть командам Axfood з вивчення даних створювати робочі процеси МЛ у більш стандартизований спосіб і значно спростять аналіз і моніторинг моделей у виробництві, забезпечуючи якість моделей МЛ, створених і підтримуваних нашими командами.
Залиште будь-які відгуки чи запитання в розділі коментарів.
Про авторів
Доктор Бйорн Блумквіст є керівником стратегії ШІ в Axfood AB. До того, як приєднатися до Axfood AB, він очолював команду спеціалістів з обробки даних у Dagab, що входить до складу Axfood, створюючи інноваційні рішення для машинного навчання з місією забезпечувати якісне та екологічно чисте харчування людям по всій Швеції. Народився та виріс на півночі Швеції, у вільний час Бйорн відвідує засніжені гори та відкрите море.
Оскар Кланг є старшим спеціалістом із обробки даних у відділі аналітики компанії Dagab, де йому подобається працювати з аналітикою та машинним навчанням, наприклад оптимізувати операції ланцюга поставок, створювати моделі прогнозування та, віднедавна, програми GenAI. Він прагне створювати більш оптимізовані конвеєри машинного навчання, підвищуючи ефективність і масштабованість.
Павло Маслов є старшим інженером DevOps та ML у команді Analytic Platforms. Павло має великий досвід у розробці фреймворків, інфраструктури та інструментів у сферах DevOps та ML/AI на платформі AWS. Павло був одним із ключових гравців у розбудові базових можливостей ML в Axfood.
Йоакім Берг є керівником команди та власником аналітичних платформ із Стокгольма, Швеція. Він очолює команду інженерів Data Platform і DevOps/MLOps, що надають платформи Data та ML для команд Data Science. Йоакім має багаторічний досвід керівництва командами старших розробників та архітектури з різних галузей.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/how-axfood-enables-accelerated-machine-learning-throughout-the-organization-using-amazon-sagemaker/
- : має
- :є
- :де
- $UP
- 000
- 100
- 118
- 13
- 130
- 300
- 7
- a
- здатність
- абстрагований
- абстракція
- прискорений
- прийняття
- доступ
- точний
- точно
- через
- фактичний
- доданий
- Додатковий
- коректування
- після
- AI
- Стратегія ШІ
- AI / ML
- посібник
- мета
- Alerts
- ВСІ
- Дозволити
- вже
- Також
- зміни
- хоча
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- аналіз
- Аналітичний
- аналітика
- та
- аномалії
- будь-який
- застосування
- підхід
- затверджений
- архітектура
- ЕСТЬ
- області
- виникати
- навколо
- штучний
- штучний інтелект
- Штучний інтелект (AI)
- AS
- оцінює
- At
- Автоматизований
- автоматизація
- Автоматизація
- доступний
- AWS
- заснований
- Базова лінія
- BE
- оскільки
- було
- перед тим
- початок
- буття
- еталонний тест
- користь
- Переваги
- КРАЩЕ
- передового досвіду
- між
- план
- народжений
- обидва
- BRIDGE
- приносити
- будувати
- Створюємо
- побудований
- вбудований
- бізнес
- але
- by
- Кампанії
- CAN
- Може отримати
- можливості
- можливості
- захвати
- випадок
- випадків
- каталог
- центральний
- ланцюг
- складні
- шанс
- Зміни
- перевірка
- Перевірки
- вибрав
- клас
- ясно
- близько
- хмара
- хмарні сервіси
- код
- співпрацювати
- співробітництво
- співробітництво
- об'єднувати
- коментарі
- commit
- вчинено
- порівняння
- компетентний
- конкурентоспроможний
- повний
- Завершує
- Компоненти
- концепція
- складається
- Контейнер
- Контейнери
- безперервний
- Core
- Кореляція
- Відповідний
- відповідає
- створювати
- створений
- створює
- створення
- кульмінацією
- Культивувати
- Поточний
- В даний час
- виготовлений на замовлення
- щодня
- дані
- Платформа даних
- наука про дані
- вчений даних
- Децентралізований
- вирішене
- знизився
- визначення
- Ступінь
- відділ
- розгортання
- розгорнути
- розгортання
- розгортання
- розгортання
- призначені
- призначений
- деталь
- докладно
- виявлено
- визначення
- розвиненою
- розвивається
- розробка
- схема
- відрізняються
- різний
- цифровий
- цифрове перетворення
- зі знижкою
- обговорювати
- обговорювалися
- обговорення
- розподіл
- розділений
- do
- домени
- вниз
- під час
- e
- кожен
- ефективність
- ефективний
- зусилля
- акцент
- працевлаштований
- співробітників
- дозволяє
- кінець
- інженер
- Машинобудування
- Інженери
- підвищення
- гарантує
- повністю
- Навколишнє середовище
- середовищах
- істотний
- оцінка
- Навіть
- Події
- все
- точно
- існуючий
- досвід
- experts
- пояснення
- експоненціально
- обширний
- Великий досвід
- мода
- особливість
- риси
- зворотний зв'язок
- помилка
- Рисунок
- потік
- коливання
- Сфокусувати
- після
- харчування
- для
- Прогноз
- форма
- формат
- фонд
- фундаментальні
- Рамки
- каркаси
- від
- Фрукти
- Повний
- функція
- функціональні можливості
- функціональність
- далі
- майбутнє
- Отримувати
- прибуток
- genai
- Загальне
- генерується
- генерує
- покоління
- генеративний
- Генеративний ШІ
- отримати
- Git
- даний
- Глобальний
- добре
- значно
- Земля
- гість
- Guest Post
- було
- Ручки
- запряжений
- Мати
- he
- голова
- допомога
- допомагає
- тут
- Високий
- його
- історичний
- відбувся
- Як
- How To
- Однак
- HTML
- HTTP
- HTTPS
- if
- ілюструє
- значення
- важливо
- удосконалювати
- поліпшений
- поліпшення
- in
- про запас
- Стимул
- включати
- включені
- includes
- невідповідності
- Augmenter
- збільшений
- зростаючий
- незалежний
- індивідуальний
- промисловості
- Інфраструктура
- за своєю суттю
- інновація
- інноваційний
- вхід
- замість
- інтегрований
- інтеграція
- Інтелект
- в
- складний
- введені
- IT
- ЙОГО
- приєднання
- спільна
- JPG
- ключ
- великий
- найбільших
- пізніше
- останній
- вести
- провідний
- УЧИТЬСЯ
- вивчення
- Залишати
- Led
- залишити
- рівень
- рівні
- Життєвий цикл
- обмеженою
- місцевий
- логіка
- Довго
- машина
- навчання за допомогою машини
- made
- головний
- підтримується
- зробити
- управляти
- вдалося
- управління
- багато
- зрілий
- Може..
- Між тим
- механізми
- прискіпливо
- мінімальний
- мінімізувати
- мінімізація
- Місія
- ML
- MLOps
- модель
- моделювання
- Моделі
- модернізація
- моніторинг
- монітори
- більше
- більш ефективний
- найбільш
- переміщення
- множинний
- необхідно
- Необхідність
- необхідний
- Нові
- На північ
- зараз
- номер
- отримання
- of
- Пропозиції
- on
- ONE
- тільки
- відкрити
- операції
- оптимізуючий
- or
- організував
- оркестровка
- порядок
- організація
- оригінал
- наші
- з
- вихід
- над
- власний
- власник
- алюр
- упаковані
- Паралельні
- параметри
- частина
- приватність
- партнер
- Люди
- ідеальний
- ідеальне місце
- Виконувати
- виконанні
- фаза
- трубопровід
- основний
- місце
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- гравці
- портфель
- це можливо
- пошта
- практика
- практики
- заздалегідь визначений
- прогнозування
- прогноз
- Прогнози
- первинний
- процес
- обробка
- Product
- Production
- Продукти
- проект
- проектів
- запропонований
- прототип
- макетування
- забезпечувати
- забезпечує
- забезпечення
- повноваження
- мета
- put
- якість
- питань
- швидко
- піднятий
- Ранжування
- швидко
- Сировина
- реального часу
- нещодавно
- рецепт
- повторювані
- зареєстрований
- реєстру
- регулярний
- пов'язаний
- відносний
- повторювані
- Сховище
- відтворення
- Вимагається
- ті
- відповідальність
- результат
- в результаті
- роздрібна торгівля
- роздрібний продавець
- міцний
- надійний трубопровід
- Правила
- прогін
- біг
- мудрець
- продажів
- масштабованість
- масштабовані
- Масштабування
- плановий
- наука
- вчений
- Вчені
- рахунок
- сценарій
- scripts
- плавно
- Пошук
- другий
- розділ
- насіння
- старший
- чутливий
- окремий
- Серія
- служити
- служить
- обслуговування
- Послуги
- виступаючої
- сесіях
- комплект
- установка
- кілька
- Поділитись
- зсув
- Повинен
- Шоу
- аналогічний
- спростити
- So
- рішення
- Рішення
- деякі
- витонченість
- конкретно
- Spot
- старт
- почалася
- статистичний
- статистика
- залишатися
- Крок
- заходи
- акції
- магазинів
- просто
- Стратегія
- обтічний
- структура
- структурований
- студія
- такі
- поставляється
- поставка
- ланцюжка поставок
- Опори
- спостереження
- Sustainability
- сталого
- Швеція
- шведську мову
- система
- Завдання
- завдання
- команда
- команди
- техніка
- нудний
- шаблон
- Шаблони
- terms
- ніж
- Що
- Команда
- Майбутнє
- їх
- Їх
- потім
- Там.
- Ці
- вони
- третя сторона
- це
- хоча?
- через
- по всьому
- час
- times
- до
- разом
- інструменти
- Трасування
- поїзд
- навчений
- Навчання
- Перетворення
- Перетворення
- трансформатор
- перехід
- прозорість
- викликати
- спрацьовування
- Правда
- Опинився
- два
- пройти
- зазнає
- розуміння
- Майбутні
- us
- використання
- використовуваний
- використовує
- використання
- значення
- різноманітність
- змінюватися
- Овочі
- Підприємства
- через
- було
- Відходи
- годинник
- шлях..
- способи
- we
- Web
- веб-сервіси
- ДОБРЕ
- були
- Що
- Що таке
- коли
- коли б ні
- в той час як
- Чи
- який
- чому
- волі
- з
- в
- без
- Work
- робочий
- Робочі процеси
- робочий
- працює
- світі
- б
- письмовий
- років
- зефірнет