FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Original HTTPS Page]

Ilyat9 (Ilya Afromeev) · GitHub

🏠
Working from home
🏠
Working from home

Block or report Ilyat9

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Close all issues, pull requests, and discussions opened by this user Content in all repositories owned by your account will be closed.
Add an optional note
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Ilyat9/README.md

Привет, я Илья 👋

🔎 Ищу позицию LLM / AI / ML Engineer — Telegram · afrom205@gmail.com

LLM / AI Engineer · baseline, ablation, калибровка и разбор ошибок

Студент 3 курса ПМИ МАИ, Москва. Последний год строю системы вокруг LLM и NLP: многостадийные поисковые пайплайны, семантический поиск и реранжирование, дедупликацию, кластеризацию и детекцию перефраза. Бэкенд — мой инженерный фундамент: ML-решения доезжают до пользователей в виде API. Английский — B2.

📌 Главное за 30 секунд

Коммерческий LLM/OSINT 13-этапный пайплайн · 17 внешних API · 50+ параллельных проверок · 72 тестовых модуля
CityFeed End-to-end ML: дедупликация, HDBSCAN-кластеризация, персональное ранжирование, LLM-суммаризация · NDCG@5 0.611
Semantic Plagiarism Detector Bi-encoder → cross-encoder · калибровка на PAWS и своём корпусе · fine-tuned F1 0.856, ROC-AUC 0.935
mutagen-cli LLM-driven mutation testing для pytest · PyPI · diff-based анализ · проверено на пяти реальных проектах
Хакатоны ВШЭ × Wildberries — топ-10 соло · Nuclear IT Hack МИФИ — 1/8 финала · SBER HACK SPRING — топ-6

💼 Опыт работы

Разработчик · консалтинговое агентство (корпоративная разведка, due diligence) март 2026 — настоящее время · Москва

Разрабатываю внутреннюю OSINT-платформу для проверки контрагентов: домен → структурированный отчёт о компании, владельцах и связях. Продукт под NDA, поэтому ниже — классы задач.

  • LLM-пайплайн (13 этапов): извлечение сущностей → глубокий батч-поиск → консолидация графа связей без потери фактов. Промпты версионируются и не завязаны на одну юрисдикцию; факты получают уровень уверенности.
  • Асинхронная оркестрация: 50+ параллельных проверок (WHOIS, DNS, TLS) и 17 интеграций с внешними API с обработкой их недоступности.
  • Качество и стоимость: проверка ссылок и фактов, фолбэк на резервную модель, лимиты глубины, сущностей и токенов для предсказуемой стоимости прогона.
  • Инженерия: анализ связей по 29 сигналам · HTML-отчёт из 14 секций · Docker-деплой · 72 тестовых модуля, включая кросс-браузерные e2e на Playwright.

Довёл до пользователей ещё два внутренних инструмента (репозитории закрытые): OSINT-утилиту для аналитиков со стримингом этапов и сборкой в .exe, а также GUI-конвертер PDF-отчётов в Excel с drag-and-drop.


🧠 ML / NLP проекты

📰 CityFeed — end-to-end ML-система персональной новостной ленты

Собирает городские новости из СМИ и Telegram-пабликов, сливает пересказы в события, группирует события в сюжеты и учится на 👍/👎 каждого пользователя. У каждого компонента — бейзлайн, воспроизводимый отчёт (cityfeed eval) и разбор ошибок.

Компонент Решение Результат
Дедупликация blocking + обучаемый парный скорер на 9 признаках + complete-linkage guard F1 1.000 против 0.967 у TF-IDF-бейзлайна; отдельно показан потолок recall блокинга — 0.884
Кластеризация HDBSCAN по скользящему окну 3 дня, сюжеты живут дольше суток ARI 0.373 — вровень с KMeans, которому подсказали истинное k
Ранжирование бэкофф global → personal, признаки фиксируются в момент показа NDCG@5 0.611 против 0.521 у эвристики и 0.390 у случайного порядка
Суммаризация локальная LLM (Ollama) + программная верификация evidence провал проверки → ретрай → деградация до экстрактива, который не галлюцинирует по построению

Метрики сняты на синтетическом корпусе с известной ground truth: сначала проверяется контур измерений, затем тот же код считает метрики на реальных данных. Выигрыш персонализации над global (+0.008) лежит внутри доверительного интервала; like rate на exploration-слотах втрое ниже обычного.


🔍 Semantic Plagiarism Detector — детекция заимствований и перефраза

Веб-сервис: документ (.docx / .pdf / .txt) → поиск источников в интернете → вердикт по каждому фрагменту (verbatim / paraphrase / original) → PDF-отчёт.

