Обновить
796.93

Python *

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

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

Как я сделала свой первый AI-продукт с ChatGPT и капелькой любви

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

В этой статье я расскажу о моем опыте самостоятельного изучения основ Python и Machine Learning и создании первого проекта OneLove на базе собственной модели искусственного интеллекта (ИИ).

Читать далее

Помощник читателя: визуализируем сюжет

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели4.7K

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

- граф связей между героями
- хронологию событий
- карту мест действия

Читать далее

Propensity Score Matching: как строить аналоги A/B-тестов, когда эксперименты невозможны

Время на прочтение20 мин
Охват и читатели7.3K

Привет! Меня зовут Николай Олигеров, я работаю продуктовым аналитиком в Яндекс Путешествиях. В этой статье я расскажу, как мы применяли PSM (Propensity Score Matching) — статистический метод, который позволяет корректно сравнивать группы, уменьшая систематические различия между ними. Подробно разберу, как выровнять группы теста и контроля с помощью PSM, расскажу о типичных ошибках (например, утечке признаков), дам практические рекомендации по сбору и выбору фич для мэтчинга, а также покажу, как валидировать полученные результаты и оценить их достоверность.

Читать далее

Изучаем FastAPI за одну статью: от «Hello World» до структурированного API

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели16K

Если вы пишете бэкенд на Python или только собираетесь вкатиться в эту тему, вы точно слышали про FastAPI. Он обещает скорость NodeJS, автодокументацию из коробки и строгую типизацию. Звучит круто, но для новичка любая новая технология выглядит пугающе.

В этом гайде я хочу взять вас за руку и провести по всем базовым концепциям фреймворка. Мы напишем свой первый API-сервис с нуля, разберем частые ошибки новичков с асинхронностью и поймем, как писать чистый код с помощью APIRouter. Спойлер: баз данных и сложных ORM сегодня не будет, сосредоточимся на чистом понимании магии FastAPI.

Читать далее

Гиперсети: нейронные сети для обработки иерархических данных

Время на прочтение21 мин
Охват и читатели6.3K

С точки зрения нейронных сетей мир плоский. Иерархические данные напоминают, что это не так.

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

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

Стандартные нейронные сети в таких условиях жёстко сбоят. Обучите одну модель сразу на всех датасетах — и она расфокусируется из-за различий, станет усреднять функции, которые усреднять не следует. Натренируйте по модели на каждом из датасетов — и получите переобучение, в особенности, если датасеты будут маленькими. Такие обходные манёвры как задействовать статические векторные представления (эмбеддинги) или постоянно наращивать размер сети в сущности не решают ключевую проблему: система запоминает причуды сети, не моделируя её структуру, складывающуюся на уровне датасета. А ведь именно эта структура — залог качественных результатов.

Читать далее

Telegram BOT API 9.4: цветные кнопки и премиум эмодзи

Время на прочтение5 мин
Охват и читатели17K

Всем привет!

Сегодня Telegram выкатил Bot API версии 9.4. На первый взгляд обновление кажется небольшим, но оно кардинально меняет подход к визуалу ботов. Наконец-то мы получили инструменты для нормального UX/UI дизайна!

Давайте разберем, что нам приготовил Павел Дуров и команда в этот раз.

Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и новостями.

Читать далее

Как я создал свой сканер и пришёл к выплатам на багбаунти

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

Привет, Хабр! Сегодня хочу поделиться историей о том, как желание автоматизировать рутинную работу привело меня к созданию собственного инструмента FullMute и, как следствие, к первым серьезным выплатам на платформах bug bounty.

Как многие начинающие исследователи, я начал с хаотичного ручного поиска уязвимостей: проверял заголовки, искал известные пути к админкам, пытался угадать версии CMS. Это было неэффективно, медленно и сильно зависело от везения. Мне нужен был «компас», который бы проводил первоначальную разведку за меня и давал четкие цели для атаки. Так родилась идея FullMute.

Читать далее

Чистим аудиокниги от шума нейросетями

Время на прочтение6 мин
Охват и читатели8.5K

Фоновая музыка, гул, шипение — классические фильтры с этим не справляются. Нейросети справляются, но падают на длинных файлах. Решение: чанкование + сохранение прогресса. Делюсь инструментом.

Читать далее

Прощай, ЖЖ — cпасаем заметки Python-скриптом

Время на прочтение15 мин
Охват и читатели14K

В конце статьи Python скрипт для сохранения заметок.

Последняя шлюпка с «Титаника», чтобы утащить с ЖЖ свои и чужие мысли на жесткий диск, пока «эффективные менеджеры» окончательно не пустили всё на дно.

Я писал свои заметки в ЖЖ более 15 лет. Полтора десятилетия текстов, некоторые из которых даже влетали в топ главной страницы, теша мое самолюбие. Но всему есть предел.

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

Спасаем заметки

Очередь задач на Postgres: SKIP LOCKED + lease/heartbeat + backpressure (практический опыт)

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

Как сделать надёжную очередь задач без Rabbit/Kafka, используя только Postgres? Разбираю боевой паттерн: FOR NO KEY UPDATE SKIP LOCKED для конкурентного забора, lease/heartbeat для возврата задач после падений и backpressure, чтобы воркеры не съели память.

Читать далее

Обучение ИИ-моделей на обычном ЦП

Время на прочтение16 мин
Охват и читатели11K

Ещё раз о ЦП для машинного обучения в эпоху дефицита мощностей GPU

Недавние успехи в области ИИ зачастую связывают с появлением и эволюцией графических процессоров (GPU). Архитектура GPU, как правило, включает тысячи ядер для многопроцессорной обработки, высокоскоростную память, выделенные тензорные ядра и пр. Такая архитектура особенно хорошо подходит для рабочих нагрузок, связанных с ИИ и машинным обучением, которые отличаются высоким потреблением ресурсов. К сожалению, из-за резкого роста разработок в области ИИ также наблюдается всплеск потребности в  GPU, из-за чего возник их дефицит. В результате разработчики систем машинного обучения всё активнее изыскивают альтернативные аппаратные платформы, на которых можно было бы обучать и эксплуатировать модели. В таком качестве используются, например, выделенные специализированные интегральные схемы (ASIC) для работы с искусственным интеллектом, такие как облачные тензорные процессоры GoogleHaban Gaudi и AWS Trainium. Притом, что эти варианты позволяют значительно сэкономить, они подходят для работы не со всеми моделями машинного обучения и, подобно GPU, также остаются дефицитными. В этом посте мы вновь обратимся к старым добрым классическим процессорам (CPU) и вновь поговорим о том, насколько они адекватны применительно к современным ML-моделям. Безусловно, ЦП обычно не так хороши для обслуживания связанных с машинным обучением рабочих нагрузок как графические процессоры, зато их гораздо проще приобрести. Если бы удалось гонять на ЦП (хотя бы некоторые) из таких рабочих нагрузок, то продуктивность разработки в целом удалось бы значительно повысить.

Читать далее

Нейропоисковик на 17 миллионов картинок: OpenCLIP, Qdrant и ZeroTier вместо облаков

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

Как сделать свой аналог Pinterest, если у вас нет бюджета корпорации, но есть 4 ТБ картинок (17 миллионов штук) и желание искать по ним не просто по тегам, а по визуальному стилю?

В статье — опыт построения распределенной системы поиска из подручных средств. Разбираем архитектуру: — Гибридное хранение: Backblaze B2 (холодное) + Домашний сервер (вычисления). — Сеть: Как ZeroTier объединил разрозненные ноды в одну Mesh-сеть без белых IP. — Векторный поиск: Как уместить 17 миллионов векторов OpenCLIP ViT-H/14 в 32 ГБ RAM с помощью Qdrant и квантизации. — Оптимизация: Почему поиск работает за 5 мс, а загрузка метаданных тормозила до 3 секунд, и как PostgreSQL спас ситуацию.

Полный разбор ETL-пайплайна и экономики домашнего HighLoad-проекта.

Читать далее

Топ-5 фишек Python, которые вы, скорее всего, упустили

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8.2K

