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 umfassende Protokollierungs- und Überwachungsfunktionen sowie verbesserte Sicherheit für die Bereitstellung der Azure OpenAI Service-API auf Unternehmensebene. Die Lösung ermöglicht erweiterte Protokollierungsfunktionen zur Verfolgung von API-Nutzung und -Leistung. Darüber hinaus kommen robuste Sicherheitsmaßnahmen zum Einsatz, um sensible Daten zu schützen und bösartige Aktivitäten zu verhindern.

Aufbau

Ein Diagramm, das eine Architektur zeigt, die Überwachung und Protokollierung für Azure OpenAI bietet.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Workflow

  1. Client-Anwendungen greifen auf Azure OpenAI-Endpunkte zu, um Texte zu generieren oder zu vervollständigen sowie Modelle zu trainieren oder abzustimmen.

  2. Azure Application Gateway stellt einen einzigen Einstiegspunkt für Clients in das private Netzwerk bereit, das die Azure OpenAI-Modelle und APIs enthält. Für interne Anwendungen ermöglicht das Gateway auch den hybriden Zugriff von standortübergreifenden Clients.

    • Eine Application Gateway Web Application Firewall (WAF) bietet Schutz vor gängigen Web-Schwachstellen und Exploits.
    • Die Integritätstests des Application Gateway überwachen den Zustand der APIs.

    Hinweis

    Der Lastausgleich von zustandsabhängigen Operationen, wie z. B. die Feinabstimmung und Bereitstellung von Modellen und die Inferenz von feinabgestimmten Modellen, wird nicht unterstützt.

  3. Azure API Management ermöglicht Sicherheitskontrollen sowie die Prüfung und Überwachung von Azure OpenAI-Modellen.

    • In der API-Verwaltung gewähren Microsoft Entra-Gruppen, die über abonnementbasierte Zugriffsberechtigungen verfügen, einen erweiterten Sicherheitszugang.
    • Die Protokollierung von Anforderungen in Azure Monitor ermöglicht die Überprüfung aller Interaktionen mit den Modellen.
    • Bei der Überwachung erhalten Sie detaillierte Informationen über die Nutzung des Azure OpenAI-Modells, wichtige Leistungsindikatoren (KPIs) und Metriken, einschließlich Prompt-Informationen und Token-Statistiken zur Nachverfolgung der Nutzung.
  4. API Management verwendet für alle ursprünglichen Ressourcen über Azure Private Link zum Herstellen einer Verbindung. Diese Konfiguration bietet einen verbesserten Datenschutz für den gesamten Datenverkehr, da dieser im privaten Netzwerk eingeschlossen ist.

  5. Diese Topologie unterstützt auch mehrere Azure OpenAI-Instanzen, sodass Sie die API-Nutzung skalieren können, um eine hohe Verfügbarkeit und Notfallwiederherstellung für den Service zu gewährleisten.

  6. Für Azure OpenAI-Modelleingaben und -ausgaben, die über die Standardprotokollierungsfunktionen hinausgehen, leiten API-Verwaltungsrichtlinien Anforderungen an Azure Event Hubs und Azure Stream Analytics weiter. Diese Dienste extrahieren Nutzdaten und speichern sie in einem Azure-Datenspeicherdienst wie Azure SQL Database oder Azure Data Explorer. Dieser Prozess erfasst spezifische Daten für Compliance- und Auditing-Zwecke ohne Grenzwerte für die Größe der Nutzlast und mit minimalen Auswirkungen auf die Leistung.

    Hinweis

    Das Streaming von Antworten mit Azure OpenAI-Modellen erfordert mehr Konfiguration, um Modellabschlüsse zu erfassen. Diese Art der Konfiguration wird in dieser Architektur nicht behandelt.

