ML-инженер (рекомендательные системы, ALS/ANN)
О вакансии
О проекте:
Делаем персональные рекомендации в 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, тёплая атмосфера, сильная команда.
- Конкурентная заработная плата по итогам собеседования.
- Комфортный офис в верхней части города.
Рыночный ориентир
Смотрите также
Похожие вакансии
Все похожие вакансииСистемный аналитик
Начальник управления маркетинга
Директор по маркетингу
Фармацевт
Системный аналитик (Банк)
QA Team Lead
Частые вопросы
Какую зарплату можно ожидать?
В объявлении зарплата не указана. Похожие роли в Алматы часто предлагают около 462 040 ₸ (медиана по 23 218 предложениям).
Как откликнуться на вакансию?
Перейдите на страницу источника и свяжитесь с работодателем там. Finder не берёт денег с соискателей.
Вакансии актуальные?
Да. Finder регулярно обновляет базу из открытых источников и убирает закрытые предложения.
Где посмотреть тип занятости и формат работы?
Ключевые условия показаны над описанием. Также можно открыть связанные подборки по Halyk Finservice и Алматы.