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 Učení, která umožňuje 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 službu Azure Machine Učení.

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.

Screenshot that shows the dependencies collected during a model package operation.

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 Učení 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 Učení vloží závislosti vyžadované serverem odvozování, které vám pomůžou odhalit konflikty před nasazením modelu.
  • Přenositelnost: Balíčky modelu Azure Machine Učení můžete přesunout z jednoho pracovního prostoru do jiného pomocí registrů. Můžete také vygenerovat balíčky, které je možné nasadit mimo službu Azure Machine Učení.
  • Podpora MLflow s privátními sítěmi: U modelů MLflow vyžaduje Azure Machine Učení připojení k internetu, aby bylo možné dynamicky instalovat nezbytné balíčky Pythonu, aby modely mohly běžet. 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 službu Azure Machine Učení, ať už místně, nebo v cloudu.

Screenshot that shows all the possible targets for a model package.

Balíček před nasazením

Nejjednodušší způsob, jak nasadit pomocí balíčku modelu, je určením služby Azure Machine Učení nasazení balíčku modelu před spuštěním nasazení. Při použití Azure CLI, sady Azure Machine Učení SDK nebo studio Azure Machine Learning k vytvoření nasazení v online koncovém bodu můžete určit použití balíčku 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 Učení nejprve model zabalí a pak spustí 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 Učení, přečtěte si téma Balení a nasazení modelů mimo Učení Azure Machine.

Další krok