ML Engineer — строю production-grade системы машинного обучения: от табличных моделей и кредитного скоринга до LLM fine-tuning и машинного перевода для низкоресурсных языков.
Специализация: полный цикл ML-проекта — подготовка данных, обучение, трекинг экспериментов, serving, оркестрация переобучения, мониторинг. Основной стек: Python, CatBoost / LightGBM / XGBoost, PyTorch, Hydra, MLflow, Airflow, FastAPI, Docker.
Проекты расположены в порядке от ранних к более зрелым — каждый следующий строится на опыте предыдущего.
Три проекта, в которых сформировался базовый пайплайн: модель → FastAPI / Gradio → Docker. Без полной MLOps-обёртки, но с реальными архитектурными и исследовательскими решениями.
Классификация фейковых новостей через ансамбль рекуррентных архитектур. Полный ML-пайплайн: предобработка текста (очистка URL, стоп-слова, Word2Vec-эмбеддинги) → три модели (RNN / LSTM / GRU) → взвешенный ансамбль → FastAPI → Docker.
Ключевые решения: все три архитектуры обучены независимо с подбором гиперпараметров (hidden dim, num_layers, dropout, lr) через Optuna по ROC AUC; веса ансамбля также оптимизированы Optuna — не фиксированное усреднение, а подбор оптимальной комбинации. Каждая модель возвращает вероятность через API, итоговое решение принимается ансамблем. Метрики: Accuracy, F1, ROC AUC.
Background-Removal-and-Replacement
CV-проект по удалению и замене фона на изображениях с benchmarking'ом двух сегментационных моделей.
Исследование: сравнение BiRefNet и RMBG на датасете DUTS-TE по метрикам IoU, Dice, MAD. BiRefNet показал лучшее качество (IoU 0.9337, Dice 0.9651, MAD 0.0098), RMBG — IoU 0.9288. Дополнительно построен и оценён взвешенный ансамбль 0.85 · BiRefNet + 0.15 · RMBG, который улучшил overlap-метрики относительно бейзлайна. Продукт упакован в интерактивный Gradio-интерфейс с тремя режимами замены фона: сплошной цвет, прозрачный PNG, произвольное изображение.
EMNIST-Handwritten-Character-Recognition
Распознавание рукописных символов (47 классов: цифры + буквы) на датасете EMNIST Balanced (112 800 обучающих, 18 800 тестовых изображений), деплой через FastAPI с интерактивным фронтендом.
Последовательное сравнение архитектур: Logistic Regression (~67%) → MLP с BatchNorm и Dropout (~86%) → CNN (~88%+). Особое внимание уделено предобработке входа при инференсе: данные EMNIST приходят транспонированными, поэтому пайплайн включает транспонирование, морфологическую дилатацию (OpenCV) для утолщения линий, Bilateral Filter, центрирование по center_of_mass и стандартизацию. Финальная модель обучена в Google Colab (T4, 50–100 эпох, ReduceLROnPlateau scheduler) и задеплоена в Docker.
Kaggle-House-Prices-Top5pct-result
House Prices: Advanced Regression Techniques — Top 5% лидерборда.
Feature engineering на структурированных данных о недвижимости: взаимодействия признаков, кодирование категорий, обработка выбросов, работа с пропусками. Ансамблирование градиентных бустингов (CatBoost / LightGBM / XGBoost) со стекингом. Основная метрика — RMSE логарифма цены.
Kaggle_Contradictory_My_Dear_Watson
Natural Language Inference на 15 языках (трёхклассовая классификация: Entailment / Neutral / Contradiction). Финальный результат: Test Accuracy 0.773, Test F1 0.773.
Серьёзное исследование: smoke-тест четырёх предобученных NLI-архитектур (DeBERTa v3, XLM-RoBERTa, ModernBERT) показал доминирование DeBERTa — Disentangled Self-Attention лучше всего работает для cross-attention между посылкой и гипотезой. Ключевое архитектурное решение — кастомный DynamicTextCollator: наивная конкатенация текстов давала ~33% accuracy (случайное угадывание); коллатор корректно подаёт пару как text + text_pair, что позволяет токенизатору вставить [SEP] и сгенерировать token_type_ids. LoRA-настройка через overfitting probe: все комбинации target modules сходились к Acc=1.0; выбраны query_proj, key_proj, value_proj (0.24% обучаемых параметров) как минимальная конфигурация с достаточной выразительностью. Вокруг задачи выстроен полный MLOps-стек: MLflow + Model Registry, FastAPI, Airflow DAGs, Docker/K8s, Telegram-бот, Prometheus/Grafana.
Промышленный пайплайн кредитного скоринга: предсказание вероятности дефолта по агрегированной кредитной истории. ROC-AUC 0.743 на PROD-выборке 420k+ клиентов.
Ключевые решения: SQL-агрегация (DuckDB dev / PySpark prod), кастомный FeatureEngineer с макро-индексами и бизнес-флагами, anti-leakage сплиттинг по client_id, SHAP-интерпретируемость, тюнинг threshold вместо жёсткой балансировки весов. Полный MLOps: Hydra + MLflow + Optuna + FastAPI + Prometheus + Airflow DAGs (retrain / batch inference / deploy) + Docker.
Предсказание подписочного поведения клиентов. Построен на той же инфраструктурной базе, что и credit-risk-model, с акцентом на feature engineering под подписочную механику.
fake-news-detection-ml-system-mlops
MLOps-переработка исходного fake-news проекта на базе задачи классификации email (spam / ham, TREC 2006, 72.3% / 27.7% имбаланс классов). Полный production-пайплайн с заменой архитектуры и добавлением MLOps-обёртки.
Исследование: бенчмарк четырёх BERT-энкодеров под идентичными условиями (3 эпохи, head-only fine-tuning). Победитель — deepset/bert-base-cased-squad2: лучший F1 (0.700) и наименьший loss при времени обучения 3.4 мин. Автоматическая балансировка через inverse-frequency weights дала прирост Val F1 с 0.706 до 0.922. LoRA ablation: overfitting probe на 100 шагах показал, что конфигурация r=8, α=8, target=[query, value] (0.17% обучаемых параметров) достаточна — всё сходится к Acc=1.0. Выбор max_length=256 против 512 обоснован компромиссом recall / скорость (6.6 мин → 3.4 мин). Финальные метрики на ресурсно-ограниченном локальном запуске: Val F1 0.9655, Test F1 0.9354.
Стек: PyTorch Lightning + PEFT/LoRA + Hydra + MLflow Registry (Staging/Production) + FastAPI + Telegram-бот (aiogram, webhook + polling) + Prometheus/Grafana + Airflow (KubernetesPodOperator) + Kubernetes + GitHub Actions CI.
Машинный перевод с русского на абхазский язык — один из наиболее морфологически сложных и низкоресурсных языков Кавказа. Полный цикл: Continual Pre-Training (CPT) на монолингвальном корпусе → Supervised Fine-Tuning (SFT) на 147k параллельных парах → деплой.
Архитектурные решения: скрининг моделей через smoke-tests (Qwen3-4B vs phi-4 — перплексия phi-4 ~1757 на абхазском алфавите против ~43 у Qwen), анализ P99 длин токенов для выбора packing_chunk_size=512, MinHash LSH дедупликация, LoRA-aware чекпоинтинг (сохраняет только дельта-веса), маскировка промпта через prompt_len, GenerationEvaluationCallback с BLEU и таблицами генераций в MLflow на каждом шаге валидации.
Инфраструктура: Hydra + PyTorch Lightning + MLflow Registry (Staging/Production) + PEFT/LoRA + BitsAndBytes 4-bit + Flash Attention 2 + Airflow DAGs + Helm chart (K8s) + FastAPI с SSE стримингом + Telegram-бот + Streamlit демо + Prometheus/Grafana + GitHub Actions CI.
Production-ready шаблон для задач генерации текста (Decoder / LLM) и семантического поиска (RAG). Цель — от датасета до работающего API за минимальное количество шагов, без написания инфраструктурного кода с нуля.
Два полных пайплайна обучения: SFT/CPT с LoRA/QLoRA (PyTorch Lightning) и дообучение RAG-энкодера через contrastive learning (MNRL / Triplet loss). Три микросервиса: API Gateway (RAGOrchestrator + PromptManager), RAG API (FAISS Flat/HNSW), LLM API (vLLM, OpenAI-compatible). Готовые конфиги архитектур: Qwen2.5-1.5B, Qwen3-4B-Instruct, Phi-4-mini, bge-m3. 9 Airflow DAG-ов (retrain, promote, quality control, analytics — для обоих пайплайнов). Helm chart, Streamlit демо, полный тест-сьют с моками. Вся конфигурация через Hydra — смена модели, квантизации, индекса или лосса через CLI без правки кода.
Модели CatBoost · LightGBM · XGBoost · PyTorch · Transformers · PEFT/LoRA · pytorch_lightning
Конфигурация Hydra · OmegaConf
Трекинг MLflow
Данные DuckDB · PySpark · Pandas · DVC · datasets
Serving FastAPI · uvicorn · vLLM · aiogram · SlowAPI
Мониторинг Prometheus · Grafana
Оркестрация Airflow · Kubernetes · Helm
Инфраструктура Docker · GitHub Actions · uv · ruff
- Бакалавр, Математическое моделирование / Менеджмент в IT — Уральский федеральный университет, 2019.
- Повышение квалификации — Skillbox, Data Science & Machine Learning Engineer, 800 академических часов. В рамках курса реализовал 20 практических работ: EDA, классические ML-модели, CV (YOLO/SSD/R-CNN), NLP, GAN/VAE, RL (DQN).
- Прикладная математика для машинного обучения — Дианкин И.Д., Пензар Д.Д. (ф-т биоинженерии и биоинформатики МГУ). Открытый курс
- Прикладное машинное обучение / ML-basic course spring 2024 — Нейчев Р., Гончаренко В. (МФТИ). YouTube
- NLP & RL — Карпачев Н., Нейчев Р., Лунева Н. (МФТИ). YouTube
mallienotxc@gmail.com · Telegram: @fenderfeniks