Интересное что-то
520 subscribers
2.72K photos
253 videos
140 files
4.53K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
🎲 Что такое predict_proba?

💻 Предположим, вы решаете задачу оттока и вам нужно понять с какой вероятностью пользователь будет оттекать из сервиса. Фактический флаг, обычно, это 1 и 0 ничего нам не скажут о том, что пользователи собирают покинуть наш сервис. Для этого вам нужны определенные вероятности отнесения к оттоку (1), далее можно с этим как-то работать, например, изучать распределения, тестировать определенные гипотезы и т.д.

predict_proba выдает на выходе вероятности отнесения к какому-либо классу. Мы решаем задачу с Propenity Score Matching, нам нужно в первой итерации (как бы сокращая размерность) для каждого объекта выборки определить вероятность отношения к тритменту (то есть определить 1 - пользователь совершил какое-то действие).

🤔 Как работает?

1. Сначала мы вычисляем линейную комбинацию векторов признаков и весов (с определенным байесом).
2. Результат подается в функцию активацию, например, классический вариант, это сигмоида (для бинарной классификации) и softmax (для многоклассовой классификации).
3. Определяем вероятности.

🐍 Пример отрабатывания вручную



from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression

X, y = make_classification()
lr = LogisticRegression()

lr.fit(X, y)

z = np.dot(X, lr.coef_.reshape(-1, 1)) + lr.intercept_

model_predict = lr.predict_proba(X)[:5, 1]

naive = 1 / (1 + np.exp(-z)).flatten()[:5]

print(model_predict)
print(naive)


🥰 Как видим, результаты идентичные (для вероятностей). Можно также поставить трешхолды и определить 1 или 0, чтобы замерять качество полученных моделей.

Дополнительные материалы:

1. How to Use Logistic Regression predict_proba Method in scikit-learn
2. CatBoost. Predict Proba
3. Predict_proba examples in MLflow - October 2024

❤️ Понравился пост? Поддержи бустом, пиши комментарии. Если наберется много реакций, выпущу пост про различные функционалы качества, функции ошибки в машинном обучении или про Sequential Testing 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
Я принес. «У нас нет культуры встреч»

Сегодня я принес вам пост своей знакомой, Вероники Ильиной, про то, как минимальными усилиями создать базовую культуру встреч. https://t.me/ask_catwomenko/132
А еще на похожую тему когда-то делал доклад во Владимире https://t.me/general_it_talks/333

Суть невероятно проста и меня всегда очень расстраивает, когда даже её люди не делают (а это встречается нередко).
⁃ Готовимся ко встрече: составляем свою и читаем чужую агенду.
⁃ Фасилитируем встречу, чтобы всё нужное было обсуждено.
⁃ Делаем резюме встречи с конкретикой кому и чем заняться.

Это не отнимает много времени и энергии, зато сильно увеличивает продуктивность этих встреч. А еще снижает их повторяемость.
История развития State of the Art локальных моделей.

Ловите картинку на базе бенчмарков. Вместо трендов теперь для каждой категории модели отображается нормальный cumulative maximum.

Gemini 1.5 Flash 8B добавлен со звездочкой - его нельзя выкачать и запустить локально. Надо будет ждать, пока не появится открытая модель.

NB: Модели разделены условно на те категории железа, которые я чаще всего вижу у клиентов. Считаем VRAM на запуск с запасом места под контекст и без квантизаций.

На картинке видно, что крупные модели начали появляться относительно недавно, но у них прогресс пока быстрее всего идет.

Маленькие модели, которые влазят в 4090, достаточно долго стагнировали. Gemini 1.5 Flash 8B стал недавно внезапным рывком.

Ваш, @llm_under_hood 🤗
Forwarded from Information Retriever
Статья на Хабре про индустриальные тренды рексистем.

В мае я выступал на датафесте с докладом про тренды рексистем, а сейчас появился пост на Хабре, где мы подробнее расписали содержимое доклада, приложили ссылки на статьи, добавили больше пояснений.

