Михаил Шардин
Михаил Шардин личный блог
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
    А как у вас с торговлей то? Успех то тоже такой же как и с программированием? Сколько на текущий момент годовых тогда интересно выбиваете в этом году? Это больше волнует общество трейдеров
      • VалиБакS
        07 октября 2025, 07:59
        Михаил Шардин, ну это то как и интересно, удается ли программисту зарабатывать на трейдинге. Не хотите отвечать ваше право. 
        • Вазелин
          07 октября 2025, 08:19
          VалиБакS, есть же на сайте ученый А Г. За год -20% сделал. Этот скорее всего тоже, иначе зачем эти конфы и выступления
        • GYD
          07 октября 2025, 17:19
          VалиБакS, убытки видимо одни)
      • GYD
        07 октября 2025, 17:19
        Михаил Шардин, просто скажи PnL
  • Make_hard
    07 октября 2025, 07:32
    Привет. Не знаю, было ли целью запустить именно локально, но есть такая штука как google colab. По сути это бесплатный сервис, который выделяет тебе ГПУ и можешь пробовать разные модельки там. Там уже предустановлен пайторч для ГПУ, так что должно работать из коробки)
    А так — молодец)
  • SergeyJu
    07 октября 2025, 08:04
    Сбор похвальных отзывов душу греет, но имеет ли смысл? Можете ли Вы автоматически  вычленить содержательные отзывы, те, которые пригодятся для Вашей торговли.
      • SergeyJu
        07 октября 2025, 08:50
        Михаил Шардин, да уж. 
  • Вазелин
    07 октября 2025, 08:28
     
    AI — не удел облачных гигантов
    Вообще открою тебе тайну. В сфере it можно потратить кучу времени, написать 100500 програмулек, придумать мудреных алгоритмов, запустить аи и провести обработку данных. Вопрос лишь один: ЗАЧЕМ? Чтоб написать статью и получить лайки? Ну так и до психушки недолго. 
    Все кто зантмается аи сейчас — это чтоб ПРОДАТЬ свои наработки тем кто хочет это купить. 
    Как я вижу целью всего этого аи будет готовое решение, которое можно продать конечному покупателю на завод или в офис. Стоить оно будет недорого. 
    По мне так тебе надо не трейдингом заниматься а идти работать на дядю. Дядя хотя бы направит твой труд в нужное русло а не в воздух
      • Вазелин
        07 октября 2025, 08:45
        Михаил Шардин, на кой х мне эта конфа?.. те кто давно торгуют знают, что чем проще система торговли тем она прибыльнее. Если непонятно в одной акции то будет понятно в другой. В этом есть плюс фонды в отличии от деревативов, товарные рынки подругому торгуются и тп. Всегда можно найти несколько акций, которые понятные. Времена в алго и высокочастотниках тавой, имхо. Но ты работай! Может че и найдешь дельного, а может нет))
    • Маркиз Лафайет
      07 октября 2025, 10:53
      Вазелин, могут пригласить на работу в хедж фонд с хорошей зарплатой.
      • Вазелин
        07 октября 2025, 11:26
        Маркиз Лафайет, ну. Я и грю про дядю
  • Строгий бык
    07 октября 2025, 08:51
    Диалектика, как наука нам говорит о переходе количества в качество. Как долго осталось ждать появления в продаже «аппаратно-программных комплексов торговли на новостях»? Очень интересно!
  • AP
    07 октября 2025, 09:20
    Дело не в «передовой архитектуре».  Существует лишь несколько рабочих конфигураций версия Linux+версия Python+версия CUDA+версия PyTorch и для корректной работы без ошибок их нужно знать. Попытка их найти при помощи LLM чаще всего заканчивается неудачей т.к. модель часто галлюцинируя предлагает скачать нерабочие или вообще несуществующие комбинации. Когда юзеру это надоедает, то модель обычно просто предлагает ему использовать только CPU. Это стандартная ловушка для начинающих вайб-кодеров. Ну и в посте, начиная со слов «Этот опыт наглядно показал» 100% текста созданного ИИ, лишь заменены местоимения. Как-то выглядит не очень…
  • neu
    07 октября 2025, 09:36
    Чел сначала думал что он трейлер, теперь думает что он очень умный программист.
  • BeyG
    07 октября 2025, 11:13
    Обычно вас читать интересно, но тут прямо глаза режет. Почему у вас старая Cuda 12.4 на экране? Актуальная версия Pytorch 2.8 отлично работает с sm_120 и Blackwell с Cuda начиная с 12.8, а вообще поддержка была ещё с версии 2.7. Это первое. Второе — 5060 Ti это НЕ мощная видеокарта это нижне-средний сегмент, уступающий в нейросетевых задачах даже легендарной 3090 (ещё и памяти меньше). Архитектура Blackwell это хорошо, но например основные фишки типа fp8-fp4 актуальны только для инференса и т.п., а так да, Cuda ядра чуть пошустрее, тензорные тоже… Для нормальной работы с нейросетями, даже в домашних условиях нужна 3090ti-4090-5090, а лучше rtx pro 6000. Это второе. А третье — сентимент текстов гораздо круче анализируется LLMкой, качество будет гораздо выше и оценка точнее, тем более что rubert-tiny это крайне древняя вещь из 2018-2022 годов. Короче — незачет.
  • BiggusDickus
    07 октября 2025, 11:18
    ничо се. подпишусь)
  • Андрей К
    07 октября 2025, 12:09
    Вы напоминаете меня формата 2015 года ) Начал искать работу в трейдинге и стал писать статьи технического плана. Правда, то что работу ищу, не скрывал и писал активно.

    И комменты в статьях были примерно точно такие же, насколько помню
      • Андрей К
        07 октября 2025, 13:43
        Михаил Шардин, если цель — получить место где то, главное не скрывать ) все равно, кто то сидит втихоря почитывает, выводы делает

        мне после второй статьи пошли предложения поработать за еду.

        а после третьей статьи я уже летел в Мск на собеседования в три места. А в те годы найти работу, сидя в регионе, это не как сейчас. Все было не так и не просто.

        с тех пор, получается уже 10 лет, я не частный трейдер, а наемный ) За эти годы получилось прийти к партнерским условиям. В принципе за этим и идут программисты в трейдинг — за опционом доли в будущей прибыли )
  • Turbo Pascal
    07 октября 2025, 18:34
    Прям чувствуется, как Deepseek код генерил.
  • Synthetic
    07 октября 2025, 18:45
    Создалось ощущение, что статья написана глубоким пенсионером в жанре воспоминаний о легендарном прошлом. Борьба с кудой, парсинг, джейсоны, использование древнего руберта...
    Все это имело бы какой-то смысл сейчас, если бы Вы использовали «нечеловеческие» данные, т.е. данные, которых не видели нынешние LLM. Но Вы то используете «человеческие» комментарии.
      • Synthetic
        07 октября 2025, 20:45
        Михаил Шардин, 
        А что мешало эту конкретную цель с помощью современной LLM достичь?
        Без скриптов, но с агентами (к примеру).
  • Konstantin Ignatev
    08 октября 2025, 10:27
    Finbert, котруя как я полагаю, автор юзал уже достаточно старая модель. У меня она стоит на 3090 и читает новости уже года 3. Как рекомендательную систему для торговли яб не советовал. Если уж и жить на острие прогресса ИИ то думать стоит в сторону RAG систем.
    • Synthetic
      08 октября 2025, 10:37
      Konstantin Ignatev, 
      Автор не новости читает, а комментарии на свои публикации. Finbert там не нужен.
  • Konstantin Ignatev
    08 октября 2025, 10:58
    Принципиальной разницы не вижу, для модели это токены в виде набора цифр, еслибы она обладала сознанием как мы, то возможно это имело разницу. Finbert это BERT дообученная Блумбергом.
  • Среднеброд
    08 октября 2025, 13:29
    Но на деле именно GPU стал главной точкой отказа — пришлось всё считать на CPU.

    Смотрел на ноутбучные Ryzen AI (эти кристаллы затыкают за пояс любую видеокарту, в топовом Ryzen AI 395+ max можно выделить 112 Гб RAM), там тоже все печально. Хоть какой-то софт есть только для Windows, для Linux нет вообще ничего.
      • Среднеброд
        08 октября 2025, 17:20
        Михаил Шардин, не проще ли подключиться по API к Сберу или Яндексу? Гигачат вполне неплохо работает. ПК для работы с нейросетями это очень дорого, в 16 Гб ОЗУ видеокарты приличную нейросеть не запихнуть, а ставить несколько 4090/5090 это уже в районе миллиона цена получается. AMD пока не созрел, видимо ему объяснили компетентные товарищи из совета директоров, что зреть рано, рынок обвалится.

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

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