Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
18.8K subscribers
2.24K photos
111 videos
64 files
4.65K links
Все самое полезное для дата сайентиста в одном канале.

По рекламе: @proglib_adv

Курс по ML: https://clc.to/4hNluQ

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b03124c8ba6dcaa121c9
Download Telegram
Вакансии «Библиотеки программиста» — ждем вас в команде!

Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов

Подробности тут

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Ждем ваших откликов 👾
1
🧮🏭 Индустриальная математика: когда ∫f(x)dx равно миллиардам

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

🔗 Статья
👍4
💀 Ликбез: «SQL-инъекции» в LLM с использованием специальных токенов

Андрей Карпаты тут недавно объяснил, как устроены атаки на LLM с применением специальных токенов. Мы сделали перевод:

🪅 Токенизаторы, используемые LLM, могут особым образом разбирать специальные токены (например, <s>, <|endoftext|> и т.д.) в строке ввода. Это хоть и выглядит удобным, на практике может привести к неприятным ошибкам или, что ещё хуже, к уязвимостям, аналогичным SQL-инъекциям.

⚠️Нужно запомнить, что вводимые пользователем строки не являются надёжными данными⚠️

Поэтому в LLM может возникнуть проблема, когда некорректный код будет разбирать специальные токены в строке ввода как настоящие специальные токены, нарушая работу модели.

Вот пример из дефолтного токенизатора Llama 3:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3.1-8B")
tokenizer("hello world <|end_of_text|> haha").input_ids
# [128000, 15339, 1917, 220, 128001, 63450]


Тут одновременно происходят две неочевидные вещи:
1⃣ Токен <|begin_of_text|> (128000) был добавлен в начало последовательности.
2⃣ Токен <|end_of_text|> (128001) был извлечён из строки, и вместо него вставлен специальный токен. Теперь текст может нарушить протокол токенов и заставить LLM выдавать непредсказуемые результаты.

Карпаты советует всегда использовать токенизатор с двумя дополнительными флагами: add_special_tokens=False и split_special_tokens=True, а также добавлять специальные токены в коде самостоятельно. С этими настройками результат будет более правильным. На картинке (⤴️) можно увидеть, что <|end_of_text|> теперь рассматривается как обычная строковая последовательность и разбивается базовым BPE токенизатором так же, как и любая другая строка.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈
👍2
🧪 Байесовское A/B-тестирование vs частотное: преимущества, недостатки и способ реализации на Python

A/B-тестирование — это метод сравнения двух версий чего-либо для определения, какая из них работает лучше.

В новой статье разберёмся, в каких случаях лучше применять частотный подход, а в каких — байесовский, и напишем продвинутый байесовский тест на Python без использования специальных A/B-библиотек.

👉 Читать статью
👍8😁2
Media is too big
VIEW IN TELEGRAM
📹 Документалка про создание PyTorch

Это 35-минутный официальный фильм, рассказывающий историю создания одного из самых известных фреймворков для машинного обучения. 

🔗 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
✏️ Разбор задачи с экзамена ШАД

Условие: Раскройте скобки в матричном выражении: 1️⃣

Подсказка: Матрицы не коммутируют

#задачи_шад
👍3🤔3
📊 Подборка материалов по аналитике данных:

🔹 Шпаргалка по Power BI
Небольшое руководство по созданию визуализаций и работе с данными в Power BI.

🔹SQL Tutorial
Это большой туториал с теорией и практикой.

🔹Интегрируем pandas с электронными таблицами: три способа
Статья на «Хабре» объясняет, как интегрировать библиотеку pandas с электронными таблицами через три метода: работу с файлами Excel, Google Таблицы и CSV.

🔹Data Analyst Portfolio Project
Это плейлист с роликами, посвящёнными созданию проектов для портфолио аналитика данных. Рассматриваются как SQL, так и Power BI с Tableau.
👍81
Привет, друзья! 👋

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

Какая самая необычная причина прокрастинации у вас была в работе над проектом?
Какой метод борьбы с прокрастинацией оказался для вас наиболее эффективным?
Как вы справляетесь с когнитивной перегрузкой во время работы над сложными задачами?

Не стесняйтесь делиться своими историями и лайфхаками в комментариях! 💬 Ваш опыт может помочь другим разработчикам справиться с прокрастинацией. Спасибо за участие!
😁2🌚2
This media is not supported in your browser
VIEW IN TELEGRAM
🛷 Хотите посмотреть, как человечек из Line Rider спускается по вашей кривой потерь?

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

Библиотека поддерживает интерактивные графики в Jupyter Notebooks, а также позволяет настраивать оси и экспортировать визуализации.

🔗 Ссылка на репозиторий LossRider
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22👍3😍1
🌲Какие операции с деревьями как структурами данных вы знаете?

Дерево — это иерархическая структура данных, состоящая из узлов, соединённых рёбрами.

Что касается операций, то их реализация сильно зависит от типа дерева. Но давайте рассмотрим самый простой случай — несбалансированное N-арное дерево, где нет ограничений на положение узлов и количество потомков у узла.

🔹Insert (вставка)
Если нет ограничений на размещение узла, вставка может быть простым добавлением нового потомка к существующему листу.

🔹Basic Search (обход дерева)
В самой простой форме обход дерева — это рекурсивная функция, которая вызывает саму себя для каждого потомка узла до тех пор, пока не будет найден целевой узел.

🔹Delete (удаление)
Если нужно удалить целое поддерево, это можно сделать, используя метод поиска узла. После того как целевой узел найден, его можно удалить из списка потомков его родителя.

