Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Microsoft samengewerkt met Hugging Face om opensource-modellen van Hugging Face Hub naar Azure Machine Learning te brengen. Hugging Face is de maker van Transformers, een veelgebruikte bibliotheek voor het bouwen van grote taalmodellen. De Hugging Face-modelhub heeft duizenden open-sourcemodellen. Door te integreren met Azure Machine Learning, kunt u opensource-modellen van uw keuze implementeren om een veilige en schaalbare deductie-infrastructuur op Azure te beveiligen. U kunt met gemak zoeken vanuit duizenden transformatormodellen in de Azure Machine Learning-modelcatalogus en modellen implementeren op een beheerd online-eindpunt via de begeleide wizard. Wanneer u het beheerde online-eindpunt implementeert, krijgt u een beveiligde REST API om uw model in realtime te scoren.
Note
Modellen van Hugging Face zijn onderhevig aan licentievoorwaarden van derden die beschikbaar zijn op de pagina details van het Hugging Face-model. Het is uw verantwoordelijkheid om te voldoen aan de licentievoorwaarden van het model.
Voordelen van het gebruik van online-eindpunten voor realtime deductie
Beheerde online-eindpunten in Azure Machine Learning helpen u modellen op krachtige CPU- en GPU-machines in Azure op een kant-en-klare manier te implementeren. Beheerde online-eindpunten zorgen voor het leveren, schalen, beveiligen en bewaken van uw modellen, zodat u de onderliggende infrastructuur niet hoeft in te stellen en te beheren. De virtuele machines worden voor u ingericht wanneer u modellen implementeert. U kunt meerdere implementaties hebben en verkeer splitsen of verkeer spiegelen naar deze implementaties. Gespiegeld verkeer helpt u bij het testen van nieuwe versies van modellen op productieverkeer zonder ze uit te brengen in productieomgevingen. Door verkeer te splitsen, kunt u productieverkeer geleidelijk verhogen naar nieuwe modelversies terwijl u de prestaties bekijkt. Met automatisch schalen kunt u resources dynamisch omhoog of omlaag schalen op basis van workloads. U kunt schalen configureren op basis van metrische gegevens over gebruik, een specifiek schema of een combinatie van beide. Een voorbeeld van schalen op basis van metrische gebruiksgegevens is het toevoegen van knooppunten als het CPU-gebruik hoger is dan 70%. Een voorbeeld van schaalaanpassing op basis van een planning is het toevoegen van knooppunten op basis van piekuren.
Hugging Face Hub-modellen implementeren met behulp van Studio
Als u een te implementeren model wilt vinden, opent u de modelcatalogus in Azure Machine Learning-studio. Selecteer Alle filters en selecteer vervolgens HuggingFace in de sectie Filteren op verzamelingen . Selecteer de modeltegel om de modelpagina te openen.
Model implementeren
Kies de optie voor realtime-implementatie om het dialoogvenster Snelle implementatie te openen. Geef de volgende opties op:
- Selecteer de sjabloon voor GPU of CPU. CPU-exemplaartypen zijn geschikt voor testen en GPU-exemplaartypen bieden betere prestaties in productie. Grote modellen passen niet in een type CPU-exemplaar.
- Selecteer het exemplaartype. Deze lijst met exemplaren wordt gefilterd om alleen de exemplaren weer te geven die het model kunnen implementeren zonder dat er onvoldoende geheugen beschikbaar is.
- Selecteer het aantal exemplaren. Eén exemplaar is voldoende voor het testen, maar overweeg twee of meer exemplaren voor productie.
- Geef eventueel een eindpunt en implementatienaam op.
- Selecteer Implementeren. Vervolgens gaat u naar de eindpuntpagina. Dit kan enkele seconden duren. Het uitvoeren van de implementatie duurt enkele minuten op basis van de modelgrootte en het exemplaartype.
Opmerking: Als u wilt implementeren naar een bestaand eindpunt, selecteert u More options in het dialoogvenster Snelle implementatie en gebruikt u de volledige implementatiewizard.
Gated-modellen
Gated-modellen zijn modellen waarvoor goedkeuring van de auteur van het model is vereist voordat ze worden gebruikt. Ga als volgt te werk om deze modellen te gebruiken:
- Lees of fijnmazige token met een hugging Face.
- Vraag toegang aan via de pagina van het model op Hugging Face.
- Maak een aangepaste sleutelverbinding genaamd
HuggingFaceTokenConnectionmet de sleutelHF_TOKENen de waarde van uw Hugging Face-token als geheim gemarkeerd. - Maak een eindpunt met
enforce_access_to_default_secret_storesde set openabled. - Implementeer het model met behulp van het zojuist gemaakte eindpunt.
Het geïmplementeerde model testen
Wanneer de implementatie is voltooid, vindt u het REST-eindpunt voor het model op de pagina eindpunten . Gebruik dit eindpunt om het model te scoren. U vindt opties voor het toevoegen van meer implementaties, het beheren van verkeer en het schalen van de Endpoints-hub . Gebruik het tabblad Testen op de eindpuntpagina om het model te testen met voorbeeldinvoer. Voorbeeldinvoer is beschikbaar op de modelpagina. U vindt invoerindeling, parameters en voorbeeldinvoer in de deductie-API-documentatie van de Hugging Face-hub.
HuggingFace-hubmodellen implementeren met behulp van Python SDK
Het model zoeken dat moet worden geïmplementeerd
Blader door de modelcatalogus in Azure Machine Learning-studio en zoek het model dat u wilt implementeren. Kopieer de modelnaam die u wilt implementeren. Importeer de vereiste bibliotheken. De modellen die in de catalogus worden weergegeven, worden weergegeven in het HuggingFace register. Maak de model_id modelnaam die u hebt gekopieerd uit de modelcatalogus en het HuggingFace register. U implementeert het bert-base-uncased model met de nieuwste versie in dit voorbeeld.
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"
Model implementeren
Maak een online-eindpunt. Maak vervolgens de implementatie. Stel ten slotte al het verkeer in om deze implementatie te gebruiken. U vindt de optimale CPU of GPU instance_type voor een model door het dialoogvenster snelle implementatie te openen vanaf de modelpagina in de modelcatalogus. Zorg ervoor dat u een instance_type quotum gebruikt waarvoor u een quotum hebt.
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()
Het geïmplementeerde model testen
Maak een bestand met invoer die u kunt indienen bij het online-eindpunt voor scoren. Met het codevoorbeeld in deze sectie kan het type worden ingevoerd fill-mask sinds u het bert-base-uncased model hebt geïmplementeerd. U vindt invoerindeling, parameters en voorbeeldinvoer in de deductie-API-documentatie van de Hugging Face-hub.
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))
Hugging Face-hubmodellen implementeren met behulp van CLI
Het model zoeken dat moet worden geïmplementeerd
Blader door de modelcatalogus in Azure Machine Learning-studio en zoek het model dat u wilt implementeren. Kopieer de modelnaam die u wilt implementeren. De modellen die in de catalogus worden weergegeven, worden weergegeven in het HuggingFace register. U implementeert het bert-base-uncased model met de nieuwste versie in dit voorbeeld.
Model implementeren
U hebt de model en instance_type waarden nodig om het model te implementeren. U vindt de optimale CPU of GPU instance_type voor een model door het dialoogvenster snelle implementatie te openen vanaf de modelpagina in de modelcatalogus. Zorg ervoor dat u een instance_type quotum gebruikt waarvoor u een quotum hebt.
De modellen die in de catalogus worden weergegeven, worden weergegeven in het HuggingFace register. U implementeert het bert-base-uncased model met de nieuwste versie in dit voorbeeld. De volledig gekwalificeerde model asset-id op basis van de modelnaam en het register is azureml://registries/HuggingFace/models/bert-base-uncased/labels/latest. U maakt het deploy.yml bestand dat wordt gebruikt voor de az ml online-deployment create inline-opdracht.
Maak een online-eindpunt. Maak vervolgens de implementatie.
# 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
Het geïmplementeerde model testen
Maak een bestand met invoer die u kunt indienen bij het online-eindpunt voor scoren. Face hugging biedt een codevoorbeeldinvoer voor het fill-mask type voor het geïmplementeerde bert-base-uncased model. U vindt de invoerindeling, parameters en voorbeeldinvoer in de api voor deductie-API voor Hugging Face-hubs.
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
Voorbeeldcode voor Face-model knuffelen
Volg deze koppeling om voorbeeldcode voor het gezichtsmodel te vinden voor verschillende scenario's, waaronder tokenclassificatie, vertaling, vraagantwoorden en classificatie van nul shots.
Probleemoplossing: Implementatiefouten en niet-ondersteunde modellen
De HuggingFace-hub heeft duizenden modellen met honderden die elke dag worden bijgewerkt. Alleen de populairste modellen in de verzameling worden getest en andere kunnen mislukken met een van de volgende fouten.
Gated-modellen
Voor gated-modellen moeten gebruikers ermee akkoord gaan om hun contactgegevens te delen en de voorwaarden van de modeleigenaren te accepteren voor toegang tot het model. Als u dergelijke modellen probeert te implementeren zonder de voorgaande stappen goed te volgen, mislukt het met een KeyError.
Modellen die externe code moeten uitvoeren
Modellen gebruiken doorgaans code van de transformatieprogramma-SDK, maar sommige modellen voeren code uit vanuit de modelopslagplaats. Dergelijke modellen moeten de parameter trust_remote_code instellen op True. Volg deze koppeling voor meer informatie over het gebruik van externe code. Om veiligheidsredenen worden dergelijke modellen niet ondersteund. Het implementeren van dergelijke modellen mislukt met de volgende fout: 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.
Modellen met onjuiste tokenizers
Onjuist opgegeven of ontbrekende tokenizer in het modelpakket kan leiden tot OSError: Can't load tokenizer for <model> een fout.
Ontbrekende bibliotheken
Sommige modellen hebben extra Python bibliotheken nodig. U kunt ontbrekende bibliotheken installeren wanneer u modellen lokaal uitvoert. Modellen die speciale bibliotheken nodig hebben buiten de standaardtransformatiebibliotheken, mislukken met ModuleNotFoundError of ImportError fout.
Onvoldoende geheugen
Als u de OutOfQuota: Container terminated due to insufficient memory fout ziet, kunt u proberen een instance_type met meer geheugen te gebruiken.
Veelgestelde vragen
Waar worden de modelgewichten opgeslagen?
Het knuffelen van Face-modellen wordt weergegeven in de Azure Machine Learning modelcatalogus via het HuggingFace register. Door Face te knuffelen wordt dit register gemaakt en beheerd en wordt het beschikbaar gemaakt voor Azure Machine Learning als communityregister. De modelgewichten worden niet gehost in Azure. Wanneer u deze modellen implementeert, downloaden de online-eindpunten in uw werkruimte de gewichten rechtstreeks vanuit de Hugging Face-hub. Het HuggingFace register in Azure Machine Learning werkt als catalogus om u te helpen hugging Face-hubmodellen in Azure Machine Learning te detecteren en te implementeren.
Welke modellen worden ondersteund?
Azure ondersteunt Hugging Face-modellen die voldoen aan de volgende criteria:
- Het model bevat de
Transformerslabels ofDiffusersSentence-Transformerstags op Hugging Face Hub. - Het model heeft een ondersteunde taak , zoals
chat-completion,image-to-textofembeddings. - De modelgewichten zijn in de Safetensors-indeling en het model vereist
trust_remote_codeniet.
Hoe implementeer ik de modellen voor batchdeductie? Momenteel kunt u deze modellen niet implementeren op batch-eindpunten voor batchdeductie.
Kan ik modellen uit het HuggingFace register gebruiken als invoer voor taken, zodat ik deze modellen kan verfijnen met behulp van de transformator-SDK?
Omdat de modelgewichten niet worden opgeslagen in het HuggingFace register, hebt u geen toegang tot modelgewichten door deze modellen als invoer voor taken te gebruiken.
Hoe krijg ik ondersteuning als mijn implementaties mislukken of deductie niet werkt zoals verwacht?HuggingFace is een communityregister en Microsoft ondersteuning heeft er geen betrekking op. Bekijk de implementatielogboeken om erachter te komen of het probleem is gerelateerd aan Azure Machine Learning platform of specifiek voor Hugging Face-transformaties. Neem contact op met de ondersteuning van Microsoft voor platformproblemen, zoals het niet in staat zijn om een online-eindpunt te maken of als de verificatie van een REST API-eindpunt niet werkt. Voor specifieke problemen met transformatoren maakt u een probleem op GitHub, gebruikt u het HuggingFace-forum of gebruikt u HuggingFace-ondersteuning.
Wat is een communityregister? Vertrouwde Azure Machine Learning partners maken communityregisters als Azure Machine Learning registers. Alle Azure Machine Learning gebruikers hebben toegang tot hen.
Waar kunnen gebruikers vragen en problemen met betrekking tot Hugging Face indienen in Azure Machine Learning? Dien uw vragen in op het Azure Machine Learning-discussieforum of open een GitHub-probleem.
Regionale beschikbaarheid
De Hugging Face Collection is momenteel alleen beschikbaar in alle regio's van de openbare cloud.