Programování

Jak si vybrat platformu pro učení cloudového stroje

Chcete-li vytvořit efektivní modely strojového učení a hlubokého učení, potřebujete velké množství dat, způsob, jak data vyčistit a provádět na nich funkce, a způsob, jak trénovat modely na vašich datech v rozumném čase. Pak budete potřebovat způsob, jak nasadit své modely, sledovat jejich drift v průběhu času a podle potřeby je rekvalifikovat.

To vše můžete provádět místně, pokud jste investovali do výpočetních prostředků a akcelerátorů, jako jsou GPU, ale možná zjistíte, že pokud jsou vaše prostředky dostatečné, jsou většinu času také nečinné. Na druhou stranu může být někdy nákladově efektivnější spustit celý kanál v cloudu, podle potřeby použít velké množství výpočetních prostředků a akcelerátorů a poté je uvolnit.

Tech Spotlight: AI a strojové učení

  • 5 úspěšných příběhů strojového učení: Pohled dovnitř (CIO)
  • AI v práci: Vaším dalším spolupracovníkem by mohl být algoritmus (Computerworld)
  • Jak bezpečné jsou vaše projekty umělé inteligence a strojového učení? (CSO)
  • Jak si vybrat platformu pro učení cloudového stroje ()
  • Jak umělá inteligence může vytvářet datová centra s vlastním řízením (Network World)

Hlavní poskytovatelé cloudu - a také řada menších cloudů - vynaložili značné úsilí na vybudování svých platforem strojového učení pro podporu celého životního cyklu strojového učení, od plánování projektu až po udržování modelu ve výrobě. Jak určíte, který z těchto cloudů bude vyhovovat vašim potřebám? Tady je 12 funkcí, které by měla poskytovat každá end-to-end platforma pro strojové učení.

Buďte blízko svým datům

Pokud máte velké množství dat potřebných k vytvoření přesných modelů, nechcete je dodávat do poloviny světa. Nejde o vzdálenost, ale o čas: Rychlost přenosu dat je nakonec omezena rychlostí světla, a to i v dokonalé síti s nekonečnou šířkou pásma. Dlouhé vzdálenosti znamenají latenci.

Ideálním případem pro velmi velké datové sady je vytvoření modelu, kde již jsou data uložena, takže není nutný žádný hromadný přenos dat. Několik databází to v omezené míře podporuje.

Dalším nejlepším případem je, aby data byla ve stejné vysokorychlostní síti jako software pro vytváření modelů, což obvykle znamená ve stejném datovém centru. Dokonce i přesun dat z jednoho datového centra do druhého v zóně dostupnosti cloudu může způsobit značné zpoždění, pokud máte terabajty (TB) nebo více. Můžete to zmírnit prováděním přírůstkových aktualizací.

Nejhorším případem by bylo, kdybyste museli přesouvat velká data na velké vzdálenosti po cestách s omezenou šířkou pásma a vysokou latencí. Trans-pacifické kabely směřující do Austrálie jsou v tomto ohledu obzvláště neslýchané.

Podpora kanálu ETL nebo ELT

ETL (export, transformace a načtení) a ELT (export, načtení a transformace) jsou dvě konfigurace datového kanálu, které jsou běžné ve světě databáze. Strojové učení a hluboké učení zesilují jejich potřebu, zejména transformační část. ELT vám dává větší flexibilitu, když se vaše transformace musí změnit, protože fáze načítání je u velkých dat obvykle časově nejnáročnější.

Obecně jsou data ve volné přírodě hlučná. To je třeba filtrovat. Data ve volné přírodě mají navíc různé rozsahy: Jedna proměnná může mít maximum v milionech, zatímco jiná může mít rozsah -0,1 až -0,001. Pro strojové učení musí být proměnné transformovány na standardizované rozsahy, aby ty s velkými rozsahy nemohly dominovat modelu. Přesný standardizovaný rozsah přesně závisí na algoritmu použitém pro model.

Podpora online prostředí pro vytváření modelů

Konvenční moudrost spočívala v tom, že byste měli pro vytváření modelů importovat svá data na plochu. Pouhé množství dat potřebných k vytvoření dobrých modelů strojového učení a hlubokého učení mění obrázek: Můžete si stáhnout malý vzorek dat na plochu pro průzkumnou analýzu dat a vytváření modelů, ale u produkčních modelů musíte mít přístup k úplnému data.

Webová vývojová prostředí, jako jsou Jupyter Notebooks, JupyterLab a Apache Zeppelin, se dobře hodí pro vytváření modelů. Pokud jsou vaše data ve stejném cloudu jako prostředí notebooku, můžete analýzu přenést na data a minimalizovat tak časově náročný pohyb dat.

Podpora zvyšování a rozšiřování školení

Výpočetní a paměťové požadavky notebooků jsou obecně minimální, s výjimkou tréninkových modelů. Hodně pomůže, když se v notebooku mohou objevit tréninkové úlohy, které běží na více velkých virtuálních strojích nebo kontejnerech. Hodně také pomůže, pokud má školení přístup k akcelerátorům, jako jsou GPU, TPU a FPGA; to může změnit dny tréninku na hodiny.

Podpora AutoML a automatického vytváření funkcí

