PythonTalk
4.77K subscribers
1.45K photos
48 videos
7 files
1.32K links
Привет, меня зовут Олег Булыгин 👋

🐍 Здесь я делюсь полезной информацией для тех, кто пишет код на Python: от разработки до Data Science.

По вопросам: @obulygin91
Download Telegram
ТРЕТИЙ УДАР КИТАЙСКОГО МОЛОТА 🔨

Qwen выкатывает модели быстрее, чем я успеваю писать посты.

Сначала было обновление универсального Instruct (пост тут). Потом узкоспециализированный Coder (пост тут). Теперь улучшают мышление.

Встречайте, Qwen3-235B-A22B-Thinking-2507.
Это продолжение стратегии работы над узкоспециализированными инструментами для конкретных доменов.

Что по результатам? Они снова на вершине, но теперь в самых престижных номинациях:

🧠 Математика и логика: На бенчмарке HMMT25 (олимпиада по математике) она рвёт всех, включая GPT-4o и Gemini 2.5 Pro. На AIME25 дышит в спину самой мощной версии OpenAI.

💻 Программирование: Снова топ-1 на LiveCodeBench. 74.1 балла против 72.5 у Gemini и 71.8 у GPT-4o-mini.

🔥 Как из неё выжать максимум (советы от разрабов):
▫️ Для сложных задач (код, математика) ставьте max_new_tokens не меньше 81,920. Модели нужно место, чтобы «подумать».
▫️ Используйте Temperature=0.6, TopP=0.95.

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

Погонять бесплатно тут: https://chat.qwen.ai/
Веса на Hugging Face: https://huggingface.co/Qwen/Qwen3-235B-A22B-Thinking-2507
👍931🔥1🏆1
Forget python, it turned out that spreadsheet is all you need

Сложно понимать, как писать нейронки на Python?

Чувак в Excel (!) написал языковую модель на 85к параметров. Как раз на основе структуры, которую реализует Андрей Карпатый.

Для тех, кто не может в голове уложить, как все эти матрицы в трансформерах перемножаются, — это просто находка. Можно буквально пальцем тыкнуть в любую ячейку и увидеть, какая формула за ней стоит и откуда берутся все эти эмбеддинги, self-attention и прочая магия.

Никаких запутанных классов и абстракций, только цветные ячейки:
🟣 Фиолетовые — параметры модели, которые можно крутить.
🟢 Зелёные — данные, которые текут по пайплайну.
🟠 Оранжевые — промежуточные расчёты для ясности.

Автор так и пишет:
Forget python, it turned out that spreadsheet is all you need


А вы говорите, что табличные редакторы дата-сайентистам уже не нужны 🌝
👍10😁6😱3🔥2🤔1🙏1
🙃
Please open Telegram to view this post
VIEW IN TELEGRAM
😁176❤‍🔥1🔥1🤣1👨‍💻1🤪1
Алгоритмическая задачка 🐍

Представьте, что вы — квант в крутом хедж-фонде. Ваш босс дал вам задание: найти самый длинный период "идеальной волатильности" в котировках акций.

Это когда цена то падает, то растет, то снова падает... и так далее.

🐍 Условие задачи

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

> То есть, последовательность должна быть вида: a < b > c < d ... или a > b < c > d ...


Примеры для ясности 👇

Пример 1:
- Вход: 9, 4, 2, 10, 7, 8, 8, 1, 9
- Вывод: 5
- Объяснение: Самый длинный такой участок — это 4, 2, 10, 7, 8. Давайте проверим:
- 4 > 2 (вниз 📉)
- 2 < 10 (вверх 📈)
- 10 > 7 (вниз 📉)
- 7 < 8 (вверх 📈)
Знаки чередуются, длина — 5 элементов.

Пример 2:
- Вход: 4, 8, 12, 16
- Вывод: 2
- Объяснение: Здесь только один подъем (4 < 8). Длина этого участка — 2. Дальше тренд не меняется.

Пример 3:
- Вход: 100
- Вывод: 1

Пример 4:
- Вход: 5, 5, 5
- Вывод: 1
- Объяснение: Равные элементы прерывают последовательность, так как сравнение не является ни строгим > ни строгим <.

