Protokollierung der Tokenverwendung, Eingabeaufforderungen und Vervollständigungen für Sprachmodell-APIs

In diesem Artikel erfahren Sie, wie Sie Azure Monitor Protokollierung für Sprachmodell-API-Anforderungen und -Antworten in Azure API Management einrichten.

Der API-Verwaltungsadministrator kann API-Anforderungs- und Antwortprotokolle des Sprachmodells zusammen mit API-Verwaltungsgatewayprotokollen für Szenarien wie:

  • Berechnen sie die Nutzung für die Abrechnung. Berechnen Sie Nutzungsmetriken für die Abrechnung basierend auf der Anzahl der von jeder Anwendung oder API genutzten Token (z. B. segmentiert nach Abonnement-ID oder IP-Adresse).

  • Überprüfen von Nachrichten. Überprüfen und analysieren Sie Aufforderungen und Fertigstellungen, um das Debuggen, die Überwachung und die Modellauswertung zu unterstützen.

Weitere Informationen zu:

Voraussetzungen

  • Eine Azure-API-Verwaltungsinstanz.
  • Eine verwaltete Sprachmodell-Chat-Abschluss-API, integriert in Azure API Management. Importieren Sie beispielsweise eine Microsoft Foundry-API.
  • Zugriff auf einen Azure Log Analytics-Arbeitsbereich.
  • Geeignete Berechtigungen zum Konfigurieren von Diagnoseeinstellungen und Zugriffsprotokollen in der API-Verwaltung.

Aktivieren Sie die Diagnoseeinstellungen für die Sprachmodell-API-Protokolle

Aktivieren Sie eine Diagnoseeinstellung zum Protokollieren von Anforderungen, die das Gateway für REST-APIs für große Sprachenmodelle verarbeitet. Für jede Anforderung empfängt Azure Monitor:

  • Daten zur Tokenverwendung, z. B. Eingabeaufforderungstoken, Abschlusstoken und Gesamttoken

  • Name des verwendeten Modells

  • Optional können die Anforderungs- und Antwortnachrichten die Aufforderung und die Erledigung umfassen.

    Azure Monitor teilt große Anforderungen und Antworten in mehrere Protokolleinträge mit Sequenznummern für die spätere Wiederherstellung bei Bedarf auf.

Führen Sie die folgenden Schritte aus, um eine Diagnoseeinstellung zu aktivieren, die sprachmodell-API-Protokolle an einen Log Analytics Arbeitsbereich leitet. Weitere Informationen finden Sie unter Aktivieren der Diagnoseeinstellung für Azure Monitor-Protokolle.

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure API-Verwaltungsinstanz.

  2. Wählen Sie im linken Menü unter "Überwachung" die Option "Diagnoseeinstellungen>+ Diagnoseeinstellung hinzufügen" aus.

  3. Konfigurieren Sie die Einstellung zum Senden von KI-Gatewayprotokollen an einen Log Analytics Arbeitsbereich:

    • Wählen Sie unter "Protokolle" die Option "Protokolle im Zusammenhang mit dem generativen KI-Gateway" aus.
    • Wählen Sie unter "Zieldetails" die Option "An Log Analytics-Arbeitsbereich senden" aus.
  4. Überprüfen oder konfigurieren Sie andere Einstellungen, und nehmen Sie bei Bedarf Änderungen vor.

  5. Wählen Sie Speichern aus.

Screenshot der Diagnoseeinstellung für KI-Gatewayprotokolle im Portal.

Aktivieren der Protokollierung von Anforderungen oder Antworten für die Sprachmodell-API

Sie können Diagnoseeinstellungen für alle APIs aktivieren oder die Protokollierung für bestimmte APIs anpassen. Führen Sie die folgenden Schritte aus, um sowohl Sprachmodellanforderungen als auch Antwortmeldungen für eine API zu protokollieren. Weitere Informationen finden Sie unter Ändern der API-Protokollierungseinstellungen.

  1. Wählen Sie im linken Menü Ihrer API-Verwaltungsinstanz APIs>aus , und wählen Sie dann den Namen der API aus.
  2. Wählen Sie "Einstellungen" in der oberen Leiste aus.
  3. Scrollen Sie nach unten zum Abschnitt Diagnostic Logs, und wählen Sie Azure Monitor aus.
  4. Wählen Sie in "LLM-Nachrichten protokollieren" die Option "Aktiviert" aus.
  5. Wählen Sie Anmeldeaufforderungen aus, und geben Sie eine Größe in Byte ein, z. B. 32768.
  6. Wählen Sie "Protokollabschluss" aus, und geben Sie eine Größe in Byte ein, z. B. 32768.
  7. Überprüfen Sie andere Einstellungen, und nehmen Sie bei Bedarf Änderungen vor. Wählen Sie Speichern aus.

