Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Играйте в Длинные и Короткие нарды онлайн! Наслаждайтесь классической настольной игрой с простыми правилами и захватывающей стратегией. Бросайте кубики, перемещайте шашки и обыгрывайте своего соперника. Играйте прямо сейчас бесплатно!

Нарды Длинные и Короткие онлайн

Настольные, Для двоих, Пошаговая

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
3
user11060134

Python 3.14 новая версия. Стоит ли переходить?⁠⁠

2 месяца назад

Что нового в Python 3.14 — почему стоит обновляться, на что обратить внимание, и какие выгоды вы получите.

Что нового в Python 3.14 и почему стоит перейти

Python 3.14 вышел 7 октября 2025 года. Это новый стабильный релиз, который содержит как изменения в самом языке, так и улучшения в реализации, стандартной библиотеке, отладке и взаимодействии с многопоточностью.

Ниже - обзор ключевых нововведений, их смысла, применимости и возможных подводных камней. Если не хотите читать много букаф, сюда а залил короткий видео обзор новых фич языка.

Поехали!

Python 3.14 новая версия. Стоит ли переходить?

Основные нововведения (Release highlights)

  • Отложенная (ленивая) оценка аннотаций — теперь аннотации не вычисляются сразу, что уменьшает накладные расходы.

  • Поддержка нескольких интерпретаторов в рамках одного процесса через новый модуль.

  • Новый синтаксис шаблонных строк (t-strings), который даёт больше контроля над статической и интерполированной частью.

  • Более информативные сообщения об ошибках (например, подсказки для опечаток в ключевых словах).

  • Поддержка формата сжатия Zstandard в стандартной библиотеке.

  • Улучшенные возможности для отладки и профилирования, в том числе подключение к живому процессу без остановки.

  • Улучшения в asyncio — команды для визуализации и диагностики задач, стеков ожидания и зависимостей.

  • Уменьшение пауз сборщика мусора (gc) через инкрементальный сбор.

  • Подсветка синтаксиса и автодополнение модулей в интерактивном режиме (REPL) по умолчанию.

Подробности и примеры

Ленивые аннотации — deferred evaluation of annotations

Раньше аннотации (для типов, документации, подсказок) могли вызывать вычисления прямо при определении функции или класса. Теперь они хранятся в виде «ленивых» структур и вычисляются по надобности. Это снижает накладные расходы на загрузку кода, особенно если аннотации сложные или содержат много forward-ссылок.

Есть модуль annotationlib, который позволяет исследовать аннотации программно и выбирать формат их получения — строки, объекты или отложенные ссылки.

Когда это особенно помогает:

  • большие фреймворки, генерация кода, ORM, библиотеки с множеством аннотаций;

  • ускорение импорта при старте приложений;

  • уменьшение накладных расходов при работе с типами.

Что проверить при миграции:

  • код, использующий __annotations__ напрямую, может требовать адаптации;

  • убедитесь, что сторонние библиотеки, работающие с аннотациями, поддерживают новый формат.

Несколько интерпретаторов (subinterpreters)

Теперь в Python можно запускать несколько независимых интерпретаторов внутри одного процесса (модуль concurrent.interpreters).

Преимущества:

  • изоляция между интерпретаторами (отдельная память, отдельный GIL);

  • параллелизм на многоядерных системах;

  • меньше накладных расходов, чем при использовании multiprocessing.

Ограничения:

  • не все C-расширения поддерживают мультиинтерпретацию;

  • коммуникация между интерпретаторами требует явных каналов (очереди, сообщения).

Это даёт реальную возможность распараллеливания CPU-задач без запуска отдельных процессов.

Template string literals (t-strings)

Новое синтаксическое средство — префикс t перед строкой, аналогично f'...'.
Результат — объект Template, который хранит текст и вставки по отдельности.

variety = 'Stilton'
template = t'Try some {variety} cheese!'

Такое можно использовать, чтобы:

  • реализовывать безопасное форматирование (экранирование, фильтрацию);

  • строить DSL поверх строк, шаблоны для HTML, SQL, логи и др.;

  • анализировать содержимое до его “сборки” в итоговую строку;

  • изменять поведение вставок (например, оборачивать, модифицировать, валидировать).

Это даёт больше гибкости, чем просто f-строки, особенно там, где важен контроль над вставляемыми значениями и форматированием.


Поддержка Zstandard в стандартной библиотеке (compression.zstd)

Формат сжатия Zstandard (zstd) становится родным: модуль compression.zstd (и другие, через пакет compression) позволяют сжимать и распаковывать данные в этом формате. 

Интеграция с tarfile, zipfile, shutil — архивы и копирование теперь могут использовать Zstd. Python documentation

Преимущества:

  • Zstd часто даёт лучшее соотношение: скорость и степень сжатия;

  • единая библиотека, меньше зависимостей, всё «в коробке»;

  • использование новых форматов становится проще; отсутствие необходимости ручного подключения внешних библиотек, если только требуется особая конфигурация.

Если вы работаете с большими данными, архивами, логами, бэкапами, распределёнными системами — это может значительно ускорить работу и сэкономить место.


Улучшенные сообщения об ошибках

Python 3.14 пытается быть полезнее, когда вы делаете опечатки:

  • иногда подсказывает, что вы, возможно, имели в виду ключевое слово (например, whille → предложит while). Python documentation

  • выдаёт специальные сообщения, если elif следует за else неправильно. Python documentation

  • обращает внимание, что вы могли использовать pass, break, continue не там, где нужно, или отсутствует выражение после else. Python documentation

  • другие случаи: несовместимые префиксы строк, контекстные ошибки и др. Python documentation

Это ускоряет отладку и уменьшает время на поиск опечаток — особенно полезно новичкам или при быстром прототипировании.


Поддержка интроспекции asyncio задач

Теперь с помощью команд:

python -m asyncio ps PID python -m asyncio pstree PID

можно посмотреть, какие асинхронные задачи выполняются в процессе (по его PID), какими корутинами они снабжены, кто кого ожидает, какой стек. Python documentation

pstree показывает “дерево ожиданий”: визуальную структуру, кто ждёт кого. Это сильно упрощает диагностику “зависаний”, зацикленностей, путей, где приложение “мертвое” или заблокировано. Python documentation

Для тех, кто пишет асинхронный код — от веб-сервисов до ботов, до логики с массовыми ожиданиями — это мощный диагностический инструмент.


Инкрементальный сборщик мусора (gc)

Сборка циклических объектов теперь делается инкрементально. Значит, большие паузы при сборке мусора будут короче, особенно при больших объёмах выделенной памяти. Python documentation

Есть только две «поколения»: молодые и старые. По вызову gc.collect(1) теперь делается частичная (инкрементальная) сборка. Python documentation

Это особенно заметно на больших программах, где объём выделяемой памяти значителен, и периодические паузы от сборки мусора мешали плавности работы.


Улучшения REPL (интерактивного режима)

  • Подсветка синтаксиса (цветной вывод) включена по умолчанию, если окружение позволяет. Python documentation

  • Автодополнение импортов: если вы набираете import co и нажмёте Tab, вам предложат модули, начинающиеся на co. Python documentation

Это делает интерактивную работу с Python чуть приятнее, особенно для учебных, экспериментальных, исследовательских задач.


Другие мелкие, но полезные изменения

Python 3.14 включает множество улучшений во встроенных функциях, типах и поведении:

  • некоторые методы bytes.fromhex() и bytearray.fromhex() теперь принимают bytes-like объекты. Python documentation

  • добавлены методы float.from_number() и complex.from_number() для преобразования из чисел. Python documentation

  • map() получил опциональный флаг strict, чтобы проверять равенство длин итераторов (аналогично zip(strict=True)). Python documentation

  • NotImplemented больше нельзя использовать в булевом контексте — теперь это вызывает TypeError. Python documentation

  • триарный pow() (с тремя аргументами) теперь учитывает __rpow__() при необходимости. Python documentation

  • super объекты теперь копируемы и могут быть сериализованы (pickle). Python documentation

— и многое другое, включая усовершенствования многих модулей. Python documentation


Когда переходить на Python 3.14 — применение на практике

Стоит включить 3.14 в план обновлений, если:

  1. Вы пишете / поддерживаете код, где важна скорость загрузки, импортов, аннотаций, особенно в больших проектах.

  2. Вы активно используете асинхронность (asyncio) и хотите иметь лучшие средства диагностики.

  3. Ваша программа иногда “подвисает” из-за сборщика мусора — переход может сгладить паузы.

  4. Требуется сжатие данных, архивирование — Zstandard теперь доступен «из коробки».

  5. Вы хотите использовать более современные приёмы параллелизма внутри одного процесса (subinterpreters), особенно если CPU-нагруженные задачи важны.

  6. Вам важна «дружественность» ошибок — особенно если код пишут разные люди, новички, если важны стабильность, производительность, удобство.

Переход возможен без больших трудностей, если соблюдать осторожность:

  • протестировать код, особенно части, работающие с аннотациями или отражением (__annotations__, introspection).

  • проверить, что используемые сторонние пакеты совместимы с Python 3.14 (особенно если они активно работают с C-расширениями, GIL, многопоточностью).

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

  • следить за документацией: раздел Porting to Python 3.14 содержит рекомендации и возможные подводные места.


Вывод

Python 3.14 — это эволюционный, но заметный шаг вперёд. Он не ломает Python, но делает его сильнее, удобнее, быстрее и гибче.

Если вы — начинающий программист, обучающийся, это даёт лучшие «интерактивные» ощущения и меньше раздражающих опечаток.
Если вы — разработчик библиотек или приложений, то 3.14 открывает новые возможности: от параллелизма до лучшего контроля над форматированием, от сжатия данных до точной диагностики асинхронных процессов.

Я бы рекомендовал начать тестировать 3.14 уже, особенно на новых проектах или в разработке, и постепенно переводить существующие проекты, если всё совместимо.

Показать полностью 1
Искусственный интеллект Python Программирование Программист Telegram (ссылка) Длиннопост
0
2
yasha.doggy
yasha.doggy

В поиске самоучителя по машинному обучению⁠⁠

2 месяца назад

Всем привет. Знаю, что на Пикабу полно Дата сайнтистов и профессионалов машинного обучения.

А также тех, кто зашел в эту сферу или попробовал на волне разглагольствования, что IT спецы «рубят бабки».

Так вышло, что мне понадобилось этому научиться:
- создание моделей машинного обучения;
- воспроизведение по готовым скриптам;
- валидация и проведение тестов.

Все это можно нагуглить, что я и делаю.
Например, SQL научился просто по интернету и практике.

Но хотелось бы какой-то структурированный материал для начинающих, в котором будет:
- что установить на домашний компьютер для самообучения;
- учебный материал с практическими выборками для разработки простых моделей машинного обучения;
- Питон для начинающих и т.д.

Будьте добры, подкиньте в комментарии, куда лучше заглянуть и где получить эти знания.
Спасибо.

Показать полностью
Питон Python Машинное обучение Программирование Программист IT IT юмор Обучение Компьютер Нейронные сети Текст
10
12
hypo69
hypo69
2D/3D Лаборатория
Серия Создание аддонов для FreeCAD

Создание аддонов для FreeCAD. Урок 3. Создание 3D-объектов: параметрический бокс⁠⁠

2 месяца назад

Урок 3. Создание 3D-объектов: параметрический бокс

Цель урока: научиться создавать твёрдые тела (коробки, цилиндры) через Python, понять структуру документа FreeCAD и сделать аддон, который строит параметрическую деталь.


🧱 Часть 1. Как устроен документ в FreeCAD?

Прежде чем создавать объекты, важно понять иерархию данных в FreeCAD:

  • Document — это открытый файл (.FCStd). Всё, что вы создаёте, находится внутри документа.

  • Object — это параметрический объект: коробка, цилиндр, эскиз и т.д.

  • Shape — это геометрическое тело (B-Rep), которое можно визуализировать.

💡 Вы всегда работаете в контексте активного документа.

Как получить текущий документ?

doc = FreeCAD.ActiveDocument

doc = FreeCAD.ActiveDocument

Если документа нет — создайте новый:

doc = FreeCAD.newDocument("MyDesign")

doc = FreeCAD.newDocument("MyDesign")


📦 Часть 2. Создание коробки (Box) через Python

Самый простой 3D-объект в FreeCAD — это Part::Box.

Пример кода:

Что происходит здесь?

  1. doc.addObject("Part::Box", "MyBox")
    → создаёт новый объект типа Box с именем "MyBox"

  2. У объекта есть параметрические свойства: Length, Width, Height

  3. doc.recompute()
    → перестраивает модель (обязательно после изменения параметров!)

🔸 Все размеры — в миллиметрах (по умолчанию в FreeCAD).


🛠 Часть 3. Аддон: «Параметрический бокс»

Теперь создадим аддон, который создаёт коробку с заданными размерами.

Шаг 1. Создайте папку

.../Mod/ParamBoxAddon/

Шаг 2. Файл InitGui.py

Шаг 3. Файл param_box_workbench.py

код: https://github.com/hypo69/1001-python-ru/blob/master/ru/arti...


▶️ Шаг 4. Проверка работы

  1. Сохраните файлы

  2. Перезапустите FreeCAD

  3. Выберите рабочую среду «Parametric Box»

  4. Нажмите кнопку «Create Box»

✅ Должен появиться серый параллелепипед в 3D-окне.

Проверьте параметричность!

  1. В дереве проекта (Model) дважды кликните по MyParamBox

  2. В панели Data измените, например, Length на 50

  3. Нажмите Enter → модель автоматически обновится!

Это и есть параметрическое моделирование.


🔍 Часть 4. Другие базовые объекты

Вы можете создавать не только коробки. Вот несколько примеров:

Цилиндр

Сфера

Конус

💡 Все эти объекты находятся в модуле Part, который встроен в FreeCAD.


🧪 Практическое задание

  1. Измените аддон так, чтобы он создавал цилиндр, а не коробку.

  2. Сделайте так, чтобы при создании объект получал уникальное имя (например, Box_1, Box_2...), если объект с таким именем уже есть.

  3. Добавьте вторую команду — «Create Cylinder» — в ту же рабочую среду.

Подсказка для уникального имени:


💡 Советы по отладке

  • Всегда вызывайте doc.recompute() после изменения параметров.

  • Используйте FreeCAD.Console.PrintMessage("Текст\n") для отладки (сообщения появятся в Report View).

  • Проверяйте, существует ли документ перед работой с ним.


▶️ Что дальше?

В Уроке 4 мы:

  • Научимся создавать графический интерфейс (GUI) с полями ввода.

  • Сделаем окно, где пользователь вводит длину, ширину и высоту.

  • И по нажатию кнопки — строится бокс с этими параметрами.

Это уже будет настоящий инструмент, а не просто демонстрация.

  • Понравилось — ставь «+»
    Полезно? Подпишись.

    Так я буду знать, какой контент вам интересен.
    Вопросы можно задавать в комментариях 👇👇👇
    Удачи! 🚀


    Статья на github: https://github.com/hypo69/1001-python-ru/blob/master/ru/articles/FreeCAD/3.md

Показать полностью 9
[моё] Программирование Инструкция Python IT Freecad Аддон Длиннопост
0
7
hypo69
hypo69
2D/3D Лаборатория
Серия Создание аддонов для FreeCAD

Создание аддонов для FreeCAD. Урок 2. Ваш первый аддон: «Hello World»⁠⁠

2 месяца назад

Цель урока: создать простой аддон, который добавляет новую рабочую среду с кнопкой, и при нажатии показывает сообщение.


Дисклеймер. На pikabu нет редактора кода, поэтому код картинками, но в конце я дам ссылку на github, откуда можно будет скопировать блоки кода.


📁 Шаг 1. Подготовка папки аддона

Убедитесь, что у вас есть папка:

.../FreeCAD/Mod/HelloWorldAddon/

Если нет — создайте её.

💡 Имя папки важно: оно должно совпадать с именем модуля в коде.
Мы будем использовать HelloWorldAddon.

Внутри этой папки создайте два файла:

  • InitGui.py

  • hello_workbench.py

❗ Не используйте пробелы или кириллицу в именах файлов и папок!


📄 Шаг 2. Файл InitGui.py — точка входа

Этот файл автоматически запускается FreeCAD при старте, если лежит в папке аддона.

Откройте его в редакторе и вставьте следующий код:

🔍 Что делает этот код?

  1. Импортирует нашу рабочую среду из файла hello_workbench.py

  2. Регистрирует её в интерфейсе FreeCAD через FreeCADGui.addWorkbench()

⚠️ Обратите внимание:
from HelloWorldAddon.hello_workbench — здесь HelloWorldAddon — это имя папки, а hello_workbench — имя файла без расширения .py.


📄 Шаг 3. Файл hello_workbench.py — логика аддона

Теперь создадим саму рабочую среду.

Вставьте в hello_workbench.py следующий код:

к коду: https://github.com/hypo69/1001-python-ru/blob/master/ru/articles/FreeCAD/2.md#-шаг-3-файл-hello_workbenchpy--логика-аддона

🔍 Разбор кода по частям:

1. Команда (HelloWorldCommand)

  • GetResources() — описывает, как команда выглядит в интерфейсе

  • Activated() — что происходит при нажатии

  • IsActive() — когда кнопка активна (например, только если есть документ)

2. Рабочая среда (HelloWorldWorkbench)

  • Наследуется от FreeCADGui.Workbench

  • Метод Initialize() добавляет команды на панель и в меню

  • GetClassName() говорит FreeCAD: «это Python-рабочая среда»

3. Регистрация

  • FreeCADGui.addCommand() связывает имя "HelloWorldCommand" с классом


▶️ Шаг 4. Запуск и проверка

  1. Сохраните оба файла

  2. Закройте FreeCAD (если был открыт)

  3. Запустите FreeCAD заново

💡 FreeCAD загружает аддоны только при старте, поэтому перезапуск обязателен.

Как проверить, что аддон работает?

  1. В правом нижнем углу FreeCAD нажмите на название текущей рабочей среды (например, «Part Design»)

  2. В выпадающем списке найдите «Hello World» и выберите его

  3. На панели инструментов появится кнопка «Say Hello»

  4. Нажмите её → должно появиться окно с приветствием!

✅ Поздравляем! Вы создали свой первый аддон!


🔍 Шаг 5. Отладка (если что-то не работает)

Если аддон не появился или выдал ошибку:

  1. Откройте Report view:
    View → Panels → Report view

  2. Ищите красные сообщения об ошибках

Частые проблемы:

ПроблемаРешениеModuleNotFoundError: No module named 'HelloWorldAddon'Проверьте имя папки — оно должно быть точно таким же, как в from HelloWorldAddon...Кнопка есть, но ничего не происходитПроверьте, нет ли ошибок в Activated() (например, забыли import QtGui)Аддон не появляется в спискеУбедитесь, что файл называется именно InitGui.py (не initgui.py, не InitGUI.py)Ошибка синтаксисаПроверьте отступы (в Python они важны!) и скобки

💡 Совет: в Windows имена файлов не чувствительны к регистру, но в Linux/macOS — чувствительны. Лучше писать точно: InitGui.py.


🧪 Практическое задание

  1. Измените текст сообщения в Activated() на свой

  2. Попробуйте добавить вторую команду (например, «Say Goodbye»)

  3. Добавьте её в тот же список self.list и проверьте, что появляются две кнопки

Пример второй команды:

class GoodbyeCommand: def GetResources(self): return {"MenuText": "Say Goodbye", "ToolTip": "Bye!"} def Activated(self): QtGui.QMessageBox.information(None, "Bye", "До свидания!") def IsActive(self): return True # Не забудьте зарегистрировать! FreeCADGui.addCommand("GoodbyeCommand", GoodbyeCommand())

И обновите список:

self.list = ["HelloWorldCommand", "GoodbyeCommand"]


▶️ Что дальше?

В Уроке 3 мы:

  • Научимся создавать настоящие 3D-объекты (коробки, цилиндры)

  • Разберёмся, как устроена документная модель FreeCAD

  • Сделаем аддон, который строит параметрическую деталь


  • Понравилось — ставь «+»
    Полезно? Подпишись.

    Так я буду знать, какой контент вам интересен.
    Вопросы можно задавать в комментариях 👇👇👇
    Удачи! 🚀

Статья на github: https://github.com/hypo69/1001-python-ru/blob/master/ru/articles/FreeCAD/2.md#-шаг-3-файл-hello_workbenchpy--логика-аддона

Показать полностью 2
[моё] Программирование Гайд IT Python Freecad Аддон Длиннопост
1
8
oyalchan
oyalchan

Возьмите пожалуйста на удалённую работу в IT компанию(опыта работы в IT нет)⁠⁠

2 месяца назад

Готов работать за копейки в начале. Сам обучусь в процессе работы. В конце концов сейчас нейросеть упрощает написание кода и поможет с некоторыми проблемами. Мне очень нужны практические навыки в коммерческом IT..

Учусь в вузе в регионе, поэтому нужна дистанционная работа. Учеба не будет мешать работе(оформлю свободное посещение), если оформите меня официально.

Базовые знания Python, SQL, Linux

Пожалуйста..

[моё] Linux Python IT Поиск работы Программист Текст
14
9
empenoso
empenoso
Искусственный интеллект

AI на кухне: как я заставил нейросеть искать хорошие комментарии про себя⁠⁠

2 месяца назад

История о том, как я хотел провести анализ комментариев, а в итоге получил неожиданный, но полезный опыт с локальным AI.

<a href="https://pikabu.ru/story/ai_na_kukhne_kak_ya_zastavil_neyroset_iskat_khoroshie_kommentarii_pro_sebya_13259862?u=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1V0dgN2KI3HEA9sn-u1LM6JRKDGXtbMaLu_DjymuhWds%2Fedit%3Fgid%3D1489831589%23gid%3D1489831589&t=LynxReport%3A%20%D1%83%D1%87%D1%91%D1%82%20%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B9%20%26%23x1F4DA%3B%20%5BNode.js%5D%20%26%23x2705%3B&h=563bbad387dea87899e846db98c4f2bab354e40b" title="https://docs.google.com/spreadsheets/d/1V0dgN2KI3HEA9sn-u1LM6JRKDGXtbMaLu_DjymuhWds/edit?gid=1489831..." target="_blank" rel="nofollow noopener">LynxReport: учёт публикаций &#x1F4DA; [Node.js] &#x2705;</a>

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

<a href="https://pikabu.ru/story/ai_na_kukhne_kak_ya_zastavil_neyroset_iskat_khoroshie_kommentarii_pro_sebya_13259862?u=https%3A%2F%2Fgithub.com%2Fempenoso%2Fcomment-sentiment-analyzer%2F&t=https%3A%2F%2Fgithub.com%2Fempenoso%2Fcomment-sentiment-analyzer%2F&h=315739cc1a265b7f6073120760b62a594996984c" title="https://github.com/empenoso/comment-sentiment-analyzer/" target="_blank" rel="nofollow noopener">https://github.com/empenoso/comment-sentiment-analyzer/</a>

https://github.com/empenoso/comment-sentiment-analyzer/

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

JSON Хабр

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, создаёт необходимые папки и конфигурационный файл. Запустив его один раз, вы подготавливаете окружение для дальнейшей работы.

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

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

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

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

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

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

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

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

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

Автор: DashBerlin
Дата: 2025-08-23T00:18:43.000Z
Текст: Впервые решил заглянуть в подобный обзор, порадовала позиция количество закладок, интересено, после эти публикации читаются. Я подписан на автора, он пачками сохраняет статьи в закладки, какой процент он потом перечитывает из этого. Спасибо за обзор ))
Ссылка: https://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

Показать полностью 4
[моё] Python Технологии Искусственный интеллект Длиннопост
8
22
Pazitron
Pazitron
Arduino & Pi

Метеостанция для ПК из Arduino Nano и датчика BMP280⁠⁠

2 месяца назад

Программу и скетч, можно скачать отсюда:
https://drive.google.com/file/d/12H66B1w_UmTzyOzoE2pynan7Sxe...

Для сборки будет нужно следующее:
Arduino Nano Atmega168 или 328
Датчик BMP280
Программа Arduino IDE
В программе Arduino IDE, установить библиотеку Adafruit BMP280 Library.
Установить драйвера CH340 на ПК.

Нужная библиотека в Arduino IDE.

Нужная библиотека в Arduino IDE.

Arduino Nano и датчик температуры, атмосферного давления и высоты BMP280.

Arduino Nano и датчик температуры, атмосферного давления и высоты BMP280.

Подключение датчика к Arduino Nano по I2C, используем 4 вывода.

Подключение датчика к Arduino Nano по I2C, используем 4 вывода.

Подключение:
VCC на датчике, к пину 3.3V на Arduino
GND на датчике, к пину GND на Arduino
ACL на датчике, к пину A5 на Arduino
CDA на датчике, к пину A4 на Arduino

Подключите Arduino Nano с датчиком BMP280, запустите программу и выберете порт подключения и нажмите подключиться.

Подключите Arduino Nano с датчиком BMP280, запустите программу и выберете порт подключения и нажмите подключиться.

После запуска программы, происходит расчёт нормального атмосферного давления (Калибровка), в зависимости от определившейся высоты, так как для разных высот, своя норма атмосферного давления.

После запуска программы, происходит расчёт нормального атмосферного давления (Калибровка), в зависимости от определившейся высоты, так как для разных высот, своя норма атмосферного давления.

При изменении температуры, цвет цифр меняется и меняется надпись, на холодно, комфортно, жарко.

При изменении температуры, цвет цифр меняется и меняется надпись, на холодно, комфортно, жарко.

Сравнение показаний с механическими/аналоговыми приборами.

Сравнение показаний с механическими/аналоговыми приборами.

Датчик, довольно точный, но в то же время очень чувствительный, нахождение человека в непосредственной близости, будут менять показания температуры, к точности определения высоты есть вопросы, атмосферное давление измеряет точно.

Показать полностью 7
[моё] Arduino Электроника Программа Программное обеспечение Тестирование Python Скетч Метеостанция Измерения Длиннопост
8
0
ii.dominator
ii.dominator
Искусственный интеллект

Обновление AI Studio — куча приятных фич⁠⁠

2 месяца назад
Обновление AI Studio — куча приятных фич

На мой взгляд все еще лучшая нейросеть на данный момент ... P.S. работаю в маркетинге

Сохранение чатов теперь по умолчанию — Сохраняются на Гугл.Диск (весят не особо много, так как текст легкий по памяти) — Ранее требовалось отдельно сохранить каждый чат, иногда было неудобно, особенно, если браузер вылетит... то все потеряется 😡 — По ощущению, сохранение и удаление чатов стало в разы быстрее

Редактор картинок
— Наконец-то есть аналог редактору GPT!
— Пользоваться можно тут или выбрав Nano Banano (название wtf? ...)

Cоздание картинок
— Добавили возможность делать 2, 3 или 4 картинки в Imagen 4 (ранее доступна была лишь 1)
— Заметил, что пропала приставка preview, модель вышла в релиз

Навигация по чату
— Теперь есть навигация справа каждого текстового чата
— По ней можно быстро перемещаться по сообщениям
— Каждое сообщение и каждый ответ = отметка на строке навигации
— Сильно экономит время, когда есть длинные промты и длинные ответы

Стоимость чата ... любопытно 🤑
— Теперь текстовые чаты подсчитывают полученные и выданные токены
— Кроме этого показывается их стоимость
— Некоторые мои чаты стоят по 2-3$ (для Gemini 2.5 Pro разумеется)
— Ошалеть дорого! ...

👍 — Если любишь Gemini 2.5 Pro и не знаешь, как жить без этого ...

📌 Я буду ОЧЕНЬ благодарен, если вы оцените пост и посмотрите мой канал в ТГ (ссылка в профиле пикабу). Всем позитива и хорошего настроения, будьте добрее друг к другу!

Показать полностью 1
Чат-бот Гайд ChatGPT Программа Тренд Google Openai Сайт Дизайнер Нейронные сети Digital Фриланс Python Приложение Бот Программирование Длиннопост
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии