Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft samarbetar med Hugging Face för att ta modeller med öppen källkod från Hugging Face Hub till Azure Machine Learning. Hugging Face är skaparen av Transformers, ett allmänt populärt bibliotek för att skapa stora språkmodeller. Hugging Face-modellhubben har tusentals modeller med öppen källkod. Genom att integrera med Azure Machine Learning kan du distribuera valfria modeller med öppen källkod för att skydda och skalbar slutsatsdragningsinfrastruktur på Azure. Du kan söka från tusentals transformatormodeller i Azure Machine Learning-modellkatalogen och enkelt distribuera modeller till hanterad onlineslutpunkt via den guidade guiden. När du distribuerar den hanterade onlineslutpunkten får du ett säkert REST API för att poängsätta din modell i realtid.
Note
Modeller från Hugging Face omfattas av licensvillkor från tredje part som är tillgängliga på sidan Hugging Face-modellinformation. Det är ditt ansvar att följa modellens licensvillkor.
Fördelar med att använda onlineslutpunkter för slutsatsdragning i realtid
Hanterade onlineslutpunkter i Azure Machine Learning hjälper dig att distribuera modeller till kraftfulla PROCESSOR- och GPU-datorer i Azure på ett nyckelfärdigt sätt. Hanterade onlineslutpunkter tar hand om servering, skalning, skydd och övervakning av dina modeller, så att du inte behöver konfigurera och hantera den underliggande infrastrukturen. De virtuella datorerna etableras åt dig när du distribuerar modeller. Du kan ha flera distributioner och dela trafik eller spegla trafik till dessa distributioner. Speglingstrafik hjälper dig att testa nya versioner av modeller på produktionstrafik utan att släppa dem till produktionsmiljöer. Genom att dela upp trafik kan du gradvis öka produktionstrafiken till nya modellversioner medan du observerar prestanda. Med automatisk skalning kan du dynamiskt öka eller rampa ned resurser baserat på arbetsbelastningar. Du kan konfigurera skalning baserat på användningsstatistik, ett specifikt schema eller en kombination av båda. Ett exempel på skalning baserat på användningsmått är att lägga till noder om CPU-användningen blir högre än 70 %. Ett exempel på schemabaserad skalning är att lägga till noder baserat på hög belastning på kontorstid.
Distribuera Hugging Face Hub-modeller med hjälp av Studio
Om du vill hitta en modell som ska distribueras öppnar du modellkatalogen i Azure Machine Learning-studio. Välj Alla filter och välj sedan HuggingFace i avsnittet Filtrera efter samlingar . Välj modellpanelen för att öppna modellsidan.
Distribuera modellen
Välj distributionsalternativet i realtid för att öppna dialogrutan för snabbdistribution. Ange följande alternativ:
- Välj mallen för GPU eller CPU. Cpu-instanstyper är bra för testning och GPU-instanstyper ger bättre prestanda i produktion. Stora modeller får inte plats i en CPU-instanstyp.
- Välj instanstyp. Den här listan över instanser filtreras för att endast visa de som kan distribuera modellen utan att minnet börjar ta slut.
- Välj antalet instanser. En instans räcker för testning, men överväg två eller flera instanser för produktion.
- Du kan också ange en slutpunkt och ett distributionsnamn.
- Välj Distribuera. Sedan navigerar du till slutpunktssidan, vilket kan ta några sekunder. Distributionen tar flera minuter att slutföra baserat på modellstorleken och instanstypen.
Obs! Om du vill distribuera till en befintlig slutpunkt väljer du More options i dialogrutan snabbdistribution och använder guiden för fullständig distribution.
Gated-modeller
Gated-modeller är modeller som kräver godkännande från modellens författare innan de används. Så här använder du följande modeller:
- Ha en huggande ansiktsläsning eller detaljerad token.
- Begär åtkomst via modellens sida på Hugging Face.
- Skapa en anpassad nyckelkoppling med namnet
HuggingFaceTokenConnectionmed nyckelnHF_TOKENoch värdet är din Hugging Face-token, vilket är markerat som hemligt. - Skapa en slutpunkt med
enforce_access_to_default_secret_storesinställt påenabled. - Distribuera modellen med hjälp av den nyligen skapade slutpunkten.
Testa den distribuerade modellen
När distributionen är klar kan du hitta REST-slutpunkten för modellen på sidan slutpunkter . Använd den här slutpunkten för att poängsätta modellen. Du hittar alternativ för att lägga till fler distributioner, hantera trafik och skala slutpunktshubben . Använd fliken Test på slutpunktssidan för att testa modellen med exempelindata. Exempelindata är tillgängliga på modellsidan. Du hittar indataformat, parametrar och exempelindata i Hugging Face hub inferens-API-dokumentationen.
Distribuera HuggingFace-hubbmodeller med hjälp av Python SDK
Hitta den modell som ska distribueras
Bläddra i modellkatalogen i Azure Machine Learning-studio och leta reda på den modell som du vill distribuera. Kopiera det modellnamn som du vill distribuera. Importera de bibliotek som krävs. Modellerna som visas i katalogen visas från HuggingFace registret.
model_id Skapa med hjälp av modellnamnet som du kopierade från modellkatalogen HuggingFace och registret. Du distribuerar bert-base-uncased modellen med den senaste versionen i det här exemplet.
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
)
from azure.identity import DefaultAzureCredential
ml_client = MLClient(
credential=DefaultAzureCredential(),
subscription_id="<your-subscription-id>",
resource_group_name="<your-resource-group>",
workspace_name="<your-workspace-name>"
)
registry_name = "HuggingFace"
model_name = "bert-base-uncased"
model_id = f"azureml://registries/{registry_name}/models/{model_name}/labels/latest"
Distribuera modellen
Skapa en onlineslutpunkt. Skapa sedan distributionen. Slutligen anger du all trafik som ska använda den här distributionen. Du hittar den optimala processorn eller GPU instance_type :n för en modell genom att öppna dialogrutan för snabbdistribution från modellsidan i modellkatalogen. Se till att du använder en instance_type som du har kvot för.
import time
endpoint_name="hf-ep-" + str(int(time.time())) # endpoint name must be unique per Azure region, hence appending timestamp
ml_client.begin_create_or_update(ManagedOnlineEndpoint(name=endpoint_name) ).wait()
ml_client.online_deployments.begin_create_or_update(ManagedOnlineDeployment(
name="demo",
endpoint_name=endpoint_name,
model=model_id,
instance_type="Standard_DS2_v2",
instance_count=1,
)).wait()
endpoint = ml_client.online_endpoints.get(endpoint_name)
endpoint.traffic = {"demo": 100}
ml_client.begin_create_or_update(endpoint).result()
Testa den distribuerade modellen
Skapa en fil med indata som du kan skicka till onlineslutpunkten för bedömning. Kodexemplet i det här avsnittet tillåter indata för fill-mask typen sedan du distribuerade bert-base-uncased modellen. Du hittar indataformat, parametrar och exempelindata i Hugging Face hub inferens-API-dokumentationen.
import json
scoring_file = "./sample_score.json"
with open(scoring_file, "w") as outfile:
outfile.write('{"inputs": ["Paris is the [MASK] of France.", "The goal of life is [MASK]."]}')
response = ml_client.online_endpoints.invoke(
endpoint_name=endpoint_name,
deployment_name="demo",
request_file=scoring_file,
)
response_json = json.loads(response)
print(json.dumps(response_json, indent=2))
Distribuera Hugging Face-hubbmodeller genom att använda CLI
Hitta den modell som ska distribueras
Bläddra i modellkatalogen i Azure Machine Learning-studio och leta reda på den modell som du vill distribuera. Kopiera det modellnamn som du vill distribuera. Modellerna som visas i katalogen visas från HuggingFace registret. Du distribuerar bert-base-uncased modellen med den senaste versionen i det här exemplet.
Distribuera modellen
Du behöver model värdena och instance_type för att distribuera modellen. Du hittar den optimala processorn eller GPU instance_type :n för en modell genom att öppna dialogrutan för snabbdistribution från modellsidan i modellkatalogen. Se till att du använder en instance_type som du har kvot för.
Modellerna som visas i katalogen visas från HuggingFace registret. Du distribuerar bert-base-uncased modellen med den senaste versionen i det här exemplet. Det fullständigt kvalificerade model tillgångs-ID:t baserat på modellnamnet och registret är azureml://registries/HuggingFace/models/bert-base-uncased/labels/latest. Du skapar filen deploy.yml som används för az ml online-deployment create kommandot infogat.
Skapa en onlineslutpunkt. Skapa sedan distributionen.
# create endpoint
endpoint_name="hf-ep-"$(date +%s)
model_name="bert-base-uncased"
az ml online-endpoint create --name $endpoint_name
# create deployment file.
cat <<EOF > ./deploy.yml
name: demo
model: azureml://registries/HuggingFace/models/$model_name/labels/latest
endpoint_name: $endpoint_name
instance_type: Standard_DS3_v2
instance_count: 1
EOF
az ml online-deployment create --file ./deploy.yml --workspace-name $workspace_name --resource-group $resource_group_name
Testa den distribuerade modellen
Skapa en fil med indata som du kan skicka till onlineslutpunkten för bedömning. Hugging Face innehåller ett kodexempel för fill-mask typen för den distribuerade bert-base-uncased modellen. Du hittar indataformatet, parametrarna och exempelindata i api-dokumentationen för Hugging Face Hub-inferens.
scoring_file="./sample_score.json"
cat <<EOF > $scoring_file
{
"inputs": [
"Paris is the [MASK] of France.",
"The goal of life is [MASK]."
]
}
EOF
az ml online-endpoint invoke --name $endpoint_name --request-file $scoring_file
Hugga ansiktsmodellexempelkod
Följ den här länken för att hitta exempelkod för huggande ansiktsmodeller för olika scenarier, inklusive tokenklassificering, översättning, frågesvar och noll skottklassificering.
Felsökning: Distributionsfel och modeller som inte stöds
Hubben HuggingFace har tusentals modeller med hundratals uppdaterade varje dag. Endast de mest populära modellerna i samlingen testas och andra kan misslyckas med något av följande fel.
Gated-modeller
Gated-modeller kräver att användarna samtycker till att dela sin kontaktinformation och acceptera modellägarnas villkor för att få åtkomst till modellen. Försök att distribuera sådana modeller utan att följa föregående steg misslyckas med en KeyError.
Modeller som behöver köra fjärrkod
Modeller använder vanligtvis kod från transformatorernas SDK, men vissa modeller kör kod från modelllagringsplatsen. Sådana modeller måste ange parametern trust_remote_code till True. Följ den här länken om du vill veta mer om hur du använder fjärrkod. Av säkerhetsskäl stöds inte sådana modeller. Försök att distribuera sådana modeller misslyckas med följande fel: ValueError: Loading <model> requires you to execute the configuration file in that repo on your local machine. Make sure you read the code to avoid malicious use, then set the option trust_remote_code=True to remove this error.
Modeller med felaktiga tokenizers
Felaktigt angiven eller saknad tokenizer i modellpaketet kan resultera i OSError: Can't load tokenizer for <model> fel.
Bibliotek som saknas
Vissa modeller behöver ytterligare Python bibliotek. Du kan installera bibliotek som saknas när du kör modeller lokalt. Modeller som behöver särskilda bibliotek utöver standardbiblioteken för transformatorer misslyckas med ModuleNotFoundError eller ImportError fel.
Otillräckligt minne
Om du ser felet OutOfQuota: Container terminated due to insufficient memory kan du prova att använda ett instance_type med mer minne.
Vanliga frågor och svar
Var lagras modellvikterna?
Huggning av ansiktsmodeller visas i Azure Machine Learning modellkatalogen HuggingFace via registret. Hugging Face skapar och hanterar det här registret och gör det tillgängligt för Azure Machine Learning som ett communityregister. Modellvikterna finns inte i Azure. När du distribuerar dessa modeller laddar onlineslutpunkterna på arbetsytan ned vikterna direkt från hubben Hugging Face. Registret HuggingFace i Azure Machine Learning fungerar som en katalog som hjälper dig att identifiera och distribuera Hugging Face Hub-modeller i Azure Machine Learning.
Vilka modeller stöds?
Azure stöder Hugging Face-modeller som uppfyller följande kriterier:
- Modellen har antingen taggarna
Transformers,DiffusersellerSentence-Transformerspå Hugging Face Hub. - Modellen har en uppgift som stöds , till exempel
chat-completion,image-to-textellerembeddings. - Modellvikterna är i Safetensorsformat och modellen kräver inte
trust_remote_code.
Hur distribuerar jag modellerna för batchinferens? För närvarande kan du inte distribuera dessa modeller till batchslutpunkter för batchinferens.
Kan jag använda modeller från HuggingFace registret som indata till jobb så att jag kan finjustera dessa modeller med hjälp av Transformers SDK?
Eftersom modellvikterna inte lagras i HuggingFace registret kan du inte komma åt modellvikter genom att använda dessa modeller som indata till jobb.
Hur får jag stöd om mina distributioner misslyckas eller om slutsatsdragningen inte fungerar som förväntat?HuggingFace är ett community-register och Microsoft supporten täcker inte det. Granska distributionsloggarna för att ta reda på om problemet är relaterat till Azure Machine Learning plattform eller specifikt för huggande ansiktstransformatorer. Kontakta Microsofts support för eventuella plattformsproblem som att inte kunna skapa en onlineslutpunkt eller autentisering till slutpunktens REST API fungerar inte. För transformeringsspecifika problem skapar du ett problem på GitHub, använder forumet HuggingFace eller använder Stöd för HuggingFace.
Vad är ett communityregister? Betrodda Azure Machine Learning partner skapar communityregister som Azure Machine Learning register. Alla Azure Machine Learning användare kan komma åt dem.
Var kan användare skicka in frågor och frågor om Hugging Face i Azure Machine Learning? Skicka in dina frågor i diskussionsforumet för Azure Machine Learning eller öppna ett GitHub-problem.
Regional tillgänglighet
Hugging Face Collection är för närvarande endast tillgängligt i alla regioner i det offentliga molnet.