Úlohy nasazení MLflow 3

Důležité

Tato funkce je ve verzi Public Preview.

Poznámka:

Úlohy nasazení není potřeba používat s klienty MLflow 3 nebo sledováním modelů a je možné je povolit u starších stávajících modelů v katalogu Unity. Doporučuje se však používat MLflow 3.

Tento článek popisuje, jak používat úlohy nasazení MLflow jako součást pracovního postupu strojového učení ke správě celého životního cyklu modelů ML.

Co jsou úlohy nasazení?

Úlohy nasazení umožňují automatizovat úlohy, jako je vyhodnocení, schvalování a nasazení při každém vytvoření nové verze modelu, bezproblémová integrace s modely katalogu Unity a úlohami Lakeflow. Tyto úlohy zjednodušují nastavení kanálů pro nasazení modelu, zahrnují schvalování s lidským zapojením a poskytují řízené pracovní postupy s jasným přehledem o průběhu a historickém průběhu pro každou verzi modelu.

U úloh nasazení je proces plně automatizovaný; Automaticky se aktivují při každém vytvoření nové verze modelu a zobrazí stav spuštění úlohy nasazení přímo na stránkách modelu a verzí modelu. Historické informace o každém spuštění úlohy nasazení se pohodlně sledují v protokolu aktivit a zajišťují transparentnost a snadnou správu.

Integrace se sledováním modelů MLflow 3

Databricks doporučuje použít systém MLflow 3 pro registraci modelů a jejich vyhodnocení v procesu nasazení. Nový klient automaticky zaznamená metriky z části vyhodnocení úlohy nasazení, která se zobrazí v uživatelském rozhraní verze modelu Unity Catalog. To uživatelům umožní používat centralizované metriky, parametry a trasování na stránce verze modelu k tomu, aby se informovaně rozhodli o dalším postupu modelu v životním cyklu nasazení.

Integrace s katalogem Unity CREATE MODEL VERSION ACL

Úlohy nasazení se přirozeně integrují s nově vydaným Unity Catalog Create Model Version ACL, aby doplnily váš příběh MLOps. Uživateli může být uděleno oprávnění CREATE MODEL VERSION ACL k registraci nových verzí modelu. Jakmile uživatel považuje model dostatečně dobrý pro produkční prostředí, zaregistruje tuto verzi do modelu katalogu Unity, který spustí úlohu nasazení, aby model automaticky vyhodnotil. V tuto chvíli může schvalovatel ručně schválit tuto verzi k nasazení, nebo ji odmítnout.

Důležité

Úloha nasazení se automaticky aktivuje pomocí přihlašovacích údajů vlastníka modelu. To znamená, že udělení oprávnění uživatele CREATE MODEL VERSION k modelu katalogu Unity umožňuje uživateli spustit libovolný kód jako součást úlohy. Z tohoto důvodu Databricks doporučuje nastavit úlohu nasazení pomocí služebního principálu s minimálními oprávněními, aby se zabránilo eskalaci oprávnění.

Příklady úloh nasazení

Tady je několik příkladů úloh nasazení, které odrážejí běžné případy použití. Všimněte si, že se jedná pouze o příklady, které je možné podle potřeby přizpůsobit.

Jednoduchá ukázková úloha nasazení se skládá ze 3 kroků: vyhodnocení, schválení a nasazení. Vyhodnocení volá mlflow.evaluate za účelem vytvoření ověřovacích metrik pro zadanou verzi modelu. Schválení umožňuje privilegovanému uživateli určit, jestli jsou tyto metriky uspokojivé, a pokud ano, schválit model. Nakonec se verze modelu nasadí na koncový bod služby Model Serving od Databricks.

Následující obrázek znázorňuje úlohy Lakeflow, které tvoří tuto jednoduchou nasazovací úlohu skládající se z úloh vyhodnocení, schválení a nasazení:

Jednoduchá úloha nasazení, která se skládá z úkolů vyhodnocení, schválení a nasazení.

