Блог им. empenoso

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

9.6К | ★9
48 комментариев
А как у вас с торговлей то? Успех то тоже такой же как и с программированием? Сколько на текущий момент годовых тогда интересно выбиваете в этом году? Это больше волнует общество трейдеров
avatar
VалиБакS, я не обсуждаю результаты торговли публично — просто потому что ничего не продаю: ни курсов, ни сигналов.
В статьях делюсь тем, что мне самому интересно — в первую очередь, опытом автоматизации, анализа данных и подходом к системности.
Публичного портфеля у меня нет и не вижу в этом смысла — пишу не ради демонстрации доходности, а ради обмена опытом и идеями.
avatar
Михаил Шардин, ну это то как и интересно, удается ли программисту зарабатывать на трейдинге. Не хотите отвечать ваше право. 
avatar
VалиБакS, есть же на сайте ученый А Г. За год -20% сделал. Этот скорее всего тоже, иначе зачем эти конфы и выступления
avatar
VалиБакS, убытки видимо одни)
avatar
Михаил Шардин, просто скажи PnL
avatar
Привет. Не знаю, было ли целью запустить именно локально, но есть такая штука как google colab. По сути это бесплатный сервис, который выделяет тебе ГПУ и можешь пробовать разные модельки там. Там уже предустановлен пайторч для ГПУ, так что должно работать из коробки)
А так — молодец)
avatar
Make_hard, именно локально чтобы нагружать видеокарту.


avatar
Make_hard, спасибо
avatar
Сбор похвальных отзывов душу греет, но имеет ли смысл? Можете ли Вы автоматически  вычленить содержательные отзывы, те, которые пригодятся для Вашей торговли.
avatar
SergeyJu, как это связано?
Отзывы тоже для вполне практической цели были — в сети начали выходить заказные статьи с негативными «отзывами» обо мне. Их цель проста — использовать мое имя как приманку, а затем перенаправить читателей на сомнительные криптовалютные проекты smart-lab.ru/blog/1206745.php

Мне надо было для SEO собрать на сайт-визитку что пишут читатели — вручную не вариант, но этими скриптами всё сделал.
avatar
Михаил Шардин, да уж. 
avatar
 
AI — не удел облачных гигантов
Вообще открою тебе тайну. В сфере it можно потратить кучу времени, написать 100500 програмулек, придумать мудреных алгоритмов, запустить аи и провести обработку данных. Вопрос лишь один: ЗАЧЕМ? Чтоб написать статью и получить лайки? Ну так и до психушки недолго. 
Все кто зантмается аи сейчас — это чтоб ПРОДАТЬ свои наработки тем кто хочет это купить. 
Как я вижу целью всего этого аи будет готовое решение, которое можно продать конечному покупателю на завод или в офис. Стоить оно будет недорого. 
По мне так тебе надо не трейдингом заниматься а идти работать на дядю. Дядя хотя бы направит твой труд в нужное русло а не в воздух
avatar
Вазелин, вам же билет дают на конференцию — вот давайте там и пообщаемся? ;)
avatar
Михаил Шардин, на кой х мне эта конфа?.. те кто давно торгуют знают, что чем проще система торговли тем она прибыльнее. Если непонятно в одной акции то будет понятно в другой. В этом есть плюс фонды в отличии от деревативов, товарные рынки подругому торгуются и тп. Всегда можно найти несколько акций, которые понятные. Времена в алго и высокочастотниках тавой, имхо. Но ты работай! Может че и найдешь дельного, а может нет))
avatar
Вазелин, могут пригласить на работу в хедж фонд с хорошей зарплатой.
avatar
Маркиз Лафайет, ну. Я и грю про дядю
avatar
Диалектика, как наука нам говорит о переходе количества в качество. Как долго осталось ждать появления в продаже «аппаратно-программных комплексов торговли на новостях»? Очень интересно!
avatar
Строгий бык, тестировать надо
avatar
Дело не в «передовой архитектуре».  Существует лишь несколько рабочих конфигураций версия Linux+версия Python+версия CUDA+версия PyTorch и для корректной работы без ошибок их нужно знать. Попытка их найти при помощи LLM чаще всего заканчивается неудачей т.к. модель часто галлюцинируя предлагает скачать нерабочие или вообще несуществующие комбинации. Когда юзеру это надоедает, то модель обычно просто предлагает ему использовать только CPU. Это стандартная ловушка для начинающих вайб-кодеров. Ну и в посте, начиная со слов «Этот опыт наглядно показал» 100% текста созданного ИИ, лишь заменены местоимения. Как-то выглядит не очень…
avatar

AP, тема локального ИИ для меня нова, поэтому и прошёл путь сам — с ошибками, зато руками.

