Delen via


Implementeren en afleiden van een beheerde rekenimplementatie

De modelcatalogus van azure AI Foundry Portal biedt meer dan 1.600 modellen. Een veelgebruikte manier om deze modellen te implementeren, is het gebruik van de optie voor de implementatie van beheerde berekeningen. Deze optie wordt ook wel een beheerde online-implementatie genoemd.

Wanneer u een LLM (Large Language Model) implementeert, maakt u het beschikbaar voor gebruik in een website, een toepassing of een andere productieomgeving. Implementatie omvat doorgaans het hosten van het model op een server of in de cloud en het maken van een API of een andere interface voor gebruikers om met het model te communiceren. U kunt de implementatie starten voor inferentie in realtime van generatieve AI-toepassingen, zoals chat en copilot.

In dit artikel leert u hoe u modellen implementeert met de optie voor beheerde rekenimplementatie en om deductie uit te voeren op het geïmplementeerde model.

Vereiste voorwaarden

Uw model zoeken in de modelcatalogus

  1. Meld u aan bij Azure AI Foundry.
  2. Als u nog niet in uw project bent, selecteert u het.
  3. Selecteer modelcatalogus in het linkerdeelvenster.
  1. Selecteer Beheerde berekening in het filter Implementatieopties.

    Aanbeveling

    Omdat u het linkerdeelvenster in de Azure AI Foundry-portal kunt aanpassen, ziet u mogelijk andere items dan in deze stappen wordt weergegeven. Als u niet ziet wat u zoekt, selecteert u ... Meer onder aan het linkerdeelvenster.

    Een schermopname van de modelcatalogus waarin wordt getoond hoe u kunt filteren op modellen die kunnen worden geïmplementeerd via beheerde berekeningen.

  2. Selecteer een model om de modelkaart te openen. In dit artikel gebruikt u het model deepset-roberta-base-squad2.

Model implementeren

  1. Selecteer Op de pagina van het model de optie Dit model gebruiken om het implementatievenster te openen.

  2. Het implementatievenster wordt vooraf gevuld met enkele selecties en parameterwaarden. U kunt ze behouden of naar wens wijzigen. U kunt ook een bestaand eindpunt voor de implementatie selecteren of een nieuw eindpunt maken. Geef een aantal exemplaren op van 1 voor dit voorbeeld en maak een nieuw implementatie-eindpunt.

    Schermopname van het scherm voor de implementatieconfiguratie voor beheerde compute-implementatie in Azure AI Foundry.

  3. Selecteer Implementeren om uw implementatie te maken. Het aanmaakproces kan enkele minuten duren. Wanneer dit is voltooid, opent de portal de pagina voor modelimplementatie.

    Aanbeveling

    Als u eindpunten wilt zien die in uw project zijn geïmplementeerd, gaat u naar de sectie Mijn assets van het linkerdeelvenster en selecteert u Modellen en eindpunten.

  4. Het gemaakte eindpunt maakt gebruik van sleutelverificatie voor autorisatie. Volg deze stappen om de sleutels op te halen die zijn gekoppeld aan een bepaald eindpunt:

    1. Selecteer de implementatie en noteer de doel-URI en sleutel van het eindpunt.
    2. Gebruik deze referenties om de implementatie aan te roepen en voorspellingen te genereren.

Gebruik implementaties

Nadat u de implementatie hebt gemaakt, volgt u deze stappen om deze te gebruiken:

  1. Selecteer Modellen en eindpunten onder de sectie Mijn assets in uw Azure AI Foundry-project.
  2. Selecteer uw implementatie op het tabblad Modelimplementaties .
  3. Ga naar het tabblad Testen voor voorbeelddeductie naar het eindpunt.
  4. Ga terug naar het tabblad Details om de doel-URI van de implementatie te kopiëren, die u kunt gebruiken om deductie uit te voeren met code.
  5. Ga naar het tabblad Verbruik van de implementatie om codevoorbeelden voor verbruik te vinden.
  1. Kopieer de model-id van de detailpagina van het model dat u hebt geselecteerd. Het ziet er als volgt uit voor het geselecteerde model: azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/17.

Model implementeren

  1. Installeer de Azure Machine Learning SDK.

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Verifieer met Azure Machine Learning en maak een clientobject. Vervang de tijdelijke aanduidingen door de abonnements-id, de naam van de resourcegroep en de naam van het Azure AI Foundry-project.

    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. Maak een eindpunt. Voor de optie voor de implementatie van beheerde berekeningen moet u een eindpunt maken vóór een modelimplementatie. U kunt een eindpunt beschouwen als een container die meerdere modelimplementaties kan bevatten. De eindpuntnamen moeten uniek zijn in een regio, dus gebruik in dit voorbeeld de tijdstempel om een unieke eindpuntnaam te maken.

    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. Een implementatie maken. Vervang de model-id in de volgende code door de model-id die u hebt gekopieerd van de detailpagina van het model dat u hebt geselecteerd in de sectie Uw model zoeken in de sectie Modelcatalogus .

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

De inferentie van de implementatie

  1. U hebt een JSON-voorbeeldgegevens nodig om deductie te testen. Maak sample_score.json met het volgende voorbeeld.

    {
      "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. Inferentie met sample_score.json. Wijzig de locatie van het scorebestand in de volgende code, op basis van waar u het json-voorbeeldbestand hebt opgeslagen.

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

Automatische schaalaanpassing configureren

Voer de volgende stappen uit om automatische schaalaanpassing voor implementaties te configureren:

  1. Meld u aan bij het Azure-portaal.
  2. Zoek het Azure-resourcetype Machine learning online deployment voor het model dat u zojuist hebt geïmplementeerd in de resourcegroep van het AI-project.
  3. Selecteer Instellingen>Schalen in het linkerdeelvenster.
  4. Selecteer Aangepaste automatische schaalaanpassing en configureer instellingen voor automatische schaalaanpassing. Zie Automatisch schalen van online-eindpunten in de documentatie van Azure Machine Learning voor meer informatie over autoschalen.

De implementatie verwijderen

Als u implementaties in de Azure AI Foundry-portal wilt verwijderen, selecteert u Implementatie verwijderen in het bovenste deelvenster van de pagina met implementatiedetails.

Overwegingen voor quotum

Als u inferentie wilt implementeren en uitvoeren met realtime-eindpunten, gebruikt u het kernquotum voor virtuele machines (VM's) dat Azure per regio toewijst aan uw abonnement. Wanneer u zich registreert voor Azure AI Foundry, ontvangt u een standaard-VM-quotum voor verschillende VM-families die beschikbaar zijn in de regio. U kunt implementaties blijven maken totdat u de quotumlimiet bereikt. Zodra dat gebeurt, kunt u een quotumverhoging aanvragen.