Обойдемся одним циклом или понадобится что-то хитрее? 😉
4🤔2🏆1👨‍💻11
Бесплатный учебник по Deep Learning от MIT Press с 68-ю ноутбуками 📕

Фундаментальный учебник «Understanding Deep Learning» от Саймона Принса и MIT Press это:

- Книга: Полный PDF на 500+ страниц, покрывающий все от основ до диффузионных моделей и трансформеров.
- 68(!) Python-ноутбуков: К каждой главе прилагаются ноутбуки с кодом. Можно сразу запускать и ковыряться.

И да, на английском.

👉🏻 Скачать всё можно здесь

Крутота 👊
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6331🎉1👨‍💻1
👨‍💻 df.isna().sum() — вредная команда.

Вредная не потому, что она врёт, а потому, что создаёт опасную иллюзию контроля.

Вы видите аккуратную табличку с количеством пропусков и думаете: «Окей, я всё знаю». Но на самом деле вы не знаете ничего. Знать, сколько данных пропущено — это первый класс, вторая четверть. Гораздо важнее понимать, КАК они пропущены.

Есть ли в пропусках система? Они случайны или нет? Пропуски в столбце А связаны с пропусками в столбце Б?

Простой подсчёт NaN на эти вопросы не ответит. Чтобы перейти от поверхностного взгляда к глубокому пониманию, нужен более глубокий инструмент. И он есть — это библиотека missingno.

В ней разные полезные визуализации, например:

🔬 msno.matrix() — показывает точное расположение каждой «дыры» в данных. Сразу видно, пропуски — это единичные точки или целые «мёртвые зоны».

📊 msno.heatmap() — детектор скрытых связей. Показывает, значения в каких признаках пропущены вместе.

🗺 msno.dendrogram() — карта родства. Группирует столбцы по схожести паттернов пропусков. Сразу видно, какие признаки ведут себя одинаково, а какие — живут своей жизнью.

Вот вам руководство по missingno с примерами кода и графиками:
👉🏻 Пропуски в данных — не приговор: Полное руководство по визуализации и анализу с missingno в Python

Работаем с пропусками умнее 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍421🙏1💯1
✍️ Решения вчерашней задачи

Видимо, оказалось сложной 🤔 Но ничего страшного, давайте разберем элегантный и очень эффективный способ её решения.

🎯 Ключевая идея

Чтобы решить задачу за один проход, мы будем использовать подход, похожий на динамическое программирование. Нам не нужно хранить все подпоследовательности, достаточно отслеживать всего два значения:
- up — длина текущей "волнистой" последовательности, которая заканчивается ростом (📈).
- down — длина текущей "волнистой" последовательности, которая заканчивается падением (📉).

Идём по списку и на каждом шаге обновляем эти два счётчика.

Вот как выглядит код, реализующий эту идею. Он одновременно и самый быстрый, и очень "питоничный" по духу — простой и ясный.

def max_turbulence_size(prices: list[int]) -> int:
if len(prices) < 2:
return len(prices)

max_len = 1
up = 1
down = 1

for i in range(1, len(prices)):
if prices[i] > prices[i-1]:
up = down + 1
down = 1
elif prices[i] < prices[i-1]:
down = up + 1
up = 1
else:
up = 1
down = 1

max_len = max(max_len, up, down)

return max_len


🧐 Как это работает?

- Шаг 1: Инициализация
Мы начинаем с up = 1 и down = 1. Это логично, ведь любой один элемент сам по себе является последовательностью длиной 1. max_len тоже равен 1.

- Шаг 2: Итерация
Мы проходим по списку цен, начиная со второго элемента, и сравниваем его с предыдущим.

- Шаг 3: Логика обновления. Это самая соль алгоритма.
- Если цена выросла (prices[i] > prices[i-1]):
Значит, мы можем продлить последовательность, которая до этого падала. Новая длина последовательности, заканчивающейся ростом, будет up = down + 1. При этом любая последовательность, заканчивающаяся ростом, прервалась, поэтому down мы сбрасываем до 1.
- Если цена упала (prices[i] < prices[i-1]):
Зеркальная логика. Мы продлеваем последовательность, которая росла. down = up + 1, а up сбрасываем до 1.
- Если цены равны (prices[i] == prices[i-1]):
Чередование нарушено. Любая волна прерывается. Мы сбрасываем и up, и down обратно в 1.

