Марковское состояние ⛓️‍💥
19 subscribers
13 photos
14 links
Я ML инженер. Это мой блог

Мои проекты:
🤖 Антиспам TAB: t.me/tantispam
LANCETNIC: https://github.com/Lancet52/lancetnic
Download Telegram
Channel name was changed to «Марковское состояние ⛓️‍💥»
Всем привет!
Я инженер по машинному обучению. Это мой основной блог исследователя.
Здесь будут публиковаться отчёты о моих проектах, ссылки на них, а также интересные новости из мира машинного обучения и новых технологий.

Мои проекты:
🤖 Антиспам бот TAB.
ТГ канал, новости разработки: t.me/tantispam
Сам бот: @tantispam_bot

LANCETNIC
Библиотека Python, которая позволяет создавать, обучать и развертывать модели нейросетей для задач классификации, регрессии и пр.
Github: https://github.com/Lancet52/lancetnic
PyPi: https://pypi.org/project/lancetnic/

Список будет пополняться, следите за обновлениями!

Забудьте как сюда попали. Важно только текущее состояние
Марковское состояние ⛓️‍💥 pinned «Всем привет! Я инженер по машинному обучению. Это мой основной блог исследователя. Здесь будут публиковаться отчёты о моих проектах, ссылки на них, а также интересные новости из мира машинного обучения и новых технологий. Мои проекты: 🤖 Антиспам бот TAB.…»
LANCETNIC

Это библиотека для языка Python написанная мной для удобства обучения моделей к разным проектам. Основой послужил TAB. Нужен был удобный инструмент, чтобы каждый раз не писать простыню кода.
В основе лежит PyTorch и SKlearn.

На данный момент LANCETNIC (версия 3.0.1) позволяет решать два типа задач:
📊 Многоклассовая классификация: спам/не спам, тональность текста, категоризация
📈 Регрессия: прогноз стоимости, времени доставки и других числовых меток.

Библиотека позволяет организовать полный цикл ML: векторизация → обучение → визуализация метрик → инференс.
Она может работать с текстовыми, скалярными и гибридными данными.
В библиотеке представлены стандартные модели нейросетей под разные задачи.

На данный момент веду работы по выпуску версии 4.0.0. Будут добавлены новые механики и проведен полный рефакторинг кода. Естественно все подробно будет отражено в документации.

Быстрый старт:
# Опционально: PyTorch с CUDA для ускорения
pip install torch==2.5.1+cu124 --index-url https://download.pytorch.org/whl/cu124

# Установка библиотеки
pip install lancetnic


Впереди очень большие планы на этот проект.

🔗 Ссылки:
Github: https://github.com/Lancet52/lancetnic
PyPi: https://pypi.org/project/lancetnic/

Поддержите звездами в гитхабе! Ну и жду обратной связи.

Нейросети не помнят, что было вчера. А мы помним.
TAB - Telegram Antispam Bot

Из названия понятно что это антиспам бот для телеги. В его основе лежит нейронная сеть. Её принцип сводится к анализу всех сообщений чата/группы и дальнейшей категоризации на спам или не спам.
Собственно бот и дал толчок к написанию библиотеки LANCETNIC.

Основной проблемой для обучения модели был недостаток датасета. Я не нашел сходу актуальные данные. Пришлось лазить по чатам и вручную собирать спам сообщения. Так появилась первая обученная модель.
Сейчас датасет составляет порядка 27000 уникальных записей, это уже позволяет модели снизить ложные срабатывания до минимума.

Помимо оценки сообщения моделью есть еще проверка пользователя на нахождения в базе спамеров. Если модель распознала сообщение как спам и пользователь в базе спамеров, то бот принимает решение об автоматической блокировке и удалению сообщения. За год работы бота было только два случая когда алгоритм банил обычных пользователей чата. Их сообщение было ложно определено как спам и они почему то бились по базе как спамеры. Видимо в каком то чате их кинули в чс. Я еще думаю как сделать так, чтобы подобные случаи исключить.

🔗Ссылки;
ТГ канал проекта: https://t.me/tantispam
Сам бот: @tantispam_bot
Инструкция по добавлению бота в чат: https://t.me/tantispam/35

Как всегда жду обратной связи😃

Модель галлюцинирует. Я тоже, но хотя бы осознаю это
Одной из задач машинного обучения является задача классификации. Классификация делится на три вида: Бинарная (Binary), Многоклассовая (Multiclass) и Многометочная (Multilabel).
Разберемся на примере классификации изображений. На вход в модель будет подаваться изображение кота.

🔹 Бинарная классификация (Binary)
Вопрос: "Это кот?"
Ответ: Да / Нет
Два взаимно исключающих класса. Объект может принадлежать только к одному из них.

🔹 Многоклассовая классификация (Multiclass)
Вопрос: "Кто на фото?"
Ответ: Кот / Собака / Жираф / Птица
Выбирается только ОДИН класс из нескольких вариантов.

🔹 Многометочная классификация (Multilabel)
Вопрос: "Какие объекты есть на фото?"
Ответ: Кот?: Да / Гриб?: Нет / Собака?: Нет / Живое?: Да
Для каждой метки присваивается результат бинарного ответа. Объект может иметь несколько меток одновременно.

Возникает сразу вопрос: А разве бинарная не частный случай многоклассовой?
Так-то да, при N=2 они схожи. Но на практике их реализуют по-разному: разные функции потерь (BCELoss - бинарная, CELoss - многоклассовая), разные функции активации (Sigmoid - для бинарной, Softmax для многоклассовой), некоторые различия в метриках.

