Obserwowalność w Semantic Kernel

Krótkie wprowadzenie do obserwacji

Podczas tworzenia rozwiązań sztucznej inteligencji chcesz obserwować zachowanie usług. Możliwość obserwowania to możliwość monitorowania i analizowania wewnętrznego stanu składników w systemie rozproszonym. Jest to kluczowe wymaganie dotyczące tworzenia rozwiązań sztucznej inteligencji gotowych do użycia w przedsiębiorstwie.

Obserwacja jest zwykle osiągana za pomocą rejestrowania, metryk i śledzenia. Są one często określane jako trzy filary obserwacji. Poznasz również termin "telemetria" używany do opisywania danych zebranych przez te trzy filary. W przeciwieństwie do debugowania, możliwość obserwacji zapewnia ciągły przegląd kondycji i wydajności systemu.

Przydatne materiały do dalszego czytania:

Obserwowalność w Semantic Kernel

Semantyczne jądro zostało zaprojektowane tak, aby można je było zaobserwować. Generuje dzienniki, metryki i ślady zgodne ze standardem OpenTelemetry. Możesz użyć ulubionych narzędzi do obserwacji, aby monitorować i analizować zachowanie usług opartych na jądrze semantycznym.

W szczególności semantyczne jądro zapewnia następujące funkcje obserwacji:

  • Rejestrowanie: Semantyczne jądro rejestruje istotne zdarzenia i błędy z jądra, wtyczek jądra i funkcji, a także łączników sztucznej inteligencji. Dzienniki i zdarzenia

    Ważne

    Śledzenia w usłudze Application Insights obejmują tradycyjne wpisy dziennika i zdarzenia spanów OpenTelemetry. Nie są tym samym co ślady rozproszone.

  • Metryki: Semantyczne jądro emituje metryki z funkcji jądra i łączników sztucznej inteligencji. Będzie można monitorować wskaźniki, takie jak czas wykonywania funkcji jądra, zużycie tokenów przez konektory AI itp. Metryki
  • Śledzenie: Jądro semantyczne obsługuje śledzenie rozproszone. Możesz śledzić aktywności w różnych usługach i w obrębie Semantic Kernel. Pełny przebieg realizacji żądania
Telemetria Opis
Dziennik Logi są zapisywane w całym jądrze systemu. Aby uzyskać więcej informacji na temat rejestrowania na platformie .Net, zapoznaj się z tym dokumentem. Poufne dane, takie jak argumenty funkcji jądra i wyniki, są rejestrowane na poziomie śledzenia. Aby uzyskać więcej informacji na temat poziomów dzienników, zapoznaj się z tą tabelą .
Działanie Każde wykonanie funkcji jądra i każde wywołanie modelu AI są rejestrowane jako działanie. Wszystkie działania są generowane przez źródło działań o nazwie "Microsoft.SemanticKernel".
Wskaźnik Jądro semantyczne przechwytuje następujące metryki z funkcji jądra:
  • semantic_kernel.function.invocation.duration (Histogram) — czas wykonywania funkcji (w sekundach)
  • semantic_kernel.function.streaming.duration (Histogram) — czas wykonywania funkcji przesyłania strumieniowego (w sekundach)
  • semantic_kernel.function.invocation.token_usage.prompt (Histogram) — liczba użytych tokenów monitu (tylko dla KernelFunctionFromPrompt)
  • semantic_kernel.function.invocation.token_usage.completion (Histogram) — liczba użycia tokenu ukończenia (tylko dla KernelFunctionFromPrompt)
Telemetria Opis
Dziennik Dzienniki są zapisywane w całym jądrze. Aby uzyskać więcej informacji na temat rejestrowania w języku Python, zapoznaj się z tym dokumentem. Poufne dane, takie jak argumenty funkcji jądra i wyniki, są rejestrowane na poziomie debugowania.
Rozpiętość Każda pętla automatycznego wywoływania funkcji, każde wykonanie funkcji jądra i każde wywołanie modelu AI są rejestrowane jako span.
Wskaźnik Jądro semantyczne przechwytuje następujące metryki z funkcji jądra:
  • semantic_kernel.function.invocation.duration (Histogram) — czas wykonywania funkcji (w sekundach)
  • semantic_kernel.function.streaming.duration (Histogram) — czas wykonywania funkcji przesyłania strumieniowego (w sekundach)

Uwaga

Możliwość obserwowania jądra semantycznego nie jest jeszcze dostępna dla języka Java.

Konwencja semantyczna OpenTelemetry

Semantic Kernel stosuje konwencję semantyczną OpenTelemetry Semantic Convention na potrzeby obserwowalności. Oznacza to, że dzienniki, metryki i ślady emitowane przez jądro semantyczne mają strukturę i są zgodne ze wspólnym schematem. Dzięki temu można efektywniej analizować dane telemetryczne emitowane przez jądro semantyczne.

Uwaga

Obecnie konwencje semantyczne dla generowania sztucznej inteligencji są w stanie eksperymentalnym. Semantyczne jądro dąży do przestrzegania konwencji semantycznej OpenTelemetry tak ściśle, jak to możliwe, i zapewnia spójne i znaczące środowisko obserwacji dla rozwiązań sztucznej inteligencji.

Następne kroki

Teraz, gdy masz podstawową wiedzę na temat obserwacji w jądrze semantycznym, możesz dowiedzieć się więcej na temat sposobu wyprowadzania danych telemetrycznych do konsoli lub używania narzędzi APM do wizualizacji i analizowania danych telemetrycznych.