Михаил Шардин
Михаил Шардин личный блог
07 октября 2025, 04:29

Как я строил “AI для трейдинга”, а нашёл способ собирать похвалу

Меня иногда упрекают, что я пишу не про трейдинг, а про какие‑то «технические игрушки». Но на самом деле все эти проекты — из одной экосистемы. Ведь алгоритмический трейдинг начинается не с покупки кнопки «BUY», а с умений собирать, очищать и анализировать данные.Как я строил “AI для трейдинга”, а нашёл способ собирать похвалу

Эта история как раз про это — про парсинг, обработку и анализ больших объёмов текстов локальной языковой моделью. Просто вместо новостей или отчётов компаний я анализировал комментарии к своим публикациям. Подход тот же самый, что и в работе с финансовыми новостями: собираем данные, структурируем, прогоняем через модель, выделяем позитив и негатив. В трейдинге это может стать элементом новостного сканера или инструмента для оценки тональности рынка. А в моём случае — это просто удобный способ собрать добрые слова, за которые я всем благодарен.

Как я строил “AI для трейдинга”, а нашёл способ собирать похвалуLynxReport: учёт публикаций 📚 [Node.js] ✅

Недавно передо мной встала задача собрать все положительные комментарии к моим статьям. Веду их учёт в таблице, и там уже вполне серьёзные цифры — больше 300 строк и свыше 10 тысяч комментариев. Основные площадки, где я публикуюсь, выглядят так:

    • Хабр — 4 497 комментариев

    • Т‑Ж — 4 186

    • Смартлаб — 1 998

    • Пикабу — 726

Вручную искать в этом массиве текста слова поддержки — долго и нудно, а главное — совершенно не масштабируется. Так родилась идея: поручить всё локальной нейросети для анализа тональности. Заодно я хотел на практике разобраться с моделями на основе BERT.

Для этой цели у меня был, как мне казалось, идеальный инструмент: компьютер с Ubuntu 24 LTS, Docker и мощной NVIDIA GeForce RTX 5060 Ti на 16 ГБ. Казалось, что с RTX 5060 Ti на 16 ГБ анализ пройдёт молниеносно. Но на деле именно GPU стал главной точкой отказа — пришлось всё считать на CPU.

Код на GitHub.


Что делает мой скрипт на GitHubКак я строил “AI для трейдинга”, а нашёл способ собирать похвалуhttps://github.com/empenoso/comment-sentiment-analyzer/

Прежде чем бросаться в бой с CUDA, нужно было подготовить данные. Комментарии разбросаны по разным сайтам без возможности экспорта, поэтому я написал несколько парсеров, которые собирают тексты в единый JSON‑формат — один файл на статью.

Как я строил “AI для трейдинга”, а нашёл способ собирать похвалуJSON Хабр


Парсеры я оставил приватными, так как они заточены под мои задачи, но ядро системы выложил на GitHub.

Скрипт sentiment_analyzer.py берёт JSON‑файлы, подготовленные на первом этапе, и пропускает текст каждого комментария через предварительно обученную нейросетевую модель cointegrated/rubert‑tiny‑sentiment‑balanced. Модель определяет эмоциональную окраску текста — позитивную, негативную или нейтральную.

Скрипт задуман как универсальный инструмент, поэтому основные параметры вынесены в config.env.

    • MODEL_NAME: можно указать любую другую модель с Hugging Face.

    • DEVICE: позволяет выбрать, на чём производить вычисления — на cpu или cuda (GPU).

    • POSITIVE_THRESHOLD: порог уверенности модели, чтобы отнести комментарий к позитивным.

    • EXCLUDE_AUTHORS: список авторов, чьи комментарии нужно игнорировать (например, мои собственные ответы).

    • MIN_COMMENT_LENGTH: отсеивает слишком короткие и неинформативные комментарии.



Оркестрация с помощью Docker и Shell

Для удобства запуска и настройки я написал два shell-скрипта:

    1. sentiment_analysis_setup.sh: этот скрипт — для первоначальной настройки. Он проверяет систему, устанавливает Docker и NVIDIA Container Toolkit, создаёт необходимые папки и конфигурационный файл. Запустив его один раз, вы подготавливаете окружение для дальнейшей работы.

    1. run_analysis.sh: простой скрипт для запуска анализа. Он читает конфигурацию из config.env и запускает Docker-контейнер с нужными параметрами.

На практике это сводится к трём шагам: подготовка системы через setup-скрипт, сбор комментариев парсерами и запуск анализа через run_analysis.sh.

Как я строил “AI для трейдинга”, а нашёл способ собирать похвалу