Komponenten

  • Application Gateway. Ein Application Load Balancer, der dafür sorgt, dass alle Benutzer von Azure OpenAI API die schnellste Antwort und den höchsten Durchsatz für Modellabschlüsse erhalten. Das Anwendungs-Gateway bietet außerdem eine WAF zum Schutz vor gängigen Web-Schwachstellen und Exploits.
  • API Management. Eine API-Verwaltungsplattform für den Back-End-Zugang zu Azure OpenAI-Endpunkten. Es bietet Überwachungs- und Protokollierungsfunktionen, die in Azure OpenAI nicht nativ verfügbar sind. Die API-Verwaltung bietet außerdem Überwachung, Protokollierung und verwalteten Zugriff auf Azure OpenAI-Ressourcen.
  • Azure Virtual Network. Eine private Netzwerk-Infrastruktur in der Cloud. Es bietet eine Netzwerkisolierung, sodass der gesamte Netzwerkverkehr für die Modelle privat an Azure OpenAI weitergeleitet wird. In dieser Architektur stellt das virtuelle Netzwerk die Netzwerkisolation für alle bereitgestellten Azure-Ressourcen bereit.
  • Azure OpenAI. Ein Dienst, der Modelle hostet und generative Modellergänzungsergebnisse liefert. Azure OpenAI bietet seinen Benutzern Zugang zu den großen Sprachmodellen (LLMs) von GPT.
  • Überwachen. Ein Plattformdienst, der End-to-End-Einblicke für Anwendungen bietet. Es ermöglicht den Zugriff auf Anwendungsprotokolle über Kusto-Abfragesprache. Außerdem ermöglicht es Dashboard-Berichte sowie Überwachungs- und Warnfunktionen. In dieser Architektur bietet die Überwachung den Zugriff auf API-Verwaltungsprotokolle und Metriken.
  • Azure Key Vault. Ein Dienst, der die Sicherheit der Speicherung von Schlüsseln und Secrets erhöht, die von Anwendungen verwendet werden. Key Vault bietet einen sicheren Speicher für alle geheimen Ressourcen.
  • Azure Storage. Eine Gruppe von Diensten, die Anwendungsspeicher in der Cloud bereitstellen. Storage ermöglicht Azure OpenAI den Zugriff auf Modell-Trainingsartefakte. Es bietet auch die Persistenz von Azure OpenAI verwalteten Artefakten.
  • Event Hubs. Ein Event Ingestion Service, der Ereignisse von Anwendungen und Diensten empfängt und verarbeitet. Event Hubs bietet einen skalierbaren Event-Ingestion-Service für das Streaming von Azure OpenAI-Modellabschlüssen.
  • Stream Analytics. Ein Modul zur Ereignisverarbeitung, das die Verarbeitung von Datenströmen von Event Hubs in Echtzeit ermöglicht. Stream Analytics ermöglicht die Echtzeitverarbeitung von gestreamten Nachrichten.
  • Azure Data Explorer. Ein schneller und hoch skalierbarer Datenexplorationsdienst für Protokoll- und Telemetriedaten. Azure Data Explorer kann alle protokollierten Konversationen speichern, die im Streaming-Modus vom LLM gesendet werden.
  • SQL-Datenbank Ein verwalteter relationaler Datenbankdienst, der eine sichere, skalierbare Datenbank für die Speicherung strukturierter Daten bietet. Die SQL-Datenbank kann alle protokollierten Konversationen speichern, die im Streaming-Modus vom LLM gesendet werden.
  • Microsoft Entra ID. Ein Dienst, der die Authentifizierung und Autorisierung des Benutzers gegenüber der Anwendung und den Plattformdiensten, die die Anwendung unterstützen, ermöglicht. Microsoft Entra ID bietet einen sicheren Zugang zu allen Azure-Ressourcen, einschließlich einer identitätsbasierten Zugangskontrolle.

Alternativen

Azure OpenAI bietet eine native Protokollierung und Überwachung. Sie können diese native Funktion verwenden, um die Telemetrie des Dienstes zu verfolgen, aber die standardmäßige Azure OpenAI-Protokollierungsfunktion verfolgt oder protokolliert keine Eingaben und Ausgaben des Dienstes, wie Prompts, Tokens und Modelle. Diese Metriken sind insbesondere für Compliancezwecke und zum Sicherstellen der einwandfreien Funktion des Diensts wichtig. Durch die Verfolgung der Interaktionen mit den Sprachmodellen, die Sie in Azure OpenAI bereitstellen, können Sie außerdem analysieren, wie Ihr Unternehmen den Service nutzt. Dann können Sie diese Informationen nutzen, um Kosten- und Nutzungsmuster zu ermitteln, die Ihnen bei Ihren Entscheidungen über Skalierung und Ressourcenzuweisung helfen können.

Die folgende Tabelle vergleicht die Metriken, die die Standardprotokollierungsfunktion von Azure OpenAI liefert, mit den Metriken, die diese Lösung bereitstellt.

Metrik Standardmäßige Azure OpenAI-Protokollierung Diese Lösung
Anforderungsanzahl x x
Dateneingang (Größe)/Datenausgang (Größe) x x
Latency x x
Tokentransaktionen (insgesamt) x x
IP-Adresse des Aufrufers x (letztes Oktett maskiert) x
Modellnutzung x
Tokenverwendung (Prompt/Abschluss) x x
Details der eingegebenen Eingabeaufforderung x
Details der ausgegebenen Vervollständigung x
Anforderungsparameter x x
Bereitstellungsvorgänge x x
Einbettungsvorgänge x x
Einbetten von Textdetails x
Bildgenerierungsvorgänge x x
Promptdetails zur Bildgenerierung x
Spracherkennung und Textverarbeitung x x
Assistenten-API-Vorgänge x x
Assistenten-API-Promptdetails x

Szenariodetails

Große Unternehmen, die generative KI-Modelle verwenden, müssen die Nutzung dieser Modelle prüfen und protokollieren, um eine verantwortungsvolle Nutzung und die Einhaltung der Unternehmensrichtlinien sicherzustellen. Diese Lösung bietet Protokollierungs- und Überwachungsfunktionen auf Unternehmensebene für alle Interaktionen mit KI-Modellen. Sie können diese Informationen nutzen, um die schädliche Nutzung der Modelle einzudämmen und sicherzustellen, dass Sie die Sicherheits- und Compliance-Standards einhalten. Die Lösung lässt sich mit wenigen Änderungen in bestehende APIs für Azure OpenAI integrieren, sodass Sie die Vorteile bestehender Codegrundlagen nutzen können. Administrator*innen können zur Berichterstellung auch die Dienstnutzung überwachen.

Die Vorteile dieser Lösung sind unter anderem:

  • Die umfassende Protokollierung der Ausführung des Azure OpenAI-Modells, zurückverfolgt bis zur Quell-IP-Adresse. Zu den Protokollinformationen gehören Texte, die Benutzer an das Modell übermitteln, und Texte, die das Modell empfängt. Diese Protokolle helfen sicherzustellen, dass die Modelle verantwortungsvoll und im Rahmen der genehmigten Anwendungsfälle des Dienstes verwendet werden.
  • Hohe Verfügbarkeit der Modell-APIs, um sicherzustellen, dass Sie die Anforderungen der Benutzer auch dann erfüllen können, wenn der Datenverkehr die Grenzwerte eines einzelnen Azure OpenAI-Service überschreitet.
  • Rollenbasierter Zugriff, den Microsoft Entra ID verwaltet, um sicherzustellen, dass der Dienst das Prinzip der geringsten Berechtigung anwendet.

Beispielabfrage für die Nutzungsüberwachung

ApiManagementGatewayLogs
| where tolower(OperationId) in ('completions_create','chatcompletions_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:

Ein Bildschirmfoto, das die Ausgabe der Nutzungsüberwachung zeigt.

Beispielabfrage für die Überwachung der Nutzung von Eingabeaufforderungen

ApiManagementGatewayLogs
| where tolower(OperationId) in ('completions_create','chatcompletions_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:

Ein Bildschirmfoto, das die Ausgabe der Überwachung der Promptnutzung zeigt.

Mögliche Anwendungsfälle

Zu den Anwendungsfällen für diese Lösung gehören:

  • Die Bereitstellung von Azure OpenAI für die internen Benutzer Ihres Unternehmens zur Beschleunigung der Produktivität.
  • Quotenverwaltung für Token-basierte Azure OpenAI APIs.
  • Hohe Verfügbarkeit von Azure OpenAI für interne Anwendungen.
  • Verbesserte Sicherheit für die Nutzung von Azure OpenAI in regulierten Branchen.

Überlegungen

Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Zuverlässigkeit

Zuverlässigkeit stellt sicher, dass Ihre Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Zuverlässigkeit.

Dieses Szenario gewährleistet eine hohe Verfügbarkeit der Sprachmodelle für die Benutzer Ihres Unternehmens. Application Gateway bietet einen effektiven Layer-7-Anwendungsbereitstellungsmechanismus, der einen schnellen und konsistenten Zugriff auf Anwendungen gewährleistet. 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. Und schließlich gewährleisten mehrere Instanzen von Azure OpenAI die Ausfallsicherheit des Dienstes, wenn es zu Ausfällen auf Anwendungsebene kommt. Diese Architekturkomponenten können Ihnen helfen, die Zuverlässigkeit Ihrer Anwendung auf Unternehmensebene zu gewährleisten.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Sicherheit.

Bei diesem Szenario wird das Risiko der Datenexfiltration und des Datenverlusts durch die Implementierung von Best Practices für die Isolierung Ihrer Clouddienste auf Anwendungs- und Netzwerkebene verringert. Der gesamte Netzwerkverkehr, der potenziell sensible Daten enthält und in das Modell eingegeben wird, wird innerhalb eines privaten Netzwerks 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 um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Erstellen einer Checkliste zur Überprüfung der Kostenoptimierung.

Um die Kosten für dieses Szenario zu ermitteln, haben wir alle Services im Azure-Preiskalkulator vorkonfiguriert. Um zu erfahren, wie sich die Preise für Ihren Anwendungsfall ändern könnten, ändern Sie die entsprechenden Variablen entsprechend Ihrem erwarteten Traffic.

Die Schätzungen für die folgenden drei Beispielkostenprofile basieren auf dem Datenverkehrsvolumen. Die Schätzungen gehen davon aus, dass eine Konversation etwa 1.000 Token enthält.

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

Beitragende

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

Hauptautoren:

Andere Mitwirkende:

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

Nächste Schritte