Ne každý umí vybírat modely strojového učení, vybírat funkce (proměnné, které model používá) a vytvářet nové funkce z hrubých pozorování. I když jste v těchto úkolech dobří, jsou časově náročné a lze je do značné míry automatizovat.

Systémy AutoML často zkouší mnoho modelů, aby zjistily, které výsledky vedou k nejlepším objektivním hodnotám funkcí, například minimální kvadratická chyba pro regresní problémy. Nejlepší systémy AutoML mohou také provádět inženýrství funkcí a efektivně využívat své zdroje k provádění nejlepších možných modelů s nejlepšími možnými sadami funkcí.

Podporujte nejlepší rámce strojového učení a hlubokého učení

Většina datových vědců má oblíbené rámce a programovací jazyky pro strojové učení a hluboké učení. Pro ty, kteří dávají přednost Pythonu, je Scikit-learn často oblíbeným strojovým učením, zatímco TensorFlow, PyTorch, Keras a MXNet jsou často nejlepšími možnostmi pro hluboké učení. Ve Scale má Spark MLlib tendenci být preferován pro strojové učení. V R existuje mnoho nativních balíčků strojového učení a dobré rozhraní pro Python. V Javě hodnotí H2O.ai vysoce, stejně jako Java-ML a Deep Java Library.

Platformy cloudového strojového učení a hlubokého učení mají tendenci mít vlastní kolekci algoritmů a často podporují externí rámce alespoň v jednom jazyce nebo jako kontejnery se specifickými vstupními body. V některých případech můžete integrovat své vlastní algoritmy a statistické metody s funkcemi AutoML platformy, což je docela pohodlné.

Některé cloudové platformy také nabízejí své vlastní vyladěné verze hlavních rámců hlubokého učení. Například AWS má optimalizovanou verzi TensorFlow, o které tvrdí, že může dosáhnout téměř lineární škálovatelnosti pro výcvik hlubokých neuronových sítí.

Nabídka předem vyškolených modelů a podpora přenosu učení

Ne každý chce trávit čas a počítat zdroje trénováním vlastních modelů - ani by neměli, pokud jsou k dispozici předem vyškolené modely. Například datová sada ImageNet je obrovská a trénování nejmodernější hluboké neurální sítě proti ní může trvat týdny, takže má smysl použít předem vyškolený model, když můžete.

Na druhou stranu nemusí předem vyškolené modely vždy identifikovat objekty, na kterých vám záleží. Transfer learning vám může pomoci přizpůsobit několik posledních vrstev neuronové sítě pro vaši konkrétní datovou sadu, aniž byste museli čas a výdaje trénovat celou síť.

Nabídka vyladěných služeb AI

Hlavní cloudové platformy nabízejí robustní vyladěné služby AI pro mnoho aplikací, nejen pro identifikaci obrazu. Příklad zahrnuje jazykový překlad, převod řeči na text, převod textu na řeč, prognózy a doporučení.

Tyto služby již byly vyškoleny a testovány na více datech, než je obvykle k dispozici podnikům. Jsou také již nasazeny na koncových bodech služby s dostatkem výpočetních prostředků, včetně akcelerátorů, aby byla zajištěna dobrá doba odezvy při celosvětovém zatížení.

Spravujte své experimenty

Jediným způsobem, jak najít nejlepší model pro vaši datovou sadu, je vyzkoušet vše, ať už ručně, nebo pomocí AutoML. To zanechává další problém: Správa experimentů.

Dobrá platforma pro cloudové strojové učení bude mít způsob, jak můžete vidět a porovnávat hodnoty objektivních funkcí každého experimentu jak pro tréninkové sady, tak pro testovací data, stejně jako velikost modelu a matici záměny. Schopnost všeho grafovat je jednoznačným plusem.

Podpora nasazení modelu pro předpověď

Jakmile budete mít způsob výběru nejlepšího experimentu vzhledem k vašim kritériím, budete také potřebovat snadný způsob nasazení modelu. Pokud nasadíte více modelů pro stejný účel, budete také potřebovat způsob, jak mezi ně rozdělit provoz pro testování a / b.

Monitorujte výkon predikce

Svět má bohužel tendenci se měnit as ním se mění i data. To znamená, že nemůžete nasadit model a zapomenout na něj. Místo toho je třeba sledovat předložená data ohledně předpovědí v čase. Když se data začnou výrazně měnit od základní linie vaší původní sady tréninkových dat, budete muset model přeškolit.

Kontrolní náklady

Nakonec potřebujete způsoby, jak řídit náklady vzniklé vašim modelům. Nasazení modelů pro odvození produkce často představuje 90% nákladů na hluboké učení, zatímco školení představuje pouze 10% nákladů.

Nejlepší způsob, jak řídit náklady na predikci, závisí na vašem zatížení a složitosti vašeho modelu. Pokud máte vysoké zatížení, možná budete moci použít akcelerátor, abyste se vyhnuli přidávání dalších instancí virtuálních strojů. Pokud máte proměnnou zátěž, můžete dynamicky měnit velikost nebo počet instancí nebo kontejnerů, jak zátěž stoupá nebo klesá. A pokud máte nízké nebo občasné zatížení, můžete zvládnout předpovědi pomocí velmi malé instance s částečným akcelerátorem.

$config[zx-auto] not found$config[zx-overlay] not found