Korzystanie z kontenerów platformy Docker podsumowania w środowisku lokalnym
Kontenery umożliwiają hostowanie interfejsu API podsumowania we własnej infrastrukturze. Jeśli masz wymagania dotyczące zabezpieczeń lub ładu danych, których nie można spełnić przez zdalne wywołanie podsumowania, kontenery mogą być dobrym rozwiązaniem.
Wymagania wstępne
- Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
- Platforma Docker zainstalowana na komputerze hosta. Platforma Docker musi być skonfigurowana tak, aby umożliwić kontenerom łączenie się z platformą Azure i wysyłanie danych rozliczeniowych do platformy Azure.
- W systemie Windows platforma Docker musi być również skonfigurowana do obsługi kontenerów systemu Linux.
- Musisz mieć podstawową wiedzę na temat pojęć związanych z platformą Docker.
- Zasób języka z warstwą cenową Bezpłatna (F0) lub Standardowa (S). W przypadku odłączonych kontenerów wymagana jest warstwa DC0.
Zbieranie wymaganych parametrów
Wymagane są trzy podstawowe parametry dla wszystkich kontenerów sztucznej inteligencji platformy Azure. Postanowienia licencyjne dotyczące oprogramowania firmy Microsoft muszą być obecne z wartością akceptacji. Wymagany jest również identyfikator URI punktu końcowego i klucz interfejsu API.
Identyfikator URI punktu końcowego
Wartość {ENDPOINT_URI}
jest dostępna na stronie Przegląd witryny Azure Portal odpowiedniego zasobu usług Azure AI. Przejdź do strony Przegląd, umieść kursor nad punktem końcowym, a zostanie wyświetlona ikona Kopiuj do schowka. Skopiuj i użyj punktu końcowego w razie potrzeby.
Klucze
Wartość {API_KEY}
jest używana do uruchamiania kontenera i jest dostępna na stronie Klucze witryny Azure Portal odpowiedniego zasobu usług Azure AI. Przejdź do strony Klucze i wybierz ikonę Kopiuj do schowka.
Ważne
Te klucze subskrypcji są używane do uzyskiwania dostępu do interfejsu API usług Azure AI. Nie udostępniaj kluczy. Przechowuj je bezpiecznie. Na przykład użyj usługi Azure Key Vault. Zalecamy również regularne ponowne generowanie tych kluczy. Tylko jeden klucz jest wymagany do wykonania wywołania interfejsu API. Podczas ponownego generowania pierwszego klucza można użyć drugiego klucza w celu dalszego dostępu do usługi.
Wymagania i zalecenia dotyczące komputera hosta
Host to komputer oparty na architekturze x64 z uruchomionym kontenerem platformy Docker. Może to być komputer lokalny lub usługa hostingu platformy Docker na platformie Azure, taka jak:
- Azure Kubernetes Service.
- Azure Container Instances.
- Klaster Kubernetes wdrożony w usłudze Azure Stack. Aby uzyskać więcej informacji, zobacz Wdrażanie rozwiązania Kubernetes w usłudze Azure Stack.
W poniższej tabeli opisano minimalne i zalecane specyfikacje dotyczące umiejętności kontenera podsumowania. Wymienione kombinacje procesora CPU/pamięci są przeznaczone dla danych wejściowych tokenu 4000 (użycie konwersacji dotyczy wszystkich aspektów tego samego żądania).
Typ pojemnika | Zalecana liczba rdzeni procesora CPU | Zalecana pamięć | Uwagi |
---|---|---|---|
Kontener procesora CPU podsumowania | 16 | 48 GB | |
Kontener procesora GPU podsumowania | 2 | 24 GB | Wymaga procesora GPU firmy Nvidia obsługującego procesor Cuda 11.8 z 16 GB pamięci VRAM. |
Rdzenie procesora CPU i pamięć odpowiadają --cpus
ustawieniu i --memory
, które są używane w ramach docker run
polecenia .
Pobieranie obrazu kontenera za pomocą polecenia docker pull
Obraz kontenera podsumowania można znaleźć w mcr.microsoft.com
syndykacie rejestru kontenerów. Znajduje się on w azure-cognitive-services/textanalytics/
repozytorium i ma nazwę summarization
. W pełni kwalifikowana nazwa obrazu kontenera to: mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization
Aby użyć najnowszej wersji kontenera, możesz użyć tagu latest
. Pełną listę tagów można również znaleźć w mcR.
Użyj polecenia , docker pull
aby pobrać obraz kontenera z usługi Microsoft Container Registry.
docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu
dla kontenerów procesora CPU,
docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:gpu
dla kontenerów procesora GPU.
Napiwek
Możesz użyć polecenia docker images , aby wyświetlić listę pobranych obrazów kontenerów. Na przykład następujące polecenie wyświetla identyfikator, repozytorium i tag każdego pobranego obrazu kontenera sformatowane jako tabela:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Pobieranie modeli kontenerów podsumowania
Wymaganym wstępnie do uruchomienia kontenera podsumowania jest najpierw pobranie modeli. Można to zrobić, uruchamiając jedno z następujących poleceń przy użyciu obrazu kontenera procesora CPU jako przykładu:
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ExtractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=AbstractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ConversationSummarization billing={ENDPOINT_URI} apikey={API_KEY}
Nie zaleca się pobierania modeli dla wszystkich umiejętności wewnątrz tego samego HOST_MODELS_PATH
kontenera, ponieważ kontener ładuje wszystkie modele wewnątrz elementu HOST_MODELS_PATH
. W ten sposób będzie używana duża ilość pamięci. Zaleca się pobranie tylko modelu na potrzeby umiejętności, których potrzebujesz w określonym HOST_MODELS_PATH
elemecie .
Aby zapewnić zgodność modeli i kontenera, pobierz ponownie używane modele przy każdym utworzeniu kontenera przy użyciu nowej wersji obrazu. W przypadku korzystania z odłączonego kontenera należy ponownie pobrać licencję po pobraniu modeli.
Uruchamianie kontenera za pomocą polecenia docker run
Gdy kontener podsumowania znajduje się na komputerze hosta, uruchom kontenery za pomocą następującego docker run
polecenia. Kontener będzie nadal działać do momentu jego zatrzymania. Zastąp symbole zastępcze poniżej własnymi wartościami:
Symbol zastępczy | Wartość | Formatowanie lub przykład |
---|---|---|
{HOST_MODELS_PATH} | Instalacja woluminu komputera hosta, która jest używana przez platformę Docker do utrwalania modelu. | Przykładem jest c:\SummarizationModel, na którym znajduje się dysk c:\ na maszynie hosta. |
{ENDPOINT_URI} | Punkt końcowy umożliwiający uzyskiwanie dostępu do interfejsu API podsumowania. Możesz go znaleźć na stronie Klucz i punkt końcowy zasobu w witrynie Azure Portal. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} | Klucz zasobu Language. Możesz go znaleźć na stronie Klucz i punkt końcowy zasobu w witrynie Azure Portal. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
docker run -p 5000:5000 -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu eula=accept rai_terms=accept billing={ENDPOINT_URI} apikey={API_KEY}
Lub jeśli używasz kontenera gpu, zamiast tego użyj tego polecenia.
docker run -p 5000:5000 --gpus all -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:gpu eula=accept rai_terms=accept billing={ENDPOINT_URI} apikey={API_KEY}
Jeśli na maszynie znajduje się więcej niż jeden procesor GPU, zastąp element --gpus all
.--gpus device={DEVICE_ID}
Ważne
- Polecenia platformy Docker w poniższych sekcjach używają ukośnika odwrotnego ,
\
jako znaku kontynuacji wiersza. Zastąp lub usuń to na podstawie wymagań systemu operacyjnego hosta. - Aby
Eula
uruchomić kontener, należy określić opcje ,Billing
rai_terms
iApiKey
. W przeciwnym razie kontener nie zostanie uruchomiony. Aby uzyskać więcej informacji, zobacz Rozliczenia.
To polecenie:
- Uruchamia kontener podsumowania z obrazu kontenera
- Przydziela jeden rdzeń procesora CPU i 4 gigabajty pamięci (GB)
- Uwidacznia port TCP 5000 i przydziela pseudo-TTY dla kontenera
- Automatycznie usuwa kontener po jego zakończeniu. Obraz kontenera jest nadal dostępny na komputerze hosta.
Uruchamianie wielu kontenerów na tym samym hoście
Jeśli zamierzasz uruchomić wiele kontenerów z uwidocznionych portów, upewnij się, że każdy kontener ma inny uwidoczniony port. Na przykład uruchom pierwszy kontener na porcie 5000 i drugi kontener na porcie 5001.
Ten kontener i inny kontener usług Azure AI mogą być uruchomione razem na hoście. Można również mieć wiele kontenerów tego samego kontenera usług Azure AI, na których działa.
Wykonywanie zapytania dotyczącego punktu końcowego przewidywania kontenera
Kontener udostępnia oparte na interfejsie REST interfejsy API punktu końcowego przewidywania zapytań.
Użyj hosta http://localhost:5000
dla interfejsów API kontenera.
Sprawdzanie, czy kontener jest uruchomiony
Istnieje kilka sposobów sprawdzania, czy kontener jest uruchomiony. Znajdź zewnętrzny adres IP i uwidoczniony port danego kontenera i otwórz ulubioną przeglądarkę internetową. Użyj różnych adresów URL żądań, które są zgodne z instrukcjami, aby sprawdzić, czy kontener jest uruchomiony. Przykładowe adresy URL żądań wymienione w tym miejscu to http://localhost:5000
, ale określony kontener może się różnić. Upewnij się, że korzystasz z zewnętrznego adresu IP kontenera i uwidocznij port.
Adres URL żądania | Purpose |
---|---|
http://localhost:5000/ |
Kontener zawiera stronę główną. |
http://localhost:5000/ready |
Żądany przy użyciu polecenia GET ten adres URL zapewnia weryfikację, że kontener jest gotowy do akceptowania zapytania względem modelu. To żądanie może służyć do sond gotowości i gotowości platformy Kubernetes. |
http://localhost:5000/status |
Ten adres URL sprawdza również, czy klucz api-key używany do uruchamiania kontenera jest prawidłowy bez powodowania zapytania punktu końcowego. To żądanie może służyć do sond gotowości i gotowości platformy Kubernetes. |
http://localhost:5000/swagger |
Kontener zawiera pełen zestaw dokumentacji dla punktów końcowych oraz funkcję Wypróbuj. Dzięki tej funkcji możesz wprowadzić ustawienia w formularzu HTML opartym na sieci Web i utworzyć zapytanie bez konieczności pisania kodu. Po powrocie zapytania zostanie udostępnione przykładowe polecenie CURL, aby zademonstrować wymagane nagłówki HTTP i format treści. |
Uruchamianie kontenera odłączonego od Internetu
Aby użyć tego kontenera odłączonego od Internetu, musisz najpierw zażądać dostępu, wypełniając aplikację i kupując plan zobowiązania. Aby uzyskać więcej informacji, zobacz Use Docker containers in disconnected environments (Używanie kontenerów platformy Docker w środowiskach bez połączenia).
Jeśli kontener został zatwierdzony do uruchomienia kontenera odłączonego od Internetu, użyj poniższego przykładu pokazującego formatowanie używanego docker run
polecenia z wartościami zastępczymi. Zastąp te wartości zastępcze własnymi wartościami.
Parametr DownloadLicense=True
w poleceniu docker run
pobierze plik licencji, który umożliwi uruchomienie kontenera platformy Docker, gdy nie jest połączony z Internetem. Zawiera również datę wygaśnięcia, po której plik licencji będzie nieprawidłowy do uruchomienia kontenera. Możesz użyć pliku licencji tylko z odpowiednim kontenerem, dla którego został zatwierdzony. Na przykład nie można użyć pliku licencji dla kontenera zamiany mowy na tekst z kontenerem usług językowych.
Pobieranie odłączonych modeli kontenerów podsumowania
Wymaganym wstępnie do uruchomienia kontenera podsumowania jest najpierw pobranie modeli. Można to zrobić, uruchamiając jedno z następujących poleceń przy użyciu obrazu kontenera procesora CPU jako przykładu:
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ExtractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=AbstractiveSummarization billing={ENDPOINT_URI} apikey={API_KEY}
docker run -v {HOST_MODELS_PATH}:/models mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu downloadModels=ConversationSummarization billing={ENDPOINT_URI} apikey={API_KEY}
Nie zaleca się pobierania modeli dla wszystkich umiejętności wewnątrz tego samego HOST_MODELS_PATH
kontenera, ponieważ kontener ładuje wszystkie modele wewnątrz elementu HOST_MODELS_PATH
. W ten sposób będzie używana duża ilość pamięci. Zaleca się pobranie tylko modelu na potrzeby umiejętności, których potrzebujesz w określonym HOST_MODELS_PATH
elemecie .
Aby zapewnić zgodność modeli i kontenera, pobierz ponownie używane modele przy każdym utworzeniu kontenera przy użyciu nowej wersji obrazu. W przypadku korzystania z odłączonego kontenera należy ponownie pobrać licencję po pobraniu modeli.
Uruchamianie odłączonego kontenera za pomocą polecenia docker run
Symbol zastępczy | Wartość | Formatowanie lub przykład |
---|---|---|
{IMAGE} |
Obraz kontenera, którego chcesz użyć. | mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu |
{LICENSE_MOUNT} |
Ścieżka, w której zostanie pobrana licencja, i zainstalowana. | /host/license:/path/to/license/directory |
{HOST_MODELS_PATH} |
Ścieżka, w której zostały pobrane i zainstalowane modele. | /host/models:/models |
{ENDPOINT_URI} |
Punkt końcowy do uwierzytelniania żądania obsługi. Możesz go znaleźć na stronie Klucz i punkt końcowy zasobu w witrynie Azure Portal. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} |
Klucz zasobu analiza tekstu. Możesz go znaleźć na stronie Klucz i punkt końcowy zasobu w witrynie Azure Portal. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{CONTAINER_LICENSE_DIRECTORY} |
Lokalizacja folderu licencji w lokalnym systemie plików kontenera. | /path/to/license/directory |
docker run --rm -it -p 5000:5000 \
-v {LICENSE_MOUNT} \
-v {HOST_MODELS_PATH} \
{IMAGE} \
eula=accept \
rai_terms=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Po pobraniu pliku licencji można uruchomić kontener w środowisku odłączonym. W poniższym przykładzie pokazano formatowanie docker run
polecenia, którego użyjesz, z wartościami zastępczymi. Zastąp te wartości zastępcze własnymi wartościami.
Wszędzie tam, gdzie kontener jest uruchamiany, plik licencji musi być zainstalowany w kontenerze, a lokalizacja folderu licencji w lokalnym systemie plików kontenera musi być określona za pomocą Mounts:License=
polecenia . Należy również określić instalację wyjściową, aby można było zapisywać rekordy użycia rozliczeń.
Symbol zastępczy | Wartość | Formatowanie lub przykład |
---|---|---|
{IMAGE} |
Obraz kontenera, którego chcesz użyć. | mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu |
{MEMORY_SIZE} |
Odpowiedni rozmiar pamięci do przydzielenia dla kontenera. | 4g |
{NUMBER_CPUS} |
Odpowiednia liczba procesorów CPU do przydzielenia dla kontenera. | 4 |
{LICENSE_MOUNT} |
Ścieżka, w której będzie znajdować się i instalowana licencja. | /host/license:/path/to/license/directory |
{HOST_MODELS_PATH} |
Ścieżka, w której zostały pobrane i zainstalowane modele. | /host/models:/models |
{OUTPUT_PATH} |
Ścieżka wyjściowa rejestrowania rekordów użycia. | /host/output:/path/to/output/directory |
{CONTAINER_LICENSE_DIRECTORY} |
Lokalizacja folderu licencji w lokalnym systemie plików kontenera. | /path/to/license/directory |
{CONTAINER_OUTPUT_DIRECTORY} |
Lokalizacja folderu wyjściowego w lokalnym systemie plików kontenera. | /path/to/output/directory |
docker run --rm -it -p 5000:5000 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \
-v {LICENSE_MOUNT} \
-v {HOST_MODELS_PATH} \
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
rai_terms=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}
Zatrzymywanie kontenera
Aby zamknąć kontener, w środowisku wiersza polecenia, w którym jest uruchomiony kontener, wybierz Ctrl+C.
Rozwiązywanie problemów
Jeśli uruchamiasz kontener z włączoną instalacją danych wyjściowych i rejestrowaniem, kontener generuje pliki dziennika, które są pomocne w rozwiązywaniu problemów występujących podczas uruchamiania lub uruchamiania kontenera.
Napiwek
Aby uzyskać więcej informacji na temat rozwiązywania problemów i wskazówek, zobacz Często zadawane pytania dotyczące kontenerów usługi Azure AI.
Rozliczenia
Kontenery podsumowania wysyłają informacje rozliczeniowe na platformę Azure przy użyciu zasobu language na koncie platformy Azure.
Zapytania do kontenera są rozliczane w warstwie cenowej zasobu platformy Azure używanego dla parametru ApiKey
.
Kontenery usług AI platformy Azure nie są licencjonowane do uruchamiania bez połączenia z punktem końcowym pomiaru użytkowania ani rozliczeń. Należy zezwolić kontenerom na komunikowanie informacji rozliczeniowych z punktem końcowym rozliczeń przez cały czas. Kontenery usług AI platformy Azure nie wysyłają do firmy Microsoft danych klientów, takich jak obraz lub tekst analizowany.
Łączenie się z platformą Azure
Do uruchomienia kontenera potrzebne są wartości argumentów rozliczeniowych. Te wartości umożliwiają kontenerowi łączenie się z punktem końcowym rozliczeń. Kontener raportuje użycie co około 10 do 15 minut. Jeśli kontener nie łączy się z platformą Azure w dozwolonym przedziale czasu, kontener będzie nadal działać, ale nie obsługuje zapytań, dopóki punkt końcowy rozliczeń nie zostanie przywrócony. Próba nawiązania połączenia jest podejmowana 10 razy w tym samym przedziale czasu od 10 do 15 minut. Jeśli nie może nawiązać połączenia z punktem końcowym rozliczeń w ciągu 10 prób, kontener przestanie obsługiwać żądania. Zobacz często zadawane pytania dotyczące kontenera usług AI platformy Azure, aby uzyskać przykład informacji wysyłanych do firmy Microsoft na potrzeby rozliczeń.
Argumenty rozliczeniowe
Polecenie docker run
uruchomi kontener, gdy wszystkie trzy z następujących opcji są dostarczane z prawidłowymi wartościami:
Opcja | Opis |
---|---|
ApiKey |
Klucz interfejsu API zasobu usług Azure AI używany do śledzenia informacji rozliczeniowych. Wartość tej opcji musi być ustawiona na klucz interfejsu API dla zaaprowizowanego zasobu określonego w pliku Billing . |
Billing |
Punkt końcowy zasobu usług Azure AI używany do śledzenia informacji rozliczeniowych. Wartość tej opcji musi być ustawiona na identyfikator URI punktu końcowego aprowizowanego zasobu platformy Azure. |
Eula |
Wskazuje, że zaakceptowano licencję dla kontenera. Wartość tej opcji należy ustawić tak, aby akceptowała. |
Aby uzyskać więcej informacji na temat tych opcji, zobacz Konfigurowanie kontenerów.
Podsumowanie
W tym artykule przedstawiono pojęcia i przepływ pracy dotyczące pobierania, instalowania i uruchamiania kontenerów podsumowania. Podsumowując:
- Podsumowanie zapewnia kontenery systemu Linux dla platformy Docker
- Obrazy kontenerów są pobierane z usługi Microsoft Container Registry (MCR).
- Obrazy kontenerów są uruchamiane na platformie Docker.
- Podczas tworzenia wystąpienia kontenera należy określić informacje o rozliczeniach.
Ważne
Ten kontener nie ma licencji na uruchamianie bez nawiązywania połączenia z platformą Azure na potrzeby pomiarów. Klienci muszą umożliwić kontenerom komunikowanie informacji rozliczeniowych z usługą pomiarów przez cały czas. Kontenery sztucznej inteligencji platformy Azure nie wysyłają danych klienta (np. tekstu analizowanego) do firmy Microsoft.
Następne kroki
- Zobacz Konfigurowanie kontenerów pod kątem ustawień konfiguracji.