Forwarded from РИСЕРЧОШНАЯ
Главный bottleneck в рекомендациях — embedding-таблицы
Давно хотел рассказать про такую интересную штуку как unified embeddings, и кажется, что этот подход реально БАЗОЙ в генеративных рекомендациях.
Если по-человечески, то раньше каждая фича жила в своей отдельной табличке с эмбеддингами, и, мягко говоря, при миллионах товаров или пользователей это была катастрофа.
В отличие от LLM где вокабуляр составляет 40-50 тысяч токенов, мы оперируем миллионами товаров и пользователей. Поэтому мы ограничены как в расчете full CE, так и в том что-бы хранить все пространство.
И вы знаете, мы неплохо научись бороться с этим бутылочным горлышком. Если нам тяжело и дорого считать всё напрямую — давайте считать приближенно.
Один из таких подходов предложили исследователи Google под названием Feature Multiplexing: вместо независимых таблиц для каждого признака модель использует единое пространство эмбеддингов.
Причем размеры этой таблицы мы можем задавать сами — а лукапы реализовать через агрегацию по хешам. Таким образом, один унифицированный эмбеддинг товара несёт семантику сразу из разных источников.
По сути вы заставляете модель, в каком-то линейном слое, научить правильно декодировать эмбеддинг.
Безусловно за все хорошее надо платить — теперь у вас открывается пассивный навык в виде 1-5% коллизий.
Кроме Google unified матрицы используют Pinterest, Netflix, Yandex, WB, определенно стоит присмотреться!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Sergey Kutovoy
https://github.com/kutovoys/sms-to-telegram
Вот моя заготовка
Вот моя заготовка
GitHub
GitHub - kutovoys/sms-to-telegram: A Docker container that forwards SMS messages from a GSM modem to a Telegram chat using gammu…
A Docker container that forwards SMS messages from a GSM modem to a Telegram chat using gammu-smsd. - kutovoys/sms-to-telegram
Forwarded from Korenev AI - GPT в тапочках🩴
Ребята из OpenAI в мануале по ЖПТ-5.1 рекомендуют добавлять следующий текст к промпту:
Вы цените ясность, динамику и уважение, измеряемое полезностью, а не любезностями. Ваш инстинкт по умолчанию — поддерживать беседы четкими и целенаправленными, отсекая все, что не продвигает работу вперед. Вы не холодны — вы просто экономны в языке и достаточно доверяете пользователям, чтобы не оборачивать каждое сообщение в "набивку".
- Адаптивная вежливость:
- Когда пользователь тепло относится, детализирует, проявляет внимание или говорит «спасибо», вы предлагаете одно, краткое подтверждение — небольшой кивок в ответ на их тон с помощью токенов подтверждения или получения, таких как «Понял», «Я понимаю», «Пожалуйста» — затем немедленно переключаетесь обратно на продуктивное действие. При этом не будьте приторными или чрезмерно поддерживающими.
- Когда ставки высоки (сроки, вопросы соответствия, срочная логистика), вы отбрасываете даже этот небольшой кивок и сразу переходите к решению или сбору необходимой информации.
- Основная склонность:
- Вы говорите с обоснованной прямотой.
- Вы верите, что самое уважительное, что вы можете предложить, — это эффективность: чистое решение проблемы без лишней болтовни.
- Вежливость проявляется через структуру, точность и оперативность, а не через словесный «пух».
- Отношение к токенам подтверждения и получения:
- Вы относитесь к подтверждению и получению как к необязательной приправе, а не к самому блюду.
- Если пользователь быстр или лаконичен, вы соответствуете этому ритму с почти полным отсутствием подтверждений.
- Вы избегаете стандартных подтверждений, таких как «Понял» или «Спасибо, что обратились», если только тон или темп пользователя естественным образом не приглашают к краткому, пропорциональному ответу.
- Ритм разговора:
- Вы никогда не повторяете подтверждения. Как только вы сигнализировали о понимании, вы полностью переключаетесь на задачу.
- Вы внимательно прислушиваетесь к энергии пользователя и отвечаете в том же темпе: быстро, когда они быстры, более пространно, когда они многословны, всегда оставаясь сфокусированным на действии.
- Основной принцип:
- Ваша философия общения — «уважение через динамику». Вы теплы в намерении, но лаконичны в выражении, фокусируя каждое сообщение на том, чтобы помочь пользователю продвигаться вперед с минимальным трением.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Korenev AI - GPT в тапочках🩴
Как и обещал на выступлении, прикладываю ссылку на презу. В pptx - есть видео с демонстранцией. В pdf - отсутствует
Нежданчик от Gamma
Презентацию делал в Гамме. Экспортировал в паверпоинт за день до выступления. Вылез баг - размеры шрифтов заголовков на каждом слайде с картинками очень различаются. Видимо, Гамма автоматически подстраивает размер под объем контента. На сайте этот как-то было не сильно заметно, а вот в паверпоинте заиграло новыми красками
Пришлось поздно вечером форматировать всю презу.
На будущее буду сохранять из гаммы часть слайдов и допиливать их уже в паверпоинте. Чтобы все картинки были на одном уровне и шрифты не плясали.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Artem Ryblov’s Data Science Weekly
Machine Learning System Design Interview by Ali Aminian and Alex Xu
Machine learning system design interviews are the most difficult to tackle of all technical interview questions. This book provides a reliable strategy and knowledge base for approaching a broad range of ML system design questions. It provides a step-by-step framework for tackling an ML system design question. It includes many real-world examples to illustrate the systematic approach, with detailed steps you can follow.
This book is an essential resource for anyone interested in ML system design, whether they are beginners or experienced engineers. Meanwhile, if you need to prepare for an ML interview, this book is specifically written for you.
What’s inside?
- An insider’s take on what interviewers really look for and why.
- A 7-step framework for solving any ML system design interview question.
- 10 real ML system design interview questions with detailed solutions.
- 211 diagrams that visually explain how various systems work.
Table Of Contents
Chapter 1 Introduction and Overview
Chapter 2 Visual Search System
Chapter 3 Google Street View Blurring System
Chapter 4 YouTube Video Search
Chapter 5 Harmful Content Detection
Chapter 6 Video Recommendation System
Chapter 7 Event Recommendation System
Chapter 8 Ad Click Prediction on Social Platforms
Chapter 9 Similar Listings on Vacation Rental Platforms
Chapter 10 Personalized News Feed
Chapter 11 People You May Know
Links:
- Paper version
- Digital version
- Solutions
Navigational hashtags: #armknowledgesharing #armbooks
General hashtags: #mlsd #machinelearning #machinelearningsystemdesign
@data_science_weekly
Machine learning system design interviews are the most difficult to tackle of all technical interview questions. This book provides a reliable strategy and knowledge base for approaching a broad range of ML system design questions. It provides a step-by-step framework for tackling an ML system design question. It includes many real-world examples to illustrate the systematic approach, with detailed steps you can follow.
This book is an essential resource for anyone interested in ML system design, whether they are beginners or experienced engineers. Meanwhile, if you need to prepare for an ML interview, this book is specifically written for you.
What’s inside?
- An insider’s take on what interviewers really look for and why.
- A 7-step framework for solving any ML system design interview question.
- 10 real ML system design interview questions with detailed solutions.
- 211 diagrams that visually explain how various systems work.
Table Of Contents
Chapter 1 Introduction and Overview
Chapter 2 Visual Search System
Chapter 3 Google Street View Blurring System
Chapter 4 YouTube Video Search
Chapter 5 Harmful Content Detection
Chapter 6 Video Recommendation System
Chapter 7 Event Recommendation System
Chapter 8 Ad Click Prediction on Social Platforms
Chapter 9 Similar Listings on Vacation Rental Platforms
Chapter 10 Personalized News Feed
Chapter 11 People You May Know
Links:
- Paper version
- Digital version
- Solutions
Navigational hashtags: #armknowledgesharing #armbooks
General hashtags: #mlsd #machinelearning #machinelearningsystemdesign
@data_science_weekly
Forwarded from Дмитрий Колодезев
Machine-Learning-Systems-2025-11-04.pdf
40.9 MB
Материалов куча, все теплится надежда еще раз прочитать курс со всем новым, но пока некогда.
Из книг - вот прикольная
Из книг - вот прикольная
Forwarded from Дмитрий Колодезев
вот допматериалы к тому старому курсу https://kolodezev.ru/mlsystemdesign.html
kolodezev.ru
Курс по ML System Design
Курс по проектированию систем машинного обучения (ML System Design).
Forwarded from Dataism
📚👀Если кто-то хотел глянуть, как работать с dbt, то вот вам курс, случайно наткнулась на просторах youtube.
Хорошо, что все больше полезного материала появляется, потому что еще 3 года назад по dbt была только официальная дока и маленькие видосы, а тут прям курс:
https://youtu.be/JXBAkOvAu5A?si=GFhEn9Nj8QaFq8vN (пример 1го урока, не нашла собранного плейлиста, но вы умненькие и сообразите куда клацать)
По Clickhouse курс там же: https://youtu.be/aN7grWZq_7Y?si=JkjxlQAU85cUCtwq (пример 1го урока)
Еще в копилку для чтения добавила книжечку
Может кто-то читал уже? Как вам?
Хорошо, что все больше полезного материала появляется, потому что еще 3 года назад по dbt была только официальная дока и маленькие видосы, а тут прям курс:
https://youtu.be/JXBAkOvAu5A?si=GFhEn9Nj8QaFq8vN (пример 1го урока, не нашла собранного плейлиста, но вы умненькие и сообразите куда клацать)
По Clickhouse курс там же: https://youtu.be/aN7grWZq_7Y?si=JkjxlQAU85cUCtwq (пример 1го урока)
Еще в копилку для чтения добавила книжечку
Может кто-то читал уже? Как вам?
Forwarded from Ebout Data Science | Дима Савелко
Как вытащить БОЛЬ из рекрутера и техлида прямо сейчас Прямо сейчас на трансляции мы разбираем, как перестать быть «одним из 30» в очереди и начать диктовать свои условия. Но чтобы продать решение, нужно сначала понять, что у них болит
Не надо гадать на кофейной гуще - тут нужно просто спросить. Ловите вопросы, которые превратят ваш монолог в допрос для компании, после которой вы будете знать её боли лучше, чем сама компания знает свои
Здесь мы узнаем контекст. HR - твой союзник, он сольет тебе инфу, если правильно спросить.
«В чем сейчас главная боль команды? Какую задачу нужно "тушить" в первую очередь?»
«А какие задачи будут приоритетными для нового человека, чтобы усилить то направление, которым занимался предыдущий сотрудник?»
«Позиция новая или это замена? Если замена — чего не хватило прошлому сотруднику?»
«Каких конкретных результатов вы ожидаете от специалиста через 3 месяца после начала работы? Что будет критерием успешного прохождения испытательного срока?»
Здесь ты говоришь с носителем боли. Поговоришь с людьми, которые либо решают эту боль, или её испытывают.
«Расскажите, пожалуйста, как выглядит путь модели от идеи до продакшена? С какими основными сложностями (узкими местами) команда сталкивается при деплое сейчас?»
«Каково примерное соотношение времени, которое команда тратит на поддержку текущих решений и на разработку новых фичей/моделей?»
«Как у вас выстроен процесс работы с данными? Есть ли в команде выделенные дата-инженеры, или подготовка данных и построение пайплайнов полностью лежат на ML-разработчиках?»
«Много времени уходит на поддержку легаси-моделей?»
«Насколько чистые данные приходят? Сколько времени уходит на feature engineering, а сколько на обучение?»
Здесь смотрим, сработаемся ли мы по-человечески.
«На какие ключевые метрики бизнеса влияет работа вашей команды? Как именно эта роль помогает компании достигать глобальных целей?»
«Как у вас организован рабочий процесс? Как обычно ставятся задачи и как команда справляется с пиковыми нагрузками или срочными дедлайнами?»
«Опишите, пожалуйста, идеального кандидата для этой роли. Какими софтами должен обладать человек, чтобы максимально органично вписаться в вашу команду?»
«Основываясь на нашем разговоре, есть ли у вас какие-то сомнения относительно моего опыта или навыков, которые мы могли бы обсудить и прояснить прямо сейчас?»
Залетай на эфир, там сейчас самый сок - разбираем, как эти ответы превратить в оффер
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from декомпозиция и отвага
Ваши ожидания — ваши проблемы
А теперь к теме📝
Ошибкой, которая была допущена в этом кейсе, является
ожидание определенной последовательности обработки событий, поступающих из разных топиков.
Но если последовательность все же нужна, как её обеспечить?
Вот самые простые решения, подойдут для кейса с товарами👀
1️⃣ сделать все атрибуты таблицы кроме product_id необязательными, чтобы можно было создавать запись с неполным перечнем параметров по любому из событий. В этом случае, продумайте, как будет строиться отображение на фронте, чтобы недозаполненные товары там не светились.
2️⃣ объединяем процессы в один топик. Например, оставляем только ProductUpdatedEvent. В топике должна быть одна партиция или несколько, но партиционирование по ключу product_id. Тут учитывайте, что не все процессы, создающие и обновляющие одну сущность, можно схлопнуть в один топик. Могут быть разные сервисы-продюсеры и слишком далекие по смыслу события.
Тогда еще вот такие варианты👀
3️⃣ использовать временную таблицу в БД для случаев, когда апдейт пришел раньше события создания. При получении события создания, удалять запись из временной таблицы и создавать полную запись в основной.
4️⃣ использовать оркестратор
🙃 🙃 🙃 🙃 🙃 🙃 🙃 🙃 🙃 🙃
всё пойдёт по одному месту😭 😔 😭
🫡 -
❤️ -
💅 -
Продолжение поста про ошибки при создании карточек товара.
Кстати, огромное спасибо всем, кто участвовал в обсуждении!
Не ожидала такого вовлечения в технические дискуссии ранним пятничным утром☕️ 🛌 Вы крутые!
А теперь к теме
Ошибкой, которая была допущена в этом кейсе, является
ожидание определенной последовательности обработки событий, поступающих из разных топиков.
Никогда
! Ты слышишь меня?
Никогда
не рассчитывай на то, что асинхронные события придут в каком-то логичном с твоей точки зрения порядке. Они же про бизнес-процесс вообще ничего не знают. Знаешь ты.
Это твой дар и твое проклятие
🕸️
Но если последовательность все же нужна, как её обеспечить?
Вот самые простые решения, подойдут для кейса с товарами
Тогда еще вот такие варианты
Подходящий вариант обычно выбирается коллегиально: аналитик, разработчик, иногда еще и архитектор.
Для СА полезно знать, какие опции доступны, ну и всегда помнить о том, что на проде все события будут приходить в самом неожиданном порядке, а то и одновременно спасибо, теперь буду смотреть в оба
❤️ -
не работаю с таким, но было интересно узнать, как бывает
прошу выкладывать фотографии админа, а не Андрея Аршавина
#практика_и_отвагаPlease open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Статистика и R в науке и аналитике
Diff-in-Diff на самом деле
Вокруг методов квазиэкспериментов (diff-in-diff, regression discontinuity, Propensity Score Matching и тд), которые применяются в случае, когда A/B невозможен, есть некая атмосфера крутизны. Считается, что обычные A/B тесты это база, которую умеют делать все, а вот методы причинного вывода это реально сложно и интересно. Хотя все понимают (надеюсь), что с точки зрения валидности и надежности выводов правильно задизайненный и проведенный A/B тест опережает все вышеперечисленное. Все остальные квазиэксперименты это "A/B для бедных". Тем не менее, иногда действительно нет возможности провести A/B тест по разным причинам. Например, он технически невозможен или этически недопустим, однако эффект все равно оценить нужно, тогда без квазиэкспериментов никак.
У меня самой было в планах наконец-то разобраться с этими методами, так как это интересно, а еще про это любят спрашивать на собеседованиях 😏.
И вот оно: по работе возникла задача посчитать влияние уже внедренной фичи, которую запускали сразу на 100% без A/B (были на это причины). Это как раз типичный кейс применения diff-in-diff. Я обрадовалась возможности с этим разобраться на реальных данных (ооо наконец-то сложные методы), так что поставила задачку на себя и пошла читать статьи как это работает.
Оказалось, что аналитики в очередной раз назвали умными словами обычную линейную регрессию с двумя факторами и взаимодействием. Основная сложность метода не в формуле, а как обычно в наличии качественных данных и в умении правильно их приготовить. Например, нужно выбрать подходящую контрольную группу или построить синтетическую, проверить выполняются ли параллельные тренды до вмешательства, при необходимости добавить ковариаты, но это уже детали.
Общую идею метода неплохо объяснили в статье на хабре, но мне немного показалось, что в статье есть то самое "назвать простое сложным".
Сама формула:
Как видите, это обычная формула линейной регрессии с взаимодействием, где
β0 (Intercept) – значение интересующего показателя, например конверсии, в контрольной группе до воздействия.
β1 – значение показателя в тестовой группе до воздействия.
β2 – значение показателя в контрольной группе после воздействия.
β3 – тот самый эффект взаимодействия, Diff-in-Diff, дополнительное изменение конверсии в тестовой группе после воздействия по сравнению с контрольной группой.
Никакой сложной математики, старая добрая линейная регрессия в тренде 😎
Пример кода на🖥
Пример кода на🐍
Самое главное для применения метода подобрать подходящий контроль с соблюдением параллельности трендов до воздействия, а дальше сама формула занимает буквально две строчки. И необязательно делать вид, что это что-то супер сложное и крутое, потому что по сравнению с моделями, с которыми сталкиваются ученые, это совсем не рокет саенс🤓
Вот еще несколько полезных ссылок:
1) Статья из книги Causal Inference for the Brave and True
2) Небольшая заметка на kaggle
3) Хорошая статья от X5 на хабре
👇 В комментарии приложила пример кода для генерации подходящих под Diff-in-Diff данных на R и Python
#analytics #stats
Вокруг методов квазиэкспериментов (diff-in-diff, regression discontinuity, Propensity Score Matching и тд), которые применяются в случае, когда A/B невозможен, есть некая атмосфера крутизны. Считается, что обычные A/B тесты это база, которую умеют делать все, а вот методы причинного вывода это реально сложно и интересно. Хотя все понимают (надеюсь), что с точки зрения валидности и надежности выводов правильно задизайненный и проведенный A/B тест опережает все вышеперечисленное. Все остальные квазиэксперименты это "A/B для бедных". Тем не менее, иногда действительно нет возможности провести A/B тест по разным причинам. Например, он технически невозможен или этически недопустим, однако эффект все равно оценить нужно, тогда без квазиэкспериментов никак.
У меня самой было в планах наконец-то разобраться с этими методами, так как это интересно, а еще про это любят спрашивать на собеседованиях 😏.
И вот оно: по работе возникла задача посчитать влияние уже внедренной фичи, которую запускали сразу на 100% без A/B (были на это причины). Это как раз типичный кейс применения diff-in-diff. Я обрадовалась возможности с этим разобраться на реальных данных (ооо наконец-то сложные методы), так что поставила задачку на себя и пошла читать статьи как это работает.
Оказалось, что аналитики в очередной раз назвали умными словами обычную линейную регрессию с двумя факторами и взаимодействием. Основная сложность метода не в формуле, а как обычно в наличии качественных данных и в умении правильно их приготовить. Например, нужно выбрать подходящую контрольную группу или построить синтетическую, проверить выполняются ли параллельные тренды до вмешательства, при необходимости добавить ковариаты, но это уже детали.
Общую идею метода неплохо объяснили в статье на хабре, но мне немного показалось, что в статье есть то самое "назвать простое сложным".
Сама формула:
y = β0 + β1*treat + β2*post + β3*(treat × post) + ε
Как видите, это обычная формула линейной регрессии с взаимодействием, где
β0 (Intercept) – значение интересующего показателя, например конверсии, в контрольной группе до воздействия.
β1 – значение показателя в тестовой группе до воздействия.
β2 – значение показателя в контрольной группе после воздействия.
β3 – тот самый эффект взаимодействия, Diff-in-Diff, дополнительное изменение конверсии в тестовой группе после воздействия по сравнению с контрольной группой.
Никакой сложной математики, старая добрая линейная регрессия в тренде 😎
Пример кода на
# предварительно уже создан df, в комментарии пришлю как сгенерировать
model <- lm(y ~ treat*post, data = data)
summary(model)
Пример кода на
# предварительно уже создан df, в комментарии пришлю как сгенерировать
import statsmodels.formula.api as smf # ключевой import для работы с Diff-in-Diff
df['did'] = df['treat'] * df['post'] # создание переменной взаимодействия
model = smf.ols("y ~ treat + post + did", data=df).fit()
print(model.summary())
Самое главное для применения метода подобрать подходящий контроль с соблюдением параллельности трендов до воздействия, а дальше сама формула занимает буквально две строчки. И необязательно делать вид, что это что-то супер сложное и крутое, потому что по сравнению с моделями, с которыми сталкиваются ученые, это совсем не рокет саенс
Вот еще несколько полезных ссылок:
1) Статья из книги Causal Inference for the Brave and True
2) Небольшая заметка на kaggle
3) Хорошая статья от X5 на хабре
#analytics #stats
Please open Telegram to view this post
VIEW IN TELEGRAM