Správa a optimalizace nákladů na Azure Machine Learning

Zjistěte, jak spravovat a optimalizovat náklady při trénování a nasazování modelů strojového učení do služby Azure Machine Learning.

Následující tipy vám pomůžou se správou a optimalizací nákladů na výpočetní prostředky.

  • Konfigurace trénovacích clusterů pro automatické škálování
  • Nastavení kvót pro předplatné a pracovní prostory
  • Nastavení zásad ukončení pro trénovací úlohu
  • Použití virtuálních počítačů s nízkou prioritou
  • Naplánování automatického vypnutí a spuštění výpočetních instancí
  • Použití rezervované instance virtuálního počítače Azure
  • Místní trénování
  • Paralelizace trénování
  • Nastavení zásad uchovávání a odstraňování dat
  • Nasazení prostředků do stejné oblasti

Informace o plánování a monitorování nákladů najdete v průvodci plánem správy nákladů pro Azure Machine Learning .

Důležité

Položky označené v tomto článku (Preview) jsou aktuálně ve verzi Public Preview. Verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Použití výpočetního clusteru Azure Machine Learning (AmlCompute)

S neustále se měnícími daty potřebujete rychlé a zjednodušené trénování a opětovné trénování modelů, abyste zachovali přesné modely. Průběžné trénování ale stojí za určitou cenu, zejména u modelů hlubokého učení na grafických procesorech.

Uživatelé služby Azure Machine Learning můžou používat spravovaný výpočetní cluster Azure Machine Learning, označovaný také jako AmlCompute. AmlCompute podporuje různé možnosti GPU a procesoru. Azure Machine Learning interně hostuje AmlCompute jménem vašeho předplatného. Poskytuje stejné zabezpečení, dodržování předpisů a zásady správného řízení na podnikové úrovni v cloudovém měřítku Azure IaaS.

Vzhledem k tomu, že se tyto výpočetní fondy nacházejí v infrastruktuře Azure IaaS, můžete nasadit, škálovat a spravovat trénování se stejnými požadavky na zabezpečení a dodržování předpisů jako zbytek vaší infrastruktury. K těmto nasazením dochází ve vašem předplatném a dodržují vaše pravidla zásad správného řízení. Přečtěte si další informace o výpočetních prostředcích služby Azure Machine Learning.

Konfigurace trénovacích clusterů pro automatické škálování

Automatické škálování clusterů na základě požadavků úloh pomáhá snižovat náklady, takže používáte jenom to, co potřebujete.

Clustery AmlCompute jsou navržené tak, aby se dynamicky škálují na základě vašich úloh. Cluster je možné vertikálně navýšit na maximální počet uzlů, které nakonfigurujete. Po dokončení každé úlohy cluster uvolní uzly a škáluje se na nakonfigurovaný minimální počet uzlů.

Důležité

Pokud se chcete vyhnout poplatkům, když nejsou spuštěné žádné úlohy, nastavte minimální počet uzlů na 0. Toto nastavení umožňuje službě Azure Machine Learning zrušit přidělení uzlů, když se nepoužívají. Jakákoli hodnota větší než 0 zachová tento počet uzlů spuštěných, i když se nepoužívají.

Můžete také nakonfigurovat dobu, po kterou je uzel nečinný před vertikálním snížením kapacity. Ve výchozím nastavení je doba nečinnosti před vertikálním snížením kapacity nastavená na 120 sekund.

  • Pokud provádíte méně iterativních experimentů, zkraťte tuto dobu, abyste ušetřili náklady.
  • Pokud experimentujete s vysoce iterativním vývojem a testováním, možná budete muset prodloužit čas, abyste po každé změně vašeho trénovacího skriptu nebo prostředí neplatili za neustálé vertikální navyšování a snižování kapacity.

Clustery AmlCompute je možné nakonfigurovat pro vaše měnící se požadavky na úlohy v Azure Portal pomocí třídy AmlCompute SDK, rozhraní příkazového řádku AmlCompute s rozhraními REST API.

Nastavení kvót pro prostředky

AmlCompute se dodává s konfigurací kvóty (nebo limitu). Tato kvóta se vztahuje na řadu virtuálních počítačů (například Řada Dv2, řada NCv3) a liší se podle oblasti pro každé předplatné. Předplatná začínají s malými výchozími nastaveními, abyste mohli začít pracovat, ale toto nastavení použijte k řízení množství prostředků Amlcompute, které je možné ve vašem předplatném nastartovat.

Nakonfigurujte také kvótu na úrovni pracovního prostoru podle řady virtuálních počítačů pro každý pracovní prostor v rámci předplatného. Díky tomu budete mít podrobnější kontrolu nad náklady, které by mohly vzniknout u jednotlivých pracovních prostorů, a omezit tak určité rodiny virtuálních počítačů.

Pokud chcete nastavit kvóty na úrovni pracovního prostoru, začněte v Azure Portal. Vyberte libovolný pracovní prostor ve vašem předplatném a v levém podokně vyberte Využití a kvóty . Pak vyberte kartu Konfigurovat kvóty a zobrazte kvóty. K nastavení kvóty potřebujete oprávnění v oboru předplatného, protože se jedná o nastavení, které ovlivňuje více pracovních prostorů.

