Installieren und Ausführen von Containern für die benutzerdefinierte benannte Entitätserkennung

Container ermöglichen es Ihnen, die API für die benutzerdefinierte benannte Entitätserkennung in Ihrer eigenen Infrastruktur mit Ihrem eigenen trainierten Modell zu hosten. Wenn Sie Sicherheits- oder Datengovernance-Anforderungen haben, die durch den Remoteaufruf der benutzerdefinierten benannten Entitätserkennung nicht erfüllt werden können, sind Container möglicherweise eine gute Option.

Hinweis

  • Das kostenlose Konto ist auf 5.000 Textdatensätze pro Monat beschränkt, und für Container können nur die TarifeFree und Standard verwendet werden. Weitere Informationen zu den Transaktionsanforderungsraten finden Sie unter Daten- und Diensteinschränkungen.

Voraussetzungen

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 Zwischenablage kopieren wird angezeigt. Kopieren Sie den Endpunkt, und verwenden Sie ihn bei Bedarf.

Screenshot, der die Erfassung des Endpunkt-URIs für den späteren Gebrauch zeigt.

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 Zwischenablage kopieren aus.

Screenshot, der das Abrufen eines der zwei Schlüssel für den späteren Gebrauch zeigt.

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 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.:

In der folgenden Tabelle werden die minimalen und empfohlenen Spezifikationen für Container für die benutzerdefinierte benannte Entitätserkennung beschrieben. Jeder CPU-Kern muss eine Geschwindigkeit von mindestens 2,6 GHz aufweisen. Die zulässigen Transaktionen pro Sekunde (Transactions Per Second, TPS) sind ebenfalls aufgeführt.

Mindestspezifikationen für Hosts Empfohlene Hostspezifikationen Mindestanzahl von TPS Maximale Anzahl von TPS
Benutzerdefinierte Erkennung benannter Entitäten (Custom Named Entity Recognition) 1 Kern, 2 GB Arbeitsspeicher 1 Kern, 4 GB Arbeitsspeicher 15 30

CPU-Kernanzahl und Arbeitsspeicher entsprechen den Einstellungen --cpus und --memory, die im Rahmen des Befehls docker run verwendet werden.

Exportieren Ihres Modells für die benutzerdefinierte benannte Entitätserkennung

Bevor Sie mit der Ausführung des Docker-Images fortfahren, müssen Sie Ihr eigenes trainiertes Modell exportieren, um es für Ihren Container verfügbar zu machen. Verwenden Sie den folgenden Befehl, um Ihr Modell zu extrahieren, und ersetzen Sie die folgenden Platzhalter durch Ihre eigenen Werte:

Platzhalter Wert Format oder Beispiel
{API_KEY} Der Schlüssel für Ihre Ressource für die benutzerdefinierte benannte Entitätserkennung. Sie finden ihn im Azure-Portal auf der Seite Key and endpoint (Schlüssel und Endpunkt) Ihrer Ressource. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{ENDPOINT_URI} Der Endpunkt für den Zugriff auf die API für die benutzerdefinierte benannte Entitätserkennung. 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
{PROJECT_NAME} Der Name des Projekts, das das zu exportierende Modell enthält. Sie finden ihn im Language Studio-Portal auf der Registerkarte „Projekte“. myProject
{TRAINED_MODEL_NAME} Der Name des trainierten Modells, das Sie exportieren möchten. Sie finden Ihre trainierten Modelle auf der Registerkarte „Modellauswertung“ unter Ihrem Projekt im Language Studio-Portal. myTrainedModel
curl --location --request PUT '{ENDPOINT_URI}/language/authoring/analyze-text/projects/{PROJECT_NAME}/exported-models/{TRAINED_MODEL_NAME}?api-version=2023-04-15-preview' \
--header 'Ocp-Apim-Subscription-Key: {API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "TrainedmodelLabel": "{TRAINED_MODEL_NAME}"
}'

Abrufen des Containerimages mit docker pull

