Använda sammanfattning av Docker-containrar lokalt
Med containrar kan du vara värd för sammanfattnings-API:et i din egen infrastruktur. Om du har säkerhets- eller datastyrningskrav som inte kan uppfyllas genom att anropa Sammanfattning via fjärranslutning kan containrar vara ett bra alternativ.
Förutsättningar
- Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Docker installerat på en värddator. Docker måste konfigureras så att containrarna kan ansluta till och skicka faktureringsdata till Azure.
- I Windows måste Docker också konfigureras för att stödja Linux-containrar.
- Du bör ha en grundläggande förståelse för Docker-begrepp.
- En språkresurs med den kostnadsfria prisnivån (F0) eller standard (S). För frånkopplade containrar krävs DC0-nivån.
Samla in obligatoriska parametrar
Tre primära parametrar för alla Azure AI-containrar krävs. Licensvillkoren för Programvara från Microsoft måste finnas med värdet accept. En slutpunkts-URI och API-nyckel behövs också.
Slutpunkts-URI
Värdet {ENDPOINT_URI}
är tillgängligt på översiktssidan för Azure-portalen för motsvarande Azure AI-tjänstresurs. Gå till sidan Översikt , hovra över slutpunkten och ikonen Kopiera till Urklipp visas. Kopiera och använd slutpunkten där det behövs.
Nycklar
Värdet {API_KEY}
används för att starta containern och är tillgängligt på sidan Nycklar i Azure-portalen för motsvarande Azure AI-tjänstresurs. Gå till sidan Nycklar och välj ikonen Kopiera till Urklipp.
Viktigt!
Dessa prenumerationsnycklar används för att komma åt ditt Azure AI-tjänst-API. Dela inte dina nycklar. Lagra dem på ett säkert sätt. Använd till exempel Azure Key Vault. Vi rekommenderar också att du återskapar dessa nycklar regelbundet. Endast en nyckel krävs för att göra ett API-anrop. När du återskapar den första nyckeln kan du använda den andra nyckeln för fortsatt åtkomst till tjänsten.
Krav och rekommendationer för värddatorer
Värden är en x64-baserad dator som kör Docker-containern. Det kan vara en dator lokalt eller en Docker-värdtjänst i Azure, till exempel:
- Azure Kubernetes Service.
- Azure Container Instances.
- Ett Kubernetes-kluster som distribuerats till Azure Stack. Mer information finns i Distribuera Kubernetes till Azure Stack.
I följande tabell beskrivs de minsta och rekommenderade specifikationerna för sammanfattningscontainerns kunskaper. Listade kombinationer av PROCESSOR/minne är för en 4000-tokeninmatning (konversationsförbrukningen gäller för alla aspekter i samma begäran).
Containertyp | Rekommenderat antal CPU-kärnor | Rekommenderat minne | Kommentar |
---|---|---|---|
Summering av CPU-container | 16 | 48 GB | |
Sammanfattning av GPU-container | 2 | 24 GB | Kräver en Nvidia GPU som stöder Cuda 11.8 med 16GB VRAM. |
CPU-kärna och minne motsvarar --cpus
inställningarna och --memory
som används som en del av docker run
kommandot.
Hämta containeravbildningen med docker pull
Sammanfattningscontaineravbildningen finns i mcr.microsoft.com
containerregistersyndikatet. Den finns på lagringsplatsen azure-cognitive-services/textanalytics/
och heter summarization
. Det fullständigt kvalificerade containeravbildningsnamnet är, mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization
Om du vill använda den senaste versionen av containern kan du använda taggen latest
. Du hittar också en fullständig lista över taggar på MCR.
docker pull
Använd kommandot för att ladda ned en containeravbildning från Microsoft Container Registry.
docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu
för CPU-containrar,
docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:gpu
för GPU-containrar.
Dricks
Du kan använda kommandot docker images för att visa en lista över dina nedladdade containeravbildningar. Följande kommando visar till exempel ID, lagringsplats och tagg för varje nedladdad containeravbildning, formaterad som en tabell:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Ladda ned sammanfattningscontainermodellerna
En förutsättning för att köra sammanfattningscontainern är att ladda ned modellerna först. Detta kan göras genom att köra något av följande kommandon med hjälp av en CPU-containeravbildning som exempel:
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}
Vi rekommenderar inte att du laddar ned modeller för alla kunskaper i samma HOST_MODELS_PATH
, eftersom containern läser in alla modeller i HOST_MODELS_PATH
. Om du gör det skulle du använda en stor mängd minne. Vi rekommenderar att du bara laddar ned modellen för den kompetens du behöver i en viss HOST_MODELS_PATH
.
För att säkerställa kompatibilitet mellan modeller och containern laddar du ned de modeller som används igen när du skapar en container med hjälp av en ny avbildningsversion. När du använder en frånkopplad container ska licensen laddas ned igen efter att modellerna har laddats ned.
Kör containern med docker run
När containern Summarization finns på värddatorn använder du följande docker run
kommando för att köra containrarna. Containern fortsätter att köras tills du stoppar den. Ersätt platshållarna nedan med dina egna värden:
Platshållare | Värde | Format eller exempel |
---|---|---|
{HOST_MODELS_PATH} | Värddatorns volymmontering, som Docker använder för att bevara modellen. | Ett exempel är c:\SummarizationModel där c:\-enheten finns på värddatorn. |
{ENDPOINT_URI} | Slutpunkten för åtkomst till sammanfattnings-API:et. Du hittar den på resursens nyckel- och slutpunktssida i Azure-portalen. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} | Nyckeln för språkresursen. Du hittar den på resursens nyckel- och slutpunktssida i Azure-portalen. | 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}
Om du kör en GPU-container använder du det här kommandot i stället.
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}
Om det finns mer än en GPU på datorn ersätter du --gpus all
med --gpus device={DEVICE_ID}
.
Viktigt!
- Docker-kommandona i följande avsnitt använder snedstrecket,
\
, som ett radfortsättningstecken. Ersätt eller ta bort detta baserat på värdoperativsystemets krav. - Alternativen
Eula
,Billing
ochrai_terms
ApiKey
måste anges för att köra containern. Annars startar inte containern. Mer information finns i Fakturering.
Det här kommandot:
- Kör en sammanfattningscontainer från containeravbildningen
- Allokerar en CPU-kärna och 4 GB minne
- Exponerar TCP-port 5000 och allokerar en pseudo-TTY för containern
- Tar automatiskt bort containern när den har avslutats. Containeravbildningen är fortfarande tillgänglig på värddatorn.
Köra flera containrar på samma värd
Om du tänker köra flera containrar med exponerade portar ska du köra varje container med en annan exponerad port. Kör till exempel den första containern på port 5000 och den andra containern på port 5001.
Du kan ha den här containern och en annan Azure AI-tjänstcontainer som körs på VÄRDEN tillsammans. Du kan också ha flera containrar av samma Azure AI-tjänstcontainer som körs.
Köra frågor mot containerns förutsägelseslutpunkt
Containern innehåller REST-baserade slutpunkts-API:er för frågeförutsägelse.
Använd värden, http://localhost:5000
, för container-API:er.
Verifiera att en container körs
Det finns flera sätt att verifiera att containern körs. Leta upp den externa IP-adressen och den exponerade porten för containern i fråga och öppna din favoritwebbläsare. Använd de olika url:er för begäranden som följer för att verifiera att containern körs. Exempelbegärande-URL:er som anges här är http://localhost:5000
, men din specifika container kan variera. Se till att förlita dig på containerns externa IP-adress och exponerade port.
Begärans-URL | Syfte |
---|---|
http://localhost:5000/ |
Containern tillhandahåller en startsida. |
http://localhost:5000/ready |
Den här URL:en begärs med GET och tillhandahåller en verifiering av att containern är redo att acceptera en fråga mot modellen. Den här begäran kan användas för Kubernetes liveness- och beredskapsavsökningar. |
http://localhost:5000/status |
Den här URL:en begärs också med GET och kontrollerar om api-nyckeln som används för att starta containern är giltig utan att orsaka en slutpunktsfråga. Den här begäran kan användas för Kubernetes liveness- och beredskapsavsökningar. |
http://localhost:5000/swagger |
Containern tillhandahåller en fullständig uppsättning dokumentation för slutpunkterna samt en Prova-funktion. Med den här funktionen kan du ange inställningarna i ett webbaserat HTML-formulär och göra frågan utan att behöva skriva någon kod. När frågan har returnerats tillhandahålls ett exempel på CURL-kommandot för att demonstrera de HTTP-huvuden och brödtextformat som krävs. |
Kör containern frånkopplad från Internet
Om du vill använda den här containern frånkopplad från Internet måste du först begära åtkomst genom att fylla i ett program och köpa en åtagandeplan. Mer information finns i Använda Docker-containrar i frånkopplade miljöer .
Om du har godkänts för att köra containern frånkopplad från Internet använder du följande exempel som visar formateringen för det docker run
kommando som du ska använda, med platshållarvärden. Ersätt dessa platshållarvärden med dina egna värden.
Parametern DownloadLicense=True
i kommandot docker run
laddar ned en licensfil som gör att Docker-containern kan köras när den inte är ansluten till Internet. Den innehåller också ett förfallodatum, varefter licensfilen är ogiltig för att köra containern. Du kan bara använda en licensfil med lämplig container som du har godkänts för. Du kan till exempel inte använda en licensfil för en tal-till-text-container med en Language Services-container.
Ladda ned de frånkopplade containermodellerna för sammanfattning
En förutsättning för att köra sammanfattningscontainern är att ladda ned modellerna först. Detta kan göras genom att köra något av följande kommandon med hjälp av en CPU-containeravbildning som exempel:
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}
Vi rekommenderar inte att du laddar ned modeller för alla kunskaper i samma HOST_MODELS_PATH
, eftersom containern läser in alla modeller i HOST_MODELS_PATH
. Om du gör det skulle du använda en stor mängd minne. Vi rekommenderar att du bara laddar ned modellen för den kompetens du behöver i en viss HOST_MODELS_PATH
.
För att säkerställa kompatibilitet mellan modeller och containern laddar du ned de modeller som används igen när du skapar en container med hjälp av en ny avbildningsversion. När du använder en frånkopplad container ska licensen laddas ned igen efter att modellerna har laddats ned.
Kör den frånkopplade containern med docker run
Platshållare | Värde | Format eller exempel |
---|---|---|
{IMAGE} |
Den containeravbildning som du vill använda. | mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu |
{LICENSE_MOUNT} |
Sökvägen där licensen laddas ned och monteras. | /host/license:/path/to/license/directory |
{HOST_MODELS_PATH} |
Sökvägen där modellerna laddades ned och monterades. | /host/models:/models |
{ENDPOINT_URI} |
Slutpunkten för att autentisera din tjänstbegäran. Du hittar den på resursens nyckel- och slutpunktssida i Azure-portalen. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} |
Nyckeln för din textanalysresurs. Du hittar den på resursens nyckel- och slutpunktssida i Azure-portalen. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{CONTAINER_LICENSE_DIRECTORY} |
Plats för licensmappen i containerns lokala filsystem. | /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}
När licensfilen har laddats ned kan du köra containern i en frånkopplad miljö. I följande exempel visas formateringen för det docker run
kommando som du ska använda, med platshållarvärden. Ersätt dessa platshållarvärden med dina egna värden.
Oavsett var containern körs måste licensfilen monteras på containern och platsen för licensmappen i containerns lokala filsystem måste anges med Mounts:License=
. En utdatamontering måste också anges så att faktureringsanvändningsposter kan skrivas.
Platshållare | Värde | Format eller exempel |
---|---|---|
{IMAGE} |
Den containeravbildning som du vill använda. | mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu |
{MEMORY_SIZE} |
Lämplig storlek på minne som ska allokeras för containern. | 4g |
{NUMBER_CPUS} |
Lämpligt antal processorer som ska allokeras för din container. | 4 |
{LICENSE_MOUNT} |
Sökvägen där licensen ska finnas och monteras. | /host/license:/path/to/license/directory |
{HOST_MODELS_PATH} |
Sökvägen där modellerna laddades ned och monterades. | /host/models:/models |
{OUTPUT_PATH} |
Utdatasökvägen för loggning av användningsposter. | /host/output:/path/to/output/directory |
{CONTAINER_LICENSE_DIRECTORY} |
Plats för licensmappen i containerns lokala filsystem. | /path/to/license/directory |
{CONTAINER_OUTPUT_DIRECTORY} |
Plats för utdatamappen i containerns lokala filsystem. | /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}
Stoppa containern
Om du vill stänga av containern väljer du Ctrl+C i den kommandoradsmiljö där containern körs.
Felsökning
Om du kör containern med en utdatamontering och loggning aktiverad genererar containern loggfiler som är användbara för att felsöka problem som inträffar när containern startas eller körs.
Dricks
Mer felsökningsinformation och vägledning finns i Vanliga frågor och svar om Azure AI-containrar.
Fakturering
Sammanfattningscontainrarna skickar faktureringsinformation till Azure med hjälp av en språkresurs på ditt Azure-konto.
Frågor till containern faktureras på prisnivån för den Azure-resurs som används för parametern ApiKey
.
Azure AI-tjänstcontainrar är inte licensierade att köras utan att vara anslutna till slutpunkten för mätning eller fakturering. Du måste aktivera containrarna för att kunna kommunicera faktureringsinformation med faktureringsslutpunkten hela tiden. Azure AI-tjänstcontainrar skickar inte kunddata, till exempel den bild eller text som analyseras, till Microsoft.
Ansluta till Azure
Containern behöver faktureringsargumentvärdena för att köras. Med de här värdena kan containern ansluta till faktureringsslutpunkten. Containern rapporterar användning var 10:e till 15:e minut. Om containern inte ansluter till Azure inom den tillåtna tidsperioden fortsätter containern att köras men hanterar inte frågor förrän faktureringsslutpunkten har återställts. Anslutningen görs 10 gånger med samma tidsintervall på 10 till 15 minuter. Om den inte kan ansluta till faktureringsslutpunkten inom de 10 försöken slutar containern att hantera begäranden. Se vanliga frågor och svar om Azure AI-tjänstcontainern för ett exempel på den information som skickas till Microsoft för fakturering.
Faktureringsargument
Kommandot docker run
startar containern när alla tre av följande alternativ har giltiga värden:
Alternativ | Description |
---|---|
ApiKey |
API-nyckeln för azure AI-tjänstresursen som används för att spåra faktureringsinformation. Värdet för det här alternativet måste anges till en API-nyckel för den etablerade resursen som anges i Billing . |
Billing |
Slutpunkten för azure AI-tjänstresursen som används för att spåra faktureringsinformation. Värdet för det här alternativet måste anges till slutpunkts-URI:n för en etablerad Azure-resurs. |
Eula |
Anger att du har godkänt licensen för containern. Värdet för det här alternativet måste vara inställt på att acceptera. |
Mer information om de här alternativen finns i Konfigurera containrar.
Sammanfattning
I den här artikeln har du lärt dig begrepp och arbetsflöden för att ladda ned, installera och köra sammanfattningscontainrar. Sammanfattningsvis:
- Sammanfattning tillhandahåller Linux-containrar för Docker
- Containeravbildningar laddas ned från Microsoft Container Registry (MCR).
- Containeravbildningar körs i Docker.
- Du måste ange faktureringsinformation när du instansierar en container.
Viktigt!
Den här containern är inte licensierad att köras utan att vara ansluten till Azure för mätning. Kunder måste göra det möjligt för containrarna att kommunicera faktureringsinformation med mätningstjänsten hela tiden. Azure AI-containrar skickar inte kunddata (t.ex. text som analyseras) till Microsoft.
Nästa steg
- Se Konfigurera containrar för konfigurationsinställningar.