Что будет нового в Python 3.14? 🐍
Если коротко — Python продолжает войну с GIL и делает очередной шаг в сторону производительности.
Релиз запланирован на октябрь🗓
Что самого сочного нас ждёт:
1️⃣ Free-threaded Python теперь официально поддерживается (PEP 779).
Сборка без глобальной блокировки интерпретатора — больше не эксперимент. Да, пока это опционально и с небольшими потерями в однопотоке, но вектор задан.
2️⃣ Множественные интерпретаторы в стандартной библиотеке (PEP 734).
Еще один гвоздь в крышку гроба GIL. Теперь можно запускать изолированные копии Python в одном процессе, используя
3️⃣ T-строки (PEP 750).
Новый вид строк с префиксом
4️⃣ Удаленная отладка с PDB (PEP 768).
Теперь можно подключить
А ещё отложенные аннотации (прощай,
Больше подробностей здесь◀️
Доживём до того, как шутки про медленный Python останутся в прошлом?
Если коротко — Python продолжает войну с GIL и делает очередной шаг в сторону производительности.
Релиз запланирован на октябрь
Что самого сочного нас ждёт:
1️⃣ Free-threaded Python теперь официально поддерживается (PEP 779).
Сборка без глобальной блокировки интерпретатора — больше не эксперимент. Да, пока это опционально и с небольшими потерями в однопотоке, но вектор задан.
2️⃣ Множественные интерпретаторы в стандартной библиотеке (PEP 734).
Еще один гвоздь в крышку гроба GIL. Теперь можно запускать изолированные копии Python в одном процессе, используя
concurrent.interpreters
. Это как multiprocessing
, только легковеснее и эффективнее. Мощнейший инструмент для CPU-bound задач.3️⃣ T-строки (PEP 750).
Новый вид строк с префиксом
t"..."
. В отличие от f-строк, они не вычисляются сразу, а создают объект-шаблон. Это удобно для безопасной генерации HTML, SQL и других DSL. Больше никаких случайных XSS-уязвимостей из-за кривых конкатенаций.4️⃣ Удаленная отладка с PDB (PEP 768).
Теперь можно подключить
pdb
к любому запущенному Python-процессу по его PID: python -m pdb -p 12345
. Отлаживать зависшие в проде приложения станет проще.А ещё отложенные аннотации (прощай,
from __future__ import annotations
), Zstandard из коробки и улучшенная подсветка синтаксиса в REPL.Больше подробностей здесь
Доживём до того, как шутки про медленный Python останутся в прошлом?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍2 2⚡1🔥1🥰1🎉1🙏1🍾1
🔮 Прогнозирование временных рядов в Python: от хаоса в данных к работающей модели SARIMA
Как изменятся продажи? Какой спрос ждать к праздникам? Вечные вопросы, на которые бизнесу нужны ответы. И чаще всего решение кроется в анализе временных рядов.
Вот вам подробный гайд, где мы возьмём хрестоматийный, но показательный датасет и пройдём весь путь от подготовки данных до построения предсказательной модели.
Что внутри:
1️⃣ Загружаем и смотрим на данные. Учимся видеть тренд и сезонность.
2️⃣ Узнаём, почему «нестационарный» ряд — это плохо, и как его исправить с помощью логарифмов и дифференцирования.
3️⃣ Разбираемся, как подбирать параметры в SARIMA при помощи ACF/PACF графиков.
4️⃣ Строим и проверяем полученную модель.
Как изменятся продажи? Какой спрос ждать к праздникам? Вечные вопросы, на которые бизнесу нужны ответы. И чаще всего решение кроется в анализе временных рядов.
Вот вам подробный гайд, где мы возьмём хрестоматийный, но показательный датасет и пройдём весь путь от подготовки данных до построения предсказательной модели.
Что внутри:
1️⃣ Загружаем и смотрим на данные. Учимся видеть тренд и сезонность.
2️⃣ Узнаём, почему «нестационарный» ряд — это плохо, и как его исправить с помощью логарифмов и дифференцирования.
3️⃣ Разбираемся, как подбирать параметры в SARIMA при помощи ACF/PACF графиков.
4️⃣ Строим и проверяем полученную модель.
🔥9 3❤1⚡1👍1🎉1🙏1
✍️ Решения вчерашней задачи
Задачку никто не решил 🥹 Но она была не из простых. Давайте посмотрим, как можно было.
💡 Оптимальное решение: умный бэктрекинг с умом
Этот метод по своей сути — умный перебор. Мы пытаемся рекурсивно "пристроить" каждый слиток в одну из
🧠 Как это работает?
1. Первым делом считаем общую сумму
2. Сортируем слитки по убыванию
3. Рекурсивный поиск (бэктрекинг):
- Функция
- Она перебирает все
- Если после добавления сумма в корзине не превышает
- Если вызов вернул
- Если нет — мы "откатываем" изменение (убираем слиток из корзины) и пробуем положить его в следующую.
4. Оптимизация:
Эта строчка означает: если мы попробовали положить слиток в пустую корзину и эта попытка не привела к итоговому решению, то нет никакого смысла пробовать класть этот же слиток в другие пустые корзины. Они ведь ничем не отличаются! Это простое условие радикально сокращает пространство поиска.
Временная сложность:
А пространственная сложность:
Наверное, одна из самых сложных задачек, которые тут были 😏
Задачку никто не решил 🥹 Но она была не из простых. Давайте посмотрим, как можно было.
💡 Оптимальное решение: умный бэктрекинг с умом
Этот метод по своей сути — умный перебор. Мы пытаемся рекурсивно "пристроить" каждый слиток в одну из
k
корзин, но с важными оптимизациями, которые отсекают заведомо проигрышные пути.def can_partition(nums: list[int], k: int) -> bool:
total_sum = sum(nums)
if total_sum % k != 0:
return False
target_sum = total_sum // k
subsets = [0] * k
nums.sort(reverse=True)
def backtrack(index):
if index == len(nums):
return True
for i in range(k):
if subsets[i] + nums[index] <= target_sum:
subsets[i] += nums[index]
if backtrack(index + 1):
return True
subsets[i] -= nums[index]
if subsets[i] == 0:
break
return False
return backtrack(0)
🧠 Как это работает?
1. Первым делом считаем общую сумму
total_sum
. Если она не делится на k
нацело, то поделить слитки на равные по весу группы невозможно. Сразу возвращаем False
.2. Сортируем слитки по убыванию
nums.sort(reverse=True)
. Пытаясь разместить сначала самые тяжелые слитки, мы гораздо быстрее обнаруживаем "тупиковые" ветви комбинаций и отбрасываем их, экономя уйму времени.3. Рекурсивный поиск (бэктрекинг):
- Функция
backtrack
пытается разместить каждый слиток, начиная с index = 0
.- Она перебирает все
k
"корзин" (subsets
) и пробует добавить текущий слиток nums[index]
.- Если после добавления сумма в корзине не превышает
target_sum
, мы рекурсивно вызываем backtrack
для следующего слитка.- Если вызов вернул
True
— ура, решение найдено!- Если нет — мы "откатываем" изменение (убираем слиток из корзины) и пробуем положить его в следующую.
4. Оптимизация:
if subsets[i] == 0: break
.Эта строчка означает: если мы попробовали положить слиток в пустую корзину и эта попытка не привела к итоговому решению, то нет никакого смысла пробовать класть этот же слиток в другие пустые корзины. Они ведь ничем не отличаются! Это простое условие радикально сокращает пространство поиска.
Временная сложность:
O(k^N)
, где N
— количество слитков. Задача относится к классу NP-полных, поэтому решения с полиномиальным временем (вроде O(N^2)
) не существует. Однако благодаря нашим оптимизациям, на реальных данных алгоритм работает значительно быстрее, чем его худшая оценка.А пространственная сложность:
O(N + k)
. В основном определяется глубиной рекурсии (O(N)
) и хранением "корзин" (O(k)
).Наверное, одна из самых сложных задачек, которые тут были 😏
Telegram
PythonTalk
Алгоритмическая задачка 🐍
Представьте, что вы нашли сокровищницу! 🐉💰 В ней — россыпь золотых слитков разного веса. Ваша задача как самого умного в команде — определить, можно ли поделить всю добычу по-честному на k равных долей для каждого участника.
📋…
Представьте, что вы нашли сокровищницу! 🐉💰 В ней — россыпь золотых слитков разного веса. Ваша задача как самого умного в команде — определить, можно ли поделить всю добычу по-честному на k равных долей для каждого участника.
📋…
👍3💯2❤1🎉1🙏1
Трон опенсорс-моделей снова занят 🤴
Недолго Kimi K2 носил корону. Китайцы из Qwen выкатили обнову Qwen3-235B-A22B-Instruct-2507, которая их подвинула.
Самое интересное даже не в цифрах, а в подходе. Они официально разделили модели на Instruct и Reasoning. Эта — чистый Instruct. Зачем? Да потому что, по их словам, гибриды пока получаются "ни рыба, ни мясо" и проигрывают специализированным версиям.
Что на счёт метрик в задачах программирования?
💻 LiveCodeBench: 51.8. Для понимания: у Kimi K2 — 48.9, у Claude Opus — 44.6. Разница не в пределах погрешности, а вполне себе ощутимая.
🌍 MultiPL-E (код на разных языках): 87.9. Это уровень Claude Opus, который многие считают эталоном.
🤖 Aider-Polyglot (агентное использование в IDE): 57.3. Тут она чуть уступает Claude (70.7), но всё ещё наравне с другими топами и показывает, что заточена под реальные задачи, а не только синтетические тесты.
🚀 Как им это удаётся?
Вся магия в MoE (Mixture of Experts). Из 235 миллиардов параметров в любой момент времени активны только 22 миллиарда. Это делает модель гораздо более лёгкой и быстрой на инференсе, чем можно было бы подумать. А главное — это прямой намёк, что скоро эту мощь дистиллируют в модели поменьше. Так что праздник на улице простых смертных с одной-двумя RTX на борту точно будет.
Ещё они мощно вкладываются в агентное применение и tool calling через свою библиотеку Qwen-Agent. То есть её можно не просто просить написать функцию, а встраивать в сложные рабочие процессы, давать доступ к инструментам и заставлять работать, а не только болтать.
Погонять бесплатно тут | Веса на Hugging Face
Недолго Kimi K2 носил корону. Китайцы из Qwen выкатили обнову Qwen3-235B-A22B-Instruct-2507, которая их подвинула.
Самое интересное даже не в цифрах, а в подходе. Они официально разделили модели на Instruct и Reasoning. Эта — чистый Instruct. Зачем? Да потому что, по их словам, гибриды пока получаются "ни рыба, ни мясо" и проигрывают специализированным версиям.
Что на счёт метрик в задачах программирования?
🌍 MultiPL-E (код на разных языках): 87.9. Это уровень Claude Opus, который многие считают эталоном.
🚀 Как им это удаётся?
Вся магия в MoE (Mixture of Experts). Из 235 миллиардов параметров в любой момент времени активны только 22 миллиарда. Это делает модель гораздо более лёгкой и быстрой на инференсе, чем можно было бы подумать. А главное — это прямой намёк, что скоро эту мощь дистиллируют в модели поменьше. Так что праздник на улице простых смертных с одной-двумя RTX на борту точно будет.
Ещё они мощно вкладываются в агентное применение и tool calling через свою библиотеку Qwen-Agent. То есть её можно не просто просить написать функцию, а встраивать в сложные рабочие процессы, давать доступ к инструментам и заставлять работать, а не только болтать.
Погонять бесплатно тут | Веса на Hugging Face
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🎉1🙏1🏆1
Нейронка-исследователь от Стэнфорда 🧑🏻🔬
Наткнулся тут на проект от ребят из Стэнфорда —
Самое интересное, конечно, как оно под капотом работает. Вместо того чтобы тупо просить LLM задавать вопросы, они сделали хитрее:
1️⃣ Сначала система находит похожие статьи, чтобы понять, с каких разных точек зрения (перспектив) можно посмотреть на тему.
2️⃣ А потом симулирует диалог между автором и экспертом, который «заземлён» на найденные интернет-источники. Это позволяет задавать более глубокие и осмысленные вопросы.
Сами авторы, конечно, честно признаются, что на выходе получается не готовая к публикации статья, а скорее очень хороший черновик для дальнейшей работы. Так что заявления в стиле «ИИ пишет научные статьи как PhD» — это, как обычно, заигрывания с мечтами людей 🌚
Что ещё крутого:
▫️ Есть фича Co-STORM, где человек может влезть в процесс и направить дискуссию LLM-агентов в нужное русло.
▫️ Всё это дело опенсорсное и ставится через
▫️ Можно под капотом менять и LLM (через
В общем, инструмент для автоматизации ресёрча выглядит как минимум любопытно. Особенно для тех, кто устал от бесконечного гуглежа на старте изучения новой темы.
👉🏻 GitHub проекта
👉🏻 Попробовать онлайн
Наткнулся тут на проект от ребят из Стэнфорда —
STORM
. Это LLM-система, которая по заданной теме сама лезет в интернет, проводит ресёрч и на выходе генерирует подробную статью в стиле Википедии, сразу со ссылками на источники.Самое интересное, конечно, как оно под капотом работает. Вместо того чтобы тупо просить LLM задавать вопросы, они сделали хитрее:
1️⃣ Сначала система находит похожие статьи, чтобы понять, с каких разных точек зрения (перспектив) можно посмотреть на тему.
2️⃣ А потом симулирует диалог между автором и экспертом, который «заземлён» на найденные интернет-источники. Это позволяет задавать более глубокие и осмысленные вопросы.
Сами авторы, конечно, честно признаются, что на выходе получается не готовая к публикации статья, а скорее очень хороший черновик для дальнейшей работы. Так что заявления в стиле «ИИ пишет научные статьи как PhD» — это, как обычно, заигрывания с мечтами людей 🌚
Что ещё крутого:
▫️ Есть фича Co-STORM, где человек может влезть в процесс и направить дискуссию LLM-агентов в нужное русло.
▫️ Всё это дело опенсорсное и ставится через
pip install knowledge-storm
.▫️ Можно под капотом менять и LLM (через
litellm
), и поисковые движки.В общем, инструмент для автоматизации ресёрча выглядит как минимум любопытно. Особенно для тех, кто устал от бесконечного гуглежа на старте изучения новой темы.
👉🏻 GitHub проекта
👉🏻 Попробовать онлайн
👍3❤2🔥2 2🙏1👨💻1
КИТАЙСКИЙ КОНВЕЙЕР НЕ ОСТАНОВИТЬ 🇨🇳
Не успела вчера выйти новость про обновление Qwen3-235B, как китайцы выкатили новую модель.
И на этот раз они не просто обновили флагман, а выкатили узкоспециализированный инструмент для программирования — Qwen3-Coder. И вновь занимают топ🏆
Что самое важное, кроме очередной победы на бенчмарках:
1️⃣ Агентность > Генерация. Это главный тренд. Модель натаскивали не просто на написание кода по промпту, а на решение комплексных задач в несколько шагов (Long-Horizon RL). Её учили работать с инструментами, анализировать фидбек и самостоятельно закрывать тикеты на SWE-Bench.
2️⃣ Практичность, а не синтетика. Они прямо говорят, что забили на типовые задачки в духе соревновательного программирования и сфокусировались на RL-тренировке на реальных, повседневных задачах программистов. Для этого развернули 20 000 параллельных окружений на своей облачной инфраструктуре. Масштаб впечатляет.
3️⃣ Инструменты "из коробки". Вместе с моделью выложили и CLI-агента
Более того, модель можно подцепить к
Погонять бесплатно тут: https://chat.qwen.ai/
Репа с CLI-агентом: https://github.com/QwenLM/qwen-code
Не успела вчера выйти новость про обновление Qwen3-235B, как китайцы выкатили новую модель.
И на этот раз они не просто обновили флагман, а выкатили узкоспециализированный инструмент для программирования — Qwen3-Coder. И вновь занимают топ
Что самое важное, кроме очередной победы на бенчмарках:
1️⃣ Агентность > Генерация. Это главный тренд. Модель натаскивали не просто на написание кода по промпту, а на решение комплексных задач в несколько шагов (Long-Horizon RL). Её учили работать с инструментами, анализировать фидбек и самостоятельно закрывать тикеты на SWE-Bench.
2️⃣ Практичность, а не синтетика. Они прямо говорят, что забили на типовые задачки в духе соревновательного программирования и сфокусировались на RL-тренировке на реальных, повседневных задачах программистов. Для этого развернули 20 000 параллельных окружений на своей облачной инфраструктуре. Масштаб впечатляет.
3️⃣ Инструменты "из коробки". Вместе с моделью выложили и CLI-агента
Qwen Code
— допиленный форк Gemini Code
. Устанавливается одной командой и готов к работе.npm i -g @qwen-code/qwen-code
Более того, модель можно подцепить к
Claude Code
от Anthropic. То есть её встраивают в уже существующую экосистему, а не заставляют всех переходить на что-то новое. Погонять бесплатно тут: https://chat.qwen.ai/
Репа с CLI-агентом: https://github.com/QwenLM/qwen-code
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥6 2⚡1🙏1👨💻1
🎉3⚡2👍2💯2🔥1🙏1
Картина, конечно, интересная
1. Деньги
Разрыв между тем, что хотят соискатели, и тем, что готовы платить компании, не просто есть — он растёт.
▫️ Ожидаемые зарплаты (фиолетовая линия) подросли со 100к до 110к. Аппетиты не стоят на месте.
▫️ Предлагаемые (красная линия) замерли на отметке 90к и не двигаются.
То есть, пропасть между хотелками и реальностью за полгода увеличилась с 15к до 20к.
2. Конкуренция
hh.индекс — это количество резюме на одну вакансию.
▫️В прошлом году (синяя линия) было в среднем 7-8 человек на место. Рынок работодателя, но терпимо.
▫️В этом году (зеленая линия) показатель улетел в космос: с 9.9 в январе до 12.5 в июне.
По классификации самого hh.ru, 12+ — это «крайне высокий уровень конкуренции».
Итого, что мы имеем:
Людей, желающих «войти в айти», стало КРАТНО больше. При этом их зарплатные ожидания растут, а вот готовность бизнеса платить — нет.
Получается какой-то идеальный шторм. Хотелок больше, денег столько же (если не меньше), а на каждое место теперь претендует целая толпа.
Что будет дальше?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯5💔3😭2👻2😁1🤔1😱1🌚1🍌1 1 1
Лекс Фридман взял интервью у Демиса Хассабиса — сооснователя и CEO Google DeepMind.
Получилось интересно. Что касается программирования, то он высказал такие мысли:
Think about it🧠
Получилось интересно. Что касается программирования, то он высказал такие мысли:
ИИ-системы исключительно хорошо справляются с программированием.
В ближайшие 5-10 лет программисты, которые примут и освоят эти технологии, станут сверхчеловечески продуктивными (в 10 раз эффективнее, чем сейчас)
Фокус работы программистов сместится: вместо написания всего кода вручную, они будут определять архитектуру, формулировать задачи, направлять "ai-помощников" и проверять качество сгенерированного кода.
Некоторые области программирования (например, фронтенд) станут более поддающимися автоматической генерации ИИ, тогда как другие (проектирование игровых движков, высокопроизводительное программирование, руководство сложными системами) останутся для человека.
Это изменение будет в 10 раз масштабнее и в 10 раз быстрее, чем промышленная революция. Программистам придется переучиваться и адаптировать свои текущие навыки. Появятся новые профессии, которые мы сегодня даже не можем представить.
Think about it
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Demis Hassabis: Future of AI, Simulating Reality, Physics and Video Games | Lex Fridman Podcast #475
Demis Hassabis is the CEO of Google DeepMind and Nobel Prize winner for his groundbreaking work in protein structure prediction using AI.
Thank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep475-sb
See below for timestamps,…
Thank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep475-sb
See below for timestamps,…
🤔6⚡2❤1🔥1🙏1 1
YouTube
Let's reproduce GPT-2 (124M)
We reproduce the GPT-2 (124M) from scratch. This video covers the whole process: First we build the GPT-2 network, then we optimize its training to be really fast, then we set up the training run following the GPT-2 and GPT-3 paper and their hyperparameters…
Создаём GPT с нуля: фундаментальный туториал от Карпатого 🧠
Есть контент, который не стареет. Например, туториал от Андрея Карпатого (сооснователь OpenAI, экс-директор по AI в Tesla), где он с нуля на Python собирает и тренирует GPT от начала до конца: от определения
Да, в видео разбирают GPT-2, но его главный плюс, а не минус. Именно эту модель, в отличие от современных гигантов, можно реально натренировать на одной домашней GPU, пройдя своими руками весь путь от и до. При этом фундаментальные принципы, лежащие в основе современных LLM, там раскрыты полностью.
А код доступен на GitHub 🐍
Есть контент, который не стареет. Например, туториал от Андрея Карпатого (сооснователь OpenAI, экс-директор по AI в Tesla), где он с нуля на Python собирает и тренирует GPT от начала до конца: от определения
nn.Module
и оптимизации с помощью Flash Attention до настройки гиперпараметров и оценки результатов.Да, в видео разбирают GPT-2, но его главный плюс, а не минус. Именно эту модель, в отличие от современных гигантов, можно реально натренировать на одной домашней GPU, пройдя своими руками весь путь от и до. При этом фундаментальные принципы, лежащие в основе современных LLM, там раскрыты полностью.
А код доступен на GitHub 🐍
❤9👍4🔥3⚡1
ТРЕТИЙ УДАР КИТАЙСКОГО МОЛОТА 🔨
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
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
👍9 3⚡1🔥1🏆1
Forget python, it turned out that spreadsheet is all you need
Сложно понимать, как писать нейронки на Python?
Чувак в Excel (!) написал языковую модель на 85к параметров. Как раз на основе структуры, которую реализует Андрей Карпатый.
Для тех, кто не может в голове уложить, как все эти матрицы в трансформерах перемножаются, — это просто находка. Можно буквально пальцем тыкнуть в любую ячейку и увидеть, какая формула за ней стоит и откуда берутся все эти эмбеддинги, self-attention и прочая магия.
Никаких запутанных классов и абстракций, только цветные ячейки:
🟣 Фиолетовые — параметры модели, которые можно крутить.
🟢 Зелёные — данные, которые текут по пайплайну.
🟠 Оранжевые — промежуточные расчёты для ясности.
Автор так и пишет:
А вы говорите, что табличные редакторы дата-сайентистам уже не нужны 🌝
Сложно понимать, как писать нейронки на Python?
Чувак в Excel (!) написал языковую модель на 85к параметров. Как раз на основе структуры, которую реализует Андрей Карпатый.
Для тех, кто не может в голове уложить, как все эти матрицы в трансформерах перемножаются, — это просто находка. Можно буквально пальцем тыкнуть в любую ячейку и увидеть, какая формула за ней стоит и откуда берутся все эти эмбеддинги, self-attention и прочая магия.
Никаких запутанных классов и абстракций, только цветные ячейки:
🟣 Фиолетовые — параметры модели, которые можно крутить.
🟢 Зелёные — данные, которые текут по пайплайну.
🟠 Оранжевые — промежуточные расчёты для ясности.
Автор так и пишет:
Forget python, it turned out that spreadsheet is all you need
А вы говорите, что табличные редакторы дата-сайентистам уже не нужны 🌝
👍10😁6😱3🔥2🤔1🙏1
Алгоритмическая задачка 🐍
Представьте, что вы — квант в крутом хедж-фонде. Ваш босс дал вам задание: найти самый длинный период "идеальной волатильности" в котировках акций.
Это когда цена то падает, то растет, то снова падает... и так далее.
🐍 Условие задачи
Написать функцию, которая принимает список целых чисел (цены акций) и возвращает максимальную длину непрерывного подсписка, в котором знаки сравнения строго чередуются.
Примеры для ясности 👇
Пример 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
- Объяснение: Равные элементы прерывают последовательность, так как сравнение не является ни строгим > ни строгим <.
Обойдемся одним циклом или понадобится что-то хитрее? 😉
Представьте, что вы — квант в крутом хедж-фонде. Ваш босс дал вам задание: найти самый длинный период "идеальной волатильности" в котировках акций.
Это когда цена то падает, то растет, то снова падает... и так далее.
🐍 Условие задачи
Написать функцию, которая принимает список целых чисел (цены акций) и возвращает максимальную длину непрерывного подсписка, в котором знаки сравнения строго чередуются.
> То есть, последовательность должна быть вида: 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
- Объяснение: Равные элементы прерывают последовательность, так как сравнение не является ни строгим > ни строгим <.
Обойдемся одним циклом или понадобится что-то хитрее? 😉
Бесплатный учебник по Deep Learning от MIT Press с 68-ю ноутбуками 📕
Фундаментальный учебник «Understanding Deep Learning» от Саймона Принса и MIT Press это:
- Книга: Полный PDF на 500+ страниц, покрывающий все от основ до диффузионных моделей и трансформеров.
- 68(!) Python-ноутбуков: К каждой главе прилагаются ноутбуки с кодом. Можно сразу запускать и ковыряться.
И да, на английском.
👉🏻 Скачать всё можно здесь
Крутота👊
Фундаментальный учебник «Understanding Deep Learning» от Саймона Принса и MIT Press это:
- Книга: Полный PDF на 500+ страниц, покрывающий все от основ до диффузионных моделей и трансформеров.
- 68(!) Python-ноутбуков: К каждой главе прилагаются ноутбуки с кодом. Можно сразу запускать и ковыряться.
И да, на английском.
👉🏻 Скачать всё можно здесь
Крутота
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6❤3 3⚡1🎉1👨💻1
👨💻
Вредная не потому, что она врёт, а потому, что создаёт опасную иллюзию контроля.
Вы видите аккуратную табличку с количеством пропусков и думаете: «Окей, я всё знаю». Но на самом деле вы не знаете ничего. Знать, сколько данных пропущено — это первый класс, вторая четверть. Гораздо важнее понимать, КАК они пропущены.
Есть ли в пропусках система? Они случайны или нет? Пропуски в столбце А связаны с пропусками в столбце Б?
Простой подсчёт NaN на эти вопросы не ответит. Чтобы перейти от поверхностного взгляда к глубокому пониманию, нужен более глубокий инструмент. И он есть — это библиотека
В ней разные полезные визуализации, например:
🔬
📊
🗺
Вот вам руководство по
👉🏻 Пропуски в данных — не приговор: Полное руководство по визуализации и анализу с missingno в Python
Работаем с пропусками умнее🧠
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👍4❤2⚡1🙏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
Telegram
PythonTalk
Алгоритмическая задачка 🐍
Представьте, что вы — квант в крутом хедж-фонде. Ваш босс дал вам задание: найти самый длинный период "идеальной волатильности" в котировках акций.
Это когда цена то падает, то растет, то снова падает... и так далее.
🐍 Условие…
Представьте, что вы — квант в крутом хедж-фонде. Ваш босс дал вам задание: найти самый длинный период "идеальной волатильности" в котировках акций.
Это когда цена то падает, то растет, то снова падает... и так далее.
🐍 Условие…
❤5👍4🔥2🐳2⚡1 1
🇨🇳 Китайцы снова разрывают! Выкатили GLM-4.5 🐲
Я изучил их анонс и доки, вот короткая выжимка:
▫️Что это? Здоровенная MoE-модель (355B параметров), 128к контекста. Главное — полный опенсорс под лицензией MIT. Можно брать и использовать в коммерческих проектах.
▫️В чем фишка? Заточена под «агентов». По демкам, она может по команде сгенерить рабочую игру или написать сайт с нуля.
▫️Она реально так хороша? Бенчмарки на уровне топов. Не «убийца» всего и вся, но, возможно, один из самых мощных открытых ИИ-агентов на сегодня.
▫️А запустить можно? Только если у вас есть доступ к серверу с пачкой H100. На игровом ноуте пока не взлетит. 🫠
🔗 Первоисточники для самостоятельного изучения:
- Официальный анонс
- Репозиторий на GitHub
- Модели на HuggingFace
Разбор архитектуры — что там с MoE, их RL-фреймворком slime и как это все-таки запустить тут:
👉 Читать полный разбор
Я изучил их анонс и доки, вот короткая выжимка:
▫️Что это? Здоровенная MoE-модель (355B параметров), 128к контекста. Главное — полный опенсорс под лицензией MIT. Можно брать и использовать в коммерческих проектах.
▫️В чем фишка? Заточена под «агентов». По демкам, она может по команде сгенерить рабочую игру или написать сайт с нуля.
▫️Она реально так хороша? Бенчмарки на уровне топов. Не «убийца» всего и вся, но, возможно, один из самых мощных открытых ИИ-агентов на сегодня.
▫️А запустить можно? Только если у вас есть доступ к серверу с пачкой H100. На игровом ноуте пока не взлетит. 🫠
- Официальный анонс
- Репозиторий на GitHub
- Модели на HuggingFace
Разбор архитектуры — что там с MoE, их RL-фреймворком slime и как это все-таки запустить тут:
👉 Читать полный разбор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6⚡3❤2🔥1🙏1 1