Наблюдаемость в семантическом ядре

Краткое введение в наблюдаемость

При создании решений искусственного интеллекта вы хотите наблюдать за поведением служб. Наблюдаемость — это возможность отслеживать и анализировать внутреннее состояние компонентов в распределенной системе. Это ключевое требование для создания корпоративных решений ИИ.

Наблюдаемость обычно достигается путем ведения журнала, метрик и трассировки. Они часто называются тремя столпами наблюдаемости. Вы также услышите термин "телеметрия", используемый для описания данных, собранных этими тремя столпами. В отличие от отладки, наблюдаемость предоставляет постоянный обзор работоспособности и производительности системы.

Полезные материалы для дальнейшего чтения:

Наблюдаемость в семантическом ядре

Semantic Kernel разработан с учетом наблюдаемости. Он генерирует логи, метрики и трассировки, совместимые со стандартом OpenTelemetry. Вы можете использовать любимые средства наблюдения для мониторинга и анализа поведения служб, созданных на основе семантического ядра.

В частности, семантический ядро предоставляет следующие функции наблюдаемости:

  • Журналирование: Semantic Kernel записывает в журнал значимые события и ошибки от ядра, подключаемых модулей и функций ядра, а также коннекторов ИИ. Журналы и события

    Внимание

    Трассировки в Application Insights представляют традиционные записи журнала и события диапазона OpenTelemetry. Они не совпадают с распределенными трассировками.

  • Метрики: Semantic Kernel генерирует метрики из функций ядра и коннекторов ИИ. Вы сможете отслеживать такие метрики, как время выполнения функции ядра, потребление токенов ИИ-коннекторов и т. д. Метрики
  • Трассировка: семантическое ядро поддерживает распределенную трассировку. Вы можете отслеживать действия в разных службах и в семантических ядрах. Завершение сквозной транзакции запроса
Телеметрия Описание
Журнал Журналы записываются на протяжении ядра. Дополнительные сведения о входе в .NET см. в этом документе. Конфиденциальные данные, такие как аргументы и результаты функции ядра, регистрируются на уровне трассировки. Дополнительные сведения об уровнях журнала см. в этой таблице.
Действие (Activity) Каждое выполнение функции ядра и каждый вызов модели искусственного интеллекта записываются как действие. Все действия создаются источником действия с именем Microsoft.SemanticKernel.
Метрика Семантический ядро записывает следующие метрики из функций ядра:
  • semantic_kernel.function.invocation.duration (гистограмма) — время выполнения функции (в секундах)
  • semantic_kernel.function.streaming.duration (Гистограмма) — время выполнения функции в потоковом режиме (в секундах)
  • semantic_kernel.function.invocation.token_usage.prompt (гистограмма) — количество использованных токенов запроса (только для KernelFunctionFromPrompt)
  • semantic_kernel.function.invocation.token_usage.completion (гистограмма) — количество использования маркеров завершения (только для KernelFunctionFromPrompt)
Телеметрия Описание
Журнал Журналы записываются по всему ядру. Дополнительные сведения о ведении журнала в Python см. в этом документе. Конфиденциальные данные, такие как аргументы и результаты функции ядра, регистрируются на уровне отладки.
Диапазон Каждый цикл вызова автоматической функции, выполнение каждой функции ядра и каждый вызов модели ИИ записывается в виде диапазона.
Метрика Семантический ядро записывает следующие метрики из функций ядра:
  • semantic_kernel.function.invocation.duration (гистограмма) — время выполнения функции (в секундах)
  • semantic_kernel.function.streaming.duration (Гистограмма) — время выполнения функции в потоковом режиме (в секундах)

Примечание.

Наблюдаемость семантического ядра пока недоступна для Java.

Соглашение о семантике OpenTelemetry

Semantic Kernel следует семантическому соглашению OpenTelemetry для обеспечения наблюдаемости. Это означает, что журналы, метрики и трассировки, генерируемые Semantic Kernel, структурированы и соответствуют общей схеме. Это гарантирует, что вы сможете более эффективно анализировать данные телеметрии, создаваемые Semantic Kernel.

Примечание.

В настоящее время семантические соглашения для создания искусственного интеллекта находятся в экспериментальном состоянии. Семантический ядро стремится как можно ближе следовать соглашению о семантике OpenTelemetry и обеспечить согласованный и значимый интерфейс наблюдения для решений искусственного интеллекта.

Следующие шаги

Теперь, когда у вас есть базовое представление о наблюдаемости в семантическом ядре, вы можете узнать больше о том, как выводить данные телеметрии в консоль или использовать средства APM для визуализации и анализа данных телеметрии.