Zabalení a nasazení modelů mimo Azure Machine Učení (Preview)

Modely můžete nasadit mimo azure Machine Učení pro online obsluhu vytvořením balíčků modelů (Preview). Azure Machine Učení 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 službu Azure Machine Učení. 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 Učení.

  • 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 službu Azure Machine Učení.

  • Ří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 azure machine Učení nebo vlastní roli. Další informace najdete v tématu Správa přístupu k pracovnímu prostoru Azure Machine Učení.

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řipojení do pracovního prostoru Azure Machine Učení, kde 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 Učení Azure Machine. 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 Učení vyžaduje vytvoření specifikace balíčku. Pokud chcete vytvořit balíček, který je zcela odpojený od azure machine Učení, 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 Učení, což umožňuje skutečnou přenositelnost mimo Azure Machine Učení. Ú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 Učení. 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.

    A screenshot showing the section where the Azure container registry image name is displayed in Azure Machine Learning studio.

  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.

      A screenshot showing how to configure the app service to deploy the generated docker container image.

    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 Učení.

      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ší.

      A screenshot showing the section Docker of the wizard, where the docker image associated with the package is indicated.

    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 azure machine Učení odvozovací server, 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 s azure machine Učení odvozovacím serverem 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