Můžete také vytvořit složitější úlohu nasazení. Můžete například chtít provést postupné zavedení s krokem shromažďování metrik v rámci pracovního postupu. Pokud chcete vytvořit tuto úlohu nasazení, můžete po úkolu schválení přidat další úlohy, které nasadí model na 1%, nasadí model na 10%, shromáždí a zkontrolují metriky, rozhodnou, zda pokračovat nebo vrátit nasazení zpět, a nakonec nasadí model na 100% nebo vrátí nasazení modelu zpět. Následující obrázek ukazuje, jak může tato složitější úloha nasazení vypadat:

Složitá úloha nasazení, která zahrnuje postupné zavedení a shromažďování metrik.

Vytvoření úlohy nasazení

Úlohy nasazení umožňují spravovat životní cyklus verze modelu. Pokud chcete použít úlohy nasazení, musíte nejprve vytvořit verze modelu vytvořené v registrovaném modelu. Doporučené přístupy pro trénování a registraci modelů najdete v ukázkových poznámkových blocích MLflow 3 .

Databricks doporučuje nastavit pole Spustit jako na principála služby s co nejnižšími oprávněními. Kromě toho společnost Databricks doporučuje, abyste pro úkol schválení zakázali opakování, protože se očekává, že úkol nejprve selže. Tím se zabrání delšímu čekání a nahlášeným více protokolům chyb.

Úloha nasazení musí mít dva parametry úlohy: model_name a model_version. Databricks také doporučuje nastavit maximální limit souběžného spuštění na 1 (výchozí), aby se zabránilo podmínkám časování nasazení.

Existují dva způsoby, jak vytvořit úlohu nasazení: programově pomocí poznámkového bloku nasazení nebo pomocí uživatelského rozhraní. V obou případech musíte zadat každý úkol jako poznámkový blok.

Použití nasazovacího poznámkového bloku je doporučeno pro programové vytvoření úlohy nasazení, protože využívá Databricks SDK, a tak jsou všechny konfigurace snadno nastavitelné díky hlavnímu zdroji informací v kódu. Tato metoda vám také umožňuje snadno nasadit více úloh a dalších prostředků do více pracovních prostorů.

V následujících pokynech se k nastavení úlohy nasazení používá jednoduchá ukázková šablona se základními úlohami vyhodnocení, schválení a nasazení.

  1. Vytvoření a registrace modelu katalogu Unity Podívejte se například na příklad tradičního pracovního postupu ML MLflow 3 .
  2. Vytvořte poznámkový blok, který definuje úlohu vyhodnocení. Naimportujte například zkušební poznámkový blok pro klasické strojové učení , abyste mohli vyhodnotit model vytvořený z příkladu tradičního strojového učení . Poznámkový blok pro vyhodnocení GenAI poskytuje příklad vyhodnocení externího modelu GenAI. Podle potřeby aktualizujte požadované položky . Pro jiné modely použijte tento poznámkový blok jako šablonu a přizpůsobte ho k vyhodnocení modelu podle potřeby pro váš jedinečný případ.
  3. Vytvořte poznámkový blok, který definuje úkol schválení. Naimportujte například poznámkový blok schválení do pracovního prostoru. Další podrobnosti o tom, jak tento poznámkový blok funguje, najdete v části Schválení . Tento poznámkový blok můžete také použít jako šablonu a aktualizovat ho tak, aby vyhovoval vašim potřebám.
  4. Vytvořte poznámkový blok, který definuje úlohu nasazení. Do pracovního prostoru například naimportujte následující poznámkový blok nasazení . Tento poznámkový blok můžete také použít jako šablonu a aktualizovat ho tak, aby vyhovoval vašim potřebám.
  5. Vytvořte notebook, který vytvoří a orchestruje úlohu nasazení. Importujte například poznámkový blok úlohy nasazení do svého pracovního prostoru. Tento poznámkový blok vytvoří úlohu Databricks, která se stane úlohou nasazení. Nezapomeňte aktualizovat požadované položky v poznámkovém bloku tak, aby správně definovaly vaši úlohu pomocí modelu katalogu Unity a příslušných úloh. Tento poznámkový blok můžete také použít jako šablonu a aktualizovat ho tak, aby vyhovoval vašim potřebám. Pokud máte například složitější plán zavedení, můžete chtít zahrnout více úkolů.
  6. Spusťte notebook pro úlohu nasazení a vytvořte úlohu nasazení.

