Freigeben über


Observability in Semantic Kernel

Kurze Einführung in die Beobachtbarkeit

Wenn Sie KI-Lösungen erstellen, möchten Sie das Verhalten Ihrer Dienste beobachten können. Observability ist die Möglichkeit, den internen Zustand von Komponenten innerhalb eines verteilten Systems zu überwachen und zu analysieren. Es ist eine wichtige Voraussetzung für die Erstellung unternehmensfähiger KI-Lösungen.

Observability wird in der Regel durch Protokollierung, Metriken und Ablaufverfolgung erreicht. Sie werden häufig als die drei Säulen der Observability bezeichnet. Sie hören auch den Begriff "Telemetrie", der verwendet wird, um die von diesen drei Säulen gesammelten Daten zu beschreiben. Im Gegensatz zum Debuggen bietet die Observability eine fortlaufende Übersicht über die Integrität und Leistung des Systems.

Nützliche Materialien für weitere Lektüre:

Observability in Semantic Kernel

Der semantische Kernel ist so konzipiert, dass er feststellbar ist. Es gibt Protokolle, Metriken und Ablaufverfolgungen aus, die mit dem OpenTelemetry-Standard kompatibel sind. Sie können Ihre bevorzugten Observability-Tools verwenden, um das Verhalten Ihrer Dienste zu überwachen und zu analysieren, die auf dem semantischen Kernel basieren.

Insbesondere stellt der semantische Kernel die folgenden Observability-Features bereit:

  • Protokollierung: Der semantische Kernel protokolliert aussagekräftige Ereignisse und Fehler aus dem Kernel, Kernel-Plug-Ins und Funktionen sowie den KI-Connectors. Protokolle und Ereignisse

    Wichtig

    Ablaufverfolgungen in Application Insights stellen herkömmliche Protokolleinträge und OpenTelemetry-Span-Ereignisse dar. Sie sind nicht identisch mit verteilten Ablaufverfolgungen.

  • Metriken: Der semantische Kernel gibt Metriken von Kernelfunktionen und AI-Connectors aus. Sie können Metriken wie die Ausführungszeit der Kernelfunktion, den Tokenverbrauch von KI-Connectors usw. überwachen. Metriken
  • Ablaufverfolgung: Der semantische Kernel unterstützt die verteilte Ablaufverfolgung. Sie können Aktivitäten in verschiedenen Diensten und innerhalb des semantischen Kernels nachverfolgen. Vollständige End-to-End-Transaktion einer Anforderung
Telemetrie Beschreibung
Protokoll Protokolle werden im gesamten Kernel aufgezeichnet. Weitere Informationen zur Protokollierung in .Net finden Sie in diesem Dokument. Vertrauliche Daten, z. B. Kernelfunktionsargumente und Ergebnisse, werden auf Ablaufverfolgungsebene protokolliert. Weitere Informationen zu Protokollebenen finden Sie in dieser Tabelle .
Aktivität Jede Kernelfunktionsausführung und jeder Aufruf eines KI-Modells werden als Aktivität aufgezeichnet. Alle Aktivitäten werden von einer Aktivitätsquelle namens "Microsoft.SemanticKernel" generiert.
Metrik Der semantische Kernel erfasst die folgenden Metriken aus Kernelfunktionen:
  • semantic_kernel.function.invocation.duration (Histogramm) - Funktionsausführungszeit (in Sekunden)
  • semantic_kernel.function.streaming.duration (Histogramm) – Ausführungszeit für Funktionsstreaming (in Sekunden)
  • semantic_kernel.function.invocation.token_usage.prompt (Histogramm) – Anzahl der Eingabeaufforderungstokennutzung (nur für KernelFunctionFromPrompt)
  • semantic_kernel.function.invocation.token_usage.completion (Histogramm) – Anzahl der Tokenverwendung des Abschlusstokens (nur für KernelFunctionFromPrompt)
Telemetrie Beschreibung
Protokoll Protokolle werden im gesamten Kernel aufgezeichnet. Weitere Informationen zur Protokollierung in Python finden Sie in diesem Dokument. Vertrauliche Daten, z. B. Kernelfunktionsargumente und Ergebnisse, werden auf Debugebene protokolliert.
Span Jede Automatische Funktionsaufrufschleife, jede Kernelfunktionsausführung und jeder Aufruf eines KI-Modells werden als Spanne aufgezeichnet.
Metrik Der semantische Kernel erfasst die folgenden Metriken aus Kernelfunktionen:
  • semantic_kernel.function.invocation.duration (Histogramm) - Funktionsausführungszeit (in Sekunden)
  • semantic_kernel.function.streaming.duration (Histogramm) – Ausführungszeit für Funktionsstreaming (in Sekunden)

Hinweis

Die semantische Kernel-Observability ist für Java noch nicht verfügbar.

OpenTelemetry Semantic Convention

Der semantische Kernel folgt der OpenTelemetry Semantic Convention for Observability. Dies bedeutet, dass die Protokolle, Metriken und Ablaufverfolgungen, die vom semantischen Kernel ausgegeben werden, strukturiert sind und einem gemeinsamen Schema folgen. Dadurch wird sichergestellt, dass Sie die telemetriedaten, die vom semantischen Kernel ausgegeben werden, effektiver analysieren können.

Hinweis

Derzeit befinden sich die semantischen Konventionen für generative KI im experimentellen Status. Der semantische Kernel ist bestrebt, der OpenTelemetry-Semantikkonvention so genau wie möglich zu folgen und eine konsistente und sinnvolle Beobachtbarkeitserfahrung für KI-Lösungen bereitzustellen.

Nächste Schritte

Nachdem Sie nun ein grundlegendes Verständnis der Observierbarkeit im semantischen Kernel haben, erfahren Sie mehr darüber, wie Sie Telemetriedaten in die Konsole ausgeben oder APM-Tools zum Visualisieren und Analysieren von Telemetriedaten verwenden.