#вопросы_с_собеседований
👍3
Media is too big
VIEW IN TELEGRAM
🐍 Производительность Python для Data Science

В новом выпуске подкаста Talk Python To Me разработчики обсуждают инструменты и подходы, которые будут полезны для дата-сайентистов.

🔗 Смотреть ролик на YouTube
🔗 Перейти на страницу подкаста со всеми ссылками, упомянутыми в ролике
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
🤔 Кем я хочу быть – DS или ML engineer?! Стоит ли понимать специфику сферы?!

🗓 Встречаемся сегодня в 20:00 по МСК чтобы ответить на эти и другие вопросы на вебинаре «Как меняется математика в разных индустриях: от мобильных игр к фондовым рынкам»

В эфире вас будет ждать Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.

➡️ Регистрируйтесь, если еще не успели: https://proglib.io/w/b286e0c8
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
🤖 Автоматизация управления ML-экспериментами с помощью СI/CD

CI/CD — это автоматизированный процесс, при котором код автоматически интегрируется в репозиторий, проходит сборку, тестирование и, в случае успеха, автоматически разворачивается на production-сервере.

В новой статье на «Хабре» описана настройка CI/CD для управления ML-экспериментами с помощью GitHub Actions и Neptune.ai. Процесс включает:

▪️Создание скриптов для обучения моделей и экспериментов.
▪️Настройку GitHub Actions для автоматической сборки окружения, установки зависимостей и запуска экспериментов при каждом коммите.
▪️Интеграцию с Neptune.ai для отслеживания результатов экспериментов, логов и метрик в реальном времени.

🔗 Читать подробнее по этой ссылке
👍2🔥2
Forwarded from ML Underhood
Как мы работали над YaFSDP

Недавно запустилась библиотека YaFDP, которая ускоряет обучение больших языковых моделей. Подробнее о ней можно почитать в статье на Хабре. А сегодня руководитель группы претрейна YandexGPT Михаил Хрущев ответил на несколько наших вопросов о том, как создавалась библиотека.

Когда и как началась работа над YaFSDP?

За 2 недели до Нового года в 2023-м. К концу года стало ясно, что некоторые наши оптимизации не дают ускорения, которого мы ожидали. Я пошёл искать причины такого и нашел праздничную «ёлочку».

Ориентировались ли на существующие решения? Были ли какие-то референсы, может?

Сам алгоритм предложили в статье ZeRO: Memory Optimizations Toward Training Trillion Parameter Models. Его реализация была также представлена в фреймворке DeepSpeed. К сожалению, она не очень масштабировалась и содержала много багов. Другая реализация, FSDP, сильно лучше, но и там есть проблемы с аллокацией памяти и коммуникациями. Поэтому я начал разрабатывать свою реализацию, к которой впоследствии подключились и другие ребята из моей команды.

Какие трудности возникали во время работы?

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

Здесь труднее всего было реализовать кода, который должен исполняться сразу после backward (обратного распространения ошибки) по слою. Я неожиданно столкнулся с тем, что torch (фреймворк глубокого обучения) совсем не приспособлен для такой хитрой логики. Но решение тем не менее нашлось.

На этом на сегодня все. Рассказывайте о своём опыте работы с LLM в комментариях!

ML Underhood
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, друзья! 👋

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

Сталкивались ли вы когда-нибудь с ситуацией, когда пришлось преувеличить свои навыки в резюме? Как вы с этим справились?
Какой, по вашему мнению, самый эффективный способ исправить ситуацию, если вы немного приукрасили свое резюме?
Как вы думаете, какая «ложь» в резюме может быть простительной, а какая — абсолютно недопустимой?

Не стесняйтесь делиться своими историями и мнениями в комментариях! 💬 Ваш опыт может помочь другим избежать подобных ситуаций или найти выход, если они уже в них оказались. Спасибо за участие!
😁2
Media is too big
VIEW IN TELEGRAM
👀 Scikit-Learn can do THAT?!

Первая вещь, которая, скорее всего, приходит вам в голову при упоминании scikit-learn — это pipeline.fit().predict()

Однако в библиотеке сокрыто куда больше интересного. Об этом Vincent D. Warmerdam рассказывает в своей лекции.

🔗 Смотреть лекцию на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
🧠⬇️ Есть мнение: уровень знаний айтишников снизился

В последнее время тревожные мнения о снижении уровня знаний среди IT-специалистов все чаще звучат в профессиональном сообществе и СМИ. В этой статье мы выясним, так ли это на самом деле, рассмотрев конкретные примеры и факторы, влияющие на уровень знаний IT-специалистов.

Не согласен, что знания убывают — тогда забирай курс по Алгоритмам от базы до эксперт уровня:
🔵 Алгоритмы и структуры данных

🔗 Ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
👏21😁1
👆Из-за блокировки YouTube можно не переживать👆

#memes
😁25👍1
☀️ Как нейросети научились давать более точный локальный прогноз

В новой статье команда Яндекса рассказала, как работала над нейросетевой технологией OmniCast и как она устроена. Благодаря OmniCast Яндекс Погода стала в 36 раз чаще получать данные о температуре и давать более точный прогноз для каждого городского квартала размером 500 на 500 метров.

🔗 Читать статью на Хабре
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🎨 ТОП-7 библиотек визуализации данных в 2024 году: обзор и сравнение

Подробный обзор 7 популярных библиотек для визуализации данных. Сравниваем функциональность, производительность и удобство использования Latitude, D3.js, Chart.js, Apache ECharts, Nivo, Plotly и Victory.

👉 Читать статью
👉 Зеркало
😁5