Ссылка — https://habr.com/ru/companies/yandex/articles/857068/
Forwarded from Евгений Козлов пишет про IT (Eugene Kozlov)
Учел ваши пожелания и собрал все посты по теме многозадачности и производительности в один пост. Приятного чтения, дальше больше, это еще далеко не конец😊

🔹Многозадачность на уровне железа и OS / Kernel Space

1. Многозадачность в OS. Введение.
2. Процессор и его роль в многозадачности
2.1. Про Hyper Threading
3. Процессы. Начало
4. Процессы в Linux
5. Потоки. Начало
6. Потоки в Linux
7. Модели ввода-вывода. Универсальная(блокирующая) модель ввода-вывода
8. Multiplexed IO
9. Asynchronous IO

🔹Легковесные потоки в User Space / Многозадачность в языках программирования

10. Fibers. Виды многозадачности с примерами в языках программирования.
11. Сравнительный обзор двух видов многозадачности
Набор жуптеров с рецептами файнтюна и не только от 🤗

Из интересного - там есть файнтьюн Qwen2VL и раг на нем же с ColPali

А ещё прикольно, что везде трансформеры - тюнят детектор DETR и сегментатор Segformer
​​Говорят, что достали системный промпт Advanced Voice Mode

https://www.reddit.com/r/OpenAI/comments/1fp1fes/the_system_prompt_of_advanced_voice_mode_it_can/
#книга
Онлайн-учебник по машинному и глубокому обучению от преподавателя ВМК МГУ Виктора Китова
https://deepmachinelearning.ru/
Статья Быстрее пули: как найти счастье с PostgreSQL

Большая классная статья про поиск в postgresql. На мой взгляд отлично подходит для ситуаций, когда по каким-то причинам еще не хочется (или не можется) завезти отдельную колоночную БД для поиска по типу elasticsearch, но простого WHERE ILIKE уже не хватает.

В статье автор рассказывает про:
👉 tsvector, tsquery и GIN индексы
👉 нормализацию слов и морфологию
👉 словари синонимов
👉 ранжирование результатов по релевантности

https://habr.com/ru/companies/rostelecom/articles/853124/
Привет всем!👋

Про эффективность созвонов.

Только ленивый в DS не ругался касаемо количества бесполезных созвонов.

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

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

-Но почему так?

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

🔸Прежде чем ответить себе на вопрос, эффективный ли созвон, на котором я нахожусь, надо понять, что это инструмент решения конкретной задачи и понять, а решает ли этот созвон что-то решает или помогает решить ее эффективно?

Нередко, именно на этом вопросе можно заканчивать половину созвонов.
«Коллеги, а какая повестка созвона? А есть ли она вообще?»


Если ответ невнятный, то можно поблагодарить коллег и попросить прислать статус по почте.

Это кстати второй тезис для понимания, а эффективен ли созвон.

🔵Если проблема, решаемая данным инструментом, может быть исчерпана одним коротким письмом, то данный созвон явно не эффективен.

Нередко, особенно начинающие руководители, делают очень интересный трюк. На любой вопрос, на который даже можно ответить «да/нет» руководитель может поставить аж полуторачасовую(‼️) встречу, где будет рассказывать все, но не то, что надо. Потом с полной уверенностью в своей эффективности будет рассказывать всем, что целый день занят важными созвонами.
К сожалению, такой персонаж сильно заблуждается. Он лишь отлынивает от работы.


🔹Созвон содержит слишком много людей. Если вам нужен конкретный человек из другого подразделения, то не всегда нужно звать всех 40 специалистов из его подразделения. Достаточно позвать конкретного и, максимум, его руководителя. Объективно, 38 оставшихся сотрудников будут сидеть без дела.

🔸Однако и тут, важен тайминг. Представьте ситуацию: у вас с подчинении n людей и вам нужно собрать краткий статус по задачам. Из практики, лучше собрать n людей на 30 минут, чем n*30 минут провести на персональных встречах 1 на 1. Результат будет одинаковый, но времени потратите на пару часов меньше. Если нужно, поставьте дополнительную встречу.

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

Обычно формула простая: на каждых новых 4 человек добавляется во встрече 30 минут. Но не более 1 часа, дальше теряется внимание, проверено на опыте. Т.е за одну встречу вы эффективно можете узнать как дела по работе, не более чем у 8х. Это лично наблюдение.

🔸Обязательно должна быть встреча 1 на 1 по нерабочим процессам, хотя бы раз в месяц.
А то как вам говорить, что у вас на руках есть оффер или вам все не нравится?


Таким образом, я выработал некоторый чек лист:
1️⃣. Встреча должна решать проблему!
2️⃣. У нее должна быть цель, повестка или структура.
3️⃣. Встреча больше часа - зло. Исключение - увеселительная встреча с пиццей.
4️⃣. Встреча на кучу людей, в т.ч не относящихся к проблеме - зло.
5️⃣. Можно решить проблему по переписке - не ставьте созвон.
6️⃣. Можно собрать кучу встреч в одну? - собирайте. Лучше потом поставить одну лишнюю, но нужную, чем ставить регулярно кучу.
7️⃣. Встреча 1 на 1 не рабочая должна быть, хотя бы раз в 1 месяц. Если нет или это очередной дейлик - плохо.
8️⃣. Какой-то менеджер ставит вам по поводу и без встречи, не стесняйтесь, игнорируйте.
9️⃣. Встреча, на которой вас позвали «за компанию» - бесполезная. Исключение - общие регулярные встречи на всех сотрудников, например демо или общеновостная.

Следуя этим правилам, я разгрузился сам и разгрузил свою команду. Теперь даже время что-то полезное сделать есть.

А то смотрю я на 2-3 встречи на всех каждый день, аж плакать хочется. Славу богу, что у меня не так😂

А как у вас с этим в компании? Пишите в комменты⬇️

#статьи #трудовые_будни
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Start Career in DS
ℹ️ Всё про токенизацию и токенизаторы в языковых моделях

Токен -
это минимальная единица текста, с которой работают современные языковые модели. В качестве токена могут выступать как полноценные слова, так и части слов, слоги или отдельные символы.
✂️ Например, в некоторых моделях слово «привет» может разбиваться на токены: [«при», «вет»].

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

🤯 В моделях Transformer токенизаторы обучаемы. Обучение токенизаторов не схоже с тем, как обучаются ML-модели, наоборот, это статистический процесс, который определяет, какие сочетания символов (подслов, слов) лучше всего выбрать для корпуса текста, с которым мы работаем.

🔝Современные токенизаторы можно разделить по следующим видам:

1. Byte-Pair Encoding (используется в GPT-like моделях, обучается слиянием символов из основного корпуса, выбирая пары по наибольшей частоте встречаемости, подробно про алгоритм и реализацию кода обучения читайте тут)
2. WordPiece (используется преимущественно в BERT-like моделях, также обучается слиянием, но используется не частота встречаемости, а более универсальная формула, также подробно читайте про реализацию и формулу тут)
3. Unigram (не так применим, однако, для полноты картины читайте о нем тут)

❗️Почему это важно:

1️⃣ Фертильность
(мера, показывающая среднее количество токенов на одно слово после токенизации предложения):
Напрямую влияет на стоимость использования любой модели: больше токенов после токенизации предложения -> больше входная последовательность в LLM -> больше стоимость.

2️⃣ Качество работы
:
Правильно токенизированная последовательность также сильно влияет на качество модели из-за появления символов, которых модель не видела или из-за особенностей некоторых языков, где нет, например, пробелов.
Очень грамотно и подробно этот нюанс описан тут.

3️⃣ Скорость работы:
Следствие из первого пункта: чем больше последовательность токенов, тем больше вычислений стоит делать, что также влияет на скорость ответа модели.

🔥 Дополнительная информация по теме:

-
Краткий обзор токенизаторов на Хабре
-
О токенизаторах с NLP-курса на Hugging Face
-
«Насколько хорош Ваш Токенайзер» - статья на arxiv [ENG]
- Статья на английском для начинающих о токенах в LLM [ENG]

Теперь вы знаете, как работают токенизаторы🔥
Ждём ваших лайков и обратной связи❤️
До встречи👋🏻