av

Пишу на Python.
Интересуюсь ML.

Учусь на втором курсе Бауманки и ищу стажировку в ML.

Москва Английский C1

Модернистское здание «РОРК» Двухэтажное здание в аксонометрии: тонкие перекрытия, утопленное остекление и небольшая вывеска на каменном фасаде. Над крышей — зелёная звёздочка. РОРК

Проекты

Чат-бот по документам

На практике · лето 2026

Ранняя версия

Находит ответы в правовых документах и показывает источники.

Развил обработку документов и переработал гибридный поиск.

После двух недель практики мне доверили самостоятельно развивать и поддерживать систему.

Что я доработал

Что ещё сделал

  • Добавил оценку ответов и диагностические отчёты.
  • Настроил переиндексацию Qdrant со сменой alias, контейнеры, логи и запуск модели через vLLM.

Как устроен поиск

Dense-поиск и два BM25-канала объединяются через weighted RRF. Затем CrossEncoder отбирает фрагменты для ответа. Для оценки подключены RAGAS и DeepEval.

Устройство пилота
  1. 01
    ВопросЗапрос пользователя
  2. 02
    Гибридный поискDense + BM25 · weighted RRF
  3. 03
    ПереранжированиеCrossEncoder отбирает фрагменты
  4. 04
    Ответ с источникамиLLM получает найденный контекст

Схема процесса в рабочем пилоте.

Развёртывание

Python, Docker Compose, MongoDB, health-checks и логи. Модель запущена через vLLM на двух RTX 4090.

Что есть в открытом доступе

На GitHub — ранняя версия, опубликованная с разрешения компании. Она отличается от рабочего пилота, в том числе поисковыми каналами. Публичных замеров качества и бизнес-эффекта для пилота нет.

Поиск объявлений Авито

Личный проект

GitHub

Доработал поиск и отбор объявлений: учёл географию и категории, дообучил модель.

81,34% 89,58%

средняя доля подходящих объявлений,
найденных в первых 50 результатах

Локальная проверка, только объявления из каталога. На этих же данных выбирал улучшения; независимая проверка ещё впереди.

Как проверял результат

Что изменил

  • Дообучил Octen с LoRA и объединил плотный поиск с BM25.
  • Учёл географию до отбора dense-кандидатов. Добавил OOF-признаки микрокатегорий без обучения на проверяемых текстах.
  • Обучил модель ранжирования HGB на 85 признаках. Улучшались и поиск кандидатов, и отбор 50 объявлений.

Как считается процент

Recall@50 — средняя доля заранее известных подходящих объявлений, найденных в первых 50 результатах. Сначала результат усредняется по условиям поиска для одной формулировки, затем — по всем формулировкам. Так каждая имеет одинаковый вес.

Данные для проверки

Каталог: 200 000 объявлений. Проверка от 14.10.2026: 6 111 формулировок в 12 103 сочетаниях с условиями поиска — местом, категорией, доставкой и фильтрами. Например, «велосипед» в Москве и в Казани — одна формулировка, но два сочетания условий.

Откуда 89,58% и 33,59%

89,58% рассчитаны только по подходящим объявлениям, доступным в каталоге: 3 069 формулировок в 4 750 сочетаниях с условиями поиска. Если учесть все известные подходящие объявления, включая отсутствующие в каталоге, результат — 33,59%. Найти отсутствующее объявление система не может.

Ограничения результата

81,34% и 89,58% получены на одной локальной выборке, которую я использовал при выборе решений. Последняя версия пока исследовательская; результат ещё нужно проверить на новых данных. Новой внешней оценки нет.

Ещё делал

ChessAI ↗ — шахматный движок с нейросетевой оценкой позиций. Представил на конференции «Инженеры будущего».

English Learning Bot ↗ — бот для английского: словарь, диктанты и AI-собеседник.

Обо мне

В Бауманке учусь на «Системах искусственного интеллекта». Окончил Яндекс Лицей с отличием.

Помимо RAG, участвовал в разработке сервисов и проектировании инфраструктуры ИИ-агента для ситуационного центра Минобрнауки.

Ещё об учёбе и технологиях

МГТУ им. Н. Э. Баумана, бакалавриат, 2 курс. В Яндекс Лицее окончил программу по разработке на Python.

В проекте для Ведомственного ситуационного центра Минобрнауки России участвовал в разработке сервисов и проектировании инфраструктуры ИИ-агента.

Работаю с Python, FastAPI, PyTorch, Qdrant, BM25, embeddings, CrossEncoder, Docling, vLLM, RAGAS, DeepEval, Docker Compose, Git и pytest. В ChessAI использовал PyTorch и PyQt5, в боте — aiogram; в нём также есть статистика занятий.

На связи