Halyk Finservice

ML-инженер (рекомендательные системы, ALS/ANN)

Не указана
  • Алматы
  • От 3 до 6 лет
  • 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, тёплая атмосфера, сильная команда.
  • Конкурентная заработная плата по итогам собеседования.
  • Комфортный офис в верхней части города.