Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Firma Microsoft nawiązała współpracę z Hugging Face, aby udostępnić modele open source z centrum usługi Hugging Face do usługi Azure Machine Learning. Przytulanie twarzy jest twórcą Transformers, powszechnie popularnej biblioteki do tworzenia dużych modeli językowych. Centrum modelu Hugging Face, które ma tysiące modeli typu open source. Integracja z usługą Azure Machine Learning umożliwia wdrażanie modeli typu open source wybranego w celu zabezpieczenia i skalowalnej infrastruktury wnioskowania na platformie Azure. Możesz wyszukiwać tysiące modeli przekształcania w katalogu modeli usługi Azure Machine Learning i wdrażać modele w zarządzanym punkcie końcowym online z łatwością za pomocą kreatora z przewodnikiem. Po wdrożeniu zarządzany punkt końcowy online zapewnia bezpieczny interfejs API REST do oceniania modelu w czasie rzeczywistym.
Note
Modele z funkcji Hugging Face podlegają postanowieniom licencyjnym innych firm dostępnym na stronie szczegółów modelu rozpoznawania twarzy Hugging. Użytkownik ponosi odpowiedzialność za przestrzeganie postanowień licencyjnych modelu.
Zalety korzystania z punktów końcowych online na potrzeby wnioskowania w czasie rzeczywistym
Zarządzane punkty końcowe online w usłudze Azure Machine Learning ułatwiają wdrażanie modeli na zaawansowanych maszynach z procesorem CPU i procesorem GPU na platformie Azure w sposób zaawansowany. Zarządzane punkty końcowe online oferują obsługę, skalowanie, zabezpieczanie i monitorowanie modeli, uwalniając Cię od konieczności konfigurowania infrastruktury bazowej i zarządzania nią. Maszyny wirtualne są aprowidowane w Twoim imieniu podczas wdrażania modeli. Możesz mieć wiele wdrożeń i podzielić ruch lub zrcadlić ruch między tymi wdrożeniami. Ruch dublowania pomaga przetestować nowe wersje modeli w ruchu produkcyjnym bez wydawania ich środowisk produkcyjnych. Dzielenie ruchu pozwala stopniowo zwiększać ruch produkcyjny do nowych wersji modelu przy jednoczesnym obserwowaniu wydajności. Automatyczne skalowanie umożliwia dynamiczne zwiększanie lub zwiększanie zasobów na podstawie obciążeń. Skalowanie można skonfigurować na podstawie metryk użycia, określonego harmonogramu lub kombinacji obu tych elementów. Przykładem skalowania na podstawie metryk wykorzystania jest dodanie węzłów, jeśli użycie procesora CPU przekroczy 70%. Przykładem skalowania opartego na harmonogramie jest dodanie węzłów w oparciu o szczytowe godziny pracy.
Wdrażanie modeli koncentratora HuggingFace przy użyciu programu Studio
Aby znaleźć model do wdrożenia, otwórz katalog modeli w usłudze Azure Machine Learning Studio. Wybierz pozycję "Wszystkie filtry", a następnie wybierz pozycję "HuggingFace" w sekcji Filtruj według kolekcji. Wybierz kafelek modelu, aby otworzyć stronę modelu.
Wdrażanie modelu
Wybierz opcję wdrażania w czasie rzeczywistym, aby otworzyć okno dialogowe szybkiego wdrażania. Podaj następujące opcje:
- Wybierz szablon procesora GPU lub procesora CPU. Typy wystąpień procesora CPU są dobre do testowania, a typy wystąpień procesora GPU oferują lepszą wydajność w środowisku produkcyjnym. Modele, które są duże, nie mieszczą się w typie wystąpienia procesora CPU.
- Wybierz typ wystąpienia. Ta lista wystąpień jest filtrowana w dół do tych, które model ma zostać wdrożony bez braku pamięci.
- Wybierz liczbę wystąpień. Jedno wystąpienie jest wystarczające do testowania, ale zalecamy rozważenie co najmniej dwóch wystąpień w środowisku produkcyjnym.
- Opcjonalnie określ punkt końcowy i nazwę wdrożenia.
- Wybierz pozycję Wdróż. Następnie nastąpi przejście do strony punktu końcowego, co może potrwać kilka sekund. Wdrożenie trwa kilka minut na podstawie rozmiaru modelu i typu wystąpienia.
Uwaga: jeśli chcesz wdrożyć w istniejącym punkcie końcowym, wybierz pozycję More options w oknie dialogowym szybkiego wdrażania i użyj kreatora pełnego wdrożenia.
Modele bramowane
Modele z ograniczonym dostępem to modele, dla których przed użyciem należy uzyskać zgodę autora. Aby użyć:
- Skorzystaj z Hugging Face do odczytywania lub przetwarzania szczegółowych tokenów.
- Poproś o dostęp za pośrednictwem strony modelu na Hugging Face
- Utwórz niestandardowe połączenie klucza o nazwie
HuggingFaceTokenConnectionz kluczemHF_TOKENi wartością tokenu Hugging Face oznaczoną jako wpis tajny. - Utwórz punkt końcowy z wartością
enforce_access_to_default_secret_storesenabled - Wdrażanie modelu przy użyciu nowo utworzonego punktu końcowego
Testowanie wdrożonego modelu
Po zakończeniu wdrażania można znaleźć punkt końcowy REST dla modelu na stronie punktów końcowych, który może służyć do oceniania modelu. Dostępne są opcje dodawania kolejnych wdrożeń, zarządzania ruchem i skalowania centrum Punktów końcowych. Możesz również użyć karty Test na stronie punktu końcowego, aby przetestować model przy użyciu przykładowych danych wejściowych. Przykładowe dane wejściowe są dostępne na stronie modelu. Format danych wejściowych, parametry i przykładowe dane wejściowe można znaleźć w dokumentacji interfejsu API w serwisie Hugging Face hub.
Wdrażanie modeli centrum HuggingFace przy użyciu zestawu SDK języka Python
Skonfiguruj zestaw SDK języka Python.
Znajdowanie modelu do wdrożenia
Przejrzyj katalog modeli w usłudze Azure Machine Learning Studio i znajdź model, który chcesz wdrożyć. Skopiuj nazwę modelu, który chcesz wdrożyć. Zaimportuj wymagane biblioteki. Modele wyświetlane w wykazie są wyświetlane z HuggingFace rejestru.
model_id Utwórz wartość przy użyciu nazwy modelu skopiowanej z katalogu modeli i HuggingFace rejestru. W tym przykładzie bert_base_uncased wdrożysz model z najnowszą wersją.
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
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_version = "25"
model_id = f"azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}"
Wdrażanie modelu
Utwórz punkt końcowy online. Następnie utwórz wdrożenie. Na koniec ustaw cały ruch, aby używał tego wdrożenia. Optymalny procesor CPU lub procesor GPU instance_type dla modelu można znaleźć, otwierając okno dialogowe szybkiego wdrażania na stronie modelu w katalogu modeli. Upewnij się, że używasz limitu instance_type przydziału.
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()
Testowanie wdrożonego modelu
Utwórz plik z danymi wejściowymi, które można przesłać do punktu końcowego online na potrzeby oceniania. Przykładowy kod w tej sekcji umożliwia wprowadzanie danych wejściowych dla fill-mask typu od czasu wdrożenia bert-base-uncased modelu. Format danych wejściowych, parametry i przykładowe dane wejściowe można znaleźć w dokumentacji interfejsu API w serwisie 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 = workspace_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))
Wdrażanie modeli centrum HuggingFace przy użyciu zestawu CLI
Skonfiguruj interfejs wiersza polecenia.
Znajdowanie modelu do wdrożenia
Przejrzyj katalog modeli w usłudze Azure Machine Learning Studio i znajdź model, który chcesz wdrożyć. Skopiuj nazwę modelu, który chcesz wdrożyć. Modele wyświetlane w wykazie są wyświetlane z HuggingFace rejestru. W tym przykładzie bert_base_uncased wdrożysz model z najnowszą wersją.
Wdrażanie modelu
Potrzebujesz identyfikatora model i instance_type , aby wdrożyć model. Optymalny procesor CPU lub procesor GPU instance_type dla modelu można znaleźć, otwierając okno dialogowe szybkiego wdrażania na stronie modelu w katalogu modeli. Upewnij się, że używasz limitu instance_type przydziału.
Modele wyświetlane w wykazie są wyświetlane z HuggingFace rejestru. W tym przykładzie bert_base_uncased wdrożysz model z najnowszą wersją. W pełni kwalifikowany model identyfikator zasobu na podstawie nazwy modelu i rejestru to azureml://registries/HuggingFace/models/bert-base-uncased/labels/latest. Utworzymy deploy.yml plik używany dla wbudowanego az ml online-deployment create polecenia.
Utwórz punkt końcowy online. Następnie utwórz wdrożenie.
# create endpoint
endpoint_name="hf-ep-"$(date +%s)
model_name="bert-base-uncased"
model_version="25"
az ml online-endpoint create --name $endpoint_name
# create deployment file.
cat <<EOF > ./deploy.yml
name: demo
model: azureml://registries/HuggingFace/models/$model_name/versions/$model_version
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
Testowanie wdrożonego modelu
Utwórz plik z danymi wejściowymi, które można przesłać do punktu końcowego online na potrzeby oceniania. Przytulanie twarzy jako przykładowe dane wejściowe kodu dla fill-mask typu wdrożonego bert-base-uncased modelu modelu. Format danych wejściowych, parametry i przykładowe dane wejściowe można znaleźć w dokumentacji interfejsu API w serwisie Hugging Face hub.
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
Przykładowy kod przytulania modelu twarzy
Użyj tego linku, aby znaleźć przytulanie kodu przykładowego modelu twarzy dla różnych scenariuszy, w tym klasyfikacji tokenów, tłumaczenia, odpowiadania na pytania i zerowej klasyfikacji strzałów.
Rozwiązywanie problemów: błędy wdrażania i nieobsługiwane modele
Centrum HuggingFace ma tysiące modeli z setkami aktualizowanymi każdego dnia. Tylko najbardziej popularne modele w kolekcji są testowane, a inne mogą zakończyć się niepowodzeniem z jednym z poniższych błędów.
Modele bramowane
Modele bramowane wymagają od użytkowników zgody na udostępnienie swoich informacji kontaktowych i zaakceptowanie warunków i postanowień właścicieli modelu w celu uzyskania dostępu do modelu. Próba wdrożenia takich modeli bez prawidłowego wykonania powyższych kroków zakończy się niepowodzeniem z użyciem elementu KeyError.
Modele, które muszą uruchamiać kod zdalny
Modele zazwyczaj używają kodu z zestawu SDK przekształcania, ale niektóre modele uruchamiają kod z repozytorium modelu. Takie modele muszą ustawić parametr trust_remote_code na True. Postępuj zgodnie z tym linkiem, aby dowiedzieć się więcej o korzystaniu z kodu zdalnego. Takie modele nie są obsługiwane z myślą o zabezpieczeniach. Próba wdrożenia takich modeli kończy się niepowodzeniem z powodu następującego błędu: ValueError: Loading <model> requires you to execute the configuration file in that repo on your local machine. Make sure you have read the code there to avoid malicious use, then set the option trust_remote_code=True to remove this error.
Modele z nieprawidłowymi tokenizatorami
Niepoprawnie określony lub brak tokenizatora w pakiecie modelu może spowodować OSError: Can't load tokenizer for <model> błąd.
Brakujące biblioteki
Niektóre modele wymagają dodatkowych bibliotek języka Python. Brakujące biblioteki można zainstalować lokalnie podczas uruchamiania modeli. Modele, które wymagają specjalnych bibliotek poza standardowymi bibliotekami Transformers, kończą się z niepowodzeniem przy błędzie ModuleNotFoundError lub ImportError.
Za mało pamięci
Jeśli widzisz wartość OutOfQuota: Container terminated due to insufficient memory, spróbuj użyć elementu z większą ilością instance_type pamięci.
Często zadawane pytania
Gdzie są przechowywane wagi modelu?
Przytulanie modeli rozpoznawania twarzy jest opisywane w katalogu modeli usługi Azure Machine Learning za pośrednictwem HuggingFace rejestru. Przytulanie twarzy tworzy ten rejestr i zarządza nim i jest udostępniany usłudze Azure Machine Learning jako rejestr społeczności. Wagi modelu nie są hostowane na platformie Azure. Wagi są pobierane bezpośrednio z centrum Hugging Face do punktów końcowych online w obszarze roboczym podczas wdrażania tych modeli.
HuggingFace rejestr w usłudze Azure Machine Learning działa jako katalog, który ułatwia odnajdywanie i wdrażanie modeli centrum HuggingFace w usłudze Azure Machine Learning.
Jakie modele są obsługiwane?
Przytulanie modeli rozpoznawania twarzy, które spełniają następujące kryteria, są obsługiwane na platformie Azure:
- Musi mieć
Transformerstagi ,DiffuserslubSentence-Transformersw przytulanie centrum rozpoznawania twarzy - Ma obsługiwane zadanie , takie jak
chat-completion,image-to-tasklubembeddings - Wagi modelu są w formacie Safetensors, a model nie wymaga
trust_remote_code
Jak wdrożyć modele na potrzeby wnioskowania wsadowego? Wdrażanie tych modeli w punktach końcowych wsadowych na potrzeby wnioskowania wsadowego nie jest obecnie obsługiwane.
Czy mogę używać modeli z HuggingFace rejestru jako danych wejściowych do zadań, aby dopasować te modele za pomocą SDK Transformers?
Ponieważ wagi modelu nie są przechowywane w rejestrze HuggingFace , nie można uzyskać dostępu do wag modelu przy użyciu tych modeli jako danych wejściowych do zadań.
Jak uzyskać pomoc techniczną, jeśli wdrożenia kończą się niepowodzeniem lub wnioskowanie nie działa zgodnie z oczekiwaniami?HuggingFace to jest rejestr społeczności i nie jest objęty pomocą techniczną firmy Microsoft. Przejrzyj dzienniki wdrażania i sprawdź, czy problem jest związany z platformą Azure Machine Learning lub specyficznym dla transformatorów HuggingFace. Skontaktuj się z pomocą techniczną firmy Microsoft w przypadku problemów z platformą, takich jak brak możliwości utworzenia punktu końcowego online lub gdy uwierzytelnianie w interfejsie API REST punktu końcowego nie działa. W przypadku problemów specyficznych dla funkcji przekształcania utwórz problem w witrynie GitHub, użyj forum HuggingFace lub skorzystaj z pomocy technicznej aplikacji HuggingFace.
Co to jest rejestr społeczności? Rejestry społeczności to rejestry usługi Azure Machine Learning utworzone przez zaufanych partnerów usługi Azure Machine Learning i dostępne dla wszystkich użytkowników usługi Azure Machine Learning.
Gdzie użytkownicy mogą przesyłać pytania i wątpliwości dotyczące Hugging Face w usłudze Azure Machine Learning? Prześlij swoje pytania na forum dyskusyjnym usługi Azure Machine Learning lub otwórz problem z usługą GitHub.
Dostępność regionalna
Kolekcja rozpoznawania twarzy jest obecnie dostępna we wszystkich regionach chmury publicznej.