ML-инженер (рекомендательные системы, ALS/ANN) at Halyk Finservice — NeverHard
ML-инженер (рекомендательные системы, ALS/ANN) at Halyk Finservice in Алматы. Apply on NeverHard.
Company
Halyk Finservice
Location
Алматы
Type
not_specified
О проекте: Делаем персональные рекомендации в 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, тёплая атмосфера, сильная команда. Конкурентная заработная плата по итогам собеседования. Комфортный офис в верхней части города.