Predikce zásob pomocí AI

1. Zadání & úvod do projektu

„Správné plánování zásob je problém, který řeší nejen velké firmy, ale i menší a střední podniky napříč obory. A právě jim dnes AI otevírá úplně nové možnosti.“

Po třech letech intenzivního studia AI jsem se rozhodl pustit do vlastního projektu: aplikace Deep Learningu pro predikci skladových zásob.

Proč právě toto téma? Oslovil mě známý s otázkou, zda by umělá inteligence mohla vyřešit problém s plánováním skladových zásob ve velkoobchodu.
Ukázalo se, že správa zásob je nikdy nekončící úkol – je těžké najít rovnováhu mezi přezásobením a rizikem, že zboží dojde v ten nejméně vhodný okamžik. Navíc vstupuje do hry řada proměnných, které se v čase mění.

Jak číst tuto sérii

Cílem této série je přiblížit svět predikce skladových zásob lidem z businessu – tedy těm, kteří skutečně řeší každodenní provoz a plánování zásob, a zároveň chtějí vědět, jak jim může AI a moderní data pomoci v praxi. Nebudu se zde pouštět do technických detailů, budu se soustředit na konkrétní situace a problémy, které tato problematika obnáší.

Vždy představím reálný problém, ukážu jsem ho řešil, a vše doložím na konkrétním příkladu nebo grafu – aby si každý mohl udělat jasnou představu, co AI v logistice (ne)umí a proč.

Mým cílem je, aby si v sérii našli své jak manažeři, kteří chtějí vědět, jak AI může pomoci v byznysu, tak i analytici, kteří se chtějí dozvědět, jak konkrétní rozhodnutí a zpracování dat ovlivňuje výsledky predikcí v praxi.

Veškerá data vycházejí z reálných projektů, jsou ale anonymizovaná. Série bude vycházet postupně, jak budu mít nové poznatky a zajímavé příklady z praxe.

Popis problému

  • Nízké desítky tisíc různých SKU
  • Rozdělení podle sezónnosti, kategorie, druhu i segmentu
  • Každý měsíc vznikají i zanikají desítky položek
  • Slevové akce 
  • Skladové zásoby se predikují ručně, v kompetenci nákupčích

Definice cíle

Najít mechanismus, který bude:

  • Sledovat aktuální skladové zásoby
  • Predikovat budoucí prodeje
  • Zohledňovat další parametry: dodací lhůty (lead time), spolehlivost dodávek, promo akce, apod.
  • Doporučovat kolik zboží objednat a nastavovat min/max zásoby automatizovaně

 

Prodejní obraty pro různé produkty (SKU): Každá linie představuje vývoj prodejů konkrétního produktu v období 24 měsíců. Je dobře vidět, že jednotlivé položky se liší jak objemem prodejů, tak sezonními výkyvy a obdobími bez prodeje. Tyto rozdíly v chování produktů ilustrují, proč je predikce skladových zásob tak náročná – a proč vyžaduje mnohem sofistikovanější přístup než jednoduchý průměr či extrapolace minulých výsledků.


Zadání projektu

Abychom tento cíl mohli naplnit, bylo nutné jasně stanovit, jaké konkrétní požadavky, omezení a rizika bude projekt zahrnovat.

  • Automaticky nastaví každý měsíc doporučené min/max zásoby pro každou položku
  • Bude zohledňovat parametry: 
    • Produktové rozdělení
    • Akční prodeje
    • Sezónnost
    • Historie prodejů
    • Podobnosti mezi zbožím
    • Nové položky
  • Finančně dostupné řešení
  • Možnost si model otestovat model na vlastních datech

Rizika projektu

