Dela via


Så här distribuerar och härleder du med en hanterad beräkningsdistribution

Azure AI Foundry-portalens modellkatalog erbjuder över 1 600 modeller. Ett vanligt sätt att distribuera dessa modeller är att använda distributionsalternativet för hanterad beräkning. Det här alternativet kallas även ibland för en hanterad onlinedistribution.

När du distribuerar en stor språkmodell (LLM) gör du den tillgänglig för användning på en webbplats, ett program eller en annan produktionsmiljö. Distribution innebär vanligtvis att vara värd för modellen på en server eller i molnet och skapa ett API eller annat gränssnitt för användare att interagera med modellen. Du kan anropa distributionen för realtidsinferens av generativa AI-program som chatt och assistent.

I den här artikeln lär du dig att distribuera modeller med distributionsalternativet för hanterad beräkning och att utföra slutsatsdragning för den distribuerade modellen.

Förutsättningar

Hitta din modell i modellkatalogen

  1. Logga in på Azure AI Foundry.
  2. Om du inte redan är med i projektet väljer du det.
  3. Välj Modellkatalog i det vänstra fönstret.
  1. I filtret Distributionsalternativ väljer du Hanterad beräkning.

    Tips/Råd

    Eftersom du kan anpassa det vänstra fönstret i Azure AI Foundry-portalen kan du se andra objekt än vad som visas i de här stegen. Om du inte ser det du letar efter väljer du ... Mer längst ned i det vänstra fönstret.

    En skärmbild av modellkatalogen som visar hur du filtrerar efter modeller som kan distribueras via hanterad beräkning.

  2. Välj en modell för att öppna modellkortet. I den här artikeln använder du modellen deepset-roberta-base-squad2.

Distribuera modellen

  1. På modellens sida väljer du Använd den här modellen för att öppna distributionsfönstret.

  2. Distributionsfönstret är förfyllt med vissa val och parametervärden. Du kan antingen behålla dem eller ändra dem efter behov. Du kan också välja en befintlig slutpunkt för distributionen eller skapa en ny. I det här exemplet anger du antalet instanser och 1 skapar en ny slutpunkt för distributionen.

    Skärmbild av distributionskonfigurationsskärmen för hanterad beräkningsdistribution i Azure AI Foundry.

  3. Välj Distribuera för att skapa distributionen. Det kan ta några minuter att skapa processen. När den är klar öppnar portalen modelldistributionssidan.

    Tips/Råd

    Om du vill se slutpunkter som distribuerats till projektet går du till avsnittet Mina tillgångar i den vänstra rutan och väljer Modeller + slutpunkter.

  4. Den skapade slutpunkten använder nyckelautentisering för auktorisering. Följ dessa steg för att hämta de nycklar som är associerade med en viss slutpunkt:

    1. Välj distributionen och notera slutpunktens mål-URI och nyckel.
    2. Använd dessa autentiseringsuppgifter för att anropa distributionen och generera förutsägelser.

Använda distributioner

När du har skapat distributionen följer du de här stegen för att använda den:

  1. Välj Modeller + slutpunkter under avsnittet Mina tillgångar i ditt Azure AI Foundry-projekt.
  2. Välj din distribution på fliken Modelldistributioner .
  3. Gå till fliken Test för exempelinferens till slutpunkten.
  4. Gå tillbaka till fliken Information för att kopiera distributionens "Mål-URI", som du kan använda för att köra slutsatsdragning med kod.
  5. Gå till fliken Förbruka i distributionen för att hitta kodexempel för förbrukning.
  1. Kopiera modell-ID:t från informationssidan för den modell som du har valt. Det ser ut så här för den valda modellen: azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/17.

Distribuera modellen

  1. Installera Azure Machine Learning SDK.

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Autentisera med Azure Machine Learning och skapa ett klientobjekt. Ersätt platshållarna med ditt prenumerations-ID, resursgruppsnamn och Azure AI Foundry-projektnamn.

    from azure.ai.ml import MLClient
    from azure.identity import InteractiveBrowserCredential
    
    workspace_ml_client = MLClient(
        credential=InteractiveBrowserCredential,
        subscription_id="your subscription ID goes here",
        resource_group_name="your resource group name goes here",
        workspace_name="your project name goes here",
    )
    
  3. Skapa en slutpunkt. För alternativet för hanterad beräkningsdistribution måste du skapa en slutpunkt före en modellimplementering. Tänk på en slutpunkt som en container som kan innehålla flera modelldistributioner. Slutpunktsnamnen måste vara unika i en region, så i det här exemplet använder du tidsstämpeln för att skapa ett unikt slutpunktsnamn.

    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. Skapa en distribution. Ersätt modell-ID:t i nästa kod med modell-ID:t som du kopierade från informationssidan för den modell som du valde i avsnittet Hitta din modell i modellkatalogen .

    model_name = "azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/17" 
    
    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()
    

Inferens av implementeringen

  1. Du behöver ett exempel på json-data för att testa slutsatsdragning. Skapa sample_score.json med följande exempel.

    {
      "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. Inferens med sample_score.json. Ändra platsen för bedömningsfilen i nästa kod, baserat på var du sparade json-exempelfilen.

    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))
    

Konfigurera automatisk skalning

Följ dessa steg för att konfigurera automatisk skalning för distributioner:

  1. Logga in på Azure-portalen.
  2. Leta upp Azure-resurstypen Machine learning online deployment för den modell som du just distribuerade i resursgruppen för AI-projektet.
  3. Välj Inställningar>Skalning i det vänstra fönstret.
  4. Välj Anpassad autoskalning och konfigurera inställningar för autoskalning. Mer information om automatisk skalning finns i Autoskalning av onlineslutpunkter i Azure Machine Learning-dokumentationen.

Ta bort distributionen

Om du vill ta bort distributioner i Azure AI Foundry-portalen väljer du Ta bort distribution på den översta panelen på sidan med distributionsinformation.

Kvotöverväganden

Om du vill distribuera och utföra slutsatsdragning med realtidsslutpunkter använder du kärnkvoten för virtuell dator (VM) som Azure tilldelar din prenumeration per region. När du registrerar dig för Azure AI Foundry får du en standardkvot för virtuella datorer för flera vm-familjer som är tillgängliga i regionen. Du kan fortsätta att skapa distributioner tills du når din kvotgräns. När det händer kan du begära en kvotökning.