Диагностика Mock-интервью
Главная · Продакшн и качество

A/B-тесты и продуктовые метрики

Оффлайн-метрики выросли — но выиграет ли от этого продукт? Единственный честный способ узнать — контролируемый эксперимент на живых пользователях. Здесь — как его спроектировать и не обмануть самого себя статистикой.

Интуиция

Новая модель рекомендаций подняла NDCG на 3% на исторических данных. Радоваться рано: оффлайн ≠ онлайн. Исторические данные собраны под старой моделью; новая изменит поведение пользователей — а значит и сами данные. Прокси-метрика (NDCG, accuracy) — не бизнес-метрика (выручка, удержание): связь между ними бывает слабой и даже обратной. Поэтому запускаем A/B-тест: случайно делим пользователей на контроль (A, старая версия) и тест (B, новая) и сравниваем метрики. Случайность рандомизации гарантирует, что группы отличаются только версией продукта — любое различие в метриках можно приписать изменению, а не «в группе B случайно оказались активные».

Дизайн эксперимента

n ≈ 16 × σ² / Δ²

где Δ — минимальный эффект, который хотим поймать, а σ² — дисперсия метрики. Ключевое следствие: выборка растёт как 1/Δ² — эффект вдвое меньше требует вчетверо больше пользователей.

Минимум статистики без зауми

Нулевая гипотеза (null hypothesis, H0): «разницы между A и B нет». P-value — вероятность увидеть такую или ещё более экстремальную разницу, если H0 верна. Это НЕ «вероятность, что H0 верна» и не «вероятность ошибки» — частая ловушка на собеседовании. При пороге α = 0.05 мы согласны в 5% случаев кричать «эффект есть!», когда его нет (ложное срабатывание, ошибка I рода).

Мощность (power) — вероятность обнаружить эффект, когда он действительно есть (обычно целятся в 80%). Маленькая выборка + маленький эффект = низкая мощность: реальное улучшение утонет в шуме. Доверительный интервал (confidence interval) полезнее точечной оценки: «+1.2% [−0.3%; +2.7%]» честно показывает, что результат совместим и с нулём, и с большим ростом — точка «+1.2%» создаёт ложную уверенность.

💡 Ключевая мысль A/B-тест — измерительный прибор с ограниченной разрешающей способностью. До запуска посчитай, какой минимальный эффект он способен разглядеть при твоём трафике, — иначе получишь «незначимо», которое означает не «эффекта нет», а «прибор слепой».

Смертные грехи экспериментатора

A/B для ML-систем

Сравнение двух моделей — тот же эксперимент: модель A против модели B, метрика решения продуктовая, guardrail — латентность и стоимость инференса. Перед A/B новую модель полезно прогнать в shadow-режиме (см. мониторинг). Для ранжирования есть более чувствительный инструмент — интерливинг (interleaving): результаты двух ранкеров перемешиваются в одну выдачу, и по кликам видно, чьи документы предпочитают. Каждый пользователь сравнивает обе модели сразу, поэтому эффект ловится на порядки меньшем трафике.

⚠️ Подводный камень Статистическая значимость ≠ практическая важность. На выборке в 10 млн пользователей «значимым» станет прирост в 0.01%, который не окупит и серверов для новой модели. Смотри на размер эффекта и доверительный интервал, а не только на p < 0.05 — и заранее договорись, какой минимальный прирост вообще стоит внедрения.
🎤 На собеседовании
  • «Что такое p-value?» — вероятность получить такой или более экстремальный результат при верной H0. Не вероятность, что H0 верна — за эту формулировку снимают баллы.
  • «Оффлайн-метрика выросла, онлайн — нет. Почему?» — оффлайн-данные собраны под старой моделью, прокси-метрика ≠ бизнес-метрика, сдвиг поведения пользователей.
  • «Почему нельзя останавливать тест при первом p < 0.05?» — peeking раздувает ошибку I рода; длительность фиксируется заранее.
  • «Тест не показал значимости — эффекта нет?» — не обязательно: возможно, не хватило мощности. Смотрим доверительный интервал и расчёт размера выборки.