Od začátku bylo jasné, že model bude čelit celé řadě výzev:

  • Jednorázové extrémy v prodejích
    (např. nečekané hromadné objednávky)
  • Proměnlivost sortimentu
    (každý rok zanikají i vznikají desítky položek, sortiment se vyvíjí
  • Různá délka historie položek
    (novinky a zboží s dlouhou historií)
  • Nulové obraty
    (dlouhá období bez prodejů, nárazové obnovení poptávky)
    • Velké rozdíly v objemech prodejů
      (od kusových položek po tisícové objemy)
  • Závislost mezi produkty
    (prodej jednoho produktu ovlivňuje poptávku po jiném
  • Vliv sezónnosti a plánovaných akcí


Cílem projektu tedy nebylo pouze vytvořit model, který dokáže předpovědět běžnou poptávku, ale především takový, který si poradí i s těmito
specifickými a často velmi obtížně předvídatelnými situacemi.

Tabulka historie zboží
ukazuje, jak různorodá byla délka dostupné historie u jednotlivých produktů. Zatímco většina produktů měla kompletní tříletou historii, významná část sortimentu měla jen omezená nebo žádná historická data – což představovalo zásadní problém pro tradiční predikční modely.

Délka historie produktuPočet položek
Podíl na sortimentu
36 měsíců (plná historie)10 10570.00%
12–35 měsíců2 66818.00%
méně než 12 měsíců1 2118.00%
bez historie5194.00%


Řešení – ve zkratce

Mnoho firem si myslí, že stačí nakrmit AI daty a výsledek přijde sám. Jak ukázal tento projekt, realita je daleko složitější. První testy ukázaly, že ani moderní deep learning modely (bez úprav) nestačí – narážely na velkou variabilitu sortimentu, množství nulových prodejů a časté změny v sortimentu.
Projekt se proto postupně rozšiřoval – bylo třeba:

  • Vylepšit přípravu dat (feature engineering)
  • Naučit modely pracovat s extrémy
  • Řešit různé délky historie
  • Dynamicky škálovat vstupy


Dnes model zvládá většinu komplikací
automaticky a bez nutnosti ručních zásahů.

Výsledek

MetrikaHodnotaVýznam pro byznys
Přesnost predikce80%Jak dobře model odhadl budoucí prodeje
Prům. odchylka48Průměrná rozdílnost mezi predikcí a realitou
Prům velikost chyby31Průměrná „velikost chyby“ v počtech prodaných kusů


Hlavní přednosti řešení

  • Predikce s přesností přes 80 % napříč sortimentem
  • Model vychází z individuální historie i skupinového chování podobných produktů
  • Zvláštní důraz jna akční/promo položky
  • Predikce i pro nově zavedené položky s minimální historií
  • Schopnost reagovat na sezónnost i krátkodobé trendy
  • Automatizované výstupy pro celý sortiment


Možnost škálování a opakovaného využití

Řešení lze přizpůsobit dalším zákazníkům, většina algoritmů a klíčových funkcí je předdefinovaná a znovupoužitelná. Stále je sice potřeba odborná znalost při úvodní konfiguraci a interpretaci výsledků, ale samotné nasazení a validace modelu jsou výrazně rychlejší než při vývoji na míru.

 
Predikce vs. realita – vizuální výsledky:
Je dobře vidět, že model dokáže zachytit hlavní trendy i sezónní výkyvy v prodejích – a to i u položek s proměnlivou historií nebo nepravidelnými extrémy. Zároveň se ukazuje, že i při pokročilé predikci zůstává v datech určitá míra nejistoty, například při neobvyklých špičkách nebo poklesech.
 

Jak predikci ovlivňuje délka historie, ostatní položky v sortimentu, sezónnost nebo promo akce, se budu podrobněji věnovat v dalších dílech této série.


Technologické zázemí projektu

Celý projekt jsem postavil na frameworku PyTorch, který patří mezi nejpoužívanější open-source platformy pro deep learning. Trénování probíhalo na GPU kartě NVIDIA RTX 3090 s 24 GB paměti, což umožnilo efektivně zpracovávat i velmi rozsáhlá data a testovat různé scénáře, včetně modelů se stovkami milionů parametrů, a to bez výrazných časových prodlev.

Infrastruktura běžela na Kubernetes, díky čemuž je řešení snadno škálovatelné i přenosné – lze jej spustit jak u zákazníka „on-premise“, tak v cloudu, podle aktuálních potřeb a požadavků.