Halyk Finservice
ML-инженер (рекомендательные системы, ALS/ANN)
Не указана
- PostgreSQL
- Инженерные системы
- SQL
- Java
- Администрирование серверов Linux
О проекте:
Делаем персональные рекомендации в e-commerce на основе implicit-сигналов (просмотры/избранное/корзины/покупки) без ручных правил. Базовый retrieval — ALS + BM25/TF-IDF, быстрый поиск похожих — ANN (FAISS/HNSW), онлайн-сервис — FastAPI с p95 ≤ 150 мс и fill-rate ≥ 99%. Данные — ClickHouse (история событий, витрины), пайплайны — Kafka + Airflow. Цели — рост CTR/ATC/GMV и качественные оффлайн-метрики (Recall@K, NDCG@K).
Стек:
Python 3.11+, FastAPI, ClickHouse, Kafka, Airflow, Redis, FAISS/HNSWlib, CatBoost/LightGBM/XGBoost, (опц.) PyTorch/Sentence-Transformers, Prometheus/Grafana, Docker, GitLab CI/CD, (опц.) Kubernetes/Swarm, Superset, S3/MinIO.
Обязанности:
- Retrieval на ALS: подготовка взаимодействий, нормализация весов (BM25/TF-IDF), обучение implicit-ALS, публикация user_factors/item_factors в ClickHouse, сборка FAISS/HNSW индекса.
- Онлайн-инференс: FastAPI /recommend, объединение кандидатов (ALS/популярность/кластер-popular), фильтры сток/регион/квоты мерчанта, лёгкая диверсификация (MMR); контроль p95 и fill-rate.
- Данные и витрины: проектирование и поддержка витрин в ClickHouse (interactions, popularity, co-vis), инкрементальные DAG’и в Airflow, ingest через Kafka.
- Дообучение моделей и ML-эксперименты: дообучение моделей эмбеддингов на данных e-commerce, подготовка датасетов для обучения: пары товар-товар, пользователь-товар, запрос-товар, построение negative sampling и hard negative mining, эксперименты с Sentence-BERT, bi-encoder и cross-encoder архитектурами, использование transfer learning для доменной адаптации моделей, тестирование reranking-моделей поверх retrieval-кандидатов, сравнение ALS/BPR, dense retrieval, hybrid retrieval и ML-ranking, документирование экспериментов, метрик и выводов.
- Оффлайн-оценка и A/B: расчёт Recall@K/NDCG@K (time-split), дизайн и анализ A/B (SRM-чек, доверительные интервалы, CUPED), мониторинг CTR/ATC/RPS/GMV и guardrails (латентность, fill-rate, OOS-share), контроль технических guardrails: latency, fill-rate, OOS-share, error-rate, анализ сегментов пользователей, категорий и cold-start сценариев.
- Производительность и надёжность: профилирование Python/SQL, оптимизация ClickHouse-запросов и структуры таблиц, оптимизация FAISS/HNSW-индексов по latency, memory usage и recall, настройка метрик Prometheus/Grafana, настройка алертов, fallback-сценариев и graceful degradation, контроль воспроизводимости обучения и версионирование артефактов моделей, Поддержка CI/CD для ML-сервисов и пайплайнов.
Требования:
- 4+ лет разработки на Python 3.11+; уверенный async (asyncio/uvloop), тестирование и типизация.
- Уверенное владение async Python: `asyncio`, `uvloop`, async clients, профилирование latency.
- Опыт разработки production-сервисов на FastAPI.
- Уверенное тестирование, типизация, code review и поддержка production-кода.
- Практический опыт рекомендательных систем, ранжирования или поисковых систем.
- Опыт collaborative filtering: ALS, BPR, item-to-item, user-to-item retrieval.
- Понимание implicit feedback и особенностей e-commerce-сигналов.
- Опыт расчёта и интерпретации оффлайн-метрик: Recall@K, NDCG@K, MAP@K, HitRate@K.
- Опыт построения ANN-поиска: FAISS, HNSWlib или аналогичные решения.
- Практический опыт работы с эмбеддингами товаров, пользователей или текстовых запросов.
- Опыт построения vector search / semantic search / similarity search.
- Опыт дообучения embedding-моделей или уверенное понимание подходов: contrastive learning, triplet loss, hard negatives.
- Опыт работы с PyTorch, Sentence-Transformers или Transformers будет преимуществом.
- Сильный SQL и ClickHouse: MergeTree, materialized views, projections, partitioning, TTL.
- Умение читать планы запросов и оптимизировать расчёты на больших объёмах данных.
- Опыт работы с Redis как кэшем или feature store.
- Опыт с Kafka и Airflow: идемпотентные DAG’и, мониторинг лагов, retries, backfills.
- Понимание offline-online consistency фичей.
- Понимание принципов A/B-тестирования и продуктовых метрик.
- Умение работать с метриками, алертами и production-инцидентами.
Будет плюсом:
- CatBoost/LightGBM/XGBoost в production: ranking, calibration, online scoring.
- Построени learning-to-rank моделей.
- Работа с cross-encoder / bi-encoder архитектурами для retrieval и reranking.
- Дообучение Sentence-Transformers на доменных данных.
- Построение hybrid search: sparse retrieval + dense retrieval + reranker.
- OpenSearch kNN, pgvector, Qdrant, Milvus или другими vector database / vector search решениями.
- Оптимизации FAISS-индексов: IVF, HNSW, PQ, OPQ, GPU FAISS.
- Кластеризация пользователей или товаров: KMeans, GMM, HDBSCAN.
- Построение cold-start стратегий: cluster-popular, content-based recommendations, category-popular.
- Применения LLM для обогащения каталога: нормализация атрибутов, генерация синонимов, классификация товаров, deduplication.
- Построение пайплайнов генерации эмбеддингов для каталога.
- Мониторинг drift эмбеддингов, качества retrieval и деградации рекомендаций.
- Kubernetes, Helm, GitLab CI/CD.
- Superset, S3/MinIO.
- MLflow, DVC или аналогичными инструментами для версионирования ML-экспериментов
Условия:
- Стандартный офисный график, без удаленного формата работы.
- Оформление по ТК РК.
- Медицинская страховка после испытательного срока
- График 5/2, плавающее начало дня, без дресс-кода.
- Обучение за счёт компании и постоянное развитие.
- Настольный теннис, PS5, тёплая атмосфера, сильная команда.
- Конкурентная заработная плата по итогам собеседования.
- Комфортный офис в верхней части города.