RAG-ассистент для каталога

MVP чат-поиск с автоматизацией деплоев, экспериментов и мониторинга качества

RAG-ассистент для каталога

One-liner: За шесть недель выкатили RAG MVP для ритейл-клиента, сократили пустые поиски в три раза и уложились в бюджет одной GPU.


TL;DR

ДоПослеЧто сделали
Zero-result 30%9 %Weaviate HNSW + fallback
p90 latency 1.6 с0.8 сint8 Mistral-7B, Ray Serve
CTR 12.4%14 %Rerank cross-encoder
Cost 2.2 $ / 1000 req1.2 $self-host + spot GPU
GMV (10 % трафика A/B) —+6.3 %search uplift

1. Зачем клиенту был нужен MVP

  • E-commerce, США, 9 млн товаров в каталоге.
  • 30% запросов отдавали пустую выдачу, пользователи уходили за 1.5 с.
  • Лицензия облачного GPT-4 стоила $ 45k/месяц, CFO ввел жесткий потолок на операционные расходы.
  • Цель контракта - рабочий прототип, который покажет экономию и рост CTR за один квартал.

2. Целевые метрики

МетрикаЦельСтатус
Zero-result < 10 %9 %
p90 < 1 с0.8 с
Cost −30 %−45 %
CTR +10 %+1.6 pp
SLA 99.5 %99.6 %

3. Архитектура MVP

3.1 Ingestion

Airflow DAG дробит карточки на абзацы, считает эмбеддинги E5-small, пишет их в кластер Weaviate (HNSW, три шарда). Переиндексирование 10 M позиций за 45 мин без даунтайма.

3.2 Retrieval pipeline

query → E5 embed → HNSW top50
           ↑             ↓
     BM25 filter  ←  price / brand
→ cross-encoder rerank 10

3.3 LLM serving

Ray Serve держит Mistral-7B int8 (gguf). Первые токены стримятся за 0.25 с. Модель дообучена на 50 k диалогов e-commerce.

3.4 Serving слой

FastAPI BFF, gRPC к Ray, KServe autoscaling. Canary 50 / 50 через Argo Rollouts, rollback < 1 мин.

3.5 Observability

Prometheus + Grafana (latency, токены), Loki для логов, Evidently drift на базе запросов.


4. Решенные проблемы

БольРешениеВыигрыш
Долгая выдачаint8 Mistral + batching−0.6 с latency
Пустые ответыFallback BM2530 % → 9 %
Дорогие токеныOwn GPU (spot A10G)−45 % cost
ГаллюцинацииRAG-guard threshold 0.4< 1 % жалоб
Холодные стартыRay Serve autoscaler с прогревомp99 стабильный

В первую неделю после релиза начали сыпаться latency-алерты. Ray перегревал карту при высоком батчинге. Проблему решили через throttling и фиктивные прогревочные запросы.


5. Экономика для клиента

Сниженная доля zero-result принесла +240 k сессий в месяц. CTR вырос на 1.6 pp, что дало +6.3 % GMV в тестовом сегменте. Полная окупаемость CAPEX на GPU достигнута за 70 дней.


6. Моя роль — ML engineer

  • Настроил Weaviate индекс и HNSW параметры.
  • Подготовил датасет, fine-tune Mistral-7B LoRA int8.
  • Реализовал cross-encoder rerank (MiniLM) и промпт шаблоны.
  • Собрал метрики в Prometheus, настроил Evidently drift тревоги.
  • Анализировал A/B, оформил отчет для клиента.

7. Что дальше

Клиент планирует расширить MVP до полной персонизации: история покупок во фичах, upsell-рекомендации и мобильный SDK. Helm-chart, подготовленный в проекте, уже развернут на пилотной площадке второго заказчика.


Bottom line

MVP показал, что аккуратно собранный RAG снижает расходы, ускоряет поиск и прямо влияет на продажи. Команда доказала метриками, что решение масштабируемо и готово к продуктовой фазе.

Связаться

Контакты

Готов к обсуждению ML‑проектов и внедрений, отвечаю лично.

Игорь Якушев,
ML-инженер

Фото Игоря Якушева, ML-инженера обо мне
1 слот открыт для проекта на июнь

Решения с упором на продукт и System Design. Меня привлекают задачи с потенциалом системного роста.

Как начать разговор:

  1. 1. Напишите мне напрямую Свяжитесь так, как удобно вам: Telegram, email или LinkedIn.
  2. 2. Расскажите о задаче Пара строк: контекст, цель, формат - этого достаточно.
  3. 3. Если вижу, что могу помочь, договоримся о старте Предложу следующий шаг.

Быстрее всего

Написать в Telegram