Forwarded from Aspiring Data Science (Anatoly Alekseev)
#polars #pandas
Запостил мини-серию о polars по сравнению с pandas:
Преимущества polars
Отличия от pandas
Недостатки polars
Заключение.
Несмотря на его сыроватость, по умолчанию теперь всегда буду использовать в своих ds-проектах polars. Людям, которые пишут pandas, наплевать на производительность, я это знаю по личному общению с одним таким человеком. Их принцип Кнутовкий, premature optimization is the root of all evil, поэтому, чтобы избежать зла, они не оптимизируют вообще. С таким кредо вам не библиотеки для работы с данными писать, уважаемые. Ну вот история вас и оставляет на обочине.
Всё же, полностью от пандас отказываться неразумно, часто там определённые вещи можно закодить быстрее в силу большей гибкости (axis) или наличия индексов. Но, как правило, я pandas в этом ключе использую лишь для маленьких фреймов. Ещё он понимает больше форматов данных. И у поларса к нему есть быстрый интероп.
Так что используйте оба, но приоритет отдавайте polars. Жизнь слишком коротка, чтобы грузить лишь 1 ядро CPU из 100 )
Из новостей: компания Риччи работает над polars cloud, это будет что-то типа dask/coiled, похоже.
Запостил мини-серию о polars по сравнению с pandas:
Преимущества polars
Отличия от pandas
Недостатки polars
Заключение.
Несмотря на его сыроватость, по умолчанию теперь всегда буду использовать в своих ds-проектах polars. Людям, которые пишут pandas, наплевать на производительность, я это знаю по личному общению с одним таким человеком. Их принцип Кнутовкий, premature optimization is the root of all evil, поэтому, чтобы избежать зла, они не оптимизируют вообще. С таким кредо вам не библиотеки для работы с данными писать, уважаемые. Ну вот история вас и оставляет на обочине.
Всё же, полностью от пандас отказываться неразумно, часто там определённые вещи можно закодить быстрее в силу большей гибкости (axis) или наличия индексов. Но, как правило, я pandas в этом ключе использую лишь для маленьких фреймов. Ещё он понимает больше форматов данных. И у поларса к нему есть быстрый интероп.
Так что используйте оба, но приоритет отдавайте polars. Жизнь слишком коротка, чтобы грузить лишь 1 ядро CPU из 100 )
Из новостей: компания Риччи работает над polars cloud, это будет что-то типа dask/coiled, похоже.
Telegram
Aspiring Data Science
#polars #pandas
Сравнительно недавно начал по-настоящему изучать поларс, потому что пандас уже задолбал своей неповоротливостью. Хочу поделиться некоторыми замечаниями о фреймворке.
Прежде всего, в глаза бросается жёсткая логика в наименовании методов.…
Сравнительно недавно начал по-настоящему изучать поларс, потому что пандас уже задолбал своей неповоротливостью. Хочу поделиться некоторыми замечаниями о фреймворке.
Прежде всего, в глаза бросается жёсткая логика в наименовании методов.…
Forwarded from EasyData
Veroyatnosti_i_nepriatnosti_Matematika_povsednevnoy_zhizni_Samoylenko.pdf
14.1 MB
Ну и раз уж речь зашла про математическую литературу, держите в дополнение к статистике ещё одно любопытное издание, посвящённое теории вероятности - книгу Сергея Самойленко "Вероятности и неприятности"🫴
Концентрация математики и формул повыше, чем у В. Савельева, но жизненные примеры и ассоциации не менее интересны!😊
#математика@data_easy
Концентрация математики и формул повыше, чем у В. Савельева, но жизненные примеры и ассоциации не менее интересны!😊
#математика@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from tldr_tany (Таня Савельева)
Про сравнивать себя с другими
1. Сравнивать себя с другими - нормально. Мы все социальные животные и постоянно это делаем
2. Более того, если вы чувствуете зависть - это очень круто. Я лично прям цепляюсь за это чувство и как холодную воду, пью большими глотками, и иногда его ищу специально. Потом начинаю исследовать - что именно вызывает зависть и как мне это получить. Сколько там картинки, сколько правды и сколько моих домыслов. И чем мне придется пожертвовать, чтобы это получить
3. Важно, чтобы это чувство не разрушало, а мотивировало, добавляло такой азарт. Это хорошее топливо. Пытаться себя пиздить за это и внушать себе, что в мире нет никакой конкуренции и одно принятие и мы все единое - достаточно тупо, потому что это не так. Если вы не монах
Еще полезно помнить, что все себя с кем-то сравнивают, для каждого человека найдется комната, где он будет завидовать всем. Даже для условного Маска думаю есть такая комната. И для каждого человека, особенно если он не из Индии, комната, где все будут завидовать ему. Поэтому если вы никому ни в чем не завидуете вообще - возможно время куда-то двигаться
4. Хорошо себя сравнивать с людьми вашего калибра и целей. Нет смылса сравнивать себя с дочкой Билла Гейтса или Аркадия Новикова и залипать на нее - вы просто изначально не там. Или не любить физ нагрузки и завидовать балерине. Или быть рискофобом, хейтить казино и завидовать деньгами человека, который делает гэмблинг. Поэтому я ищу кого-то с похожими стартовыми условиями и целями и ценностями
5. Ну и главное - зависть и сравнение это отличный компас в сторону куда мне - через вот это покалывающее ощущение почти невозможно себя наебать, она не врет. Поэтому как и со всеми условно плохими чувствами - умение их использовать на благо себе это оч полезно. Хуже, если их нет. Из такого сильно дольше выходить и понимать, а что нам надо от жизни собственно. Поэтому наличие этого индикатора - уже половина успеха
1. Сравнивать себя с другими - нормально. Мы все социальные животные и постоянно это делаем
2. Более того, если вы чувствуете зависть - это очень круто. Я лично прям цепляюсь за это чувство и как холодную воду, пью большими глотками, и иногда его ищу специально. Потом начинаю исследовать - что именно вызывает зависть и как мне это получить. Сколько там картинки, сколько правды и сколько моих домыслов. И чем мне придется пожертвовать, чтобы это получить
3. Важно, чтобы это чувство не разрушало, а мотивировало, добавляло такой азарт. Это хорошее топливо. Пытаться себя пиздить за это и внушать себе, что в мире нет никакой конкуренции и одно принятие и мы все единое - достаточно тупо, потому что это не так. Если вы не монах
Еще полезно помнить, что все себя с кем-то сравнивают, для каждого человека найдется комната, где он будет завидовать всем. Даже для условного Маска думаю есть такая комната. И для каждого человека, особенно если он не из Индии, комната, где все будут завидовать ему. Поэтому если вы никому ни в чем не завидуете вообще - возможно время куда-то двигаться
4. Хорошо себя сравнивать с людьми вашего калибра и целей. Нет смылса сравнивать себя с дочкой Билла Гейтса или Аркадия Новикова и залипать на нее - вы просто изначально не там. Или не любить физ нагрузки и завидовать балерине. Или быть рискофобом, хейтить казино и завидовать деньгами человека, который делает гэмблинг. Поэтому я ищу кого-то с похожими стартовыми условиями и целями и ценностями
5. Ну и главное - зависть и сравнение это отличный компас в сторону куда мне - через вот это покалывающее ощущение почти невозможно себя наебать, она не врет. Поэтому как и со всеми условно плохими чувствами - умение их использовать на благо себе это оч полезно. Хуже, если их нет. Из такого сильно дольше выходить и понимать, а что нам надо от жизни собственно. Поэтому наличие этого индикатора - уже половина успеха
Forwarded from что-то на DL-ском
Вышел проект от Рика Рубина и Anthropic. Не туториал. Не инструкция. Это 81 глава с короткими тезисами о вайбкодинге как новом искусстве.
Да, оно красивое, но если вдуматься глубже этот проект буквально показывает тенденцию к легкосте, простоте, расслабленности сейчас. Раньше код был каким-то строгим, функциональным, вылизанным, теперь на смену приходит vibe coding и выигрывает тот, кто просто чувствует🤌🏼
Для меня лично это символизм перехода мира в такой стиль, а не только кода. Раньше – сложный контент, сейчас – легкий дефомин. Раньше – PowerPoint, сейчас – досочки в notion. Даже люди на улице стали расслабленнее. Все, что было раньше какое-то в стиле замятина «мы» (будет красивым примером, потому что я недавно его читала))):
На меня проект сработал. Я ЗаДУмОлАсЬ, прикреплю вам красивые визуализации позалипать еще))
Да, оно красивое, но если вдуматься глубже этот проект буквально показывает тенденцию к легкосте, простоте, расслабленности сейчас. Раньше код был каким-то строгим, функциональным, вылизанным, теперь на смену приходит vibe coding и выигрывает тот, кто просто чувствует🤌🏼
Do nothing and allow all things to be done
When Source is lost, next comes goodness… next comes morality… next comes ritual
The Vibe Coder makes no attempt to be powerful, thus he is truly powerful
Для меня лично это символизм перехода мира в такой стиль, а не только кода. Раньше – сложный контент, сейчас – легкий дефомин. Раньше – PowerPoint, сейчас – досочки в notion. Даже люди на улице стали расслабленнее. Все, что было раньше какое-то в стиле замятина «мы» (будет красивым примером, потому что я недавно его читала))):
Почему танец красив? Потому что это несвободное движение… весь глубокий смысл танца — в идеальной несвободе
Я мечтал формулами… уравнение с трансцендентными величинами
На меня проект сработал. Я ЗаДУмОлАсЬ, прикреплю вам красивые визуализации позалипать еще))
Forwarded from что-то на DL-ском
Прикол, спустя 1,5 года (?) выложили LLM для временных рядов
🤗hf docs
🖥 Примеры в ноутбуках
Но вообще, раз уж я выкладываю, что TimesFM выложили, грех не сказать, что вообще-то 18 марта на hf выкладывали уже что-то более похожее на SOTA LLM в временных рядах: Toto
В отличие от TimesFM работает не с патчами, а с вектором значений переменных
🔭 Attention:
Из технического еще интересно, что ввели новую схему внимания Proportional Factorized Space-Time Attention То есть от обычного внимания в decoder-only это отличается тем, что разделяют внимание на два аспекта:
💛 Вдоль времени (temporal attention) — как эволюционирует одна переменная во времени
💛 Вдоль признаков (spatial attention) — как взаимодействуют переменные в один и тот же момент времени
Затем эти два attention слоя факторизуются — т.е. обрабатываются отдельно, а затем совмещаются
😱 Loss:
Обычно в задаче временных рядов используются MSE или log-likelihood (собственно как у TimesFM), но тут по шли другим путем и придумали Student-T Mixture Likelihood: вместо предсказания единственного значения модель выдает параметры смеси (веса компонент, средние, дисперсии и степени свободы), из которых вычисляют negative log-likelihood
📖 Папир
🤗Модель
🤗hf docs
Но вообще, раз уж я выкладываю, что TimesFM выложили, грех не сказать, что вообще-то 18 марта на hf выкладывали уже что-то более похожее на SOTA LLM в временных рядах: Toto
В отличие от TimesFM работает не с патчами, а с вектором значений переменных
Из технического еще интересно, что ввели новую схему внимания Proportional Factorized Space-Time Attention То есть от обычного внимания в decoder-only это отличается тем, что разделяют внимание на два аспекта:
Затем эти два attention слоя факторизуются — т.е. обрабатываются отдельно, а затем совмещаются
Обычно в задаче временных рядов используются MSE или log-likelihood (собственно как у TimesFM), но тут по шли другим путем и придумали Student-T Mixture Likelihood: вместо предсказания единственного значения модель выдает параметры смеси (веса компонент, средние, дисперсии и степени свободы), из которых вычисляют negative log-likelihood
🤗Модель
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from PML (Petr [work] Ermakov)
Отличных выходных под видео с PML семинара и PML Special
Записи и презентации можно найти в wiki (полчаса и будут)
Также записи тут
- Надир Надирбеков - автоматизация фотоконтроля сумок с помощью нейросетей в Яндекс Доставке
- Дамир Чанышев - алгоритм для автогенерации тематических подборок в Маркете
- Данила Бударный - автоматическое ранжирование выгодных оферов с помощью модели Домика Плюсовика
- Денис Кузнеделев - свежая линейка генеративных моделей YandexART 2.5
и
Денис Клюкин - AI-агенты, что такое tool'ы и function calling и как агенты работают на YandexGPT
Делитесь, рассказывайте друзьям!
Записаться на след семинары можно тут
О дате следующего семинара сообщим дополнительно ❤️
Записи и презентации можно найти в wiki (полчаса и будут)
Также записи тут
- Надир Надирбеков - автоматизация фотоконтроля сумок с помощью нейросетей в Яндекс Доставке
- Дамир Чанышев - алгоритм для автогенерации тематических подборок в Маркете
- Данила Бударный - автоматическое ранжирование выгодных оферов с помощью модели Домика Плюсовика
- Денис Кузнеделев - свежая линейка генеративных моделей YandexART 2.5
и
Денис Клюкин - AI-агенты, что такое tool'ы и function calling и как агенты работают на YandexGPT
Делитесь, рассказывайте друзьям!
Записаться на след семинары можно тут
О дате следующего семинара сообщим дополнительно ❤️
Forwarded from Konstantin Korolev
можно посмотреть как делают реальные продовые инференсы, например https://github.com/triton-inference-server/server
это будет ближе всего к правде
это будет ближе всего к правде
GitHub
GitHub - triton-inference-server/server: The Triton Inference Server provides an optimized cloud and edge inferencing solution.
The Triton Inference Server provides an optimized cloud and edge inferencing solution. - GitHub - triton-inference-server/server: The Triton Inference Server provides an optimized cloud and edge i...
Forwarded from Олег Курилов
Про него кстати тоже курс есть, если почему-то гитхаба мало будет
http://wiki.cs.hse.ru/Развёртывание_ML-моделей_в_высоконагруженных_системах_25
http://wiki.cs.hse.ru/Развёртывание_ML-моделей_в_высоконагруженных_системах_25
Forwarded from DziS Science | Data Science
Привет всем!👋
Давно не было технического контента, значит настало время это изменить!
Нередко мы слышим от коллег о том, что Pickle зло, но почему?
На странице документации модуля мы видим следующее предупреждение:
Сегодня я хотел бы наглядно проговорить почему Pickle сериализация может быть опасна и что такое Pickle Bomb.
Итак, думаю, многие, кто это читают хотя бы раз сохраняли артефакты моделей, используя модуль
В целом структура процесса изложена в коде ниже.
Берется какой-то объект, в нашем случае словарь
В процессе десериализации и кроется истинное зло. По сути, там происходит вызов метода
- Что тогда есть такое Pickle Bomb?
- Какие примеры Pickle Bomb атак популярны?
1️⃣ 🔤 Бомбы по памяти, например сериализация N ГБ мусора
2️⃣ 🔤 Бомбы с исполняемым кодом. Наверное, самый популярный и опасный тип. О нем и поговорим чуть дальше.
- Чем опасен 2 тип Pickle Bomb?
Неконтролируемостью и, нередко, непредсказуемостью запуска внутренностей.
- Что можно ожидать внутри бомбы?
Самое безобидное - однострочные уязвимости. Например, простой шуточный
Для особо интересующихся примеры атаки с примером кода, вызывающим
-Как обезопасить себя?
1️⃣ 🔤 Избегать использование pickle и десериализации из неизвестных источников.
Отдавайте предпочтение json для несложных структур.
Как вариант, посмотреть метаданные без десериализации можно с помощью библиотеки
2️⃣ 🔤 Если файл из неизвестного источника нужно открыть по-любому, то рекомендуется создание отдельного "тестового" контейнера, где можно попробовать запустить десериализацию.
3️⃣ 🔤 Создание хэш ключей для проверки валидности файла.
Приведу один из вариантов использования подписи из библиотеки
Логика простая - создание из уже сериализованных данных подписи по формату [длина подписи (4 байта)] + [подпись =
Требуется создание секретного ключа
Проверка сравнивает рассчитанную при сериализации и полученную роспись и при совпадении десериализует данные.
По традиции 🔥, если понравилось!
#ds_лайфхаки
Давно не было технического контента, значит настало время это изменить!
Нередко мы слышим от коллег о том, что Pickle зло, но почему?
На странице документации модуля мы видим следующее предупреждение:
Warning: The pickle module is not secure. Only unpickle data you trust.
It is possible to construct malicious pickle data which will execute arbitrary code during unpickling. Never unpickle data that could have come from an untrusted source, or that could have been tampered with.
Consider signing data with hmac if you need to ensure that it has not been tampered with.
Safer serialization formats such as json may be more appropriate if you are processing untrusted data. See Comparison with json.
Сегодня я хотел бы наглядно проговорить почему Pickle сериализация может быть опасна и что такое Pickle Bomb.
Дисклеймер: Я в данном посте подсвечу основные концепты создания бомбы, но явно полностью рабочий код писать не буду, так как данные варианты кода можно легко интерпретировать по статье 273 УК РФ. Данный материал написал лишь с целью предупредить об возможных опасностях.
Итак, думаю, многие, кто это читают хотя бы раз сохраняли артефакты моделей, используя модуль
pickle, который выполняет преобразование объектов в байтовые строки (сериализация) и обратно (десериализация). В целом структура процесса изложена в коде ниже.
Берется какой-то объект, в нашем случае словарь
data сериализуется, записывается в файл data.pkl используя метод open() атрибуты записи бинарного файла (wb), после бинарный файл читается (rb), десериализуется и на выходе получаем обратно словарь.import pickle
data = {"key": "value", "nums": [1, 2, 3]}
# wb = write binary
with open("data.pkl", "wb") as file:
pickle.dump(data, file)
# rb = read binary
with open("data.pkl", "rb") as file:
deserialized = pickle.load(file)
В процессе десериализации и кроется истинное зло. По сути, там происходит вызов метода
eval()!- Что тогда есть такое Pickle Bomb?
Бомба сериализации (Pickle Bomb) это ничто иное, как использование уязвимости десериализации к различным нежелательным запускам кода.
- Какие примеры Pickle Bomb атак популярны?
bomb = bytearray(N*10**9). Эта штука съест вашу оперативку за считанные секунды. - Чем опасен 2 тип Pickle Bomb?
Неконтролируемостью и, нередко, непредсказуемостью запуска внутренностей.
- Что можно ожидать внутри бомбы?
Самое безобидное - однострочные уязвимости. Например, простой шуточный
print(), менее смешное os.system("rm -rf *"), а далее уже полноценные "Троянские кони".Для особо интересующихся примеры атаки с примером кода, вызывающим
print() при десериализации и объяснение почему так описано в отличной статье на Habr [ссылка на оригинал статьи]. Код, собственно, может быть легко преобразован в что-то более серьезное. -Как обезопасить себя?
Отдавайте предпочтение json для несложных структур.
Как вариант, посмотреть метаданные без десериализации можно с помощью библиотеки
pickletools:import pickletools
with open("data.pkl", "rb") as f:
pickletools.dis(f)
Приведу один из вариантов использования подписи из библиотеки
hmac. Логика простая - создание из уже сериализованных данных подписи по формату [длина подписи (4 байта)] + [подпись =
hmac.new(key, serialized, hashlib.sha256).digest()] + [сериализованные данные(serialized)]. Требуется создание секретного ключа
key, который и гарантирует корректность и "чистоту" pickle. Проверка сравнивает рассчитанную при сериализации и полученную роспись и при совпадении десериализует данные.
По традиции 🔥, если понравилось!
#ds_лайфхаки
Please open Telegram to view this post
VIEW IN TELEGRAM