Udostępnij za pośrednictwem


Jak wdrażać i wnioskować wdrożenie zarządzanego środowiska obliczeniowego przy użyciu kodu

Katalog modeli portalu Azure AI Foundry oferuje ponad 1600 modeli, a typowym sposobem wdrożenia tych modeli jest użycie opcji wdrażania zarządzanego obliczeniowego, która jest czasami nazywana zarządzanym wdrożeniem online.

Wdrożenie dużego modelu językowego (LLM) umożliwia korzystanie z niego w witrynie internetowej, aplikacji lub w innym środowisku produkcyjnym. Wdrożenie zwykle obejmuje hostowanie modelu na serwerze lub w chmurze oraz tworzenie interfejsu API lub innego interfejsu dla użytkowników w celu interakcji z modelem. Można uruchomić wdrożenie na potrzeby wnioskowania w czasie rzeczywistym aplikacji sztucznej inteligencji generatywnej, takich jak czat i copilot.

Z tego artykułu dowiesz się, jak wdrażać modele przy użyciu zestawu Azure Machine Learning SDK. W tym artykule opisano również sposób wnioskowania na wdrożonym modelu.

Wymagania wstępne

  • Subskrypcja platformy Azure z prawidłową formą płatności. Subskrypcje platformy Azure w wersji bezpłatnej lub próbnej nie będą działać. Jeśli nie masz subskrypcji platformy Azure, utwórz płatne konto platformy Azure, aby rozpocząć.

  • Jeśli go nie masz, utwórz projekt oparty na centrum.

  • Zakupy w Marketplace włączone dla subskrypcji platformy Azure. Dowiedz się więcej tutaj.

Pobieranie identyfikatora modelu

Można wdrożyć zarządzane modele obliczeniowe przy użyciu zestawu SDK usługi Azure Machine Learning, ale najpierw przejrzyjmy katalog modeli i uzyskajmy identyfikator modelu potrzebny do wdrożenia.

Wskazówka

Ponieważ możesz dostosować okienko po lewej stronie w portalu azure AI Foundry, możesz zobaczyć inne elementy niż pokazano w tych krokach. Jeśli nie widzisz szukanych danych, wybierz pozycję ... Więcej w dolnej części okienka po lewej stronie.

  1. Zaloguj się do usługi Azure AI Foundry i przejdź do strony głównej.

  2. Wybierz pozycję Katalog modeli na lewym pasku bocznym.

  3. W filtrze Opcje wdrażania wybierz pozycję Zarządzane obliczenia.

    Zrzut ekranu przedstawiający sposób filtrowania według zarządzanych modeli obliczeniowych w wykazie.

  4. Wybieranie modelu.

  5. Skopiuj identyfikator modelu ze strony szczegółów wybranego modelu. Wygląda to mniej więcej tak: azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16

Wdrażanie modelu

  1. Zainstaluj zestaw SDK usługi Azure Machine Learning.

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Uwierzytelnianie za pomocą usługi Azure Machine Learning i tworzenie obiektu klienta. Zastąp symbole zastępcze swoim identyfikatorem subskrypcji, nazwą grupy zasobów i nazwą projektu usługi Azure AI Foundry.

    from azure.ai.ml import MLClient
    from azure.identity import InteractiveBrowserCredential
    
    workspace_ml_client = MLClient(
        credential=InteractiveBrowserCredential,
        subscription_id="your subscription name goes here",
        resource_group_name="your resource group name goes here",
        workspace_name="your project name goes here",
    )
    
  3. Utwórz punkt końcowy. W przypadku opcji wdrażania zarządzanego środowiska obliczeniowego należy utworzyć punkt końcowy przed wdrożeniem modelu. Punkt końcowy można traktować jako kontener, który może pomieścić wiele wdrożeń modelu. Nazwy punktów końcowych muszą być unikatowe w regionie, więc w tym przykładzie użyj znacznika czasu, aby utworzyć unikatową nazwę punktu końcowego.

    import time, sys
    from azure.ai.ml.entities import (
        ManagedOnlineEndpoint,
        ManagedOnlineDeployment,
        ProbeSettings,
    )
    
    # Make the endpoint name unique
    timestamp = int(time.time())
    online_endpoint_name = "customize your endpoint name here" + str(timestamp)
    
    # Create an online endpoint
    endpoint = ManagedOnlineEndpoint(
        name=online_endpoint_name,
        auth_mode="key",
    )
    workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).wait()
    
  4. Utwórz wdrożenie. Zastąp identyfikator modelu w następnym kodzie identyfikatorem modelu skopiowaną ze strony szczegółów modelu wybranego w sekcji Pobierz identyfikator modelu .

    model_name = "azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16" 
    
    demo_deployment = ManagedOnlineDeployment(
        name="demo",
        endpoint_name=online_endpoint_name,
        model=model_name,
        instance_type="Standard_DS3_v2",
        instance_count=2,
        liveness_probe=ProbeSettings(
            failure_threshold=30,
            success_threshold=1,
            timeout=2,
            period=10,
            initial_delay=1000,
        ),
        readiness_probe=ProbeSettings(
            failure_threshold=10,
            success_threshold=1,
            timeout=10,
            period=10,
            initial_delay=1000,
        ),
    )
    workspace_ml_client.online_deployments.begin_create_or_update(demo_deployment).wait()
    endpoint.traffic = {"demo": 100}
    workspace_ml_client.online_endpoints.begin_create_or_update(endpoint).result()
    

