Lokales Verwenden von Docker-Containern für Zusammenfassung
Mit Containern können Sie die Zusammenfassungs-API in Ihrer eigenen Infrastruktur hosten. Wenn Sie Sicherheits- oder Datengovernanceanforderungen haben, die nicht durch Remoteaufrufe der Zusammenfassung erfüllt werden können, sind Container möglicherweise eine gute Option.
Voraussetzungen
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.
- Docker ist auf einem Hostcomputer installiert. Docker muss so konfiguriert werden, dass die Container eine Verbindung mit Azure herstellen und Abrechnungsdaten an Azure senden können.
- Unter Windows muss Docker auch für die Unterstützung von Linux-Containern konfiguriert werden.
- Sie sollten über grundlegende Kenntnisse der Docker-Konzepte verfügen.
- Eine Sprachressource mit dem Free-Tarif (F0) oder dem Standard-Tarif (S). Bei getrennten Containern ist die DC0-Ebene erforderlich.
Erfassen erforderlicher Parameter
Für alle Azure KI-Container werden drei primäre Parameter benötigt. Die Microsoft-Software-Lizenzbedingungen müssen mit dem Wert accept vorhanden sein. Außerdem werden ein Endpunkt-URI und ein API-Schlüssel benötigt.
Endpunkt-URI
Der {ENDPOINT_URI}
-Wert ist im Azure-Portal auf der Seite Übersicht der entsprechenden Azure KI Services-Ressource verfügbar. Wechseln Sie zur Seite Übersicht, zeigen Sie auf den Endpunkt, und das Symbol In die Zwischenablage kopieren wird angezeigt. Kopieren Sie den Endpunkt, und verwenden Sie ihn bei Bedarf.
Tasten
Der {API_KEY}
-Wert wird zum Starten des Containers verwendet und ist im Azure-Portal auf der Seite Schlüssel der entsprechenden Azure KI Services-Ressource verfügbar. Wechseln Sie zur Seite Schlüssel, und wählen Sie das Symbol In die Zwischenablage kopieren aus.
Wichtig
Diese Abonnementschlüssel werden für den Zugriff auf Ihre Azure KI Services-API verwendet. Geben Sie Ihre Schlüssel nicht weiter. Speichern Sie diese sicher. Verwenden Sie beispielsweise Azure Key Vault. Außerdem wird empfohlen, diese Schlüssel regelmäßig neu zu generieren. Für einen API-Aufruf ist nur ein Schlüssel erforderlich. Beim Neugenerieren des ersten Schlüssels können Sie den zweiten Schlüssel für den kontinuierlichen Zugriff auf den Dienst verwenden.
Anforderungen und Empfehlungen für den Hostcomputer
Der Host ist ein x64-basierter Computer, auf dem der Docker-Container ausgeführt wird. Dies kann ein lokaler Computer oder ein Docker-Hostingdienst in Azure sein, z. B.:
- Azure Kubernetes Service
- Azure Container Instances
- Ein in Azure Stack bereitgestellter Kubernetes-Cluster Weitere Informationen finden Sie unter Bereitstellen von Kubernetes in Azure Stack.
In der folgenden Tabelle werden die minimalen und empfohlenen Spezifikationen für die Skills des Zusammenfassung-Containers beschrieben. Die aufgeführten CPU-Arbeitsspeicher-Kombinationen sind für eine Eingabe von 4.000 Token vorgesehen. (Der Konversationsverbrauch gilt für alle Aspekte in derselben Anforderung.)
Containertyp | Empfohlene Anzahl von CPU-Kernen | Empfohlener Arbeitsspeicher | Hinweise |
---|---|---|---|
Zusammenfassungs-CPU-Container | 16 | 48 GB | |
Zusammenfassungs-GPU-Container | 2 | 24 GB | Erfordert eine Nvidia-GPU, die Cuda 11.8 mit 16 GB VRAM unterstützt. |
CPU-Kernanzahl und Arbeitsspeicher entsprechen den Einstellungen --cpus
und --memory
, die im Rahmen des Befehls docker run
verwendet werden.
Abrufen des Containerimages mit docker pull
Das Containerimage für die Zusammenfassung befindet sich im Containerregistrierungssyndikat mcr.microsoft.com
. Es befindet sich im Repository azure-cognitive-services/textanalytics/
und trägt den Namen summarization
. Der vollqualifizierte Containerimagename lautet mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization
.
Um die neueste Version des Containers zu verwenden, können Sie das Tag latest
verwenden. Eine vollständige Liste der Tags finden Sie auch in der MCR.
Verwenden Sie den Befehl docker pull
, um ein Containerimage aus der Microsoft Container Registry herunterzuladen.
docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu
für CPU-Container,
docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:gpu
für GPU-Container.
Tipp
Mithilfe des Befehls docker images können Sie Ihre heruntergeladenen Containerimages auflisten. Mit dem folgenden Befehl werden beispielsweise die ID, das Repository und das Tag jedes heruntergeladenen Containerimages in Form einer Tabelle aufgelistet:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Herunterladen der Zusammenfassungscontainermodelle
Eine Voraussetzung für die Ausführung des Zusammenfassung-Containers besteht darin, zuerst die Modelle herunterzuladen. Dies kann durch Ausführen von einem der folgenden Befehle mithilfe eines CPU-Containerimages erfolgen:
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}
Es wird nicht empfohlen, Modelle für alle Skills im selben HOST_MODELS_PATH
herunterzuladen, da der Container alle Modelle innerhalb des HOST_MODELS_PATH
lädt. Dies würde eine große Menge an Arbeitsspeicher beanspruchen. Es wird empfohlen, nur das Modell für den Skill herunterzuladen, den Sie in einem bestimmten HOST_MODELS_PATH
benötigen.
Um die Kompatibilität zwischen Modellen und dem Container sicherzustellen, laden Sie die verwendeten Modelle erneut herunter, wenn Sie einen Container mit einer neuen Imageversion erstellen. Bei Verwendung eines getrennten Containers sollte die Lizenz nach dem Herunterladen der Modelle erneut heruntergeladen werden.
Ausführen des Containers mit docker run
Wenn sich der Zusammenfassungs-Container auf dem Hostcomputer befindet, verwenden Sie den folgenden Befehl docker run
, um die Container auszuführen. Der Container wird so lange ausgeführt, bis Sie ihn beenden. Ersetzen Sie die folgenden Platzhalter durch Ihre eigenen Werte:
Platzhalter | Wert | Format oder Beispiel |
---|---|---|
{HOST_MODELS_PATH} | Die Volumebereitstellung des Hostcomputers, die Docker zum dauerhaften Speichern des Modells verwendet. | Ein Beispiel ist "c:\SummaryzationModel", auf dem sich das Laufwerk "c:\" auf dem Hostcomputer befindet. |
{ENDPOINT_URI} | Der Endpunkt für den Zugriff auf die Zusammenfassungs-API. Sie finden ihn im Azure-Portal auf der Seite Key and endpoint (Schlüssel und Endpunkt) Ihrer Ressource. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} | Der Schlüssel für Ihre Language-Ressource. Sie finden ihn im Azure-Portal auf der Seite Key and endpoint (Schlüssel und Endpunkt) Ihrer Ressource. | 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}
Wenn Sie einen GPU-Container ausführen, verwenden Sie stattdessen diesen Befehl.
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}
Wenn mehrere GPUs auf dem Computer vorhanden ist, ersetzen Sie --gpus all
durch --gpus device={DEVICE_ID}
.
Wichtig
- In den Docker-Befehlen in den folgenden Abschnitten wird der umgekehrte Schrägstrich (
\
) als Zeilenfortsetzungszeichen verwendet. Ersetzen oder entfernen Sie diesen je nach den Anforderungen des Hostbetriebssystems. - Die Optionen
Eula
,Billing
,rai_terms
undApiKey
müssen angegeben werden, um den Container auszuführen, andernfalls wird der Container nicht gestartet. Weitere Informationen finden Sie unter Abrechnung.
Dieser Befehl:
- Führt einen Zusammenfassungs-Container aus dem Containerimage aus
- Weist einen einzelnen CPU-Kern und 4 GB Arbeitsspeicher zu
- Verfügbarmachen des TCP-Ports 5000 und Zuweisen einer Pseudo-TTY-Verbindung für den Container
- Entfernt den Container automatisch, nachdem er beendet wurde. Das Containerimage ist auf dem Hostcomputer weiterhin verfügbar.
Ausführen mehrerer Container auf dem gleichen Host
Wenn Sie beabsichtigen, mehrere Container mit offengelegten Ports auszuführen, stellen Sie sicher, dass jeder Container mit einem anderen offengelegten Port ausgeführt wird. Führen Sie beispielsweise den ersten Container an Port 5000 und den zweiten Container an Port 5001 aus.
Sie können diesen Container und einen anderen Azure KI Services-Container zusammen auf dem Host ausführen. Sie können auch mehrere Container desselben Azure KI Services-Containers ausführen.
Abfragen des Vorhersageendpunkts des Containers
Der Container stellt REST-basierte Endpunkt-APIs für die Abfragevorhersage bereit.
Verwenden Sie für Container-APIs den Host http://localhost:5000
.
Überprüfen auf aktive Container
Es gibt mehrere Möglichkeiten zu überprüfen, ob ein Container aktiv ist. Suchen Sie die externe IP-Adresse und den verfügbar gemachten Port des betreffenden Containers, und öffnen Sie Ihren bevorzugten Webbrowser. Verwenden Sie die folgenden verschiedenen URLs für Anforderungen, um zu überprüfen, ob der Container ausgeführt wird. Die hier aufgeführten Beispiel-URLs für Anforderungen sind http://localhost:5000
, aber Ihr spezifischer Container kann variieren. Stellen Sie sicher, dass Sie sich auf die externe IP-Adresse Ihres Containers und den verfügbar gemachten Port beziehen.
Anforderungs-URL | Zweck |
---|---|
http://localhost:5000/ |
Der Container stellt eine Homepage bereit. |
http://localhost:5000/ready |
Diese mit GET angeforderte URL ermöglicht es, zu überprüfen, ob der Container eine Abfrage des Modells akzeptiert. Diese Anforderung kann für Live- und Bereitschaftstests von Kubernetes verwendet werden. |
http://localhost:5000/status |
Diese URL wird auch mit GET angefordert und überprüft, ob der zum Starten des Containers verwendete API-Schlüssel gültig ist, ohne dass eine Endpunktabfrage veranlasst wird. Diese Anforderung kann für Live- und Bereitschaftstests von Kubernetes verwendet werden. |
http://localhost:5000/swagger |
Der Container stellt eine umfassende Dokumentation für die Endpunkte sowie die Funktion Jetzt ausprobieren bereit. Diese Funktion ermöglicht Ihnen die Eingabe Ihrer Einstellungen in einem webbasierten HTML-Formular, sodass Sie die Abfrage ausführen können, ohne Code schreiben zu müssen. Nach der Rückgabe der Abfrage wird ein cURL-Beispielbefehl bereitgestellt, der das erforderliche Format für HTTP-Header und -Text veranschaulicht. |
Ausführen des Containers ohne Verbindung zum Internet
Um diesen Container ohne Internetverbindung nutzen zu können, müssen Sie zunächst einen Antrag auf Zugriff stellen und einen Prepaidtarif erwerben. Weitere Informationen finden Sie unter Verwendung von Docker-Containern in nicht verbundenen Umgebungen.
Wenn Sie die Erlaubnis erhalten haben, den Container ohne Internetverbindung zu betreiben, verwenden Sie das folgende Beispiel, das die Formatierung des zu verwendenden docker run
-Befehls mit Platzhalterwerten zeigt. Ersetzen Sie diese Platzhalterwerte durch eigene Werte.
Der DownloadLicense=True
Parameter in Ihrem docker run
-Befehl lädt eine Lizenzdatei herunter, die es Ihrem Docker-Container ermöglicht, auch ohne Internetverbindung zu arbeiten. Sie enthält auch ein Ablaufdatum, nach dem die Lizenzdatei nicht mehr für die Ausführung des Containers gültig ist. Sie können eine Lizenzdatei nur mit dem entsprechenden Container verwenden, für den Sie eine Genehmigung erhalten haben. So können Sie z. B. keine Lizenzdatei für einen Spracherkennungscontainer mit einem Sprachdienst-Container verwenden.
Herunterladen der Zusammenfassung der getrennten Containermodelle
Eine Voraussetzung für die Ausführung des Zusammenfassung-Containers besteht darin, zuerst die Modelle herunterzuladen. Dies kann durch Ausführen von einem der folgenden Befehle mithilfe eines CPU-Containerimages erfolgen:
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}
Es wird nicht empfohlen, Modelle für alle Skills im selben HOST_MODELS_PATH
herunterzuladen, da der Container alle Modelle innerhalb des HOST_MODELS_PATH
lädt. Dies würde eine große Menge an Arbeitsspeicher beanspruchen. Es wird empfohlen, nur das Modell für den Skill herunterzuladen, den Sie in einem bestimmten HOST_MODELS_PATH
benötigen.
Um die Kompatibilität zwischen Modellen und dem Container sicherzustellen, laden Sie die verwendeten Modelle erneut herunter, wenn Sie einen Container mit einer neuen Imageversion erstellen. Bei Verwendung eines getrennten Containers sollte die Lizenz nach dem Herunterladen der Modelle erneut heruntergeladen werden.
Ausführen des nicht verbundenen Containers mit docker run
Platzhalter | Wert | Format oder Beispiel |
---|---|---|
{IMAGE} |
Das Containerimage, das Sie verwenden möchten. | mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu |
{LICENSE_MOUNT} |
Der Pfad, in den die Lizenz heruntergeladen und eingebunden wird. | /host/license:/path/to/license/directory |
{HOST_MODELS_PATH} |
Der Pfad, in den die Modelle heruntergeladen und eingebunden wurden. | /host/models:/models |
{ENDPOINT_URI} |
Der Endpunkt für Ihre Service Request-Authentifizierung. Sie finden ihn im Azure-Portal auf der Seite Key and endpoint (Schlüssel und Endpunkt) Ihrer Ressource. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{API_KEY} |
Der Schlüssel für Ihre Textanalyseressource. Sie finden ihn im Azure-Portal auf der Seite Key and endpoint (Schlüssel und Endpunkt) Ihrer Ressource. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{CONTAINER_LICENSE_DIRECTORY} |
Speicherort des Lizenzordners im lokalen Dateisystem des Containers. | /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}
Nachdem die Lizenzdatei heruntergeladen wurde, können Sie den Container in einer nicht verbundenen Umgebung ausführen. Das folgende Beispiel zeigt die Formatierung des zu verwendenden docker run
-Befehls mit Platzhalterwerten. Ersetzen Sie diese Platzhalterwerte durch eigene Werte.
Unabhängig davon, wo der Container ausgeführt wird, muss die Lizenzdatei in den Container eingebunden und der Speicherort des Lizenzordners im lokalen Dateisystem des Containers muss mit Mounts:License=
angegeben werden. Außerdem muss eine Ausgabeeinbindung angegeben werden, sodass Einträge für die Abrechnung der Nutzung geschrieben werden können.
Platzhalter | Wert | Format oder Beispiel |
---|---|---|
{IMAGE} |
Das Containerimage, das Sie verwenden möchten. | mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization:cpu |
{MEMORY_SIZE} |
Die geeignete Größe des Arbeitsspeichers, der für Ihren Container zugeordnet werden soll. | 4g |
{NUMBER_CPUS} |
Die geeignete Anzahl von CPUs, die für Ihren Container zugeordnet werden soll. | 4 |
{LICENSE_MOUNT} |
Der Pfad, in dem sich die Lizenz befindet und eingebunden wird. | /host/license:/path/to/license/directory |
{HOST_MODELS_PATH} |
Der Pfad, in den die Modelle heruntergeladen und eingebunden wurden. | /host/models:/models |
{OUTPUT_PATH} |
Der Ausgabepfad für die Protokollierung von Verwendungseinträgen. | /host/output:/path/to/output/directory |
{CONTAINER_LICENSE_DIRECTORY} |
Speicherort des Lizenzordners im lokalen Dateisystem des Containers. | /path/to/license/directory |
{CONTAINER_OUTPUT_DIRECTORY} |
Speicherort des Ausgabeordners im lokalen Dateisystem des Containers. | /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}
Beenden des Containers
Zum Herunterfahren des Containers drücken Sie in der Befehlszeilenumgebung, in der der Container ausgeführt wird, STRG+C.
Problembehandlung
Wenn Sie den Container mit einer Ausgabenbereitstellung ausführen und die Protokollierung aktiviert ist, generiert der Container Protokolldateien. Diese sind hilfreich, um Probleme beim Starten oder Ausführen des Containers zu beheben.
Tipp
Weitere Informationen und Leitfäden zur Problembehandlung finden Sie unter Häufig gestellte Fragen (FAQ) zu Azure KI-Containern.
Abrechnung
Die Zusammenfassung-Container senden Abrechnungsinformationen mithilfe einer Sprachressource in Ihrem Azure-Konto an Azure.
Abfragen des Containers werden gemäß des Tarifs der Azure-Ressource in Rechnung gestellt, die für den Parameter ApiKey
verwendet wird.
Azure KI Services-Container sind nicht zur Ausführung lizenziert, wenn keine Verbindung mit dem Endpunkt zur Verbrauchsmessung oder Abrechnung besteht. Sie müssen sicherstellen, dass die Container jederzeit Abrechnungsinformationen an den Abrechnungsendpunkt übermitteln können. Azure KI Services-Container senden keine Kundendaten (z. B. das analysierte Bild oder den analysierten Text) an Microsoft.
Herstellen einer Verbindung mit Azure
Der Container benötigt die Abrechnungsargumentwerte, um ausgeführt werden zu können. Diese Werte ermöglichen es dem Container, eine Verbindung mit dem Abrechnungsendpunkt herzustellen. Der Container meldet die Nutzung etwa alle 10 bis 15 Minuten. Wenn der Container nicht innerhalb des zulässigen Zeitfensters eine Verbindung mit Azure herstellt, wird der Container weiterhin ausgeführt, verarbeitet aber keine Anfragen, bis der Abrechnungsendpunkt wiederhergestellt wurde. Es erfolgen 10 Verbindungsversuche im gleichen Zeitintervall von 10 bis 15 Minuten. Wenn die Verbindung mit dem Abrechnungsendpunkt nicht innerhalb der 10 Versuche hergestellt werden kann, wird die Bereitstellung von Anforderungen durch den Container beendet. Ein Beispiel der zur Abrechnung an Microsoft gesendeten Informationen finden Sie in den häufig gestellten Fragen (FAQ) zu Azure KI Services-Containern.
Abrechnungsargumente
Der Befehl docker run
startet den Container, wenn alle drei der folgenden Optionen über gültige Werte verfügen:
Option | Beschreibung |
---|---|
ApiKey |
Der API-Schlüssel der Azure KI Services-Ressource, der zum Nachverfolgen von Abrechnungsinformationen verwendet wird. Der Wert dieser Option muss für die bereitgestellte Ressource, die in Billing angegeben wurde, auf einen API-Schlüssel festgelegt werden. |
Billing |
Der Endpunkt der Azure KI Services-Ressource, der zum Nachverfolgen von Abrechnungsinformationen verwendet wird Der Wert dieser Option muss auf den Endpunkt-URI einer bereitgestellten Azure-Ressource festgelegt werden. |
Eula |
Gibt an, dass Sie die Lizenz für den Container akzeptiert haben. Der Wert dieser Option muss auf accept festgelegt werden. |
Weitere Informationen zu diesen Optionen finden Sie unter Konfigurieren von Containern.
Zusammenfassung
In diesem Artikel haben Sie die Konzepte und den Workflow zum Herunterladen, Installieren und Ausführen von Zusammenfassung-Containern kennengelernt. Zusammenfassung:
- Die Zusammenfassung stellt Linux-Container für Docker bereit
- Containerimages werden aus Microsoft Container Registry (MCR) heruntergeladen.
- Containerimages werden in Docker ausgeführt.
- Bei der Instanziierung eines Containers müssen Sie Abrechnungsinformationen angeben.
Wichtig
Für die Ausführung dieses Containers besteht keine Lizenz, wenn er nicht zu Messzwecken mit Azure verbunden ist. Kunden müssen sicherstellen, dass Container jederzeit Abrechnungsinformationen an den Messungsdienst übermitteln können. Azure KI Services-Container senden keine Kundendaten (z. B. den analysierten Text) an Microsoft.
Nächste Schritte
- Sehen Sie sich die Konfigurationseinstellungen unter Konfigurieren von Containern an.