Sdílet prostřednictvím


Zabalení a nasazení modelů mimo Azure Machine Learning (Preview)

Modely můžete nasadit mimo Azure Machine Learning pro online obsluhu vytvořením balíčků modelů (Preview). Azure Machine Learning umožňuje vytvořit balíček modelu, který shromažďuje všechny závislosti potřebné k nasazení modelu strojového učení na obslužnou platformu. Balíček modelu můžete přesunout mezi pracovní prostory a dokonce i mimo Azure Machine Learning. Další informace o balíčcích modelů najdete v tématu Balíčky modelů pro nasazení (Preview).

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.

V tomto článku se dozvíte, jak zabalit model a nasadit ho do služby Aplikace Azure Service.

Požadavky

Než budete postupovat podle kroků v tomto článku, ujistěte se, že máte následující požadavky:

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet. Vyzkoušejte bezplatnou nebo placenou verzi služby Azure Machine Learning.

  • Pracovní prostor služby Azure Machine Learning. Pokud ho nemáte, vytvořte si ho pomocí kroků v článku Správa pracovních prostorů .

    Poznámka:

    Pracovní prostory s podporou služby Private Link nepodporují modely balení pro nasazení mimo Azure Machine Learning.

  • Řízení přístupu na základě role v Azure (Azure RBAC) slouží k udělení přístupu k operacím ve službě Azure Machine Learning. Pokud chcete provést kroky v tomto článku, musí mít váš uživatelský účet přiřazenou roli vlastníka nebo přispěvatele pro pracovní prostor Služby Azure Machine Learning nebo vlastní roli. Další informace najdete v tématu Správa přístupu k pracovnímu prostoru Azure Machine Learning.

Příprava systému

Při přípravě systému postupujte podle těchto kroků.

  1. Příklad v tomto článku vychází z ukázek kódu obsažených v úložišti azureml-examples . Pokud chcete příkazy spustit místně, aniž byste museli kopírovat nebo vkládat YAML a další soubory, nejprve naklonujte úložiště a pak změňte adresáře do složky:

    git clone https://github.com/Azure/azureml-examples --depth 1
    cd azureml-examples/cli
    

    Tento článek používá příklad v koncových bodech složek /online/deploy-with-packages/mlflow-model.

  2. Připojte se k pracovnímu prostoru Azure Machine Learning, ve kterém budete pracovat.

    az account set --subscription <subscription>
    az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
    
  3. Balíčky vyžadují registraci modelu v pracovním prostoru nebo v registru služby Azure Machine Learning. V tomto příkladu je v úložišti místní kopie modelu, takže potřebujete model publikovat jenom do registru v pracovním prostoru. Tento krok můžete přeskočit, pokud už je model, který se pokoušíte nasadit, zaregistrovaný.

    MODEL_NAME='heart-classifier-mlflow'
    MODEL_PATH='model'
    az ml model create --name $MODEL_NAME --path $MODEL_PATH --type mlflow_model
    

Nasazení balíčku modelu do služby Aplikace Azure Service

