Balíčky modelů pro nasazení (Preview)

Po vytrénování modelu strojového učení ho musíte nasadit, aby ostatní mohli využívat své předpovědi. Nasazení modelu ale vyžaduje více než jen váhy nebo artefakty modelu. Balíčky modelů jsou funkce ve službě Azure Machine Learning, které umožňují shromažďovat všechny závislosti potřebné k nasazení modelu strojového učení na obslužnou platformu. Balíčky můžete přesouvat mezi pracovními prostory a dokonce i mimo Azure Machine Learning.

Důležité

Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji 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.

Co je balíček modelu?

Osvědčeným postupem před nasazením modelu je, že všechny závislosti, které model vyžaduje k úspěšnému spuštění, musí být shromážděny a vyřešeny, abyste mohli model nasadit v reprodukovatelném a robustním přístupu.

Snímek obrazovky znázorňující závislosti shromážděné během operace balíčku modelu

Závislosti modelu obvykle zahrnují:

  • Základní image nebo prostředí, ve kterém se model spustí.
  • Seznam balíčků a závislostí Pythonu, na které model závisí, aby fungoval správně.
  • Další prostředky, které váš model může potřebovat k vygenerování odvozování. Tyto prostředky můžou zahrnovat mapy popisků a parametry předběžného zpracování.
  • Software vyžadovaný pro odvozování serveru pro obsluhu požadavků; Například server flask nebo obsluha TensorFlow.
  • Rutina odvození (v případě potřeby)

Všechny tyto prvky je potřeba shromáždit, aby se pak nasadily do obslužné infrastruktury. Výsledný prostředek vygenerovaný po shromáždění všech závislostí se nazývá balíček modelu.

Výhody modelů balení

Balení modelů před nasazením má následující výhody:

  • Reprodukovatelnost: Všechny závislosti se shromažďují v době balení, nikoli v době nasazení. Jakmile se vyřeší závislosti, můžete balíček nasadit tolikrát, kolikrát je potřeba, a zároveň zaručit, že už byly vyřešeny závislosti.
  • Rychlejší řešení konfliktů: Azure Machine Learning při balení modelu detekuje chybné konfigurace související se závislostmi, jako je chybějící balíček Pythonu. Abyste mohli takové problémy zjistit, nemusíte model nasazovat.
  • Jednodušší integrace se serverem odvozování: Vzhledem k tomu, že server odvozování, který používáte, může potřebovat konkrétní konfigurace softwaru (například balíček Torch Serve), může takový software generovat konflikty se závislostmi modelu. Balíčky modelů ve službě Azure Machine Learning vkládat závislosti vyžadované serverem odvozování, aby vám pomohly odhalit konflikty před nasazením modelu.
  • Přenositelnost: Balíčky modelu Služby Azure Machine Learning můžete přesunout z jednoho pracovního prostoru do druhého pomocí registrů. Můžete také vygenerovat balíčky, které je možné nasadit mimo Azure Machine Learning.
  • Podpora MLflow s privátními sítěmi: Pro modely MLflow vyžaduje Azure Machine Learning připojení k internetu, aby bylo možné dynamicky instalovat nezbytné balíčky Pythonu pro spouštění modelů. Zabalením modelů MLflow se tyto balíčky Pythonu vyřeší během operace balení modelu, takže balíček modelu MLflow nebude vyžadovat nasazení připojení k internetu.

Tip

Balení modelu MLflow před nasazením se důrazně doporučuje a vyžaduje se i pro koncové body, které nemají odchozí síťové připojení. Model MLflow označuje jeho závislosti v samotném modelu, což vyžaduje dynamickou instalaci balíčků. Při zabalení modelu MLflow se tato dynamická instalace provádí v době balení, nikoli v době nasazení.

Nasazení balíčků modelů

Balíčky modelů můžete poskytovat jako vstupy do online koncových bodů. Použití balíčků modelů pomáhá zjednodušit pracovní postupy MLOps snížením pravděpodobnosti chyb v době nasazení, protože během operace balení by se shromáždily všechny závislosti. Balíček modelu můžete také nakonfigurovat tak, aby vygeneroval image Dockeru, abyste mohli nasadit kdekoli mimo Azure Machine Learning, ať už místně, nebo v cloudu.

Snímek obrazovky znázorňující všechny možné cíle balíčku modelu

Balíček před nasazením

Nejjednodušší způsob, jak nasadit pomocí balíčku modelu, je určením služby Azure Machine Learning nasadit balíček modelu před spuštěním nasazení. Při použití Azure CLI, sady Azure Machine Learning SDK nebo studio Azure Machine Learning k vytvoření nasazení v online koncovém bodu můžete určit použití balení modelu následujícím způsobem:

Při --with-package vytváření nasazení použijte příznak:

az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME

Azure Machine Learning nejprve zabalí model a pak provede nasazení.

Poznámka:

Pokud při použití balíčků označíte základní prostředí se závislostmi conda , pip nemusíte zahrnovat závislosti serveru odvozování (azureml-inference-server-http). Místo toho se tyto závislosti automaticky přidají za vás.

Nasazení zabaleného modelu

Model, který je zabalený přímo do online koncového bodu, můžete nasadit. Tento postup zajišťuje reprodukovatelnost výsledků a je to osvědčený postup. Viz Balíček a nasazení modelů do online koncových bodů.

Pokud chcete balíček nasadit mimo Azure Machine Learning, přečtěte si téma Balíček a nasazení modelů mimo Azure Machine Learning.

Další krok