Forwarded from Aspiring Data Science (Anatoly Alekseev)
#optimization #ml #metrics #python #numba #codegems
В общем, sklearn-овские метрики оказались слишком медленными, пришлось их переписать на numba. Вот пример classification_report, который работает в тысячу раз быстрее и поддерживает почти всю функциональность (кроме весов и микровзвешивания). Также оптимизировал метрики auc (алгоритм взят из fastauc) и calibration (считаю бины предсказанные vs реальные, потом mae/std от их разностей). На 8M сэмплов всё работает за ~30 миллисекунд кроме auc, та ~300 мс. Для сравнения, scikit-learn-овские работают от нескольких секунд до нескольких десятков секунд.
В общем, sklearn-овские метрики оказались слишком медленными, пришлось их переписать на numba. Вот пример classification_report, который работает в тысячу раз быстрее и поддерживает почти всю функциональность (кроме весов и микровзвешивания). Также оптимизировал метрики auc (алгоритм взят из fastauc) и calibration (считаю бины предсказанные vs реальные, потом mae/std от их разностей). На 8M сэмплов всё работает за ~30 миллисекунд кроме auc, та ~300 мс. Для сравнения, scikit-learn-овские работают от нескольких секунд до нескольких десятков секунд.
@njit()
def fast_classification_report(
y_true: np.ndarray, y_pred: np.ndarray, nclasses: int = 2, zero_division: int = 0
):
"""Custom classification report, proof of concept."""
N_AVG_ARRAYS = 3 # precisions, recalls, f1s
# storage inits
weighted_averages = np.empty(N_AVG_ARRAYS, dtype=np.float64)
macro_averages = np.empty(N_AVG_ARRAYS, dtype=np.float64)
supports = np.zeros(nclasses, dtype=np.int64)
allpreds = np.zeros(nclasses, dtype=np.int64)
misses = np.zeros(nclasses, dtype=np.int64)
hits = np.zeros(nclasses, dtype=np.int64)
# count stats
for true_class, predicted_class in zip(y_true, y_pred):
supports[true_class] += 1
allpreds[predicted_class] += 1
if predicted_class == true_class:
hits[predicted_class] += 1
else:
misses[predicted_class] += 1
# main calcs
accuracy = hits.sum() / len(y_true)
balanced_accuracy = np.nan_to_num(hits / supports, copy=True, nan=zero_division).mean()
recalls = hits / supports
precisions = hits / allpreds
f1s = 2 * (precisions * recalls) / (precisions + recalls)
# fix nans & compute averages
for arr in (precisions, recalls, f1s):
np.nan_to_num(arr, copy=False, nan=zero_division)
weighted_averages[i] = (arr * supports).sum() / len(y_true)
macro_averages[i] = arr.mean()
return hits, misses, accuracy, balanced_accuracy, supports, precisions, recalls, f1s, macro_averages, weighted_averages
Forwarded from Data Secrets
Начинаем погружаться в Марковские цепи
Это такая математическая модель, которая с успехом применяется в разных областях, таких как машинное обучение, генерация текстов или музыки, криптография и многих других. Ей много лет: она была разработана Андреем Марковым в начале 20 века.
😻 #math
Это такая математическая модель, которая с успехом применяется в разных областях, таких как машинное обучение, генерация текстов или музыки, криптография и многих других. Ей много лет: она была разработана Андреем Марковым в начале 20 века.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Нескучный Data Science (Евгений Смирнов)
Как повысить качество модели кредитного скоринга, не добавляя новые источники данных?
🤔 Источников данных в кредитном скоринге становится все больше, и возникает вопрос: почему бы не попробовать смешивать их не на уровне предсказаний, а на некотором более низком уровне?
🔖 В статье от @nickimpark вы узнаете:
1️⃣ Как построить единую нейросетевую модель, работающую на нескольких источниках последовательных данных?
2️⃣ Как получить из модели эмбеддинг клиента по источнику данных?
3️⃣ Почему смешивание моделей на уровне эмбеддингов позволяет повысить итоговое качество?
4️⃣ Какой эффект в задаче кредитного скоринга можно получить с использованием такого подхода?
📺 Лень читать длинные статьи? Смотрите видео-выступление от автора по этой теме на DataFest 2023
💬 А как вы объединяете нейронные сети на различных источниках данных?
🤔 Источников данных в кредитном скоринге становится все больше, и возникает вопрос: почему бы не попробовать смешивать их не на уровне предсказаний, а на некотором более низком уровне?
🔖 В статье от @nickimpark вы узнаете:
📺 Лень читать длинные статьи? Смотрите видео-выступление от автора по этой теме на DataFest 2023
💬 А как вы объединяете нейронные сети на различных источниках данных?
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Data Secrets
Про pipe в pandas
pipe - это метод реализации паплайна в pandas через последовательную цепочку преобразований (не путать с Pipeline из скалерна).
Например, у нас есть ряд функций, каждая из которых отвечает за какое-то преобразование. Тогда пайплайн в pandas можно реализовать так:
😻 #analytics #python
pipe - это метод реализации паплайна в pandas через последовательную цепочку преобразований (не путать с Pipeline из скалерна).
Например, у нас есть ряд функций, каждая из которых отвечает за какое-то преобразование. Тогда пайплайн в pandas можно реализовать так:
def normilize(df):
...
return df
def fill_null(df, method):
...
return df
def parse_time(df):
...
return df
new_df = (df
.pipe(normilize)
.pipe(fill_null, method='median')
.pipe(parse_time)
)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Data Secrets
Google опубликовал серию бесплатных курсов по генеративному ИИ
Всего серия состоит из девяти курсов:
– Основы генеративного искусственного интеллекта
– Введение в большие языковые модели
– Ответственное использование искусственного интеллекта
– Техники генерации изображений
– Работа с кодерами и декодерами
– Механизмы внимания
– Использование трансформеров и моделей BERT
– Создание image-to-text моделей
– Знакомство со студией Gen AI
Каждый курс представлен в формате, включающем одно видео, один документ и один контрольный тест для каждой темы. Обучение абсолютно бесплатное, и по завершении Google даст вам специальный виртуальный значок. Очень круто!
😻 #advice
Всего серия состоит из девяти курсов:
– Основы генеративного искусственного интеллекта
– Введение в большие языковые модели
– Ответственное использование искусственного интеллекта
– Техники генерации изображений
– Работа с кодерами и декодерами
– Механизмы внимания
– Использование трансформеров и моделей BERT
– Создание image-to-text моделей
– Знакомство со студией Gen AI
Каждый курс представлен в формате, включающем одно видео, один документ и один контрольный тест для каждой темы. Обучение абсолютно бесплатное, и по завершении Google даст вам специальный виртуальный значок. Очень круто!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Generative Anton
Это невероятно, но no-GIL в Python’e таки дотащили до принятия и в 3.13 уже обещают экспериментальные no-GIL билды, а в течении 5 лет no-GIL должен стать стандартом и GIL не будет совсем. Если кому-то интересно, как они это выпиливают, то все хорошо расписано в изначальном пропозале PEP-703.
Discussions on Python.org
A Steering Council notice about PEP 703 (Making the Global Interpreter Lock Optional in CPython)
Posting for the whole Steering Council, on the subject of @colesbury’s PEP 703 (Making the Global Interpreter Lock Optional in CPython). Thank you, everyone, for responding to the poll on the no-GIL proposal. It’s clear that the overall sentiment is positive…
🔥1
Forwarded from partially unsupervised
Есть классическая картинка для иллюстрации жизненного цикла технологических инноваций - Gartner Hype Cycle. Он, конечно, скорее про adoption компаниями, но почему бы не натянуть эту фигуру и на отдельного индивида? Кажется, что прошло уже достаточно времени, чтобы ChatGPT прошел через этот hype cycle персонально для меня и достиг плато продуктивности: равномерное использование, выжившие юзкейсы, отсутствие восторгов и разочарований.
Так вот, лично у меня сложилось четыре явных паттерна использования:
1) Бюрократ-копирайтер
2) Поверхностный эрудит
3) Junior software engineer
4) Въедливый критик
"-вываливай в продакшен.
Это именно персональные примеры использования, а не приложения вокруг API. Хотя я как раз использую не веб-интерфейс, а консольный heygpt: он быстрее, удобнее и даже дешевле, чем обычная подписка на GPT-4.
Расскажите в комментариях про сложившиеся у вас паттерны!
Так вот, лично у меня сложилось четыре явных паттерна использования:
1) Бюрократ-копирайтер
"Перепиши этот месседж для официального емейла / обращения в службу поддержки / аппликейшена в организацию / маркетингового описания"
. В общем, для переписывания текста. Например, так пишутся жалобы в банк, заблокировавший транзакцию, или описание биографии для сайта издательства.2) Поверхностный эрудит
"Опиши состояние дел в какой-то области / объясни с учетом моего уровня (не)знания в соседних областях"
. Примеры вопросов: какой софт используют 3д художники для работы с текстурами? чем replacement map отличается от height map? какие острова на Азорах выбрать для недельного отпуска, если меня интересуют хайки и природные достопримечательности? какие прикладные применения сверхпроводимости? Дьявол обычно в деталях, и слишком глубоко закапываться с LLM не стоит, но можно быстро получить поверхностное понимание.3) Junior software engineer
"Напиши прототип такой штуки, используя этот незнакомый мне, но популярный в целом API".
Из последнего: делал так ORM на SQLAlchemy и blender-скрипты для headless рендеринга. В обоих случаях хочется, чтобы оно хоть как-то работало, а разбираться в апи не хочется - не предполагаю, что этот код нужно будет долго поддерживать или развивать.4) Въедливый критик
"
Найди недостатки и корнеркейсы в следующей идее/коде/тексте: {{INSERT YOUR STUFF}}
". Люди неплохо справляются с поиском подтверждений своей идеи или дизайна (confirmation bias и его друзья), а по-хорошему надо искать опровержения и логические нестыковки. Кстати, отлично сочетается с предыдущим режимом использования: напиши-покритикуй-исправьЭто именно персональные примеры использования, а не приложения вокруг API. Хотя я как раз использую не веб-интерфейс, а консольный heygpt: он быстрее, удобнее и даже дешевле, чем обычная подписка на GPT-4.
Расскажите в комментариях про сложившиеся у вас паттерны!
Forwarded from Data Secrets
Тензоры и как с ними работать
Тезнзоры – это главные объекты библиотеки TensorFlow, которая вместе в PyTorch является основным инструментом для обучения нейросетей.
Но как работать с этими тензорами? Мы очень старались и выкатили вам по этой теме коллаб. В нем – подробный гайд с кодом и пояснениями. Разбираем, как создавать тензоры, какие есть важные операции с ними, как изменить их размерность, перемножить их и многое другое.
Сохраняйте на здоровье -> https://colab.research.google.com/github/Veron28/bot_test/blob/master/tensorflow_by_data_secrets.ipynb
😻 #python
Тезнзоры – это главные объекты библиотеки TensorFlow, которая вместе в PyTorch является основным инструментом для обучения нейросетей.
Но как работать с этими тензорами? Мы очень старались и выкатили вам по этой теме коллаб. В нем – подробный гайд с кодом и пояснениями. Разбираем, как создавать тензоры, какие есть важные операции с ними, как изменить их размерность, перемножить их и многое другое.
Сохраняйте на здоровье -> https://colab.research.google.com/github/Veron28/bot_test/blob/master/tensorflow_by_data_secrets.ipynb
Please open Telegram to view this post
VIEW IN TELEGRAM
NP-What? Complexity Types of Optimization Problems Explained | by Hennie de Harder | Aug, 2023 | Towards Data Science
https://towardsdatascience.com/np-what-complexity-types-of-optimization-problems-explained-558d43276044
https://towardsdatascience.com/np-what-complexity-types-of-optimization-problems-explained-558d43276044
Towards Data Science
NP-What? Complexity Types of Optimization Problems Explained | Towards Data Science
An introduction to one of the central questions in computer science
Algorithms You Should Know Before System Design Interviews - YouTube
https://www.youtube.com/watch?v=xbgzl2maQUU
https://www.youtube.com/watch?v=xbgzl2maQUU
YouTube
Algorithms You Should Know Before System Design Interviews
Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bytebytego.ck.page/subscribe
Animation tools: Adobe Illustrator and After Effects.
Checkout our bestselling System Design Interview books:
Volume 1: https://amzn.to/3Ou7gkd…
Animation tools: Adobe Illustrator and After Effects.
Checkout our bestselling System Design Interview books:
Volume 1: https://amzn.to/3Ou7gkd…
Forwarded from New Yorko Times (Yury Kashnitsky)
Про бигтех, софт-скиллы и английский
#career
Скоро тут будут кванты, матан и прочие прелести 🤓, а пока начнем с чего-то более попсового.
Сейчас умеренно активно собеседую на ML-инженера в Польше, замысел – помочь именно кому-то пострадавшему от действий РФ, независимо от национальности. К сожалению, топовым вроде бы (чисто по хард-скиллам) кандидатам часто не хватает двух вещей: как вы поняли по названию поста, это софт-скиллы и английский.
То как яндексоиды-олимпиадники, успешно вертящие пресловутые красно-черные деревья даже после 14 пив и двух-трёх шаурм, проваливают behavioral (поведенческое интервью) – это уже притча во языцех. Из недавнего – мой знакомый, бывший коллега по Mail.ru, который сейчас тащит почти весь ML в VK, должен был бы попадать в Meta на E7. Но он вообще ничего не знал про поведенческое интервью (далее – бихейв), думал, там будут только технические вопросы, в итоге – E6. Я успешно прошел собесы в Амазон на applied scientist (но фриз) на L5, по фидбеку это “почти L6”, как узнал потом от знакомых в Амазоне, на L6 ожидают чуть больше историй про проекты на кучу команд, когда прям пошел, убедил и поднял несколько команд на проект.
Поэтому совет про бихейв: прежде всего узнайте про формат и поговорите со знакомыми в конкретной компании, возможны особенности. И относитесь к этому типу интервью серьезно, это не булщит. В частности, у Амазона бихейв – почти половина всего времени, отведенного на собесы, то есть 2-3 часа чистого времени (кстати, свой подход они неплохо поясняют в книге “Working backwards”). Представьте вопрос “Расскажите, как вы поменяли процесс в компании”. Можно оборжать, конечно, закатить глаза, но если подумать, то можно многое узнать о кандидате по ответу на такой вопрос. Одно дело пожаловался на сардельки в столовой, их заменили на сосиски. Другое дело – человек увидел неэффективность в команде/компании и реально поменял, какой-то из процессов, например, предложил те же бихейв-интервью при найме или потащил демо-сессии всех Data-Science команд в компании для обмена знаниями.
Есть явный плюс подготовки к бихейв-интервью: детальный взгляд на свой предыдущий опыт и выжимание сути из своих проектов. Это в любом случае пригодится, независимо от того, с какой компанией собеседуетесь. И как бонус, никогда не придется на собесе говорить “ой, это было давно, деталей не помню” (наличие такого ответа – еще одна фича с отрицательным весом).
Итак, подготовка к бихейв-интервью:
- Посмотрите типовые вопросы, их штук 150. Вот неплохой список для Амазона https://igotanoffer.com/blogs/tech/amazon-behavioral-interview Но вопросы там хорошо общаются и на прочие компании
- Также почитайте “Время Валеры” @cryptovalerii по тегу InterviewPreparation
- Выделите десяток самых популярных вопросов (таких видео полно на ютубе, точно стоит включить: “Tell us about a project you are most proud of”, “Tell me about a time you solved a big problem in your company”, “Tell me about your biggest career failure and what you learned from it” и “Tell me about a time you had a conflict with a coworker or manager and how you approached it”) и по кажому вопросу опишите по 2-3 истории из своей карьеры (работы, учебы, пет-проджектов и т.д.). Это немалая инвестиция времени (от 15 часов точно), но вы точно не пожалеете!
- В ответе можно придерживаться формата STAR – Situation, Task, Action, Result, легко гуглится
Ресурсы, которые помогли мне:
- Хорош бесплатный текстовый курс Яндекс.Практикума про алгоритмические собеседования https://practicum.yandex.ru/profile/algorithms-interview/ там есть часть про поведенческие интервью, это можно считать ликбезом (остальные части – тоже топ)
- видео Jackson Gabbard https://www.youtube.com/watch?v=PJKYqLP6MRE
- много полезного нашел на этом ресурсе https://igotanoffer.com/blogs/tech, условно, как отвечать на вопросы типа “почему компания X?”
- пост про вопросы с подвохом https://leetcode.com/discuss/interview-experience/1532708/tips-for-answering-few-tricky-behavioural-interview-questions
#career
Скоро тут будут кванты, матан и прочие прелести 🤓, а пока начнем с чего-то более попсового.
Сейчас умеренно активно собеседую на ML-инженера в Польше, замысел – помочь именно кому-то пострадавшему от действий РФ, независимо от национальности. К сожалению, топовым вроде бы (чисто по хард-скиллам) кандидатам часто не хватает двух вещей: как вы поняли по названию поста, это софт-скиллы и английский.
То как яндексоиды-олимпиадники, успешно вертящие пресловутые красно-черные деревья даже после 14 пив и двух-трёх шаурм, проваливают behavioral (поведенческое интервью) – это уже притча во языцех. Из недавнего – мой знакомый, бывший коллега по Mail.ru, который сейчас тащит почти весь ML в VK, должен был бы попадать в Meta на E7. Но он вообще ничего не знал про поведенческое интервью (далее – бихейв), думал, там будут только технические вопросы, в итоге – E6. Я успешно прошел собесы в Амазон на applied scientist (но фриз) на L5, по фидбеку это “почти L6”, как узнал потом от знакомых в Амазоне, на L6 ожидают чуть больше историй про проекты на кучу команд, когда прям пошел, убедил и поднял несколько команд на проект.
Поэтому совет про бихейв: прежде всего узнайте про формат и поговорите со знакомыми в конкретной компании, возможны особенности. И относитесь к этому типу интервью серьезно, это не булщит. В частности, у Амазона бихейв – почти половина всего времени, отведенного на собесы, то есть 2-3 часа чистого времени (кстати, свой подход они неплохо поясняют в книге “Working backwards”). Представьте вопрос “Расскажите, как вы поменяли процесс в компании”. Можно оборжать, конечно, закатить глаза, но если подумать, то можно многое узнать о кандидате по ответу на такой вопрос. Одно дело пожаловался на сардельки в столовой, их заменили на сосиски. Другое дело – человек увидел неэффективность в команде/компании и реально поменял, какой-то из процессов, например, предложил те же бихейв-интервью при найме или потащил демо-сессии всех Data-Science команд в компании для обмена знаниями.
Есть явный плюс подготовки к бихейв-интервью: детальный взгляд на свой предыдущий опыт и выжимание сути из своих проектов. Это в любом случае пригодится, независимо от того, с какой компанией собеседуетесь. И как бонус, никогда не придется на собесе говорить “ой, это было давно, деталей не помню” (наличие такого ответа – еще одна фича с отрицательным весом).
Итак, подготовка к бихейв-интервью:
- Посмотрите типовые вопросы, их штук 150. Вот неплохой список для Амазона https://igotanoffer.com/blogs/tech/amazon-behavioral-interview Но вопросы там хорошо общаются и на прочие компании
- Также почитайте “Время Валеры” @cryptovalerii по тегу InterviewPreparation
- Выделите десяток самых популярных вопросов (таких видео полно на ютубе, точно стоит включить: “Tell us about a project you are most proud of”, “Tell me about a time you solved a big problem in your company”, “Tell me about your biggest career failure and what you learned from it” и “Tell me about a time you had a conflict with a coworker or manager and how you approached it”) и по кажому вопросу опишите по 2-3 истории из своей карьеры (работы, учебы, пет-проджектов и т.д.). Это немалая инвестиция времени (от 15 часов точно), но вы точно не пожалеете!
- В ответе можно придерживаться формата STAR – Situation, Task, Action, Result, легко гуглится
Ресурсы, которые помогли мне:
- Хорош бесплатный текстовый курс Яндекс.Практикума про алгоритмические собеседования https://practicum.yandex.ru/profile/algorithms-interview/ там есть часть про поведенческие интервью, это можно считать ликбезом (остальные части – тоже топ)
- видео Jackson Gabbard https://www.youtube.com/watch?v=PJKYqLP6MRE
- много полезного нашел на этом ресурсе https://igotanoffer.com/blogs/tech, условно, как отвечать на вопросы типа “почему компания X?”
- пост про вопросы с подвохом https://leetcode.com/discuss/interview-experience/1532708/tips-for-answering-few-tricky-behavioural-interview-questions