GPU в итоге и не понадобился: CPU справился за полторы минуты, задача решена.

А какие, кстати, версии Linux+версия Python+версия CUDA+версия PyTorch считаете рабочими? 

avatar
AP, 

FROM pytorch/pytorch:2.7.0-cuda12.8-cudnn9-devel

для RTX 5060Ti 16GB

 

avatar
Чел сначала думал что он трейлер, теперь думает что он очень умный программист.
avatar
neu, cейчас просто изучаю новое и делюсь опытом — чисто практические эксперименты.
avatar
Обычно вас читать интересно, но тут прямо глаза режет. Почему у вас старая 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 годов. Короче — незачет.
avatar
BeyG, спасибо за отзыв по существу
avatar
BeyG, FROM pytorch/pytorch:2.7.0-cuda12.8-cudnn9-devel

для RTX 5060Ti 16GB



avatar
ничо се. подпишусь)
avatar
BiggusDickus, 🙏
avatar
Вы напоминаете меня формата 2015 года ) Начал искать работу в трейдинге и стал писать статьи технического плана. Правда, то что работу ищу, не скрывал и писал активно.

И комменты в статьях были примерно точно такие же, насколько помню
avatar
Андрей К, и чем всё закончилось? 
avatar
Андрей К, и  чем сейчас продолжается?
avatar
Михаил Шардин, если цель — получить место где то, главное не скрывать ) все равно, кто то сидит втихоря почитывает, выводы делает

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

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

с тех пор, получается уже 10 лет, я не частный трейдер, а наемный ) За эти годы получилось прийти к партнерским условиям. В принципе за этим и идут программисты в трейдинг — за опционом доли в будущей прибыли )
avatar
Андрей К, спасибо на добром слове и напутствии
avatar
Прям чувствуется, как Deepseek код генерил.
avatar
Turbo Pascal, каким местом чуете?
avatar
Создалось ощущение, что статья написана глубоким пенсионером в жанре воспоминаний о легендарном прошлом. Борьба с кудой, парсинг, джейсоны, использование древнего руберта...
Все это имело бы какой-то смысл сейчас, если бы Вы использовали «нечеловеческие» данные, т.е. данные, которых не видели нынешние LLM. Но Вы то используете «человеческие» комментарии.
avatar
Synthetic, у меня была конкретная цель, написал скрипты, чтобы автоматически собирать и анализировать реальные отзывы о своих публикациях.

Повод был: в сети начали появляться заказные тексты с негативными «отзывами» обо мне. Их цель проста — использовать имя как приманку, а затем перенаправить читателей на сомнительные криптовалютные проекты — типа черное SEO и в них не только моё имя, но и множество других. Бизнес видимо так устроен.

В итоге получился вполне рабочий инструмент для мониторинга репутации и анализа тональности — миссия выполнена.

А то что выглядит как костыль — свою работу выполняет.
avatar
Михаил Шардин, 
А что мешало эту конкретную цель с помощью современной LLM достичь?
Без скриптов, но с агентами (к примеру).
avatar
Synthetic, не уверен что агент справился бы, достаточно большой объем
avatar
Finbert, котруя как я полагаю, автор юзал уже достаточно старая модель. У меня она стоит на 3090 и читает новости уже года 3. Как рекомендательную систему для торговли яб не советовал. Если уж и жить на острие прогресса ИИ то думать стоит в сторону RAG систем.
avatar
Konstantin Ignatev, 
Автор не новости читает, а комментарии на свои публикации. Finbert там не нужен.
avatar
Принципиальной разницы не вижу, для модели это токены в виде набора цифр, еслибы она обладала сознанием как мы, то возможно это имело разницу. Finbert это BERT дообученная Блумбергом.
avatar
Но на деле именно GPU стал главной точкой отказа — пришлось всё считать на CPU.

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

Именно по теме статьи у меня была очень конкретная задача провести анализ 12 000 комментариев к в моим статьям. При помощи этой пусть и старой модели 2022 года я смог задачу выполнить
avatar

Читайте на SMART-LAB:
Фото
DXY у ключевой поддержки: шорт-сквиз или новый этап распродажи?
Индекс доллара DXY плавно дрейфует в область месячного минимума в районе 98,50. Однако ослабление доллара на FX неравномерно: EURUSD стоит около...
Фото
🗻 Покорена новая вершина
Открытая позиция в сделках с ЦК на денежном рынке MOEX превысила 10 трлн ₽ , что на 26% больше, чем в начале года. Какие еще показатели...
Фото
ИИС — ваш личный инвестиционный проект
Долгосрочные инвестиции — один из самых доступных и стабильных способов получения дохода на бирже. О преимуществах вложений на долгосрок...

теги блога Михаил Шардин

....все тэги



UPDONW
Новый дизайн