Как стать автором
Обновить
519.66

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Зоопарк версий питона в ИИ, какую версию лучше выбрать в 2025 для большинства задач?

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров759

Разработка в области искусственного интеллекта развивается стремительно. Каждый месяц появляются новые модели и фреймворки, и часто возникает вопрос: какую версию Python использовать для локальной разработки и экспериментов, чтобы обеспечить максимальную совместимость и избежать «ада зависимостей»? Но, можете не тратить время на чтение. СРАЗУ ВЫВОД: Рекомендуемая версия: Python 3.10.x.

Неправильный выбор версии Python может привести к часам отладки, проблемам с компиляцией пакетов и несовместимости с ключевыми библиотеками, такими как PyTorch или TensorFlow. В этой статье мы проведем глубокий анализ совместимости более 30 популярных AI-моделей и 30+ библиотек, чтобы дать однозначный и обоснованный ответ.

Читать далее

Новости

От работяги до айтишника

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.7K

Приветствую читателей! Последние два года я работал курьером, поэтому прошу знатоков IT отнестись снисходительно к возможным неточностям в моих рассуждениях.

А суть вся в том, что решил я сменить профессию на ту, где зарплата летом не номинальная. Наткнулся на журнал «Мир Робототехники» и загорелся узнать подробнее за какие навыки и знания платят в айти. Знакомый посоветовал обучаться на базе конструктора с микроконтроллерами, чтобы тот был полигоном для творчества. Так что спустя несколько месяцев проб и ошибок решил поделиться своим опытом со всеми соискателями.

Выбрал себе конструктор от «Грань Новые Технологии», так что из электроники в моём распоряжении оказались: orangePi 5+, STM32 и Mega2560. Как я узнал в дальнейшем, orangePi это аналог небезызвестной RaspberryPi, а mega – аналог Arduino. До более углублённого изучения STM32 я до сих пор не дошёл, так что может быть во второй части статьи будет и о STM32, если саму статью буду продолжать.

Приехала ко мне коробка в пол кубометра, после распаковки начинки я понял, что работы непочатый край. Так что решил как нетипичный пользователь начать с инструкции.

Читать далее

Классификация документов: гайд для обхода граблей

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров595

У всех на слуху библейское изречение «отделять зерна от плевел» и его грубый аналог «отделять мух от котлет». В обычной жизни мы также сталкиваемся с необходимостью разделять схожие предметы. В машинном обучении задача разделить объекты по определенным классам, например, «зерна» и «плевелы», называется классификация. Классификация лежит в основе современных технологий искусственного интеллекта и играет ключевую роль в машинном обучении.

Читать далее

KEKS кодек и криптографические сообщения

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров361
Данная статья напоминает о проблемах X.509 PKI и реализаций ASN.1. Предлагает компактный, быстрый, детерминированный, потоковый и простой формат кодирования данных KEKS, а также криптографические сообщения для подписи и шифрования данных с поддержкой пост-квантовых алгоритмов.

Читать дальше →

Как мы научили ИИ читать PDF и экономить сотни рабочих часов: полный кейс создания корпоративного ChatGPT

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.5K

От бизнес‑проблемы до технической реализации — опыт создания ИИ‑ассистента для Росатома за 48 часов

Представьте: новый сотрудник крупной корпорации ищет ответ на рабочий вопрос. Он открывает внутренний портал, видит сотни PDF-инструкций, тысячи записей в базе знаний службы поддержки. Час поиска, звонки коллегам, еще час изучения документов. В итоге — либо неточный ответ, либо решение отложить задачу.

Как ИИ может помочь сотруднику?

NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров33K

Салют, Хабр! На связи снова я, Aragorn, со своим проектом по терроризированию Роскомпозора. В прошлый раз я рассказывал о NoDPI - утилите для "раздеградирования" YouTube и установил личный рекорд - 400 звезд на GitHub и блокировка статьи РКН через три дня после публикации.

Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!

Читать далее

Как я проектирую и разрабатываю реальные расширения для Python на Rust

Время на прочтение14 мин
Количество просмотров2.8K

Вы, вероятно, уже видели немало статей с заголовками вроде «Python, Rust — производительность, бла-бла-бла…». Печально, но почти все эти статьи демонстрируют лишь самые простые примеры уровня «hello world». В отличие от них, в этой статье я хочу поделиться тем, как я проектирую крупные расширения для реальных проектов и почему принимаю при этом те или иные решения.
Читать дальше →

Как в Django реализовать заполнение профиля пользователя через Google

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров286

Эта статья продолжает пост, в котором был рассмотрен один из алгоритмов аутентификации пользователя через платформу Google. Сейчас мы дополним ее механизмом заполнения профиля пользователя данными из Google-аккаунта. Хотелось бы подчеркнуть, что в обеих статьях рассматривается только один из алгоритмов. Он, на мой взгляд, наиболее понятен для начинающих разработчиков, хотя существуют и другие способы. О них можно узнать из документации Django.

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

Реализуем в проекте собственный сервис (pipeline) и добавим в пакет приложения authapp соответствующий модуль (pipeline.py):

Читать далее

Электронный курвиметр

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.3K

Идея создания электронного курвиметра возникла в процессе разработки инструментальной выверки вращающейся печи. Для точного измерения диаметров опорных роликов и определения их износа необходимо было создать специальный прибор.

Износ роликов, возникающий в результате неправильной работы печи, требует ремонта, который заключается в шлифовке и выравнивании их профиля.

Читать далее

weakref.finalize: «почти IDisposable» для Python-объектов

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров365

Привет, Хабр!

Я не знаю, как у вас, а у меня перед глазами все еще маячат толстенные исходники WinForms-эра на C#, где любой порядочный объект, умеющий держать ручку к файлу или сокету, строго реализует IDisposable. Закрыл — молодец, забыл — получи warning от IDE и пару нехороших утечек в production.

В Python, увы-ях, аналогичный контракт традиционно строили на del и контекст-менеджерах. Первый: если объект в циклическом мусоре, финализатор может не вызваться вообще; к тому же при выключении интерпретатора порядок разрушения объектов хаотичен. Второй (with ... as) шикарен, но требует явного вызова, а значит — дисциплины.

С выходом PEP 442 и появлением weakref.finalize мы получили «почти IDisposable» — финализатор, которому не страшны циклы, и который честно отработает даже на shutdown, если правильно обращаться.

Читать далее

Python asyncio, блокировка цикла событий

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.8K

Блокировка event loop довольно серьезная проблема в асинхронных приложениях, потому что приводит к замедлению не конкретного запроса пользователя, а сразу всех запросов пользователей. Так давайте разберемся, что же это значит и, насколько это страшно и для разработчика и для клиентов сервиса.

Читать далее

Jaeger v2

Время на прочтение7 мин
Количество просмотров1.5K

Появилась у меня задача по мониторингу и оценке производительности проекта на микросервисной архитектуре. Для решения был выбран Jaeger. Он давно на рынке, активно развивается (не так давно вышла версия 2, в которой упростилось развертывание и появилась интеграция OpenTelemetry). На мой взгляд, Jaeger – отличное решение для трейсинга, но документация ощущается как не до конца собранный пазл: важные вещи разбросаны, а для понимания приходится обращаться к исходному коду или искать примеры в GitHub-репозиториях.

Цель данной статьи показать на практике, как внедрить Jaeger в продукт на микросервисах.

Ссылку на код всего, о чем пойдет речь дальше, можно найти в конце статьи.

Читать далее

SOAP, WSDL и немножко Python создаём веб-сервис шаг за шагом

Уровень сложностиПростой
Время на прочтение24 мин
Количество просмотров3.1K

Практика — лучший способ глубокого понимания теории. Рассмотрим на примере, как работают веб-сервисы с протоколом SOAP, для чего нужен WSDL и как он связан с XML-документом в теле POST-запроса.

Читать далее

Ближайшие события

Structured Output как полноценная замена Function Calling

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.2K

В этой статье мы рассмотрим альтернативный подход вызова инструментов LLM, который использует Structured Output вместо традиционного Function Calling для обеспечения надежности и предсказуемости.

Читать далее

Небольшая библиотека утилит на Rust для Python (FastPy-RS, Alpha)

Время на прочтение2 мин
Количество просмотров2.7K

Всем привет! Я пришёл из экосистемы Rust и недавно начал работать в Python. Я люблю Rust за безопасность и скорость, но влюбился в Python за простоту и быструю разработку. Это вдохновило меня создать что-то полезное для сообщества Python: FastPy-RS — библиотеку часто используемых функций, которую можно вызывать из Python, а реализация внутри написана на Rust. Цель — обеспечить высокую производительность и надёжность. Хотя многие Python-библиотеки используют C для ускорения, такой подход может нести риски безопасности.

Читать далее

Часть 2: Vision Transformer (ViT) — Когда трансформеры научились видеть

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров966

Представьте, что лингвист внезапно стал экспертом по живописи. Именно это произошло в 2020 году, когда архитектура для обработки текста — трансформеры — научилась "видеть" изображения. Vision Transformer (ViT) доказал: для понимания картинок не обязательны свёртки! Разберем "на пальцах" как она устроена и как изображения превращаются в предсказания.

Читать далее

Собственный контент-фильтр на базе LLM: от эксперимента до стабильной системы

Время на прочтение5 мин
Количество просмотров1.5K

Привет! Меня зовут Миша Мартьянов, я инженер по исследованиям и разработке в red_mad_robot. Моя работа — искать новые идеи, проверять гипотезы и улучшать продукты. На этом пути иногда приходится изобретать уникальные решения. Например, мы создали собственный фильтр, чтобы отсеивать нежелательный контент с помощью LLM. Рассказываю, как мы к этому пришли и с какими сложностями столкнулись.

Читать далее

Портирование фреймворка ROOT на архитектуру e2k

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.1K

Современная наука невозможна без компьютерных вычислений — от обработки результатов измерений до моделирования процессов. Одним из наиболее широко используемых инструментов для вычислений в ядерной физике и физике высоких энергий является фреймворк ROOT, разрабатываемый в CERN.

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

В статье рассмотрим "айсберг" проблем, с которыми пришлось столкнуться в ходе портирования ROOT, а такжк сферу и примеры его применения.

О портировании и тестах ROOT читайте далее

Что делает enumerate() и почему это лучше, чем range(len(...))

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.9K

Привет, Хабр!

Сегодня коротко, но по существу разберёмся, зачем вообще нужен enumerate() в Python и почему он почти всегда лучше, чем старый добрый range(len(...)).

Читать далее

Как ChatGPT удалил в нашем чате 555 спам-сообщений с точностью 98,38%

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров11K

Небольшой православный телеграм-канал на ~4 тыс. чел., где я состою в числе редакторов, ежедневно атакуют спамеры. Ввиду его тематики к обычному спаму прибавляется еще и разный специфический, о чем я скажу позже. Поэтому без бота-модератора нам не обойтись.

Сначала я написала простого бота на aiogram, который фильтровал сообщения по ключевым словам. Но этого оказалось недостаточно...

Код на Python, скрины и цифры
1
23 ...

Вклад авторов