Data Scientist (NLP / LLM)
Условия трудоустройства
- Тип занятости Полная
- График работы Постоянный график, Плавающий график
- Формат работы Удалённо
- Оформление ТК РФ
- Ожидаемая зарплата от 200 000 ₽/мес
- Командировки Не готов
- Переезд Не готов
О себе
Галеев Руслан
01 января 1993 г.р. (33 года)
В свободное время стараюсь отвлекаться от рутины спортом и хобби, для разностороннего развития.
Опыт работы
октябрь 2024 — апрель 2026
Разработал LLM-ассистента для колл-центра юридических лиц (≈20 тыс. обращений в неделю), развёрнутого на собственной инфраструктуре банка, без внешних API. - Результат (shadow-режим, затем A/B-тест 50/50, 4 недели): resolved rate (доля обращений, решённых без оператора) 45% → 65%, после полного запуска 68%; время ответа 12 → 8,4 мин; CSI (индекс удовлетворённости клиентов) 3,8 → 4,2; доля эскалаций 55% → 32%; экономия ≈35 чел.-ч в день (~2,1 млн ₽ в месяц). - Спроектировал мультиагентную систему на LangGraph: Router, Info, Support, AnalyticsAgent (Text-to-SQL), OperatorAssistant; интеграция с БД и API банка вместе с бэкендерами. - Сравнил Mistral 7B, Qwen 2.5 7B и Qwen 2.5 32B, дообучил Qwen 2.5 32B через LoRA на 10 тыс. размеченных диалогов. Главная метрика — оценка экспертов: 78% полезных ответов; BLEU 0,74 → 0,78 как вспомогательная. - Построил RAG по 20 тыс. страниц регламентов: BGE-M3 (dense + sparse) + Qdrant, Recall@5 = 0,86. Добавил версии и даты документов (приоритет свежим), отдельно обработал таблицы из Excel — это убрало галлюцинации по ставкам. - Ограничил доступ к данным: модель обращалась к БД только через готовые API-инструменты (tool calling) с read-only доступом, проверкой входных параметров и ролевыми правами; все запросы логировались. - Вывел в прод через shadow-режим (модель работает параллельно, клиенты её ответов не видят) и A/B-тест. - Работал в команде из 3 DS, 2 бэкендеров и MLOps-инженера (vLLM, кластер GPU); координировал разметку 10 тыс. диалогов (3 асессора). Стек: Python, PyTorch, Hugging Face Transformers, PEFT (LoRA), LangGraph, vLLM, Qdrant, BGE-M3, Qwen 2.5, Mistral, FastAPI, SQL, Docker, Git.
октябрь 2021 — август 2024
Вёл ML-проекты полного цикла для контакт-центра и логистики: от постановки задачи с бизнесом и разметки данных до продакшена и дообучения. Данные клиентов не покидали инфраструктуру компании (без облачных API). LLM-агент поддержки клиентов с RAG - Результат (shadow-режим → A/B-тест): resolved rate 52% → 74%, время ответа 8 → 6,2 мин, доля эскалаций 25% → 12%, нагрузка на операторов −30% (≈40 чел.-ч в день), CSI вырос до 4,55. - Построил RAG: multilingual-e5-large + Qdrant, чанки по 512 токенов, приоритет свежих документов; дообучил cross-encoder-реранкер: MRR@10 0,68 → 0,81. - Дообучил Mistral 7B через LoRA на 5 тыс. размеченных диалогов и синтетических данных с ручной фильтрацией. - Реализовал мультиагентную систему на LangGraph (Router, Info, Tracking, Escalation) с инструментами для статуса посылки и смены адреса; добавил валидацию параметров вызовов и эскалацию оператору при низкой уверенности модели. - Квантизация INT8 и деплой на vLLM совместно с MLOps-инженером. - Команда: бэкендер, 2 асессора, младший DS. Классификация обращений клиентов - Классификатор на 15 классов (позже 17) для ≈10 тыс. обращений в день (чат, email, транскрипты звонков). Результат A/B-теста: доля эскалаций 18% → 9%, CSI 4,2 → 4,45, время выбора категории оператором 40 → 30 сек. F1-macro 0,89. - С нуля организовал разметку 50 тыс. примеров (2 асессора), написал инструкцию; согласованность разметки Cohen's Kappa = 0,92. - Очистил транскрипты звонков (pymorphy2, DeepPavlov), заменил персональные данные на плейсхолдеры. Сравнил TF-IDF + логистическую регрессию, RuBERT-tiny и ruBERT-base; выбрал ruBERT-base, редкие классы закрыл через class weights и аугментацию. - Ускорил инференс с 80 до 30 мс через ONNX (совместно с MLOps), интегрировал сервис с Kafka вместе с бэкендером; дообучал модель каждые 2 недели на новых данных. OCR + NER для автоматической регистрации накладных - Результат: Exact Match 86% на тесте, время обработки партии 30 → 5 мин, ручной ввод сокращён ≈на 90% (остальное уходит на проверку оператором). Без коммерческих OCR и облачных API из-за персональных данных. - Собрал пайплайн: предобработка изображений (OpenCV: бинаризация, коррекция поворота), OCR (Tesseract), NER на BERT multilingual, rule-based постобработка. - Организовал разметку 5000 накладных в Label Studio (2 асессора, Cohen's Kappa = 0,97). - Запуск через канареечный режим на 10% трафика с fallback на ручную обработку, затем rollout до 100% с алертом по Exact Match. Стек: Python, PyTorch, Hugging Face, PEFT (LoRA), LangGraph, vLLM, Qdrant, ONNX, OpenCV, Tesseract, DeepPavlov, Label Studio, scikit-learn, FastAPI, Docker, Kafka, SQL, Git.
Образование
Уровень образования: Высшее образование
2016 г. ‐ Уфимский государственный нефтяной технический университет
Автоматизация технологических процессов и производств, Автоматизация производственных процессов (ФАПП)