Nastavení zásad automatického zpracování úloh

V některých případech byste měli trénovací běhy nakonfigurovat tak, aby se omezila jejich doba trvání nebo je předčasně ukončila. Například když používáte integrované ladění hyperparametrů služby Azure Machine Learning nebo automatizované strojové učení.

Tady je několik možností, které máte:

  • Definujte ve své konfiguraci RunConfiguration parametr s názvem max_run_duration_seconds , který řídí maximální dobu trvání, na kterou může spuštění probíhat na vámi zvoleném výpočetním prostředí (místní nebo vzdálené cloudové výpočetní prostředky).
  • Pro ladění hyperparametrů definujte zásadu předčasného ukončení ze zásady Bandit, zásady zastavení mediánu nebo zásady výběru zkrácení. K dalšímu řízení úklidu hyperparametrů použijte parametry, jako max_total_runs je nebo max_duration_minutes.
  • V případě automatizovaného strojového učení nastavte podobné zásady ukončení pomocí příznaku enable_early_stopping . K řízení maximální doby trvání úlohy nebo pro celý experiment použijte také vlastnosti, jako iteration_timeout_minutes jsou a experiment_timeout_minutes .

Použití virtuálních počítačů s nízkou prioritou

Azure umožňuje používat nadbytečnou nevyužitou kapacitu jako Low-Priority virtuálních počítačů napříč škálovacími sadami virtuálních počítačů, službou Batch a službou Machine Learning. Tato přidělení jsou preventivní, ale ve srovnání s vyhrazenými virtuálními počítači mají nižší cenu. Obecně doporučujeme pro úlohy služby Batch používat Low-Priority virtuální počítače. Měli byste je použít také tam, kde je možné přerušení obnovit buď opětovným odesláním (pro dávkové odvozování), nebo restartováním (pro trénování hlubokého učení s využitím kontrolních bodů).

Low-Priority virtuální počítače mají jednu kvótu oddělenou od vyhrazené hodnoty kvóty, kterou je podle řady virtuálních počítačů. Přečtěte si další informace o kvótách AmlCompute.

Low-Priority virtuální počítače nefungují pro výpočetní instance, protože potřebují podporovat interaktivní prostředí poznámkových bloků.

Plánování výpočetních instancí

Když vytvoříte výpočetní instanci, virtuální počítač zůstane zapnutý, aby byl dostupný pro vaši práci.

  • Povolte nečinné vypnutí (Preview), abyste ušetřili náklady, když je virtuální počítač po zadané časové období nečinný.
  • Nebo si nastavte plán automatického spouštění a zastavování výpočetní instance (Preview), abyste ušetřili náklady, když ji neplánujete používat.

Použití rezervovaných instancí

Dalším způsobem, jak ušetřit peníze za výpočetní prostředky, je služba Azure Reserved VM Instance. S touto nabídkou se zavazujete používat jednoleté nebo tříleté podmínky. Tyto slevy se pohybují až do výše 72 % cen průběžných plateb a vztahují se přímo na vaši měsíční fakturu za Azure.

Azure Machine Learning Compute podporuje rezervované instance ze své podstaty. Pokud si koupíte rezervovanou instanci na jeden nebo tři roky, automaticky uplatníme slevu na spravované výpočetní prostředky služby Azure Machine Learning.

Paralelizace trénování

Jednou z klíčových metod optimalizace nákladů a výkonu je paralelizace úloh pomocí paralelní komponenty ve službě Azure Machine Learning. Paralelní komponenta umožňuje použít k paralelnímu spuštění úlohy mnoho menších uzlů, takže můžete škálovat horizontálně. Paralelizace má režijní náklady. V závislosti na zatížení a stupni paralelismu, kterého lze dosáhnout, to může, ale nemusí být možné. Další podrobnosti najdete na tomto odkazu v dokumentaci k parallelComponent .

Nastavení zásad odstraňování uchovávání & dat

Při každém spuštění kanálu se v každém kroku generují zprostředkující datové sady. V průběhu času tyto přechodné datové sady zabírají místo ve vašem účtu úložiště. Zvažte nastavení zásad pro správu dat v průběhu jejich životního cyklu za účelem archivace a odstranění datových sad. Další informace najdete v tématu optimalizace nákladů automatizací Azure Blob Storage úrovní přístupu.

Nasazení prostředků do stejné oblasti

Výpočetní prostředky umístěné v různých oblastech můžou zaznamenat latenci sítě a zvýšit náklady na přenos dat. Náklady na síť Azure vznikají z odchozí šířky pásma z datových center Azure. Pokud chcete snížit náklady na síť, nasaďte všechny prostředky v dané oblasti. Zřízení pracovního prostoru Služby Azure Machine Learning a závislých prostředků ve stejné oblasti, ve které jsou vaše data, vám může pomoct snížit náklady a zlepšit výkon.

V hybridních cloudových scénářích, jako jsou scénáře využívající ExpressRoute, může být někdy cenově výhodnější přesunout všechny prostředky do Azure, aby se optimalizovaly náklady na síť a latence.

Další kroky