V této části zabalíte dříve zaregistrovaný model MLflow a nasadíte ho do služby Aplikace Azure Service.

  1. Nasazení modelu mimo Azure Machine Learning vyžaduje vytvoření specifikace balíčku. Pokud chcete vytvořit balíček, který je zcela odpojený od služby Azure Machine Learning, zadejte copy režim v konfiguraci modelu. Režim copy říká balíčku, aby zkopíroval artefakty uvnitř balíčku. Následující kód ukazuje, jak určit režim kopírování pro konfiguraci modelu:

    Vytvoření specifikace YAML balíčku:

    package-external.yml

    $schema: http://azureml/sdk-2-0/ModelVersionPackage.json
    target_environment: heart-classifier-mlflow-pkg
    inferencing_server: 
        type: azureml_online
    model_configuration:
        mode: copy
    

    Tip

    Když zadáte konfiguraci modelu pomocí copy vlastnosti režimu , zaručujete, že se všechny artefakty modelu zkopírují do vygenerované image Dockeru místo toho, aby se stáhly z registru modelů Azure Machine Learning, což umožňuje skutečnou přenositelnost mimo Azure Machine Learning. Úplnou specifikaci všech možností při vytváření balíčků naleznete v tématu Vytvoření specifikace balíčku.

  2. Spusťte operaci balíčku.

    az ml model package --name $MODEL_NAME --version $MODEL_VERSION --file package-external.yml
    
  3. Výsledkem operace balíčku je prostředí ve službě Azure Machine Learning. Výhodou tohoto prostředí je, že každé prostředí má odpovídající image Dockeru, kterou můžete použít v externím nasazení. Image jsou hostované ve službě Azure Container Registry. Následující kroky ukazují, jak získáte název vygenerované image:

    1. Přejděte na studio Azure Machine Learning.

    2. Vyberte část Prostředí.

    3. Vyberte kartu Vlastní prostředí.

    4. Vyhledejte prostředí s názvem heart-classifier-mlflow-package, což je název balíčku, který jste právě vytvořili.

    5. Zkopírujte hodnotu, která je v poli Registru kontejneru Azure.

    Snímek obrazovky znázorňující část, ve které se v studio Azure Machine Learning zobrazuje název image registru kontejneru Azure

  4. Teď tento balíček nasaďte ve službě App Service.

    1. Přejděte na web Azure Portal a vytvořte nový prostředek služby App Service.

    2. V průvodci vytvořením vyberte předplatné a skupinu prostředků, které používáte.

    3. V části Podrobnosti instance pojmenujte aplikaci.

    4. Jako možnost Publikovat vyberte kontejner Dockeru.

    5. V operačním systému vyberte Linux.

      Snímek obrazovky znázorňující, jak nakonfigurovat službu App Service tak, aby nasadila vygenerovanou image kontejneru Dockeru

    6. Podle potřeby nakonfigurujte zbytek stránky a vyberte Další.

    7. Přejděte na kartu Dockeru .

    8. V nabídce Možnosti vyberte Jeden kontejner.

    9. Jako zdroj image vyberte Azure Container Registry.

    10. Možnosti registru kontejneru Azure nakonfigurujte následujícím způsobem:

      1. V části Registry vyberte Službu Azure Container Registry přidruženou k pracovnímu prostoru Azure Machine Learning.

      2. V části Obrázek vyberte obrázek, který jste našli v kroku 3(e) tohoto kurzu.

      3. V případě značky vyberte nejnovější.

      Snímek obrazovky znázorňující část Dockeru průvodce, kde je označená image Dockeru přidružená k balíčku.

    11. Podle potřeby nakonfigurujte zbytek průvodce.

    12. Vyberte Vytvořit. Model je teď nasazený ve službě App Service, kterou jste vytvořili.

    13. Způsob vyvolání a získání předpovědí závisí na použitém serveru odvození. V tomto příkladu jste použili server odvozování služby Azure Machine Learning, který vytváří předpovědi pod trasou /score. Další informace o vstupních formátech a funkcích najdete v podrobnostech balíčku azureml-inference-server-http.

    14. Připravte datovou část požadavku. Formát modelu MLflow nasazeného se serverem odvozování ve službě Azure Machine Learning je následující:

      sample-request.json

      {
          "input_data": {
              "columns": [
                  "age", "sex", "cp", "trestbps", "chol", "fbs", "restecg", "thalach", "exang", "oldpeak", "slope", "ca", "thal"
              ],
              "index": [1],
              "data": [
                  [1, 1, 4, 145, 233, 1, 2, 150, 0, 2.3, 3, 0, 2]
              ]
          }
      }
      
    15. Otestujte nasazení modelu a zjistěte, jestli funguje.

      cat -A sample-request.json | curl http://heart-classifier-mlflow-pkg.azurewebsites.net/score \
          --request POST \
          --header 'Content-Type: application/json' \
          --data-binary @-
      

Další krok