Das Containerimage „Benutzerdefinierte benannte Entitätserkennung“ befindet sich im Containerregistrierungssyndikat mcr.microsoft.com. Es befindet sich im Repository azure-cognitive-services/textanalytics/ und trägt den Namen customner. Der vollqualifizierte Containerimagename lautet mcr.microsoft.com/azure-cognitive-services/textanalytics/customner.

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 Microsoft Container Registry herunterzuladen.

docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/customner:latest

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>

Ausführen des Containers mit docker run

Wenn sich der Container auf dem Hostcomputer befindet, verwenden Sie den Befehl docker run, um die Container auszuführen. Der Container wird so lange ausgeführt, bis Sie ihn beenden.

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 und ApiKey müssen angegeben werden, um den Container auszuführen, andernfalls wird der Container nicht gestartet. Weitere Informationen finden Sie unter Abrechnung.

Führen Sie zum Ausführen des Containers Benutzerdefinierte benannte Entitätserkennung den folgenden docker run-Befehl aus. Ersetzen Sie die folgenden Platzhalter durch Ihre eigenen Werte:

Platzhalter Wert Format oder Beispiel
{API_KEY} Der Schlüssel für Ihre Ressource für die benutzerdefinierte benannte Entitätserkennung. Sie finden ihn im Azure-Portal auf der Seite Key and endpoint (Schlüssel und Endpunkt) Ihrer Ressource. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{ENDPOINT_URI} Der Endpunkt für den Zugriff auf die API für die benutzerdefinierte benannte Entitätserkennung. 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
{PROJECT_NAME} Der Name des Projekts, das das zu exportierende Modell enthält. Sie finden ihn im Language Studio-Portal auf der Registerkarte „Projekte“. myProject
{LOCAL_PATH} Der Pfad, in den das exportierte Modell im vorherigen Schritt heruntergeladen wird. Sie können einen beliebigen Pfad auswählen. C:/custom-ner-model
{TRAINED_MODEL_NAME} Der Name des trainierten Modells, das Sie exportieren möchten. Sie finden Ihre trainierten Modelle auf der Registerkarte „Modellauswertung“ unter Ihrem Projekt im Language Studio-Portal. myTrainedModel
docker run --rm -it -p5000:5000  --memory 4g --cpus 1 \
-v {LOCAL_PATH}:/modelPath \
mcr.microsoft.com/azure-cognitive-services/textanalytics/customner:latest \
EULA=accept \
BILLING={ENDPOINT_URI} \
APIKEY={API_KEY} \
projectName={PROJECT_NAME}
exportedModelName={TRAINED_MODEL_NAME}

Dieser Befehl:

  • Führt einen Container für die benutzerdefinierte benannte Entitätserkennung aus und lädt das exportierte Modell in den angegebenen lokalen Pfad herunter.
  • 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 zusammen mit einem anderen Azure KI Services-Container 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.

Homepage des Containers

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 Container für die benutzerdefinierte benannte Entitätserkennung senden Abrechnungsinformationen an Azure und verwenden dabei eine Ressource für benutzerdefinierte benannte Entitätserkennung in Ihrem Azure-Konto.

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 wie 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.

Zusammenfassung

In diesem Artikel haben Sie die Konzepte und den Workflow zum Herunterladen, Installieren und Ausführen von Containern für die benutzerdefinierte benannte Entitätserkennung kennengelernt. Zusammenfassung:

  • Die benutzerdefinierte benannte Entitätserkennung stellt Linux-Container für Docker bereit.
  • Containerimages werden aus Microsoft Container Registry (MCR) heruntergeladen.
  • Containerimages werden in Docker ausgeführt.
  • Sie können entweder die REST-API oder das SDK verwenden, um Vorgänge in Containern für die benutzerdefinierte benannte Entitätserkennung über den Host-URI des Containers aufzurufen.
  • Bei der Instanziierung eines Containers müssen Sie Abrechnungsinformationen angeben.

Wichtig

Für die Ausführung von Azure KI Services-Containern besteht keine Lizenz, wenn sie nicht zu Messzwecken mit Azure verbunden sind. 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