Een beheerde compute-implementatie implementeren en deducteren met code
de modelcatalogus van azure AI Foundry Portal biedt meer dan 1.600 modellen en de meest voorkomende manier om deze modellen te implementeren, is het gebruik van de optie voor beheerde rekenimplementatie, ook wel een beheerde online-implementatie genoemd.
Implementatie van een LLM (Large Language Model) maakt 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 aanroepen voor realtime deductie van generatieve AI-toepassingen, zoals chat en copilot.
In dit artikel leert u hoe u modellen implementeert met behulp van de Azure Machine Learning SDK. In het artikel wordt ook beschreven hoe u deductie uitvoert op het geïmplementeerde model.
De model-id ophalen
U kunt beheerde rekenmodellen implementeren met behulp van de Azure Machine Learning SDK, maar laten we eerst door de modelcatalogus bladeren en de model-id ophalen die u nodig hebt voor implementatie.
Meld u aan bij Azure AI Foundry en ga naar de startpagina .
Selecteer modelcatalogus in de linkerzijbalk.
Selecteer Beheerde berekening in het filter Implementatieopties.
Selecteer een model.
Kopieer de model-id van de detailpagina van het model dat u hebt geselecteerd. Het ziet er ongeveer als volgt uit:
azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16
Model implementeren
We gaan het model implementeren.
Eerst moet u de Azure Machine Learning SDK installeren.
pip install azure-ai-ml
pip install azure-identity
Gebruik deze code om te verifiëren met Azure Machine Learning en een clientobject te maken. 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
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",
)
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 in dit voorbeeld gebruiken we 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.begin_create_or_update(endpoint).wait()
Een implementatie maken. U vindt de model-id in de modelcatalogus.
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.begin_create_or_update(endpoint).result()
De implementatie deductie
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."
]
}
}
Laten we deductie maken met sample_score.json
. Wijzig de locatie 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
Als u automatische schaalaanpassing voor implementaties wilt configureren, gaat u naar Azure Portal, zoekt u de Azure-resource die is getypt Machine learning online deployment
in de resourcegroep van het AI-project en gebruikt u het menu Schalen onder Instelling. Zie Online-eindpunten voor automatische schaalaanpassing in de documentatie van Azure Machine Learning voor meer informatie over automatisch schalen.
Het implementatie-eindpunt verwijderen
Als u implementaties wilt verwijderen in de Azure AI Foundry-portal, selecteert u de knop Verwijderen in het bovenste deelvenster van de pagina met implementatiedetails.
Overwegingen voor quotum
Als u deductie wilt implementeren en uitvoeren met realtime-eindpunten, gebruikt u het kernquotum voor virtuele machines (VM's) dat per regio aan uw abonnement is toegewezen. 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.
Volgende stappen
- Meer informatie over wat u kunt doen in Azure AI Foundry
- Antwoorden krijgen op veelgestelde vragen in het artikel veelgestelde vragen over Azure AI