Screenshot der Aktivierung der Sprachmodellprotokollierung für eine API im Portal.

Hinweis

Wenn Sie die Sammlung aktivieren, werden Anforderungs- oder Antwortmeldungen des Sprachmodells bis zu 32 KB in einem einzigen Eintrag gesendet. Nachrichten, die größer als 32 KB sind, werden geteilt und in 32-KB-Blöcken mit Sequenznummern für die spätere Wiederherstellung protokolliert. Anforderungsnachrichten und Antwortnachrichten dürfen jeweils 2 MB nicht überschreiten.

Überprüfen der Analysearbeitsmappe für Sprachmodell-APIs

Das Azure Monitor-basierte Analytics-Dashboard bietet Einblicke in die Verwendung von Sprachmodell-API-Verwendung und Tokennutzung mithilfe von Daten, die in einem Log Analytics Arbeitsbereich aggregiert wurden. Weitere Informationen finden Sie unter API-Analysen in Azure API Management abrufen.

  1. Wählen Sie im linken Menü Ihrer API-Verwaltungsinstanz die Option Monitoring>Analytics aus.
  2. Wählen Sie die Registerkarte "Sprachmodelle" aus .
  3. Überprüfen Sie Metriken und Visualisierungen für den Api-Tokenverbrauch und Anforderungen des Sprachmodells in einem ausgewählten Zeitraum.

Screenshot der Analyse für Sprachmodell-APIs im Portal.

Überprüfung der Azure Monitor-Protokolle für Anfragen und Antworten

Überprüfen Sie das ApiManagementGatewayLlmLog-Protokoll auf Details zu Sprachmodellanforderungen und -antworten, einschließlich Tokenverbrauch, verwendeter Modellbereitstellung und weitere Details über bestimmte Zeitbereiche.

Anforderungen und Antworten, einschließlich gesplitteter Nachrichten für große Anforderungen und Antworten, werden in separaten Protokolleinträgen angezeigt, die Sie mithilfe des CorrelationId Feld korrelieren können.

Verwenden Sie für Überwachungszwecke eine Kusto-Abfrage ähnlich der folgenden Abfrage, um jede Anforderung und Antwort in einem einzelnen Datensatz zu verbinden. Passen Sie die Abfrage an, um die Felder einzuschließen, die Sie nachverfolgen möchten.

ApiManagementGatewayLlmLog
| extend RequestArray = parse_json(RequestMessages)
| extend ResponseArray = parse_json(ResponseMessages)
| mv-expand RequestArray
| mv-expand ResponseArray
| project
    CorrelationId,
    RequestContent = tostring(RequestArray.content),
    ResponseContent = tostring(ResponseArray.content)
| summarize
    Input = strcat_array(make_list(RequestContent), " . "),
    Output = strcat_array(make_list(ResponseContent), " . ")
    by CorrelationId
| where isnotempty(Input) and isnotempty(Output)

Screenshot der Abfrageergebnisse für Sprachmodellprotokolle im Portal.

Hochladen von Daten in Microsoft Foundry zur Modellauswertung

Sie können die Protokollierungsdaten des Sprachmodells als Dataset für modellauswertung in Microsoft Foundry exportieren. Mit der Modellauswertung können Sie die Leistung Ihrer generativen KI-Modelle und -Anwendungen anhand eines Testmodells oder Datasets mithilfe integrierter oder benutzerdefinierter Auswertungsmetriken bewerten.

So verwenden Sie Sprachmodellprotokolle als Dataset für die Modellauswertung:

  1. Verknüpfen Sie Sprachmodellanforderungs- und Antwortnachrichten in einem einzigen Datensatz für jede Interaktion, wie im vorherigen Abschnitt gezeigt. Schließen Sie die Felder ein, die Sie für die Modellauswertung verwenden möchten.
  2. Exportieren Sie das Dataset in das CSV-Format, das mit Microsoft Foundry kompatibel ist.
  3. Erstellen Sie im Microsoft Foundry-Portal eine neue Auswertung, um das Dataset hochzuladen und auszuwerten.

Ausführliche Informationen zum Erstellen und Ausführen einer Modellauswertung in Microsoft Foundry finden Sie unter Auswertungen aus dem Microsoft Foundry-Portal.