Двухстадийное сравнение: би-энкодер отсекает нерелевантное, кросс-энкодер перепроверяет топ-k. Пороги не подобраны на глаз — откалиброваны на PAWS dev и собственном размеченном корпусе (125 пар, включая hard negatives), значения лежат в репозитории.

Ablation, PAWS test (n=2000):

Подход F1 ROC-AUC STS-B Spearman
TF-IDF + cosine (baseline) 0.645 0.708 0.709
Bi-encoder MiniLM 0.608 0.650 0.867
Bi → Cross-encoder stsb-roberta (zero-shot, дефолт пайплайна) 0.619 0.613 0.919
Bi → Cross-encoder fine-tuned (PAWS train, 2 эпохи) 0.856 0.935 0.883

Fine-tuning даёт +24pp F1 — и ломает калибровку градуированного сходства (STS-B Pearson 0.920 → 0.724). Продуктовый вердикт строится на пороге по абсолютному значению скора, а не на ранжировании, поэтому в пайплайне по умолчанию осталась zero-shot модель: лучший результат в таблице и правильный выбор для задачи здесь не совпадают.

Семь кейсов failure analysis разобраны письменно: почему оптимальный на PAWS порог систематически хуже на естественных текстах, почему retrieval-кросс-энкодер плохой скорер сходства, как sigmoid поверх уже нормализованного выхода модели уничтожил разделение классов.


🧬 mutagen-cli — LLM-driven mutation testing для pytest

CLI (pip install mutagen-cli) подсаживает в изменённый код правдоподобные баги — off-by-one, забытую инвалидацию кэша, перепутанные аргументы — и перезапускает тесты. Выживший мутант репортится как конкретный сценарий отказа. В отличие от классического mutation testing с фиксированным набором операторов, LLM читает функцию и её тесты и целится в слепые пятна. Инструмент работает diff-based, не меняет исходники и запускает только релевантные тесты.

Проверено не на фикстурах, а на пяти реальных проектах с уже зелёными тестами — три собственных и два независимых чужих:

Проект Скоуп Mutation score
semantic-plagiarism-detector core/ (33 функции) 21% (5/24 killed)
cityfeed rank/ / dedup/ 20% / 24%
CogniWeb_Agent agent/, infrastructure/, utils/ 12% / 5% / 4%
parse (чужой репозиторий, 1.8k★) parse/__init__.py 68% (17/25)
parsy (чужой репозиторий, 451★) src/parsy/__init__.py 75% (18/24)

Sub-25% на всех собственных проектах, прошедших ревью и зелёный CI, — и заметно выше на зрелых чужих библиотеках с годами контрибьюторов, что ожидаемо и служит sanity-check для самого инструмента. На встроенном бенчмарке с заранее задокументированными слепыми пятнами (python scripts/benchmark.py, офлайн и детерминированно) мутации поймали 18 из 22 известных пятен плюс 7 незадокументированных, при доле непригодных (non-viable) мутантов около 5%. Поддерживает OpenRouter и прямой Anthropic API как провайдеры, стоимость и число неприменимых мутантов — часть отчёта о каждом прогоне.


🏆 Хакатоны

«Ритмы продаж» — ВШЭ × Wildberries, Data-интенсив «ML в маркетплейсе» · январь 2026 · Топ-10 · участие в одиночку Анализ и прогнозирование динамики продаж: обработка больших массивов данных, выявление закономерностей в поведении покупателей.

Nuclear IT Hack 2026 — НИЯУ МИФИ · март 2026 · 1/8 финала Децентрализованный mesh-мессенджер, работающий полностью без интернета: узлы сами строят сеть и передают сообщения, файлы и голосовые звонки напрямую через TCP/UDP. С нуля за 30 часов, команда из трёх. Моя зона — весь сетевой слой: mesh-сеть на asyncio, flooding-маршрутизация с дедупликацией, передача файлов и голоса, шифрование хранилища Fernet.

SBER HACK SPRING 2026 · март 2026 · топ-6 Фича «Что поесть» для приложения «Худеем на здоровье»: GigaChat генерирует рацион под остаток КБЖУ пользователя с учётом уже съеденного, система находит ингредиенты в ближайших магазинах Купера и собирает корзину с редиректом на оплату. Моя зона — вся LLM-часть: GigaChatService, GigaChatClient, PromptBuilder (строгая обработка аллергий, consumed-meals tracking, валидация JSON с retry, сырой ответ модели сохраняется до парсинга).