Вместо вывода:
• Binary/Multiclass - выбираем один вариант
• Multilabel - отмечаем всё что есть
Вроде тема простая, но в реальных задачах есть нюансы)

Нейросеть не спит. Она просто ждёт следующей эпохи
🔥 Обновление. Май 2026

Немного запоздалое обновление, обычно стараюсь сделать все к последнему дню месяца.

Итак.
1. Произведено очередное дообучение. Структура модели не изменилась. Датасет обновлен.

2. Приятно удивлен тем, что количество ложных срабатываний за май было минимальным.
Сравнить с началом года можно тут.

3. Получил обратную связь от нескольких человек на предмет игнорирования ботом части сообщений. Удивлён был тем что модель их пропускала как not spam. Включил в датасет. Но примеров сообщений немного. Задумался над синтетикой (синтетический набор данных сгенерированный нейронкой).

Итог.
Бот стабилен. Свою задачу выполняет. По всем вопросам пишите либо в личку: @lancet52, либо в комменты. Всегда рад обратной связи.

======================================
Я на Хабре | Марковское состояние (мой основной блог)
TAntispam Bot Блог разработчика
🔥 Обновление. Май 2026 Немного запоздалое обновление, обычно стараюсь сделать все к последнему дню месяца. Итак. 1. Произведено очередное дообучение. Структура модели не изменилась. Датасет обновлен. 2. Приятно удивлен тем, что количество ложных срабатываний…
Проблемы с памятью⚙️

При обучении модели антиспам бота на стационарном ПК впервые столкнулся с нехваткой оперативной памяти. Пришлось убить ряд процессов в системе, чтобы обучение прошло. Модель обучил. Но вот следующее "месячное обновление" под угрозой =)
Придётся отодвигать вправо срок выпуска новой версии LANCETNIC. Надо будет решать вопрос оптимизации обучения в части снижения расхода памяти.
В планах запустить сайт под проект. Но что то в этом месяце основной работы много, на все не хватает времени.

======================================
Я на Хабре | Марковское состояние | TAB
Марковское состояние ⛓️‍💥
В планах запустить сайт под проект
Сайту быть!
Закончу с обновленной версией LANCETNIC и будет релиз!
👍3
# Обновление LANCETNIC до версии v4.0.0

### ❗️ Важное замечание о совместимости

НЕ СОВМСТИМА С ПРЕДЫДУЩИМИ ВЕРСИЯМИ

---
Что нового в версии 4.0.0:
- Произведен рефакторинг кода
- Добавлены метрики precision и recall на валидации для задачи Классификации.
- Добавлена возможность выбрать устройство на котором будет происходить обучение: CUDA или CPU
- Добавлен информация в консоле об устройстве на котором происходит обучение
- Добавлен новый класс MultiTask

Что дает новый класс MultiTask:
- Одновременное решение задач классификации и регрессии на одном наборе данных.
- Совместное прогнозирование категории и числового значения
- Оптимизация нескольких целей одновременно
- Настраиваемое соотношение потерь для каждой задачи

---
## ➡️ Установка:
# Опционально: PyTorch с CUDA для ускорения
pip install torch==2.5.1+cu124 --index-url https://download.pytorch.org/whl/cu124

# Установка библиотеки
pip install lancetnic


🔗 Ссылки:
Github: https://github.com/Lancet52/lancetnic
PyPi: https://pypi.org/project/lancetnic/

Поддержите звездами в гитхабе!

===========
Я на Хабре | Марковское состояние | TAB
👍2
Марковское состояние ⛓️‍💥
Сайту быть! Закончу с обновленной версией LANCETNIC и будет релиз!
То о чем так долго мечтал - случилось! Представляю вашему вниманию сайт проекта LANCETNIC:

https://lancetnic.ru/
Конец июня. Я наконец доделал дашборд со статистикой работы бота с 01.06.2025.

https://tab.lancetnic.ru/

Теперь она доступна вам 24/7. Дашборд висит на моем недавно запущенном сайте библиотеки LANCETNIC. Именно на ней я обучал модель нейронной сети на которой работает бот.

Что касаемо дообучения модели на последних данных. Так как за месяц бота добавили с десяток групп, то объем данных существенно вырос. Выросли и потребности в мощностях дообучения. Пока этот вопрос решаю оптимизацией кода библиотеки. Так то дообучение на паузе) Отпишусь как обновиться модель
Марковское состояние ⛓️‍💥
# Обновление LANCETNIC до версии v4.0.0 ### ❗️ Важное замечание о совместимости НЕ СОВМСТИМА С ПРЕДЫДУЩИМИ ВЕРСИЯМИ --- Что нового в версии 4.0.0: - Произведен рефакторинг кода - Добавлены метрики precision и recall на валидации для задачи Классификации.…
Оптимизация потребления памяти в LANCETNIC

Недавно столкнулся с проблемой: моя библиотека lancetnic при обучении на больших текстовых датасетах просто перегружала оперативную память. На ноуте в 16 ГБ RAM модель не могла обучиться даже на 25 тыс. строк. Разбирался. Я начал разбираться и нашёл пару причин критического перерасхода памяти.

Все в пост не влезло, поэтому всё оформил в статью на Хабре:

https://habr.com/ru/articles/1055588/

Резюмируя
Теперь обучение на больших данных происходит и на относительно слабом железе. Это не все проблемы в моей библиотеке, но на одну проблему стало меньше.

Официальный сайт LANCETNIC: https://lancetnic.ru/
GitHub: https://github.com/Lancet52/lancetnic
===========
Я на Хабре | Марковское состояние | TAB