Михаил Шардин
Михаил Шардин личный блог
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. Буду рад видеть всех, кто интересуется автоматизацией и новыми подходами к работе с финансовыми данными. До встречи!

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

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

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