AI-инжиниринг
Observability: логирование, трейсинг, мониторинг AI pipeline
Цели урока
- Определить, что логировать при каждом LLM-вызове: промпты, токены, стоимость, качество, feedback
- Реализовать distributed tracing для LLM chains с parent-child spans
- Интегрировать LLM observability платформу (Helicone, LangFuse, LangSmith)
- Настроить alerting на деградацию качества, error rate spikes, cost anomalies
- Построить cost monitoring dashboard с realtime метриками и budget tracking
Классический backend: логи, метрики, трейсы - и понятно где сломалось. AI backend: модель вернула 200, токены потрачены, пользователь недоволен - и непонятно почему. LLM observability это отдельная дисциплина. Обычный APM показывает HTTP 200 - всё зелёное. Но внутри: галлюцинация, деградировавший промпт, cost per session вырос втрое. Это слепое пятно стандартного мониторинга.
- Langfuse (open-source, 5000+ GitHub stars) - self-hosted LLM observability с traces/spans для каждого вызова, cost per session, hallucination rate и user feedback loop
- Helicone - proxy-based: одна строка изменения baseURL, и все промпты, токены и стоимость логируются автоматически. Zero code changes
- LangSmith от LangChain: 100K+ активных проектов, de facto стандарт для LangChain-приложений с playground и eval datasets
- OpenAI Dashboard показывает usage и costs, но не качество - application-level мониторинг нужен поверх
Когда LLM-приложениям понадобилась своя телеметрия
В течение **2023** года, когда команды начали выкатывать LLM-приложения в продакшн, классических метрик и логов стало не хватать: один запрос пользователя разворачивался в цепочки промптов, retrieval'ов и вызовов инструментов, и обычный лог ошибки ничего не говорил о том, какой именно шаг повёл себя не так и почему. Решение позаимствовали из мира микросервисов - **distributed tracing** - и адаптировали под LLM, позже стандартизировав через соглашения OpenTelemetry для AI-спанов. **LangSmith**, запущенный командой LangChain в бете в августе 2023, сделал трейс каждого шага цепочки полноценным объектом. В том же году из батча W23 Y Combinator вышли ещё два инструмента, определившие категорию: **Helicone** - прокси, который логировал и отслеживал запросы при замене одной строки base-URL, и **Langfuse** - открытая, self-hostable платформа для трейсинга, управления промптами и оценки. Observability для AI перестала быть самописной обёрткой и стала отдельным слоем инструментов.
Предварительные знания
Что логировать: промпты, токены, латентность, качество
Классический backend: логи, метрики, трейсы - и понятно где сломалось. AI backend: модель вернула 200, токены потрачены, пользователь недоволен - и непонятно почему. LLM observability это отдельная дисциплина.
Октябрь 2023. AI-стартап обнаруживает: качество ответов упало на 30% за две недели. Пять дней ручного разбора логов. Итог - один сломанный few-shot пример в system prompt: OpenAI обновила GPT-4, и пример перестал работать. Если бы был мониторинг quality metrics - алерт прилетел бы в первый день. Вместо этого - 10 000 пользователей получали плохие ответы.
Обычный APM (Datadog, New Relic) видит HTTP-статус, latency, память. LLM-вызов вернул 200 - всё зелёное. Но внутри: модель галлюцинирует, промпт деградировал, стоимость сессии выросла втрое. Стандартные инструменты слепы к prompt/completion контенту, token usage и semantic quality. Нужен application-level мониторинг.
**Не логировать полные промпты и ответы без шифрования.** Промпты могут содержать PII пользователей, ответы - конфиденциальную информацию. Варианты: хеширование, encryption at rest, доступ по ролям. GDPR/CCPA требуют аудита доступа к персональным данным.
Обычный APM (Datadog, New Relic) покрывает LLM observability
APM видит HTTP-статус, latency, ошибки - но слеп к prompt/completion контенту, token usage, semantic quality и cost per session
LLM вызов вернул 200 - APM доволен. Но внутри: модель галлюцинирует, промпт деградировал, cost per session вырос в три раза. Hallucination rate, p95 latency по типам запросов, user feedback loop - всё это требует application-level instrumentation, которого нет в стандартных APM-инструментах.
Почему обычный APM (Datadog, New Relic) недостаточен для LLM observability?
Distributed Tracing для LLM Chains: от запроса до ответа
LLM-приложение - это не один вызов. Это цепочка: guardrails -> RAG retrieval -> cache check -> LLM call -> output validation. При проблеме нужно знать, на каком шаге всё сломалось. Без трейсинга - только общее время запроса и финальный статус.
Distributed tracing связывает все шаги в единый trace с parent-child spans. Каждый span знает своё место в цепочке, своё время и свои атрибуты. Langfuse, LangSmith и Helicone строят трейсы именно так - traces/spans для LLM вызовов это их основная единица данных.
Именно так работают Langfuse и LangSmith под капотом. Каждый вызов `trace.span()` создаёт span, каждый `trace.generation()` - span с LLM-специфичными атрибутами (model, tokens, cost). Timeline в UI - это просто рендер этого дерева.
Зачем каждый шаг LLM chain оборачивается в отдельный span?
LangSmith, LangFuse, Helicone: специализированные платформы
Писать tracing с нуля - можно. Но зачем, если Langfuse (open-source, 5000+ GitHub stars), Helicone и LangSmith уже решили эту задачу? Готовая инфраструктура: автоматический сбор traces/spans для LLM вызовов, cost per session, p95 latency, hallucination rate, user feedback loop - всё из коробки.
| Платформа | Тип | Интеграция | Стоимость | Ключевая фича |
|---|---|---|---|---|
| LangSmith | SaaS | LangChain SDK, REST API | Free tier + paid | Deep LangChain integration, playground |
| LangFuse | Open-source / SaaS | SDK (JS/Python), OpenAI proxy | Self-hosted free, SaaS paid | Self-hosted, GDPR-compliant |
| Helicone | Proxy | Изменение baseURL, без SDK | Free tier + paid | Zero-code setup, caching proxy |
| Braintrust | SaaS | SDK, CI/CD integration | Paid | Eval-focused, dataset management |
| Arize Phoenix | Open-source | OpenTelemetry, SDK | Self-hosted free | ML observability background |
Выбор платформы - инженерное решение, не вкусовщина. **Helicone** - самый быстрый старт: proxy, одна строка, ноль изменений в коде. **LangFuse** - open-source, self-hosted, GDPR compliance без танцев с данными за рубежом. **LangSmith** - для проектов на LangChain, где нужен playground и eval datasets.
Какое ключевое преимущество Helicone перед LangFuse для быстрого старта?
Alerting на деградацию качества
Дашборд без алертинга - красивая картина, на которую смотрят раз в день. Деградация модели случается ночью. Обновление провайдера - в пятницу вечером. Cost anomaly - за выходные. Нужны автоматические триггеры: упал eval score, вырос error rate, взлетела стоимость сессии.
Hallucination rate выше нормы, thumbs down больше 20%, fallback rate растёт - каждый из этих сигналов требует разного реагирования. Не всё требует PagerDuty в 3 ночи. Нужна градация: warning в Slack, critical в PagerDuty.
| Алерт | Метрика | Порог | Что означает |
|---|---|---|---|
| Quality degradation | quality_score < 3.5/5 | 30 мин | Модель даёт плохие ответы |
| High latency | p95 > 10s | 15 мин | API деградирует или перегружен |
| Error rate spike | error_rate > 5% | 10 мин | Rate limit, outage, bug |
| Cost anomaly | > 100/час | 60 мин | DDoS, бесконечный цикл, спам |
| Fallback rate | > 10% | 30 мин | Primary модель недоступна |
| Negative feedback | thumbs_down > 20% | 60 мин | Пользователи недовольны |
Какой алерт должен быть critical (PagerDuty), а не warning (Slack)?
Cost Monitoring Dashboard: визуализация расходов в реальном времени
Cost per session, p95 latency, hallucination rate, user feedback loop - все эти данные нужно видеть в одном месте. Cost monitoring dashboard объединяет финансовые и качественные метрики. Главный инсайт: **projected month-end cost** - прогноз на основе текущего темпа. Команда видит заранее, что к концу месяца выйдет за бюджет, и успевает оптимизировать.
| Виджет | Обновление | Для кого |
|---|---|---|
| Realtime spend | Каждую минуту | DevOps, on-call |
| Cost breakdown by model | Каждые 5 мин | Engineering lead |
| Quality trends | Каждые 15 мин | Product manager |
| Budget utilization | Каждый час | Management |
| Anomaly detection | Каждые 10 мин | DevOps, on-call |
Fallback level breakdown - первый виджет при алерте на деградацию качества. Высокий fallback rate (>10% на secondary/template) = primary модель возвращает ошибки. Нормальный fallback rate, но низкий quality = проблема в содержании: обновление модели провайдером или сломанный промпт.
Какую метрику dashboard проверять ПЕРВОЙ при алерте о деградации качества?
Обычный APM (Datadog, New Relic) покрывает LLM observability
APM видит HTTP-статус, latency, ошибки - но слеп к prompt/completion контенту, token usage, semantic quality и cost per session
LLM вернула 200 - APM доволен. Но внутри: модель галлюцинирует, промпт деградировал после обновления провайдера, cost per session вырос в три раза. Hallucination rate, p95 latency по типам запросов, user feedback loop, traces/spans для отдельных шагов цепочки - всё это требует application-level instrumentation. Стандартные инструменты для этого не предназначены.
Observability для AI pipeline
- APM видит HTTP-метрики - не видит prompt/completion контент, token usage, semantic quality. Нужен application-level мониторинг
- При каждом LLM-вызове логировать: model, tokens, cost, latency, cache hit, guardrail violations, quality score, user feedback
- Distributed tracing: каждый шаг chain в отдельном span. Timeline визуализация сразу показывает bottleneck
- Платформы: Helicone (proxy, одна строка) для старта, LangFuse (open-source) для compliance, LangSmith для LangChain
- Alerting: quality < 3.5/5, error rate > 5%, cost > 100/час, fallback rate > 10%, thumbs down > 20%
- Dashboard: realtime spend, breakdown по моделям, budget utilization, projected month-end cost, quality trends
Что дальше
Observability завершает блок Production и Оптимизация. Следующие темы - fine-tuning и работа с open-source моделями.
- Fine-tuning — Observability data (промпты, ответы, feedback) - исходные данные для fine-tuning
- Evaluation — Eval scores - ключевая метрика quality monitoring в observability
- Cost Management — Cost monitoring dashboard использует данные из cost management service
Связанные уроки
- aie-20-langchain-llamaindex — Фреймворки эмитят трейсы, которые мы наблюдаем
- aie-31-evaluation — Трейсы становятся датасетами для оценки
- aie-29-cost-management — Spans вскрывают token-стоимость по шагам
- aie-36-fine-tuning — Залогированные взаимодействия питают данные fine-tuning
- sd-22-observability — Та же триада логов, метрик и трейсов
- sd-10-microservices