Все найденные позитивные комментарии скрипт аккуратно складывает в текстовые файлы.


Успех на CPU и урок о масштабировании

После череды падений с CUDA и финальной ошибки «No kernel image» пришлось смириться: GPU в проекте не будет. Я открыл config.env, поменял DEVICE=cuda на DEVICE=cpu и нажал save.

Как я строил “AI для трейдинга”, а нашёл способ собирать похвалу


RuBERT‑tiny справился за полторы минуты — все 10 000 комментариев были разобраны. Вся похвала и поддержка оказались в аккуратных текстовых файлах.

На финишной прямой я переписал логику сохранения. Вместо сотен мелких JSON теперь формируется один аккуратный текстовый файл для каждой площадки. Структура вывода проста:

Автор: Андрей Мищенко
Дата: 2025-06-06T11:24:20.551316+03:00 
Текст: Полезные формулы, спасибо!
Ссылка: t‑j.ru/guide/excel‑kotirovki/#c2857460

Автор: Whalerman
Дата: 2025-09-09T07:40:00.000Z
Текст: Михаил, спасибо! Хорошие и полезные посты!
Ссылка: smart‑lab.ru/blog/1202442.php#comment18571129

Автор: DashBerlin
Дата: 2025-08-23T00:18:43.000Z
Текст: Впервые решил заглянуть в подобный обзор, порадовала позиция количество закладок, интересено, после эти публикации читаются. Я подписан на автора, он пачками сохраняет статьи в закладки, какой процент он потом перечитывает из этого. Спасибо за обзор ))
Ссылка: habr.com/ru/articles/933806/comments/#comment_28742672


Каждый комментарий — отдельный блок, удобно читать и анализировать.

Я ожидал, что GPU будет обрабатывать тысячи комментариев в секунду, но реальность оказалась прагматичнее — CPU выдал скорость около 110 комментариев в секунду.

Этот опыт наглядно показал: локальный AI на процессоре — отличное решение для задач исследователя‑одиночки. Но если бы у меня был миллиард строк, этот подход бы провалился. Это инструмент для прототипирования и персональных проектов, а не для Big Data.


Заключение: главный урок для AI-энтузиастов

Эта история с видеокартой преподала мне два важных урока.

Во‑первых, самое новое оборудование — не всегда самое лучшее. Моя RTX 5060 Ti с передовой архитектурой Blackwell оказалась настолько свежей, что стабильный PyTorch просто не умел с ней работать. В погоне за технологиями легко обогнать экосистему и остаться с мощным, но бесполезным инструментом (я знаю про обходной путь). Иногда проверенная карта предыдущего поколения — более разумный выбор.

Во‑вторых, Docker — это не просто среда для запуска, а настоящая страховка. Он позволил мне безболезненно переключаться между конфигурациями и быстро откатиться на CPU, когда GPU подвёл. Именно изоляция в контейнере спасла проект, позволив проиграть «битву за CUDA», но всё равно выиграть войну.

В итоге, мой проект заработал не благодаря дорогой видеокарте, а вопреки ей. Процессор решил задачу быстрее, чем я успел допить чай. Это доказывает, что локальный AI — не удел облачных гигантов. Он вполне доступен на обычных ПК, если подходить к делу прагматично и помнить, что иногда самое простое решение — самое верное.

Автор:
Михаил Шардин
🔗 Моя онлайн-визитка
📢 Telegram «Умный Дом Инвестора»

7 октября 2025

Кстати, в этом месяце я снова прилетаю в Москву — 25 октября на конференцию Smart‑Lab Conf 2025. Мое выступление состоится в зале № 7 («Спекуляции») в 12:00. Буду рад видеть всех, кто интересуется автоматизацией и новыми подходами к работе с финансовыми данными. До встречи!

44 Комментария
  • VалиБакS
    07 октября 2025, 06:45
    А как у вас с торговлей то? Успех то тоже такой же как и с программированием? Сколько на текущий момент годовых тогда интересно выбиваете в этом году? Это больше волнует общество трейдеров
  • Make_hard
    07 октября 2025, 07:32
    Привет. Не знаю, было ли целью запустить именно локально, но есть такая штука как google colab. По сути это бесплатный сервис, который выделяет тебе ГПУ и можешь пробовать разные модельки там. Там уже предустановлен пайторч для ГПУ, так что должно работать из коробки)
    А так — молодец)
  • SergeyJu
    07 октября 2025, 08:04
    Сбор похвальных отзывов душу греет, но имеет ли смысл? Можете ли Вы автоматически  вычленить содержательные отзывы, те, которые пригодятся для Вашей торговли.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн