Obsah
Apache MXNet
Apache MXNet byl flexibilní a vysoce škálovatelný open-source framework pro hluboké učení (deep learning). Původně jej vyvinula komunita DMLC (Distributed Machine Learning Community) a následně se stal tzv. „Top-Level“ projektem pod hlavičkou Apache Software Foundation.
Ve své největší éře slávy (zhruba 2016–2019) představoval MXNet přímou konkurenci pro giganty jako TensorFlow (Google) nebo PyTorch (Meta). V roce 2016 si jej dokonce společnost Amazon (AWS) vybrala jako svůj oficiální a preferovaný framework pro umělou inteligenci v cloudu.
Poznámka: V září 2023 byl vývoj MXNet po klesajícím zájmu vývojářů oficiálně ukončen a projekt byl přesunut do Apache Attic (archiv vysloužilých projektů). Většina průmyslu dnes přešla na PyTorch.
Proč byl MXNet populární?
Framework si získal oblibu díky několika unikátním technickým vlastnostem, které z něj dělaly skvělý nástroj pro produkční nasazení AI:
- Extrémní škálovatelnost: MXNet byl od základu navržen pro distribuované trénování. Uměl efektivně rozložit zátěž napříč stovkami GPU na mnoha fyzických serverech s téměř lineárním nárůstem výkonu.
- Polyglot (Podpora mnoha jazyků): Zatímco většina frameworků se soustředila primárně na Python, MXNet nabízel plnohodnotná API pro C++, R, Scalu, Julii, Perl nebo Clojure. To umožňovalo datovým vědcům vyvíjet modely v jejich oblíbeném jazyce.
- Hybridní programování: Podporoval jak imperativní programování (kód se spouští řádek po řádku, skvělé pro ladění chyb), tak deklarativní symbolické programování (nejprve se definuje celý graf výpočtů a ten se pak extrémně rychle optimalizuje a spustí).
Architektura a klíčové komponenty
Architektura MXNet se skládala z několika nezávislých modulů:
1. NDArray (Tenzorové operace)
Základní datová struktura pro práci s vícerozměrnými poli (tenzory). Fungovala velmi podobně jako pole v populární knihovně NumPy, ale na rozdíl od ní umožňovala NDArray asynchronní výpočty přímo na grafických kartách (GPU).
2. Symbol (Výpočetní graf)
Zatímco NDArray řešil okamžité výpočty, modul Symbol sloužil k definici architektur celých neuronových sítí. Umožňoval sestavit výpočetní graf (tzv. computation graph) a ten následně zkompilovat pro maximální výkon, úsporu paměti a export.
3. KVStore (Key-Value Store)
Tajemství rychlosti MXNet v distribuovaném učení. KVStore sloužil k bleskové synchronizaci parametrů neuronové sítě mezi různými servery (nebo různými grafickými kartami) přes síť.
4. Gluon API
Představeno v roce 2017 (ve spolupráci s Microsoftem) jako vysokoúrovňové, uživatelsky přívětivé rozhraní nad nízkoúrovňovým kódem MXNet. Gluon zjednodušil zápis neuronových sítí tak, že začal velmi připomínat dnešní PyTorch.
Kde byl MXNet v ekosystému AI?
Aby mohly vektorové databáze jako Milvus nebo Weaviate vyhledávat v datech, musí tato data (texty, obrázky) někdo nejprve převést na vektory. K tomu se používají tzv. Embedding modely (neuronové sítě). A právě frameworky jako Apache MXNet (nebo dnes spíše PyTorch) sloužily k návrhu, trénování a spouštění těchto hlubokých neuronových sítí.
Proč MXNet prohrál?
Ačkoliv byl technicky velmi vyspělý, MXNet doplatil na „válku frameworků“. Výzkumná a akademická sféra si oblíbila PyTorch pro jeho jednoduchost a čitelnost (Python-first přístup). Komerční sféra a inženýři zase vsadili na TensorFlow, který měl v té době mnohem lepší nástroje pro nasazení do mobilních telefonů a webových prohlížečů. I samotný Amazon nakonec přesunul své vývojové kapacity směrem k podpoře ekosystému PyTorch.