На дворе 2025 год. Мы привыкли к f-строкам и тайп-хинтингу, но всё ещё тащим в продакшен привычки из Python 3.6.

Вы знали, что блок else в цикле for выполняется вовсе не тогда, когда «цикл не сработал», а наоборот? А что громоздкий try-except pass для игнорирования ошибок — это антипаттерн, который заменяется одной элегантной строкой из стандартной библиотеки?

В статье — топ-5 прагматичных фич (от match/case с гардами до itertools.batched), которые позволяют писать декларативный код и выбрасывать лишние if и флаги. Никакой воды, только примеры «Было / Стало».

Читать далее

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

DDD на пальцах: как перестать проектировать таблицы и начать думать о бизнесе

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели16K

Привет, Хабр! Cегодня я хочу поговорить о самом непонятном и переоцененном термине в мире архитектуры — Domain-Driven Design (DDD). Я объясню его так, чтобы стало понятно даже джуну, и покажу на реальных примерах, чем он отличается от других подходов.

Читать далее

Книга «Python для инженерных задач»

Время на прочтение5 мин
Охват и читатели17K

Приветствуем, коллеги.

Расскажем вам о нашей долгожданной новинке – «Python для инженерных задач». Эту книгу написал уважаемый Евгений Ильин @jenyay, кандидат технических наук, преподаватель Московского Авиационного Института. В основу книги легли его университетские наработки, объём более чем внушительный – 672 страницы. Тем не менее, поскольку эта книга ориентирована на самую широкую аудиторию инженеров, мы решили выпустить её в серии «Самоучитель», из которой вам также может быть известен знаменитый «Компас-3D  V 23» Анатолия Герасимова.

Читать далее

Python для начинающих: () или []? Ответ, который изменит ваш код

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели13K

Положа руку на сердце, давайте признаемся: когда вы только начинали учить Python, вам наверняка на первом же занятии вам сказали: «Списки (list) — изменяемые, а кортежи (tuple) — нет. Запомнили? Молодцы».

И большинство из нас кивнуло и пошло дальше. Казалось бы, всё просто: если данные могут меняться — берём квадратные скобки [], если это константа — круглые (). Задача решена.

А что, если я скажу, что на этом простом правиле заканчивается Python для новичков и начинается Python для профессионалов?

Потому что за этой банальной разницей скрывается целый мир оптимизаций, архитектурных решений и подводных камней. Вы когда-нибудь задумывались, почему кортежи на самом деле быстрее списков? Не на уровне теории, а на уровне байтов и выделения памяти? Или почему Python позволяет использовать кортеж как ключ словаря, а при попытке сделать то же самое со списком просто взрывается с ошибкой TypeError?

Читать далее

Навайбкодил самый быстрый xlsx editor

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

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

Читать далее

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

Время на прочтение14 мин
Охват и читатели9.5K

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

Шахматы вслепую — навык для Алисы

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.9K

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

Тогда я решил написать навык для Яндекс.Станции, чтобы можно было играть в шахматы голосом.

Я не разработчик, а аналитик требований, поэтому навыков программирования у меня почти не было. Но благодаря Google и божьей помощи мне удалось написать первую версию кода и развернуть её на отдельной виртуальной машине.

За основу была взята библиотека python-chess и бинарник шахматного движка Stockfish:

Лошадью ходи

Мой любимый векторный редактор PowerPoint или как я создал python библиотеку для добавления фигур в презентации

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели4.9K

Если бы меня спросили, какой мой любимый векторный редактор, я бы, не задумываясь, ответил: PowerPoint.

Это началось с желания делать презентации, которые приятно смотреть. Меня всегда огорчало, как часто даже в хороших докладах используются мыльные, шакальные картинки – особенно там, где вполне можно обойтись аккуратными векторными схемами. В какой-то момент я решил: буду рисовать всё сам – фигурами прямо в PowerPoint.

Так я и жил, пока однажды мне не понадобилось вставить тысячу точек scatter-графика и нарисовать пару нейросетей. PNG не хотелось, руками – слишком лениво. Тогда я создал pptx-shapes – библиотеку, которая позволяет добавлять фигуры на слайды презентации.

Читать далее