- Шаг 4: Поиск максимума
На каждом шаге цикла мы обновляем max_len, выбирая самое большое значение из max_len, up и down. Так мы гарантированно не упустим самую длинную волну.

Временная сложность: O(N) . Мы проходим по входному списку всего один раз. Быстрее просто невозможно! 🚀
Пространственная сложность: O(1). Мы используем фиксированное количество переменных (up, down, max_len), которое не зависит от размера списка. Максимально эффективно по памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥2🐳211
🇨🇳 Китайцы снова разрывают! Выкатили GLM-4.5 🐲

Я изучил их анонс и доки, вот короткая выжимка:
▫️Что это? Здоровенная MoE-модель (355B параметров), 128к контекста. Главное — полный опенсорс под лицензией MIT. Можно брать и использовать в коммерческих проектах.
▫️В чем фишка? Заточена под «агентов». По демкам, она может по команде сгенерить рабочую игру или написать сайт с нуля.
▫️Она реально так хороша?
Бенчмарки на уровне топов. Не «убийца» всего и вся, но, возможно, один из самых мощных открытых ИИ-агентов на сегодня.
▫️А запустить можно? Только если у вас есть доступ к серверу с пачкой H100. На игровом ноуте пока не взлетит. 🫠

🔗Первоисточники для самостоятельного изучения:
- Официальный анонс
- Репозиторий на GitHub
- Модели на HuggingFace

Разбор архитектуры — что там с MoE, их RL-фреймворком slime и как это все-таки запустить тут:
👉 Читать полный разбор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍632🔥1🙏11
Заговор рептилоидов раскрыт! 🐸
В сеть слили презентацию с доказательствами
‼️

Шутки шутками, а GLM-4.5 для меня стала первым инструментом, который бесплатно и без ограничений (пока) вполне сносно генерирует редактируемые презентации (тут я вообще ничего кроме одного промпта не делал).

Генерации жутко долгие, но все равно быстрее, чем делал бы руками.

Давно такой инструмент искал.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14😁332👍1🆒1
Срочно нужно забустить канал, чтобы спасти реакцию 🤣

Без этой реакции не то!

Спасайте Эль Риситаса!
Please open Telegram to view this post
VIEW IN TELEGRAM
27👍2🔥2🏆1🤝1🤗1🫡11
На первый взгляд, все элементарно. Но есть нюанс 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🎉2😁1🙏11
Что получим при запуске кода?
Anonymous Quiz
19%
<generator object weirdo at …>
10%
None
50%
[0, 0, 0, 0]
10%
SyntaxError
11%
0
8👍3😱2🙏11
📊 Разбираем Stack Overflow Survey 2025

Вышли результаты их ежегодного опроса. Давайте про самое интересное.

🐍 Часть 1. Что с Python?

Использование Python взлетело на 7 процентных пунктов за год, достигнув 57.9%.
Сила языка — в его экосистеме, которая сейчас тащит всю индустрию.
▫️ Веб: FastAPI показал один из самых больших скачков среди фреймворков (+5 п.п., теперь 14.8% его используют). Вместе с Flask (14.4%) и Django (12.6%) питонячий веб-стек чувствует себя прекрасно.
▫️ Инструменты: Pydantic впервые вошел в опрос и сразу взял 10.1%! А новый пакетный менеджер uv, написанный на Rust, стал самой «обожаемой» (most admired) технологией с рейтингом 74.2%.
▫️ Data Science: Polars — библиотека для работы с данными, написанная на Rust (конкурент Pandas). Используют ее пока немногие (3.8%), но уровень «обожания» — заоблачные 67.9%.

Видим, что многое внутри ядра Python-экосистемы переписывается на Rust для получения максимальной производительности.

🤖Часть 2. Парадокс ИИ.

А вот тут начинается цирк. 84% разрабов используют или планируют использовать ИИ-инструменты.