Wnioskowanie wdrożenia

  1. Do testowania wnioskowania potrzebne są przykładowe dane JSON. Utwórz sample_score.json przy użyciu poniższego przykładu.

    {
      "inputs": {
        "question": [
          "Where do I live?",
          "Where do I live?",
          "What's my name?",
          "Which name is also used to describe the Amazon rainforest in English?"
        ],
        "context": [
          "My name is Wolfgang and I live in Berlin",
          "My name is Sarah and I live in London",
          "My name is Clara and I live in Berkeley.",
          "The Amazon rainforest (Portuguese: Floresta Amaz\u00f4nica or Amaz\u00f4nia; Spanish: Selva Amaz\u00f3nica, Amazon\u00eda or usually Amazonia; French: For\u00eat amazonienne; Dutch: Amazoneregenwoud), also known in English as Amazonia or the Amazon Jungle, is a moist broadleaf forest that covers most of the Amazon basin of South America. This basin encompasses 7,000,000 square kilometres (2,700,000 sq mi), of which 5,500,000 square kilometres (2,100,000 sq mi) are covered by the rainforest. This region includes territory belonging to nine nations. The majority of the forest is contained within Brazil, with 60% of the rainforest, followed by Peru with 13%, Colombia with 10%, and with minor amounts in Venezuela, Ecuador, Bolivia, Guyana, Suriname and French Guiana. States or departments in four nations contain \"Amazonas\" in their names. The Amazon represents over half of the planet's remaining rainforests, and comprises the largest and most biodiverse tract of tropical rainforest in the world, with an estimated 390 billion individual trees divided into 16,000 species."
        ]
      }
    }
    
  2. Wnioskowanie z sample_score.json. Zmień lokalizację pliku oceniania w następnym kodzie na podstawie miejsca zapisania przykładowego pliku JSON.

    scoring_file = "./sample_score.json" 
    response = workspace_ml_client.online_endpoints.invoke(
        endpoint_name=online_endpoint_name,
        deployment_name="demo",
        request_file=scoring_file,
    )
    response_json = json.loads(response)
    print(json.dumps(response_json, indent=2))
    

Konfigurowanie skalowania automatycznego

Aby skonfigurować skalowanie automatyczne dla wdrożeń, możesz przejść do witryny Azure Portal, zlokalizować zasób platformy Azure wpisany Machine learning online deployment w grupie zasobów projektu sztucznej inteligencji i użyć menu Skalowanie w obszarze Ustawienie. Aby uzyskać więcej informacji na temat skalowania automatycznego, zobacz Autoskalowanie punktów końcowych online w dokumentacji usługi Azure Machine Learning.

Usuwanie punktu końcowego wdrożenia

Aby usunąć wdrożenia w portalu azure AI Foundry, wybierz przycisk Usuń w górnym panelu strony szczegółów wdrożenia.

Zagadnienia dotyczące limitu przydziału

Aby wdrożyć i wykonywać wnioskowanie za pomocą punktów końcowych w czasie rzeczywistym, zużywasz przydział rdzeni maszyn wirtualnych przypisany do twojej subskrypcji na każdy region. Po zarejestrowaniu się w usłudze Azure AI Foundry otrzymasz domyślny limit przydziału maszyn wirtualnych dla kilku rodzin maszyn wirtualnych dostępnych w regionie. Możesz nadal tworzyć wdrożenia, dopóki nie osiągniesz limitu przydziału. Gdy tak się stanie, możesz zażądać zwiększenia limitu przydziału.

  • Dowiedz się więcej o tym, co można zrobić w usłudze Azure AI Foundry
  • Uzyskaj odpowiedzi na często zadawane pytania w artykule Azure AI FAQ (Często zadawane pytania dotyczące sztucznej inteligencji platformy Azure)