RosEltorg — семантический подбор госзакупок · апрель 2026 Бэкенд сервиса, сопоставляющего товарную номенклатуру компании с лотами закупок. Всё считается локально, без внешних LLM API. Двухстадийный поиск: pgvector отбирает топ-20 кандидатов по ANN-индексу (ivfflat, vector(312)), rubert-tiny2 пересчитывает косинусную близость и оставляет топ-3 с объяснением reason. Плюс пред-фильтр по ОКПД2 с откатом на поиск без фильтра, когда кандидатов мало; батчевая векторизация всего корпуса лотов на старте; матчинг вынесен в run_in_executor, чтобы не блокировать event loop.


🧱 Инженерная база

До ML я год закрывал бэкенд — и это ровно та часть, без которой ML не доезжает до пользователя.

Проект Что это
🏰 Fortress API FastAPI-сервис с полной наблюдаемостью: слои API → Service → Repository, PostgreSQL + Redis, OpenTelemetry + Jaeger, Prometheus + Grafana, structlog, mypy strict в CI. Весь стек — docker compose up
🤖 CogniWeb Agent Автономный веб-агент на ReAct: 11 инструментов, детекция зацикливаний, снимки состояния при сбоях, работа в рамках 16k контекста free-tier модели. Отдельный SELF_REVIEW — где и почему приняты компромиссы
🛡 FakeDetect Детектор контрафакта на маркетплейсах через vision-модели: парсинг WB / Ozon / Яндекс Маркет, батч-обработка, агрегация вердиктов нескольких моделей
AI Summary Суммаризация YouTube-видео и веб-страниц через Gemini: Celery + Redis, запрос отдаёт task_id мгновенно, тяжёлое уходит в фон; фронт на React + Vite
🌳 SkilLet Фуллстек-платформа обучения по skill-деревьям: Next.js 15 / React 19 / TypeScript strict, Prisma + PostgreSQL, NextAuth (GitHub OAuth), ReactFlow, Feature-Sliced Design
🕸 Web Data Extraction Асинхронный ETL-сервис на asyncio + Playwright: валидация данных перед загрузкой, отчёты Allure, изоляция среды в Docker
🎬 MovieScore Aggregator Telegram-бот на aiogram 3: сводит IMDb и Кинопоиск во взвешенный балл и подсвечивает «спорный контент», когда оценки расходятся больше чем на 1.5

🛠 Стек

ML / NLP

калибровка порогов ablation bootstrap-CI failure analysis HDBSCAN

LLM

prompt engineering многостадийные агентные пайплайны ReAct верификация фактов контроль стоимости прогона

Backend

Infra

Ещё


✅ Как я работаю

  • Число важнее демо. У каждого ML-компонента есть бейзлайн, ablation и доверительный интервал. Если выигрыш лежит внутри шума — я так и пишу, а не выношу его в заголовок.
  • Ошибки разбираю письменно. В ML-проектах есть failure analysis: кейс, причина, что сделано, что осталось. Это быстрее возвращает к работе, чем память.
  • Docker-first. Основные проекты поднимаются одной командой — без «у меня локально работало».

📫 Контакты

Telegram: @NeIlyat9 · Email: afrom205@gmail.com

Если у вас есть задача — напишите. Разберёмся.

Pinned Loading

  1. mutagen-cli mutagen-cli Public

    Your tests are green. Here's what they don't catch — LLM-generated mutation testing for pytest suites

    Python 1

  2. cityfeed cityfeed Public

    End-to-end ML system for a personalized city news feed: dedup, clustering, learning-to-rank, LLM summarization — each component has a baseline, reproducible eval, error analysis

    Python

  3. semantic-plagiarism-detector semantic-plagiarism-detector Public

    Semantic plagiarism & paraphrase detection: two-stage bi-encoder → cross-encoder pipeline with calibrated thresholds (PAWS + custom corpus), per-fragment verdicts, PDF reports

    Python

  4. CogniWeb_Agent CogniWeb_Agent Public

    🤖 Autonomous AI Web Agent powered by ReAct logic. Uses Playwright & LLMs to navigate websites, analyze DOM, and extract data without hardcoded selectors.

    Python 1

  5. Fortress-api Fortress-api Public

    Production-grade FastAPI service template with full observability: layered architecture, PostgreSQL + Redis, OpenTelemetry/Jaeger, Prometheus/Grafana, strict mypy in CI

    Python 1

  6. RosEltorg RosEltorg Public

    Semantic matching of company product nomenclature to government procurement lots: two-stage search with pgvector ANN + rubert-tiny2 reranking, fully local — no external LLM APIs

    Python 2


Back | FazBrowse Home | New Git URL