Но за этим фасадом массового внедрения скрывается тотальный кризис доверия. Позитивное отношение к ИИ за год упало с 70% до 60%.
46% разработчиков АКТИВНО НЕ ДОВЕРЯЮТ точности нейросеток. Доверяют — лишь 33%.

Главная, что раздражает (66% респондентов) — это решения от ИИ, которые «почти правильные, но не совсем».
Это «почти» ведет ко второй проблеме, которую назвали 45%«отладка кода, сгенерированного ИИ, отнимает больше времени», чем его написание с нуля.

Знакомо, не правда ли? В итоге, разрабы готовы доверять ИИ рутину вроде поиска, но наотрез отказываются подпускать его к ответственному коду. Например, 76% даже не планируют использовать ИИ для деплоя и мониторинга.

🧑‍💻 Часть 3. Куда смотрят питонисты?

Один из самых интересных инсайтов — что хотят учить дальше те, кто уже освоил Python. И это... Rust и Go.

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

🤑 Часть 4. А что по деньгам?

Специализация на AI себя окупает. Медианная годовая зарплата для AI/ML-инженера в мире — $89,427. Это больше, чем у классических бэкендеров ($79,742) и дата-сайентистов ($82,910).
Please open Telegram to view this post
VIEW IN TELEGRAM
6421❤‍🔥1🙏1🏆1🆒1
Насколько сильно ИИ бьёт по программистам? 🤖

Тут Microsoft Research выкатили анализ на 200к реальных диалогов пользователей с Copilot, чтобы понять, как Generative AI на самом деле влияет на разные профессии.

Главный вывод: если смотреть на группы профессий, то «Computer and Mathematical» находится на 2-м месте по «применимости ИИ» (AI applicability score). 🥈 Выше только продажники.

Если посмотреть на конкретные профессии из топ-40 самых «затронутых», то картина такая:
▫️ CNC Tool Programmers — 8 место.
▫️ Математики — 20 место.
▫️ Data Scientists — 32 место.
▫️ Web Developers — 35 место.

Что это значит? Этот рейтинг учитывает не просто «можно ли использовать ИИ», а три вещи, основанные на реальных данных:
1. Как часто для задач этой профессии юзают Copilot.
2. Насколько успешно ИИ справляется с этими задачами.
3. Насколько глубоко ИИ покрывает рабочие активности (scope of impact).


При этом исследователи прямо отмечают, что их данные по Copilot отличаются от аналогичных по Claude.
В отличие от Claude, использование Copilot значительно меньше сфокусировано на программировании и математических задачах.

В том же Claude, судя по всему, доля чисто программистских задач ещё выше.

Ещё один важный момент из статьи: авторы разделяют, когда ИИ помогает человеку выполнить задачу (user goal), а когда ИI сам выполняет действие (AI action).

Для программистов и дата-сайентистов высок именно user goal — мы используем нейронки как мощный инструмент-помощник, а не как полную замену. Это скорее про расширение возможностей (augmentation), чем про прямую автоматизацию и потерю работы. Хотя, конечно, грань тонкая.

Ссылка на оригинал, там много графиков и таблиц: https://arxiv.org/abs/2507.07935
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍31🔥1😱1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22🤣832🐳2🤪21💯1
Один IT-гигант (тот самый, экстремистский) официально разрешил кандидатам юзать ИИ на технических собеседованиях.

Зачем они это делают? Официально, по двум причинам:
1️⃣ Это намного ближе к реальной работе, где все уже и так сидят на копайлотах.
2️⃣ Это делает бессмысленным и неэффективным классическое списывание.

Так что эра того самого «вайбкодинга» теперь официальная HR-политика одной из крупнейших компаний мира. Похоже, это последний гвоздь в крышку гроба классических алгоритмических интервью в духе «переверни мне бинарное дерево на бумажке».

Теперь главные вопросы на собеседовании будут не в том, «знаешь ли ты, как работает алгоритм Дейкстры?», а в том, «сможешь ли ты заставить нейронку сгенерить правильный код, найти в нём косяки, отладить и задеплоить, не уронив прод?»

Чувствуете разницу? Акцент смещается с написания кода на архитектурное мышление, ревью и умение управлять инструментами.

Богомерзкие алгособесы наконец-то вымрут? 👏

Источник: Wired
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3🤯3👏22