Vytvoření úlohy nasazení pomocí uživatelského rozhraní úloh

Úlohy je možné vytvořit také pomocí uživatelského rozhraní místo použití sady SDK ve výše uvedené šabloně. U každého úkolu poznámkového bloku se ale poznámkové bloky musí vytvářet ručně a ukládat někam do pracovního prostoru. U modelu instrukcí se předpokládá jednoduchý pracovní postup nasazení s úlohami vyhodnocení, schválení a nasazení. Pokud máte složitější pracovní postup nasazení, přizpůsobte si pokyny přidáním dalších úloh.

  1. Vytvoření a registrace modelu katalogu Unity Podívejte se například na příklad tradičního pracovního postupu ML MLflow 3 .

  2. Vytvořte poznámkový blok, který definuje úlohu vyhodnocení. Naimportujte například zkušební poznámkový blok pro klasické strojové učení , abyste mohli vyhodnotit model vytvořený z příkladu tradičního strojového učení . Poznámkový blok pro vyhodnocení GenAI poskytuje příklad vyhodnocení externího modelu GenAI. Podle potřeby aktualizujte požadované položky . Pro jiné modely použijte tento poznámkový blok jako šablonu a přizpůsobte ho k vyhodnocení modelu podle potřeby pro váš jedinečný případ.

  3. Vytvořte poznámkový blok, který definuje úkol schválení. Naimportujte například poznámkový blok schválení do pracovního prostoru. Další podrobnosti o tom, jak tento poznámkový blok funguje, najdete v části Schválení . Tento poznámkový blok můžete také použít jako šablonu a aktualizovat ho tak, aby vyhovoval vašim potřebám.

  4. Vytvořte poznámkový blok, který definuje úlohu nasazení. Do pracovního prostoru například naimportujte následující poznámkový blok nasazení . Tento poznámkový blok můžete také použít jako šablonu a aktualizovat ho tak, aby vyhovoval vašim potřebám.

  5. Vytvořte úlohu nasazení v uživatelském rozhraní úloh Lakeflow:

    1. V levém navigačním podokně kliknutím na + Nová > úloha vytvořte novou úlohu.

    2. Nakonfigurujte každý úkol. Například pro úlohu nasazení:

      1. Název úlohy: Nasazení
      2. Typ: Notebook
      3. Zdroj: Pracovní prostor
      4. Cesta: /Workspace/Users/<user.name@email.com>/deployment
      5. Výpočetní prostředky: bezserverové

      Další informace o konfiguraci najdete v tématu Úkoly poznámkového bloku pro projekty.

  6. Po vytvoření každého úkolu přidejte parametry úlohy. Na pravém panelu klikněte na Upravit parametry. Přidat model_name a model_version.

Níže je příklad vytvoření výše uvedené úlohy šablony pomocí uživatelského rozhraní:

Úloha nasazení vytvořená pomocí uživatelského rozhraní

Připojení úlohy nasazení k modelu

Po vytvoření modelu Unity Catalog a úlohy nasazení musíte úlohu připojit k modelu jako nasazovací úlohu. Uživatelské rozhraní můžete použít, nebo to udělat programově v nasazovacím poznámkovém bloku.

Po připojení úlohy nasazení k modelu je na stránce modelu propojena.

Připojená nasazovací úloha

Připojení úlohy nasazení k modelu pomocí uživatelského rozhraní

Na stránce modelu, na kartě Přehled, v části Úloha nasazení klikněte na Připojit úlohu nasazení.

Na stránce modelu klikněte na Připojit úlohu pro nasazení.

V rozevíracím seznamu vyberte úlohu nasazení. Pomocí panelu hledání můžete také hledat úlohy podle jejich jména nebo ID. Klikněte na Uložit změny.

Vyberte úlohu nasazení, ke které se chcete připojit.

Připojení úlohy nasazení k modelu pomocí klienta MLflow

Hlavním způsobem, jak programátorsky připojit úlohu nasazení, je použití klienta MLflow. Můžete to provést buď při vytvoření registrovaného modelu voláním client.create_registered_model(model_name, deployment_job_id=<your-created-job-id>), nebo při aktualizaci registrovaného modelu voláním client.update_registered_model(model_name, deployment_job_id=<your-created-job-id>).

Hlavním způsobem, jak programově odpojit úlohu nasazení, je také použití klienta MLflow. Můžete to udělat zadáním prázdného řetězce "" a voláním aktualizace s ním (například client.update_registered_model(model_name, deployment_job_id="")).

V poznámkovém bloku nasazení použijte kód podobný následujícímu:

import mlflow
from mlflow.tracking.client import MlflowClient

client = MlflowClient(registry_uri="databricks-uc")
# model_name specifies the location of a model in Unity Catalog
# model_name should be in the format <catalog>.<schema>.<model>
try:
  if client.get_registered_model(model_name):
    client.update_registered_model(model_name, deployment_job_id=created_job.job_id)
except mlflow.exceptions.RestException:
  client.create_registered_model(model_name, deployment_job_id=created_job.job_id)

Požadovaná oprávnění

Pro připojení a aktivaci úloh nasazení se vyžadují následující oprávnění:

  • SPRÁVA nebo VLASTNÍK modelu pro připojení úlohy nasazení
  • Vlastník modelu bude muset mít oprávnění KE SPRÁVĚ SPUŠTĚNÍ nebo vyšších oprávnění k úloze nasazení, aby ho mohl připojit.
    • POZNÁMKA: Toto pole úlohy nasazení může v modelu aktualizovat také někdo s oprávněními SPRAVOVAT nebo vyšší. V tomto případě musí mít aktualizátor i vlastník modelu oprávnění na SPRÁVU SPUŠTĚNÍ nebo vyšší oprávnění pro úlohu nasazení, aby ji mohl připojit.

Spustit úkol nasazení

Úloha nasazení se automaticky aktivuje u všech nově vytvořených verzí modelu a dá se také aktivovat ručně na stránce existující i dříve nasazené verze na stránce verze modelu kliknutím na spustit úlohu nasazení.

Spusťte úlohu nasazení ze stránky verze modelu.

Úlohu je možné aktivovat také přímo z uživatelského rozhraní úloh nebo rozhraní API. V parametrech úlohy je potřeba zadat odpovídající název a verzi modelu.

Požadovaná oprávnění

K aktivaci úloh nasazení se vyžadují následující oprávnění:

  • Pokud chce uživatel ručně aktivovat nebo opravit úlohu nasazení pomocí uživatelského rozhraní verze modelu, musí mít oprávnění ÚROVEŇ SPRÁVY BĚHU nebo vyšší v rámci nastavení řízení přístupu ACL na úloze nasazení (stejná oprávnění jsou potřebná k aktivaci úlohy pomocí uživatelského rozhraní pro úlohy).
  • Vzhledem k tomu, že se úloha automaticky spustí při vytvoření nové verze a používá přihlašovací údaje vlastníka modelu, musí mít vlastník modelu v úloze nasazení oprávnění SPRAVOVAT SPUŠTĚNÍ nebo vyšší úrovně oprávnění ACL.

Schválení úlohy nasazení (experimentální)

Databricks poskytuje experimentální schvalovací mechanismus pro úlohy nasazení, který umožňuje proces s lidskou účastí pro ML kanály. Po aktivaci úlohy nasazení se metriky z testovacího spuštění zobrazí na stránce verze modelu. Po kontrole těchto metrik může schvalovatel schválit verzi modelu v uživatelském rozhraní kliknutím na Schválit. Tato funkce používá značky katalogu Unity k určení, jestli má úloha schválení proběhnout nebo selhat. Úkoly schválení jsou identifikovány názvy úkolů, které začínají slovem "schválení" (nerozlišují malá a velká písmena) a úkol se splní, když je značka Unity Catalog nastavena na Approved (buď kliknutím na tlačítko Schválení v uživatelském rozhraní, nebo při ručním nastavení).

Tady je postup, jak proces schvalování funguje:

  1. Počáteční spuštění: První spuštění úlohy nasazení vždy selže u úlohy schválení, protože verze modelu ještě nebyla schválena, a proto nemá požadovanou značku katalogu Unity.

Počáteční spuštění úlohy nasazení vždy selže u úlohy schválení.

  1. Vyhodnocení schválení: Schvalovatel zkontroluje verzi modelu a její metriky vyhodnocení, které se zobrazují na stránce verze modelu. To umožňuje schvalovateli posoudit kvalitu a připravenost verze modelu.

Zkontrolujte metriky pro verzi modelu.

  1. Akce schválení: Pokud schvalovatel považuje verzi modelu za uspokojivou, klikněte na tlačítko Schválit v části bočního panelu úlohy nasazení na stránce verze modelu.

Tlačítko Schválit na stránce Verze modelu na bočním panelu úlohy nasazení

Tato akce automaticky opraví spuštění úlohy a přidá tag Unity Catalog k verzi modelu, kde:

  1. Pokračování úlohy: Opravená úloha nasazení automaticky pokračuje od úlohy schválení. Tentokrát to projde, protože požadovaná značka katalogu Unity je teď k dispozici. Pak pokračuje k následným úkolům, jako je nasazení.

Požadovaná oprávnění

K přidání značek katalogu Unity a aktivaci úloh nasazení se vyžadují následující oprávnění:

  • APPLY TAG v modelu katalogu Unity.
  • MŮŽE ŘÍDIT SPUŠTĚNÍ úlohy nasazení.

Řízené značky pro pokročilá schválení

Můžete také dále určit, kdo má oprávnění ke schválení a použití značek, pomocí zásad řízení značek pro určitý název značky. Pokud použijete politiku správy značek a zadáte APPLY_TAG oprávnění pro uživatele nebo skupinu, můžete:

  • V úloze nasazení máte více nezávislých skupin schválení.
    • Můžete mít například dvě samostatné značky pro samostatná schválení skupin, například: Approval_Legal a Approval_Security kde:
      • Vytvořte zásady pro řízené značky, které dovolí, aby značku nastavil jenom právní tým.
      • Vytvořte další řízené zásady značek, takže značku může nastavit Approval_Security jenom tým zabezpečení.
      • V úloze nasazení máte dva úkoly schvalování odpovídající právnímu a bezpečnostnímu schválení.
      • Udělte oběma týmům oprávnění k APPLY_TAG na modelu, aby mohly nastavit značku, ale mohou schvalovat pouze své vlastní kontroly.
  • Nastavte zásadu značek, která zabrání vlastníku modelu schválit úlohu, aby bylo zajištěno schválení druhou osobou.
  • Standardizovat kontroly schválení napříč metastorem, katalogem a schématem pomocí zásad značek a konzistentních názvů značek.

Zobrazení stavu úlohy nasazení a protokolu aktivit

Po aktivaci úloh nasazení ve verzích modelu je možné aktuální stav těchto nasazení zobrazit na stránce modelu na kartě Přehled . Pod stavem můžete zobrazit historickou aktivitu v protokolu aktivit. Protokol aktivit se také zobrazuje na stránce verze modelu.

Zobrazení stavu úlohy nasazení a protokolu aktivit

Požadovaná oprávnění

K zobrazení úloh nasazení a protokolu aktivit (stejně jako k zobrazení modelu) jsou potřeba následující oprávnění:

  • Provést v rámci modelu katalogu Unity.

Ukázkové poznámkové bloky šablon úloh nasazení

Následující ukázkové poznámkové bloky lze použít jako šablonu k vytvoření jednoduché úlohy nasazení, která se skládá z úkolů vyhodnocení, schválení a nasazení. Nezapomeňte zadat REQUIRED hodnoty v poznámkových blocích pro konfiguraci úlohy nasazení pro váš model.

Poznámkový blok pro hodnocení GenAI

Ukázkový poznámkový blok pro vyhodnocení GenAI

Pořiďte si notebook

Poznámkový blok pro zkušební verzi klasického strojového učení

Ukázkový poznámkový blok pro zkušební verzi klasického strojového učení

Pořiďte si notebook

Záznamník schválení

Ukázkový poznámkový blok schválení

Pořiďte si notebook

Poznámky k nasazení

Ukázkový poznámkový blok nasazení

Pořiďte si notebook

Vytvořte poznámkový blok nasazení úlohy

Ukázkový poznámkový blok pro vytvoření úlohy nasazení

Pořiďte si notebook

Další kroky

Chcete-li se dozvědět více o nových funkcích MLflow 3 a začít, podívejte se na následující článek: