fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

IT Ready

IT Ready

کانال بسته

Качественные IT ресурсы, сайты, репозитории, курсы и инструменты для обучения. Информация ежедневно пополняется! Cотрудничество: @energy_c Реклама на бирже: https://telega.in/channels/+oQDlPHBPTg82MmU6/card РКН: https://clck.ru/3NJE9E

نمایش بیشتر

📈 تحلیل کانال تلگرام IT Ready

کانال IT Ready در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 17 220 مشترک است و جایگاه 7 556 را در دسته فناوری و برنامه‌ها و رتبه 37 989 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 17 220 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 14 نوامبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 88 و در ۲۴ ساعت گذشته برابر -10 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 8.73% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 4.63% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 1 503 بازدید دریافت می‌کند. در اولین روز معمولاً 797 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 19 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند github, api, habr, собеседование, хабре تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
“Качественные IT ресурсы, сайты, репозитории, курсы и инструменты для обучения. Информация ежедневно пополняется! Cотрудничество: @energy_c Реклама на бирже: https://telega.in/channels/+oQDlPHBPTg82MmU6/card РКН: https://clck.ru/3NJE9E”

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 15 نوامبر, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

17 220
مشترکین
-1024 ساعت
-807 روز
+8830 روز
جذب مشترکین
نوامبر '26
نوامبر '26
+37
در 7 کانال‌ها
اکتبر '26
+413
در 271 کانال‌ها
Get PRO
سپتامبر '26
+413
در 181 کانال‌ها
Get PRO
اوت '26
+817
در 298 کانال‌ها
Get PRO
ژوئیه '26
+72
در 38 کانال‌ها
Get PRO
ژوئن '26
+180
در 18 کانال‌ها
Get PRO
مه '26
+255
در 37 کانال‌ها
Get PRO
آوریل '26
+170
در 41 کانال‌ها
Get PRO
مارس '26
+343
در 70 کانال‌ها
Get PRO
فوریه '26
+566
در 32 کانال‌ها
Get PRO
ژانویه '26
+1 039
در 136 کانال‌ها
Get PRO
دسامبر '25
+466
در 121 کانال‌ها
Get PRO
نوامبر '25
+1 011
در 269 کانال‌ها
Get PRO
اکتبر '25
+481
در 100 کانال‌ها
Get PRO
سپتامبر '25
+591
در 114 کانال‌ها
Get PRO
اوت '25
+816
در 243 کانال‌ها
Get PRO
ژوئیه '25
+580
در 55 کانال‌ها
Get PRO
ژوئن '25
+613
در 86 کانال‌ها
Get PRO
مه '25
+1 471
در 340 کانال‌ها
Get PRO
آوریل '25
+29
در 2 کانال‌ها
Get PRO
مارس '25
+31
در 3 کانال‌ها
Get PRO
فوریه '25
+41
در 2 کانال‌ها
Get PRO
ژانویه '25
+52
در 5 کانال‌ها
Get PRO
دسامبر '24
+78
در 2 کانال‌ها
Get PRO
نوامبر '24
+158
در 8 کانال‌ها
Get PRO
اکتبر '24
+1 713
در 246 کانال‌ها
Get PRO
سپتامبر '24
+2 318
در 275 کانال‌ها
Get PRO
اوت '24
+3 402
در 53 کانال‌ها
Get PRO
ژوئیه '24
+7 717
در 151 کانال‌ها
Get PRO
ژوئن '240
در 2 کانال‌ها
Get PRO
مه '24
+1
در 0 کانال‌ها
Get PRO
آوریل '24
+17
در 1 کانال‌ها
Get PRO
مارس '24
+421
در 4 کانال‌ها
Get PRO
فوریه '24
+25
در 2 کانال‌ها
Get PRO
ژانویه '240
در 0 کانال‌ها
Get PRO
دسامبر '230
در 0 کانال‌ها
Get PRO
نوامبر '23
+226
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
15 نوامبر+2
14 نوامبر+2
13 نوامبر+1
12 نوامبر+2
11 نوامبر+1
10 نوامبر0
09 نوامبر0
08 نوامبر+1
07 نوامبر0
06 نوامبر+3
05 نوامبر+1
04 نوامبر+6
03 نوامبر+4
02 نوامبر+6
01 نوامبر+8
پست‌های کانال
👨‍💻 BrowserWire — API для автоматизации браузера с помощью AI-агентов! Сервис предоставляет программный интерфейс для взаимодействия AI-агентов с веб-сайтами. Позволяет интегрировать браузерные операции в приложения и автоматизированные процессы. Основная идея — детерминированное выполнение браузерных действий через API, чтобы сделать взаимодействие AI-агентов с веб-интерфейсами более предсказуемым и управляемым. 📌 Оставляю ссылочку: browserwire.io ➡️ IT Ready | #нейросеть

2
Диагностируем сетевые проблемы в Linux через tcpdump! Иногда приложение не может подключиться к удалённому серверу, хотя маршруты настроены правильно и firewall не показывает явных блокировок. В таких случаях полезно посмотреть, что происходит с пакетами на самом деле. Например, запрос завершается ошибкой: curl https://api.example.com Получаем Connection timed out, но непонятно, где именно возникает проблема. Для диагностики используем tcpdump, который позволяет перехватывать сетевые пакеты прямо на интерфейсах Linux. Посмотрим весь TCP-трафик на HTTPS-порту: sudo tcpdump -nn -i any 'tcp port 443' Параметр -nn отключает преобразование адресов и портов в имена, а -i any захватывает трафик со всех доступных интерфейсов. Если в выводе видим: IP 10.0.0.15.42310 > 203.0.113.10.443: Flags [S] Это SYN-пакет — попытка установить TCP-соединение. Если SYN повторяется, но ответа нет, стоит проверить маршрутизацию, сетевую фильтрацию и доступность удалённого сервера. Если приходит ответ: IP 203.0.113.10.443 > 10.0.0.15.42310: Flags [S.] Это SYN-ACK — сервер отвечает на запрос соединения. Если клиент затем отправляет ACK, TCP handshake завершён, и дальнейшую диагностику можно сосредоточить на TLS или приложении. На production удобнее фильтровать пакеты по конкретному адресу и порту. Например, при проверке соединения с PostgreSQL: sudo tcpdump -nn -i any 'host 10.0.0.5 and tcp port 5432' Так можно увидеть попытки подключения, повторные передачи и сбросы соединений, не анализируя посторонний трафик. Для просмотра содержимого незашифрованных HTTP-запросов: sudo tcpdump -A -s 0 -i any 'tcp port 80' Флаг -A отображает данные в ASCII, а -s 0 захватывает пакеты целиком. Для HTTPS содержимое HTTP-запросов останется зашифрованным. Если нужно сохранить трафик для последующего анализа в Wireshark: sudo tcpdump -i any 'tcp port 443' -c 100 -w capture.pcap Команда запишет первые 100 подходящих пакетов в файл, который можно изучить отдельно. 🔥 tcpdump помогает быстро определить, на каком этапе возникает сетевая проблема: при отправке пакетов, получении ответа или уже после установки TCP-соединения. Особенно полезно, когда логи приложения не дают никаких зацепок. ➡️ IT Ready | #практика
896
3
❤️ Интересная статья на Хабре: «Деньги быстрее железа: что на самом деле обвалило акции ИИ‑компаний»! В этой статье: • Узнает
❤️ Интересная статья на Хабре: «Деньги быстрее железа: что на самом деле обвалило акции ИИ‑компаний»! В этой статье: • Узнаете, почему акции Intel, Alphabet и Amazon резко упали, несмотря на сильные финансовые показатели и рост ИИ-направлений; • Разберётесь, как дефицит оперативной памяти, нехватка электроэнергии и задержки строительства дата-центров тормозят развитие ИИ; • Поймёте, почему миллиардные инвестиции в нейросети пока не обеспечивают ожидаемой отдачи и чем нынешняя ситуация отличается от пузыря доткомов. 🔊 Продолжай читать на Habr! ➡️ IT Ready | #статья
997
4
Bash позволяет повторно использовать команды из истории без их поиска и ручного ввода! Например, набрали длинную команду, но
Bash позволяет повторно использовать команды из истории без их поиска и ручного ввода! Например, набрали длинную команду, но забыли sudo и получили ошибку доступа. Вместо повторного ввода достаточно написать: apt install nginx sudo !! Bash подставит вместо !! предыдущую команду целиком и выполнит её с повышенными правами. А если нужно повторить команду, которую запускали несколько шагов назад, используйте относительный номер: !-2 Bash выполнит команду, находящуюся на две позиции раньше в истории текущей оболочки. Если помните только начало команды, можно найти последнее совпадение: !docker !grep Bash найдёт последнюю команду, начинающуюся с указанного текста, и сразу выполнит её. Команду можно сначала посмотреть, не выполняя. Для этого добавьте :p: !docker:p !grep:p Так Bash покажет найденную команду, чтобы вы могли проверить её перед запуском. 🔥 Подстановка команд из истории Bash экономит время при работе с длинными командами и избавляет от постоянного поиска уже введённых инструкций. Главное помнить, что без :p найденная команда выполняется сразу. ➡️ IT Ready | #совет
1 024
5
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место р
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место работы поскольку в среднем уже в первый месяц смогли заработать 250 000 рублей, а через 2-3 месяца с легкостью вышли на семизначные числа. Самое смешное, что лишь 8% россиян что-то слышали об этой профессии хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют Там объясняют, как имея телефон и доступ в интернет заработать свои первые $3000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка! Ссылка для входа — https://t.me/+lvVed8tyOGg5ZWNi
884
6
😎 Awesome RU — большая подборка интересных проектов с открытым исходным кодом от русскоязычных разработчиков! В репозитории
😎 Awesome RU — большая подборка интересных проектов с открытым исходным кодом от русскоязычных разработчиков! В репозитории собраны библиотеки, инструменты и готовые решения для веб-разработки, машинного обучения, работы с базами данных, серверной инфраструктурой и не только. Среди них есть как известные проекты вроде ClickHouse, CatBoost и Nginx, так и менее популярные, но полезные разработки. У каждого проекта есть краткое описание и ссылка на исходный код. Оставляю ссылочку: GitHub 📱 ➡️ IT Ready | #репозиторий
1 058
7
Как безопасно проверить конфигурацию nftables на удалённом линукс сервере? Ошибки в правилах nftables могут привести к блокировке SSH-доступа, особенно при использовании политики drop или изменении разрешённых портов. Перед применением новой конфигурации полезно проверить её и изучить действующие правила, не изменяя firewall. Практика рассчитана на линукс с установленным nftables. Все команды ниже не изменяют активные правила фильтрации. Сначала посмотрим текущий набор правил: sudo nft list ruleset Команда покажет таблицы, цепочки, правила и другие объекты nftables. Сохраним снимок текущих правил для диагностики: sudo sh -c 'umask 077; nft list ruleset > /root/nft-rules-snapshot.conf' Файл будет доступен только root. Это диагностический снимок, а не гарантированная резервная копия для восстановления динамических правил. Теперь проверим подготовленную конфигурацию, например /etc/nftables.conf: sudo nft -c -f /etc/nftables.conf Параметр -c проверяет конфигурацию без применения изменений. Если обнаружены ошибки, nft выведет диагностическое сообщение. Успешная проверка не гарантирует сохранения SSH-доступа после применения правил. Дополнительно посмотрим действующие цепочки, политики и идентификаторы правил: sudo nft -a list ruleset Особое внимание уделим базовым цепочкам с hook input, их приоритетам и политикам accept или drop. Проверим, на каких TCP-портах сервер принимает подключения: sudo ss -ltnp Найдём SSH-сервер в выводе и убедимся, что его порт учтён в планируемой конфигурации. Прослушивание порта само по себе не гарантирует доступность через firewall. Команды не изменяют действующие правила. Для их применения на удалённом сервере необходимы отдельный механизм отката и резервный консольный доступ. 🔥 Предварительная проверка через nft -c помогает обнаружить ошибки конфигурации без риска заблокировать SSH из-за её применения. ➡️ IT Ready | #практика
1 190
8
😎 Handium — нейросеть для распознавания рукописного текста! Сервис превращает фотографии, сканы и PDF с рукописным текстом в
😎 Handium — нейросеть для распознавания рукописного текста! Сервис превращает фотографии, сканы и PDF с рукописным текстом в редактируемый документ. Нейросеть распознаёт прописной и печатный почерк, курсив, мелкие и трудночитаемые записи, а результат можно проверить и исправить во встроенном редакторе. Handium старается сохранить исходную структуру страницы: заголовки, списки, таблицы, расположение блоков и формулы. 📌 Оставляю ссылочку: handium.ru 🚪 AI Ready | #нейросеть
1 472
9
Как получить стек вызовов зависшей программы без отладчика? Если Python-программа перестала отвечать и не выдаёт ошибок, опре
Как получить стек вызовов зависшей программы без отладчика? Если Python-программа перестала отвечать и не выдаёт ошибок, определить причину бывает непросто. Для таких ситуаций в стандартной библиотеке есть модуль faulthandler. Он позволяет вывести стеки вызовов Python-потоков по истечении заданного времени. import faulthandler faulthandler.dump_traceback_later(5) while True: pass Через пять секунд Python выведет текущие стеки вызовов в stderr с указанием файлов и номеров строк. Это работает даже тогда, когда программа продолжает выполняться без исключений. Для наблюдения за длительными зависаниями можно включить периодический вывод. faulthandler.dump_traceback_later(5, repeat=True) Теперь стеки будут выводиться каждые пять секунд, помогая определить, на каком участке кода находится каждый поток. После завершения проверяемой операции запланированный вывод можно отменить. faulthandler.cancel_dump_traceback_later() Важно учитывать, что faulthandler не определяет зависание автоматически: вывод происходит по таймеру независимо от состояния программы. 🔥 faulthandler.dump_traceback_later() помогает диагностировать зависания без отладчика, показывая стеки Python-потоков с указанием файлов и номеров строк. ➡️ IT Ready | #совет
1 571
10
بدون متن...
1 511
11
Как научить AI-агента определять, когда нужен поиск в интернете? Не каждый запрос требует внешних источников, базовые вопросы можно обрабатывать без поиска, а сведения о последних релизах и изменениях API необходимо проверять. Постоянные обращения к поисковым сервисам увеличивают задержку и расходы. Реализуем LLM-маршрутизатор через OpenAI Responses API. Модель будет определять необходимость поиска и возвращать типизированное решение. Установим зависимости и настроим API-ключ: pip install -U openai pydantic export OPENAI_API_KEY="your_api_key" Опишем структуру ответа через Pydantic. Поле need_search отвечает за выбор маршрута, а query содержит поисковую строку: from openai import OpenAI from pydantic import BaseModel client = OpenAI() class SearchDecision(BaseModel): need_search: bool query: str Создадим функцию классификации. responses.parse() обеспечивает структурированный вывод согласно заданной схеме без ручного разбора JSON: def route(question: str) -> SearchDecision: response = client.responses.parse( model="gpt-4.1-mini", instructions=( "Определи, нужен ли интернет-поиск. " "Для актуальных данных используй поиск. " "Для общих вопросов поиск не нужен. " "Если поиск не нужен, query пустой." ), input=question, text_format=SearchDecision, ) if response.output_parsed is None: raise RuntimeError("No routing decision") return response.output_parsed Проверим маршрутизатор на двух запросах. Первый не требует актуальных данных, второй предполагает проверку последнего релиза библиотеки: for question in [ "Что такое декоратор в Python?", "Что изменилось в последней версии FastAPI?", ]: print(route(question).model_dump()) Один из возможных результатов показывает, что модель выбирает разные маршруты. Конкретная поисковая строка может отличаться между запусками: {'need_search': False, 'query': ''} {'need_search': True, 'query': 'FastAPI latest release changes'} Результат классификации используется в обработчике агента. При необходимости приложение выполняет поиск и передаёт найденные данные модели. Ниже показан фрагмент интеграции; search_web() и answer_with_llm() реализуются отдельно: def handle(question: str): decision = route(question) if decision.need_search: results = search_web(decision.query or question) return answer_with_llm(question, context=results) return answer_with_llm(question) Маршрутизация не гарантирует правильного выбора и требует тестирования на реальных запросах. Дополнительный LLM-вызов также имеет стоимость, поэтому эффективность определяется экономией на поиске и общей задержкой обработки. 🔥 LLM-маршрутизация позволяет управлять вызовами внешних инструментов и исключать избыточный поиск там, где достаточно знаний модели. ➡️ IT Ready | #практика
1 490
12
Gemini Pro Argon на пол года по цене кофе? Gemini Pro на 6 месяцев можно купить за 6$ (480₽ вместо 10.000₽), в 20 раз выгодне
Gemini Pro Argon на пол года по цене кофе? Gemini Pro на 6 месяцев можно купить за 6$ (480₽ вместо 10.000₽), в 20 раз выгоднее чем официальная подписка. > 4.0 Argon топ для вайбкодеров > Nano Banana 2 PRO (картинки) > Видео генерация (видео, нарезки, мувики) > 5 ТБ облака в Google One Для вайбкодеров есть API-токены в 2-3 раза дешевле официальных! Приобрести можно в Магазине с 20.000+ покупок и 2000+ отзывов (есть возвраты и замены).
1 297
13
🤔 Свежая и очень интересная статья с Хабр: «Как IaC, документация и бэкапы помогли восстановить сервисы, когда пострадали да
🤔 Свежая и очень интересная статья с Хабр: «Как IaC, документация и бэкапы помогли восстановить сервисы, когда пострадали дата-центры Яндекса»! В этой статье: • Узнаете, как команда восстановила критичные сервисы на новой площадке менее чем за сутки после масштабной аварии; • Разберёте, какую роль сыграли Terraform, Ansible, GitOps, документация и заранее проверенные бэкапы; • Поймёте, почему для аварийного восстановления недостаточно просто сохранить данные и как правильно учитывать зависимости между сервисами. 🔊 Продолжай читать на Habr! ➡️ IT Ready | #статья
1 456
14
Запускаем инференс ML-модели на python через ONNX Runtime! После обучения модели в scikit-learn её можно экспортировать в ONNX и выполнять предсказания через ONNX Runtime. Это позволяет запускать модель без установленного scikit-learn в окружении инференса, а в некоторых случаях — ускорить обработку данных за счёт оптимизированного выполнения. Разберём, как конвертировать обученную модель в ONNX, запустить инференс и проверить корректность предсказаний. Для начала установим зависимости: pip install scikit-learn skl2onnx onnxruntime numpy Обучим классификатор RandomForestClassifier на встроенном датасете Iris. Он содержит характеристики цветков трёх видов ириса, а наша модель будет определять вид по четырём числовым признакам: from sklearn.datasets import load_iris from sklearn.ensemble import RandomForestClassifier X, y = load_iris(return_X_y=True) model = RandomForestClassifier( n_estimators=100, random_state=42 ) model.fit(X, y) Теперь экспортируем обученную модель в ONNX с помощью skl2onnx. Конвертер преобразует структуру Random Forest в операции ONNX, сохраняя обученные параметры. Переданный массив задаёт тип входных данных float32 и количество признаков, а размер батча остаётся переменным: from skl2onnx import to_onnx import numpy as np onnx_model = to_onnx( model, X[:1].astype(np.float32), target_opset=12 ) with open("model.onnx", "wb") as f: f.write(onnx_model.SerializeToString()) Получили файл model.onnx, содержащий всё необходимое для выполнения модели. Теперь создадим сессию ONNX Runtime, которая загрузит вычислительный граф и подготовит его к инференсу. Через CPUExecutionProvider явно укажем выполнение на процессоре: import onnxruntime as ort session = ort.InferenceSession( "model.onnx", providers=["CPUExecutionProvider"] ) input_name = session.get_inputs()[0].name Имя входного тензора получаем непосредственно из модели, поэтому его не нужно прописывать вручную. Передадим сразу пять объектов одним батчем, предварительно приведя данные к float32 — именно такой тип ожидает экспортированная модель: samples = X[:5].astype(np.float32) predictions = session.run( None, {input_name: samples} ) print(predictions[0]) Метод session.run() выполняет инференс и возвращает список выходных значений. Для нашего классификатора первый элемент содержит предсказанные классы, а второй — вероятности классов. Осталось проверить, что конвертация не изменила результат классификации. Получим предсказания исходной модели на тех же данных и сравним их с результатом ONNX Runtime: sklearn_preds = model.predict(samples) onnx_preds = predictions[0] print(np.array_equal( sklearn_preds, onnx_preds )) Ожидаемый результат — True. Предсказанные классы совпадают, но для других моделей после конвертации возможны численные расхождения. ONNX Runtime может ускорить инференс за счёт оптимизаций, однако результат зависит от модели, размера батча и оборудования. Не все операции scikit-learn поддерживают конвертацию, а прирост скорости стоит проверять бенчмарками. 🔥 ONNX Runtime позволяет запускать ML-модели без зависимости от обучающего фреймворка, что удобно при развёртывании API и сервисов инференса. ➡️ IT Ready | #практика
1 346
15
Потолок зарплаты в IT — ВСЁ Даже Senior-разработчики упираются в потолок. Дальше — менеджмент, смена компании или годы ожидания повышения. Но есть другой путь — зарабатывать больше на уже накопленном IT-опыте. И для этого необязательно переучиваться с нуля. Как именно, рассказывает Артём Алехин — экс-тимлид Сбера, работавший на валютных удаленках. Он совмещал российский найм с валютным контрактом, зарабатывая $8–9 тысяч в месяц. Артем создал проект в рамках которого получил для своих 200 учеников 40+ офферов на 200к+. Три направления, с которыми работает Артём: — Валютная удалёнка: выход на зарубежный рынок и поиск офферов от $5 000. — Монетизация экспертизы: превращать свой IT-опыт в доход через обучение и менторство — Свой IT-продукт: запуск SaaS с проверкой спроса сервиса для селлеров. Артём помогает выбрать подходящий путь и выстроить стратегию роста дохода, чтобы перестать зависеть от одного работодателя. Переходи в канал Артёма и изучай: @artem_itishnaya
1 053
16
🧐 Meshy AI — нейросеть для создания 3D-моделей по тексту и изображениям! Сервис позволяет генерировать трёхмерные объекты по
🧐 Meshy AI — нейросеть для создания 3D-моделей по тексту и изображениям! Сервис позволяет генерировать трёхмерные объекты по текстовому описанию или обычной картинке. Достаточно описать нужный предмет или загрузить референс — AI создаст 3D-модель, которую можно доработать и использовать в собственных проектах. Meshy поддерживает генерацию текстур, настройку материалов и экспорт моделей в популярные 3D-форматы. Помогает создавать персонажей, игровые объекты, реквизит, элементы окружения и другие модели без необходимости моделировать всё вручную. 📌 Оставляю ссылочку: meshy.ai 🚪 AI Ready | #нейросеть
1 601
17
Запускаем инференс ML-модели на python через ONNX Runtime! После обучения модели в scikit-learn её можно экспортировать в ONNX и выполнять предсказания через ONNX Runtime. Это позволяет запускать модель без установленного scikit-learn в окружении инференса, а в некоторых случаях — ускорить обработку данных за счёт оптимизированного выполнения. Разберём, как конвертировать обученную модель в ONNX, запустить инференс и проверить корректность предсказаний. Для начала установим зависимости: pip install scikit-learn skl2onnx onnxruntime numpy Обучим классификатор RandomForestClassifier на встроенном датасете Iris. Он содержит характеристики цветков трёх видов ириса, а наша модель будет определять вид по четырём числовым признакам: from sklearn.datasets import load_iris from sklearn.ensemble import RandomForestClassifier X, y = load_iris(return_X_y=True) model = RandomForestClassifier( n_estimators=100, random_state=42 ) model.fit(X, y) Теперь экспортируем обученную модель в ONNX с помощью skl2onnx. Конвертер преобразует структуру Random Forest в операции ONNX, сохраняя обученные параметры. Переданный массив задаёт тип входных данных float32 и количество признаков, а размер батча остаётся переменным: from skl2onnx import to_onnx import numpy as np onnx_model = to_onnx( model, X[:1].astype(np.float32), target_opset=12 ) with open("model.onnx", "wb") as f: f.write(onnx_model.SerializeToString()) Получили файл model.onnx, содержащий всё необходимое для выполнения модели. Теперь создадим сессию ONNX Runtime, которая загрузит вычислительный граф и подготовит его к инференсу. Через CPUExecutionProvider явно укажем выполнение на процессоре: import onnxruntime as ort session = ort.InferenceSession( "model.onnx", providers=["CPUExecutionProvider"] ) input_name = session.get_inputs()[0].name Имя входного тензора получаем непосредственно из модели, поэтому его не нужно прописывать вручную. Передадим сразу пять объектов одним батчем, предварительно приведя данные к float32 — именно такой тип ожидает экспортированная модель: samples = X[:5].astype(np.float32) predictions = session.run( None, {input_name: samples} ) print(predictions[0]) Метод session.run() выполняет инференс и возвращает список выходных значений. Для нашего классификатора первый элемент содержит предсказанные классы, а второй — вероятности классов. Осталось проверить, что конвертация не изменила результат классификации. Получим предсказания исходной модели на тех же данных и сравним их с результатом ONNX Runtime: sklearn_preds = model.predict(samples) onnx_preds = predictions[0] print(np.array_equal( sklearn_preds, onnx_preds )) Ожидаемый результат — True. Предсказанные классы совпадают, но для других моделей после конвертации возможны численные расхождения. ONNX Runtime может ускорить инференс за счёт оптимизаций, однако результат зависит от модели, размера батча и оборудования. Не все операции scikit-learn поддерживают конвертацию, а прирост скорости стоит проверять бенчмарками. 🔥 ONNX Runtime позволяет запускать ML-модели без зависимости от обучающего фреймворка, что удобно при развёртывании API и сервисов инференса. ➡️ IT Ready | #практика
1 612
18
Очнись, твои крипта уже исчезла Хакеры вынесли $6,3 млрд с Binance — через один ноутбук инженера. Крупнейший взлом в истории
Очнись, твои крипта уже исчезла Хакеры вынесли $6,3 млрд с Binance — через один ноутбук инженера. Крупнейший взлом в истории крипты занял 20 минут. Теперь помни: твои деньги не только в крипте. Интернет-банк, карты, СМС-коды — всё это ломается через тот же самый ноутбук и смартфон. Через твой. Если хочешь сохранить свои деньги и не стать следующей жертвой — подписывайся на «Пакет безопасности» Здесь разбирают самые актуальные схемы мошенничества, инструменты приватности базу кибергигиены. Без шуток, сейчас это один из самых полезных каналов в Телеге. Надеемся на лучшее, но к чему нужно готовиться — вы и сами понимаете: @package_security
989
19
😍 MLCheatSheets — большая подборка шпаргалок по ключевым алгоритмам и методам! В репозитории собраны краткие материалы, кото
😍 MLCheatSheets — большая подборка шпаргалок по ключевым алгоритмам и методам! В репозитории собраны краткие материалы, которые помогают разобраться в основных концепциях машинного обучения, повторить математические основы и освежить знания перед практикой. Удобный справочник, когда нужно быстро вспомнить важную формулу, принцип работы алгоритма или подготовиться к техническому собеседованию. Оставляю ссылочку: GitHub 📱 ➡️ IT Ready | #репозиторий
1 802
20
Самостоятельные стрелочные структуры в Python! В Python объекты могут хранить ссылки на самих себя, образуя циклические струк
Самостоятельные стрелочные структуры в Python! В Python объекты могут хранить ссылки на самих себя, образуя циклические структуры данных. Например, список можно добавить в качестве элемента этого же списка. data = [1, 2, 3] data.append(data) После такой операции последний элемент не становится копией исходного списка. Он ссылается на тот же объект, что легко проверить с помощью оператора is. print(data[-1] is data) # True Интересно, что Python умеет корректно отображать подобные структуры. При выводе механизм repr() списка обнаруживает рекурсивную ссылку и обозначает её многоточием, предотвращая бесконечный вывод. print(data) # [1, 2, 3, [...]] Подобные связи встречаются в графах, объектных моделях и структурах с обратными ссылками. Однако при самостоятельном обходе таких данных необходимо учитывать циклы, иначе рекурсивный алгоритм может зациклиться. Например, поверхностное копирование создаёт новый список, но сохраняет ссылки на исходные элементы: copy = data.copy() print(copy[-1] is data) # True print(copy[-1] is copy) # False При работе с циклическими структурами важно различать копирование контейнера и копирование всей связанной структуры объектов. 🔥 Понимание самоссылочных объектов помогает избегать ошибок при копировании, рекурсивном обходе и обработке графовых структур, где один объект может встречаться несколько раз. 👉 IT Ready | #совет
1 818