Bearbeiten

Freigeben über


Implementieren einer Protokollierung und Überwachung für Azure OpenAI-Modelle

Azure KI Services
Azure API Management
Azure Monitor
Microsoft Entra ID

Diese Lösung bietet eine umfassende Protokollierung und Überwachung sowie erhöhte Sicherheit für Unternehmensbereitstellungen der Azure OpenAI Service-API. Diese Lösung ermöglicht erweiterte Protokollierungsfunktionen zum Nachverfolgen der API-Nutzung und -Leistung sowie stabile Sicherheitsmaßnahmen zum Schützen vertraulicher Daten und Verhindern schädlicher Aktivitäten.

Aufbau

Diagramm: Eine Architektur, die Überwachung und Protokollierung für Azure OpenAI bereitstellt.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

  1. Clientanwendungen greifen auf Azure OpenAI-Endpunkte zu, um die Textgenerierung (Vervollständigungen) und das Modelltraining (Feinabstimmung) durchzuführen.

  2. Azure Application Gateway stellt einen einzelnen Einstiegspunkt für Azure OpenAI-Modelle und einen Lastenausgleich für APIs bereit.

    Hinweis

    Der Lastenausgleich von zustandsbehafteten Vorgängen (z. B. Feinabstimmung von Modellen, Bereitstellungen und Rückschlüsse aus fein abgestimmten Modellen) wird nicht unterstützt.

  3. Azure API Management ermöglicht Sicherheitskontrollen sowie die Überprüfung und Überwachung der Azure OpenAI-Modelle.

    1. In API Management wird der Zugriff mit erhöhter Sicherheit über Microsoft Entra-Gruppen mit abonnementbasierten Zugriffsberechtigungen gewährt.
    2. Die Überprüfung ist für alle Interaktionen mit den Modellen über die Azure Monitor-Anforderungsprotokollierung aktiviert.
    3. Die Überwachung bietet detaillierte Nutzungs-KPIs (Key Performance Indicators) und -metriken für das Azure OpenAI-Modell, einschließlich Eingabeaufforderungsinformationen und Tokenstatistiken für die Nachverfolgbarkeit der Nutzung.
  4. API Management verwendet für alle Azure-Ressourcen Azure Private Link zum Herstellen einer Verbindung. Diese Konfiguration bietet erhöhte Sicherheit für den gesamten Datenverkehr über private Endpunkte und umfasst Datenverkehr im privaten Netzwerk.

  5. Die Verwendung mehrerer Azure OpenAI-Instanzen ermöglicht die horizontale Skalierung der API-Nutzung, um Hochverfügbarkeit und Notfallwiederherstellung für den Dienst sicherzustellen.

Komponenten

  • Application Gateway. Ein Anwendungslastenausgleich, der sicherstellt, dass alle Benutzer*innen der Azure OpenAI-APIs die schnellstmögliche Antwort und den höchsten Durchsatz für Modellvervollständigungen erhalten.
  • API Management. Die API Management-Plattform wird für den Zugriff auf Azure OpenAI-Back-End-Endpunkte verwendet. Sie bietet Überwachungs- und Protokollierungsfunktionen, die nicht nativ in Azure OpenAI verfügbar sind.
  • Azure Virtual Network. Eine private Netzwerkinfrastruktur in der Cloud. Dieser Dienst bietet Netzwerkisolation, sodass der gesamte Netzwerkdatenverkehr für Modelle privat an Azure OpenAI weitergeleitet wird.
  • Azure OpenAI. Ein Dienst, der Modelle hostet und generative Vervollständigungsausgaben des Modells bereitstellt.
  • Überwachen. Dieser Dienst ermöglicht End-to-End-Einblicke für Anwendungen. Er bietet über die Kusto-Abfragesprache (Kusto Query Language, KQL) Zugriff auf Anwendungsprotokolle. Außerdem bietet er Dashboardberichte sowie Überwachungs- und Warnungsfunktionen.
  • Azure Key Vault. Ein Speicher mit erhöhter Sicherheit für Schlüssel und Geheimnisse, die von Anwendungen verwendet werden.
  • Azure Storage. Ein Anwendungsspeicher in der Cloud. Dieser Dienst bietet Azure OpenAI-Zugriff auf Modelltrainingsartefakte.
  • Microsoft Entra ID. Identitätsverwaltung mit erhöhter Sicherheit. Dieser Dienst ermöglicht die Benutzerauthentifizierung und -autorisierung für die Anwendung sowie für Plattformdienste, die die Anwendung unterstützen. Er stellt außerdem Gruppenrichtlinien bereit, um sicherzustellen, dass das Prinzip der geringsten Rechte auf alle Benutzer*innen angewendet wird.

Alternativen

Azure OpenAI bietet eine native Protokollierung und Überwachung. Sie können diese native Funktion verwenden, um Telemetriedaten des Diensts nachzuverfolgen, in der standardmäßigen Cognitive Service-Protokollierung werden jedoch keine Ein- und Ausgaben des Diensts (z. B. Eingabeaufforderungen, Token und Modelle) nachverfolgt oder aufgezeichnet. Diese Metriken sind insbesondere für Compliancezwecke und zum Sicherstellen der einwandfreien Funktion des Diensts wichtig. Durch die Nachverfolgung der Interaktionen mit den in Azure OpenAI bereitgestellten Sprachmodellen können Sie außerdem analysieren, wie der Dienst in Ihrer Organisation genutzt wird, um Kosten- und Nutzungsmuster zu identifizieren, die bei Entscheidungen bezüglich der Skalierung und Ressourcenzuordnung helfen können.

Die folgende Tabelle enthält einen Vergleich der Metriken, die von der standardmäßigen Azure OpenAI-Protokollierung bereitgestellt werden, und den Metriken dieser Lösung.

Metrik Standardmäßige Azure OpenAI-Protokollierung Diese Lösung
Anforderungsanzahl x x
Eingehende Daten (Größe)/ausgehende Daten (Größe) x x
Latency x x
Tokentransaktionen (insgesamt) x x
IP-Adresse des Aufrufers x (letztes Oktett maskiert) x
Modellnutzung x
Tokennutzung (Eingabe/Ausgabe) x x
Details der eingegebenen Eingabeaufforderung x (beschränkt auf 8.192 Antwortzeichen)
Details der ausgegebenen Vervollständigung x (beschränkt auf 8.192 Antwortzeichen)
Bereitstellungsvorgänge x x
Einbettungsvorgänge x x (beschränkt auf 8.192 Antwortzeichen)

Szenariodetails

Große Unternehmen, die generative KI-Modelle (künstliche Intelligenz) verwenden, müssen eine Überwachung und Protokollierung der Nutzung dieser Modelle implementieren, um eine verantwortungsvolle Verwendung und die Einhaltung von Unternehmensrichtlinien sicherzustellen. Diese Lösung bietet für alle Interaktionen mit KI-Modellen eine Protokollierung und Überwachung für Unternehmen, um die schädliche Verwendung der Modelle zu minimieren und sicherzustellen, dass Sicherheits- und Compliancestandards eingehalten werden. Die Lösung kann mit geringem Änderungsaufwand in vorhandene APIs für Azure OpenAI integriert werden, um vorhandene Codebasen zu nutzen. Administrator*innen können zur Berichterstellung auch die Dienstnutzung überwachen.

Die Lösung bietet folgende Vorteile:

  • Umfassende Protokollierung der Ausführung von Azure OpenAI-Modellen (nachverfolgt bis zur Quell-IP-Adresse). Die Protokollinformationen enthalten den von Benutzer*innen an das Modell übermittelte Text sowie den vom Modell zurückgegebenen Text. Durch diese Protokollierung wird sichergestellt, dass Modelle verantwortungsvoll und im Rahmen der genehmigten Anwendungsfälle des Diensts verwendet werden.
  • Hochverfügbarkeit der Modell-APIs, um sicherzustellen, dass Benutzeranforderungen auch dann erfüllt werden, wenn der Datenverkehr die Grenzwerte einer einzelnen Azure OpenAI Service-Instanz überschreitet.
  • Über Microsoft Entra ID verwalteter rollenbasierter Zugriff, um sicherzustellen, dass das Prinzip der geringsten Rechte angewandt wird.

Beispielabfrage für die Nutzungsüberwachung

ApiManagementGatewayLogs
| where OperationId == 'completions_create'
| extend modelkey = substring(parse_json(BackendResponseBody)['model'], 0, indexof(parse_json(BackendResponseBody)['model'], '-', 0, -1, 2))
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| extend prompttokens = parse_json(parse_json(BackendResponseBody)['usage'])['prompt_tokens']
| extend completiontokens = parse_json(parse_json(BackendResponseBody)['usage'])['completion_tokens']
| extend totaltokens = parse_json(parse_json(BackendResponseBody)['usage'])['total_tokens']
| extend ip = CallerIpAddress
| summarize
    sum(todecimal(prompttokens)),
    sum(todecimal(completiontokens)),
    sum(todecimal(totaltokens)),
    avg(todecimal(totaltokens))
    by ip, model

Ausgabe:

Screenshot: Ausgabe der Nutzungsüberwachung.

Beispielabfrage für die Überwachung der Nutzung von Eingabeaufforderungen

ApiManagementGatewayLogs
| where OperationId == 'completions_create'
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| extend prompttokens = parse_json(parse_json(BackendResponseBody)['usage'])['prompt_tokens']
| extend prompttext = substring(parse_json(parse_json(BackendResponseBody)['choices'])[0], 0, 100)

Ausgabe:

Screenshot: Ausgabe der Überwachung der Nutzung von Eingabeaufforderungen.

Mögliche Anwendungsfälle

  • Bereitstellung von Azure OpenAI für interne Unternehmensbenutzer*innen zur Produktivitätssteigerung
  • Hochverfügbarkeit von Azure OpenAI für interne Anwendungen
  • Verwendung der erhöhten Sicherheit von Azure OpenAI in regulierten Branchen

Überlegungen

Diese Überlegungen bilden die Säulen des Azure Well-Architected Framework, einer Reihe von Leitprinzipien, die Sie zur Verbesserung der Qualität eines Workloads verwenden können. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Zuverlässigkeit

Zuverlässigkeit stellt sicher, dass die Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie in der Überblick über die Säule „Zuverlässigkeit“.

Dieses Szenario stellt die Hochverfügbarkeit der Sprachmodelle für Benutzer*innen in Ihrem Unternehmen sicher. Azure Application Gateway bietet einen effektiven Layer-7-Anwendungsbereitstellungsmechanismus, um einen schnellen und konsistenten Zugriff auf Anwendungen zu gewährleisten. Sie können API Management verwenden, um den Zugriff auf Ihre Modelle zu konfigurieren, zu verwalten und zu überwachen. Die inhärente Hochverfügbarkeit von Plattformdiensten wie Storage, Key Vault und Virtual Network gewährleistet eine hohe Zuverlässigkeit für Ihre Anwendung. Zudem können Sie durch die Bereitstellung mehrerer Instanzen von Azure OpenAI die Dienstresilienz bei Fehlern auf Anwendungsebene gewährleisten. Diese Architekturkomponenten können Ihnen helfen, die Zuverlässigkeit Ihrer Anwendung auf Unternehmensniveau sicherzustellen.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

Durch die Implementierung bewährter Methoden für die Isolation Ihrer Clouddienste auf Anwendungs- und Netzwerkebene können Sie mit diesem Szenario das Risiko einer Datenexfiltration und von Datenlecks reduzieren. Der gesamte Netzwerkdatenverkehr, der potenziell in das Modell eingegebene vertrauliche Daten enthält, wird in einem privaten Netzwerk isoliert. Dieser Datenverkehr wird nicht über öffentliche Internetrouten gesendet. Sie können Azure ExpressRoute verwenden, um den Netzwerkdatenverkehr im Unternehmensintranet zusätzlich zu isolieren und die End-to-End-Netzwerksicherheit sicherzustellen.

Kostenoptimierung

Bei der Kostenoptimierung geht es darum, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Damit Sie die Kosten für dieses Szenario ermitteln können, haben wir alle Dienste im Azure-Preisrechner vorkonfiguriert. Wenn Sie wissen möchten, welche Kosten für Ihren Anwendungsfall entstehen, können Sie die relevanten Variablen entsprechend dem erwarteten Datenverkehr ändern.

Die Schätzungen für die folgenden drei Beispielkostenprofile basieren auf dem Datenverkehrsvolumen. (Die Schätzungen setzen voraus, dass ein Dokument ungefähr 1.000 Token enthält.)

  • Klein: Für die Verarbeitung von 10.000 Dokumenten pro Monat
  • Mittel: Für die Verarbeitung von 100.000 Dokumenten pro Monat
  • Groß: Für die Verarbeitung von 10 Millionen Dokumenten pro Monat

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautoren:

  • Ashish Chauhan | Cloud Solution Architect – Data / AI
  • Jake Wang | Cloud Solution Architect – AI / Machine Learning

Andere Mitwirkende:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte