Проблема: почему Wildberries инвестирует в детекцию AI-изображений?
С появлением Stable Diffusion, Midjourney и DALL-E 3 маркетплейсы столкнулись с новой реальностью: продавцы массово используют AI для генерации товарных изображений. Это создаёт несколько фундаментальных проблем:
- Дезориентация покупателей: AI-изображения часто идеализируют товар, создавая нереалистичные ожидания
- Юридические риски: использование AI-контента без маркировки может нарушать законодательство о рекламе
- Доверие к платформе: пользователи теряют уверенность в достоверности визуальной информации
- Конкурентное преимущество: честные продавцы проигрывают тем, кто использует «идеальные» AI-картинки
Важно: детектор нужен не для блокировки AI-контента, а для его маркировки и создания честной конкурентной среды. Полный запрет — контрпродуктивен, так как качественный AI-контент тоже имеет право на существование.
Архитектурное решение: трёхуровневая система детекции
Wildberries использует не одну модель, а целый пайплайн, который обрабатывает миллионы изображений ежедневно. Вот как это работает:
1 Уровень 1: Быстрый пре-скрининг
На этом этапе используются легковесные модели (EfficientNet, MobileNetV3), которые анализируют метаданные и низкоуровневые признаки:
import torch
import torchvision.transforms as transforms
from PIL import Image
class FastScreener:
def __init__(self):
self.model = torch.hub.load('pytorch/vision', 'mobilenet_v3_small', pretrained=True)
self.model.eval()
def predict(self, image_path):
# Быстрая предобработка
transform = transforms.Compose([
transforms.Resize(128),
transforms.ToTensor(),
])
image = Image.open(image_path).convert('RGB')
tensor = transform(image).unsqueeze(0)
with torch.no_grad():
prediction = self.model(tensor)
return prediction.squeeze().numpy()
2 Уровень 2: Детальный анализ энкодером
Здесь используется Vision Transformer (ViT-Base) или ConvNeXt, обученные на специфических артефактах AI-генерации:
- Анализ текстур и градиентов (AI часто создаёт слишком «гладкие» поверхности)
- Обнаружение артефактов в мелких деталях (уши, пальцы, текст)
- Анализ цветовых распределений и шумовых паттернов
3 Уровень 3: Ансамбль экспертных моделей
Для сложных случаев (например, когда изображение прошло постобработку в Photoshop) используется ансамбль из 3-5 специализированных моделей:
| Модель | Целевые артефакты | Вес в ансамбле |
|---|---|---|
| ResNet-50 (специализированная) | Общие паттерны генерации | 0.4 |
| CLIP-based детектор | Семантические несоответствия | 0.3 |
| Детектор частотных артефактов | FFT-анализ спектра | 0.2 |
| Метаданные анализатор | EXIF, история редактирования | 0.1 |
Сбор и подготовка данных: самая сложная часть
Качество детектора на 80% определяется качеством данных. Wildberries использует комбинированный подход, похожий на тот, что описан в нашей статье про источники данных для обучения.
Источники AI-изображений:
- Контролируемая генерация: создаём изображения через Stable Diffusion, Midjourney, DALL-E 3 с известными параметрами
- Публичные датасеты: LAION-AI, GenImage, DiffusionDB
- Активный сбор: мониторинг новых генеративных моделей (включая китайские, как Qwen-Image-Layered)
Источники реальных изображений:
- Собственная база фотографий товаров (с подтверждённым происхождением)
- Публичные датасеты (ImageNet, OpenImages) с фильтрацией по лицензии
- Фотографии, сделанные сотрудниками компании
Критически важно балансировать классы! Если в обучающей выборке будет 90% AI-изображений и 10% реальных — модель научится просто считать всё AI-контентом.
Аугментация данных:
import albumentations as A
transform = A.Compose([
A.RandomResizedCrop(224, 224, scale=(0.8, 1.0)),
A.HorizontalFlip(p=0.5),
# Имитация постобработки, которую делают продавцы
A.RandomBrightnessContrast(p=0.3),
A.GaussNoise(var_limit=(10.0, 50.0), p=0.2),
A.JpegCompression(quality_lower=70, quality_upper=100, p=0.3),
# Важно: для AI-изображений добавляем дополнительные трансформации
A.OneOf([
A.GaussianBlur(blur_limit=(3, 5)),
A.MedianBlur(blur_limit=3, p=0.5),
], p=0.2),
])
Метрики качества: что действительно важно в production?
Точность (accuracy) — это только вершина айсберга. В production-системе Wildberries отслеживает десятки метрик:
| Метрика | Целевое значение | Почему важно |
|---|---|---|
| Precision (AI класс) | > 0.92 | Минимизация ложных обвинений продавцов |
| Recall (AI класс) | > 0.85 | Не пропускать явный AI-контент |
| F1-Score | > 0.88 | Баланс между precision и recall |
| AUC-ROC | > 0.95 | Качество разделения классов |
| Латентность (p95) | < 300 мс | Влияет на UX загрузки товаров |
| Throughput | > 100 img/сек на GPU | Обработка пиковых нагрузок |
Мониторинг дрейфа данных:
Генеративные модели постоянно улучшаются. То, что работало против Stable Diffusion 2.1, может не работать против SD 3.0. Поэтому:
class DataDriftMonitor:
def __init__(self):
self.reference_distribution = None
def update_reference(self, predictions):
# Сохраняем распределение предсказаний на референсных данных
self.reference_distribution = {
'mean': np.mean(predictions),
'std': np.std(predictions),
'hist': np.histogram(predictions, bins=50)[0]
}
def check_drift(self, current_predictions):
# Сравниваем с референсом
current_mean = np.mean(current_predictions)
reference_mean = self.reference_distribution['mean']
# KL-дивергенция между гистограммами
current_hist = np.histogram(current_predictions, bins=50)[0]
kl_div = entropy(current_hist + 1e-10,
self.reference_distribution['hist'] + 1e-10)
return {
'mean_drift': abs(current_mean - reference_mean),
'kl_divergence': kl_div,
'drift_detected': kl_div > 0.1 # Пороговое значение
}
Инфраструктура и MLOps
Система работает на гибридной инфраструктуре:
- Онлайн-инференс: Kubernetes + Triton Inference Server
- Пакетная обработка: Apache Spark для анализа исторических данных
- Хранилище признаков: Feast для управления фичами
- Мониторинг: Prometheus + Grafana + собственные дашборды
Этические соображения и ограничения
Детектор AI-контента — это не полицейский инструмент, а система обеспечения прозрачности. Важные принципы:
- Объяснимость: продавцы должны понимать, почему их изображение помечено как AI
- Апелляция: возможность оспорить решение системы
- Постепенное внедрение: сначала предупреждения, потом маркировка, и только в крайних случаях — ограничения
- Конфиденциальность: система не должна сохранять или анализировать изображения дольше необходимого
Будущее развития
Текущие направления развития системы в Wildberries:
- Мультимодальность: анализ не только изображений, но и текстовых описаний (связь с мультимодальным RAG)
- Детекция гибридного контента: когда AI-изображение отредактировано в Photoshop
- Прогнозирование трендов: какие типы AI-контента будут популярны завтра
- Интеграция с видео-детекцией: по аналогии с инструментами для видео
Ключевой insight: идеального детектора не существует. Это всегда гонка вооружений между генеративными моделями и системами детекции. Цель — не выиграть гонку, а поддерживать приемлемый уровень прозрачности для пользователей.
FAQ: частые вопросы о детекторах AI-изображений
Можно ли обойти детектор с помощью постобработки?
Да, но это требует значительных усилий. Простое добавление шума или изменение размера обычно не работает против современных детекторов. Эффективные методы (вроде adversarial attacks) сложны в реализации для рядового продавца.
Как часто нужно переобучать модель?
В Wildberries есть два цикла: еженедельное дообучение на новых данных и полное переобучение раз в месяц. Также мониторинг дрейфа данных может запустить внеплановое обновление.
Что делать с ложными срабатываниями?
Система имеет несколько уровней проверки. Если изображение помечено как AI с низкой уверенностью (< 0.7), оно отправляется на модерацию к человеку. Также продавцы могут подать апелляцию.
Можно ли использовать open-source модели для детекции?
Да, но их нужно дообучать на своих данных. Модели вроде CLIP или ViT дают хорошую базовую точность, но для production-качества требуется fine-tuning на специфичных для маркетплейса данных.
Как оценить ROI от внедрения такой системы?
Через метрики доверия пользователей: снижение возвратов из-за несоответствия ожиданий, рост конверсии у продавцов с реальными фото, уменьшение жалоб на обман. В долгосрочной перспективе — укрепление бренда как честной платформы.