записаться на курс или задать вопрос

Мы свяжемся с вами и ответим на все ваши вопросы по курсу.

Новое в подписке:

VIDEO SUMMARY
Мы научимся генерировать краткое содержание любого ролика на YouTube. Мы подружимся с API OpenAI и завернём наш LLM-сервис в веб-приложение с помощью Streamlit.
NLP / Transformers / OpenAI
Уровень: Medium
Новая задача
PCA
Linear Models / Matrix Factorization / Matrix Algebra
В этом задании вы самостоятельно реализуете метод главных компонент PCA для снижения размерности данных и примените его для сжатия изображений
Уровень: Medium
Новая задача
MARKETING MIXTURE MODELING
Linear models
На каких платформах закупать рекламу для нашего сервиса? Что делать, когда теряется информация, откуда к нам пришёл пользователь? ML-инженеры знают, как сформулировать эти вопросы на языке машинного обучения. Вы познакомитесь с Marketing Mixture Modeling (MMM) и научитесь распределять маркетинговый бюджет, максимизируя ROI.
Уровень: Medium
Новая задача
NEGATION
Отрицания в отзывах могут запутать NLP модели классификации. Работая над сервисом FlyingFood, вы освоите библиотеку CheckList для создания negation тестов и проверите, насколько хорошо ваша модель улавливает их суть.
NLP / Testing
Уровень: Medium
Новая задача
MOCK-TEST
Как тестировать код, который включает интеграцию с внешними сервисами или базами данных? Или как покрывать тестами сложные ML-пайплайны, где что-то долго обрабатывается и обучается? А что делать, когда в нашей функции есть чтение или запись данных на диск? Все эти проблемы уйдут разом, когда вы освоите mock-тесты. Мы покроем тестами один из сервисов в финтех-стартапе SigmaBank, сильно завязанный на внешние данные.
Testing / Python
Уровень: Medium
Новая задача
AI SEO (GPT-2)
Мы основательно изучим, что у ChatGPT происходит под капотом при генерации каждого нового токена. Мы реализуем GPT-2 с нуля на чистом numpy; узнаем, как меняется «смысл слова» с каждым слоем; разберёмся, зачем нужен тот или иной элемент архитектуры — и поймём механизм Self-Attention. В конце мы решим продуктовую задачу, запустив Streamlit сервис на основе построенной GPT для автоматической генерации описаний товаров на KarpovExpress.
NLP / Transformers / RegEx
Уровень: Hard
Новая задача
MRR (Monthly Recurring Revenue)
Metrics / SQL
Мы успешно запустили AI-продукт, работающий по модели подписки, набрали лояльную аудиторию и продолжаем привлекать новых подписчиков. Теперь встал вопрос оценить финансовую устойчивость нашего бизнеса и стабильность доходов. Как это правильно сделать? В этой задаче мы рассчитаем метрику Monthly Recurring Revenue (MRR) и построим дашборд.
Уровень: Medium
Новая задача
PROXY METRICS
Metrics
Работая над ML-системой мы сталкиваемся с разными типами метрик: бизнес-метрики, метрики качества, лосс-функции. Что это за метрики, какую роль выполняют и как связаны между собой, мы разберем в этой задаче.
Уровень: Easy
Новая задача
RETENTION RATE
Metrics / SQL
Мы разрабатываем AI-продукт и несколько недель назад запустили своё приложение. Удержание пользователей — ключевой фактор для определения того, удовлетворяет ли продукт потребность пользователя. Но как понять, даёт ли сервис ценность, спустя неделю, месяц, полгода? В этой задаче мы узнаем способ.
Уровень: Medium
Новая задача
RAG
NLP / Transformers / Embeddings
Мы внедряем LLM в свой продукт.
Один из самый простых, дешёвых и быстрых способов «научить» модель отвечать на вопросы с учётом нашей специфической базы знаний — подставлять кусочки знаний, релевантные к запросу пользователя, на лету. Данный паттерн LLM систем называется RAG (Retrieval-Augmented Generation) и в этой задаче мы научимся с его помощью строить простые Q&A сервисы.
Уровень: Medium
Новая задача
Симулятор постоянно пополняется новыми задачами, а наши студенты определяют приоритеты разработки.
НОВЫЕ ЗАДАЧИ КАЖДЫЙ МЕСЯЦ

Python //

Подборка для тех, кто чувствует себя неуверенно c Python
Уровень: Easy
VALID EMAILS
Вашей команде поручили заняться разработкой сервиса для автоматического отлова ботов и предотвращения DDoS-атак. Для регистрации на сайте необходимо указать email-адрес. Не всегда указанный набор символов — это корректный email. Ваш коллега написал код, который медленно работает. Ваша задача — ускорить код минимум в 2 раза, поменяв буквально две строчки.
Python / Optimization / Real-Time / RegEx
DOCSTRING
Python
Уровень: Easy
Вам предоставлен python-файл, над которым потрудились 4 разных джуна, каждый привык писать документацию в своём стиле (а кто-то не пишет вообще). Как быстро и легко привести всё к общему виду?
Уровень: Easy
URL PARSING
Python / RegEx
В этом задании вы научитесь извлекать URL-адреса из текстовых сообщений, тем самым повысите эффективность обнаружения спама.
MULTIPROCESSING
Ваш коллега написал парсер вакансий и хочет посчитать частотность слов в вакансиях. Подсчет слов в текущей реализации работает медленно. Вооружившись новыми знаниями о параллельных вычислениях, вы взялись помочь ему оптимизировать код.
Optimization / Python
Уровень: Easy
Вы узнаете, что такое генераторы в языке Python, чем они отличаются от обычных функций и что такое ленивые вычисления.
Python
Уровень: Easy
GENERATORS
Уровень: Easy
ASYMMETRIC METRICS
В этой задаче вам необходимо придумать функцию потерь, адекватную для бизнес-задач двух компаний: Х6 — ретейлера бытовой техники и B2B финтех стартапа, который предоставляет депозиты/кредиты, куплю/продажу ценных бумаг и другие финансовые инструменты.
Metrics / Python
OOP I: CLASS VS OBJECT и OOP II: PRINCIPLES
Уровень: Easy
Код, который регулярно используется, нужно держать в порядке, облегчая вам и вашим коллегам его поддержку. Мы разберемся, как грамотно структурировать свой код, применяя принципы ООП: инкапсуляцию, наследование и полиморфизм. Благодаря ним ваши объекты превратятся в атомарные сущности, которые взаимодействуют между собой, а не макароны кода, перекочевавшие из тетрадок и разбитые на классы «по темам».
Python
Уровень: Easy
В real-time сервисах существуют строгие лимиты на время ответа. Для сервисов, включающих машинное обучение, их соблюдать особенно трудно: много манипуляций с данными, не говоря уже о вычислениях самой модели. Мы познакомимся с одним из приёмов оптимизации вычислений — мемоизацией.
Optimization / Python
MEMOIZATION
Python
В этой задаче вы познакомитесь с элементами функционального программирования в Python. Научитесь работать с функциями map, filter, reduce.
Уровень: Easy
MAP, FILTER, REDUCE
YAML CONFIG
Мы научимся парсить большие многоуровневые конфиги в формате YAML с помощью рекурсии. Если вы испытываете трудности с рекурсивными функциями, эта задача для вас.
Parsing / Python
Уровень: Easy
Два месяца назад ваш коллега во время стажировки написал sMAPE, который корректно работал в продакшене всё это время. Периодически метрика выдаёт ошибку, а логи ошибки нам недоступы. Ваша задача — отыскать случаи, когда данный код выдаёт ошибку, а затем исправить его, не меняя поведение метрики в остальных ситуациях.
Debug / Metrics / Python
Уровень: Easy
SMAPE
Debug / Pandas / Python
Уровень: Easy
STOCKS
Наша модель динамического ценообразования на маркетплейсе KarpovExpress предсказывает оборот на завтра в рублях. Прогноз выполняется на основе некоторого набора фичей и цены. Вам нужно написать функцию для постобработки предсказаний модели.
Здесь вы рассмотрите декораторы @staticmethod и @classmethod. Разберетесь, как они работают и чем полезны.
Python
Уровень: Easy
METHOD DECORATORS

SQL //

Подборка для тех, кто чувствует себя неуверенно c SQL
Уровень: Medium
SQL-TREE
А вы знали, что решающие деревья можно деплоить прямо в виде SQL запроса? — менеджеры SigmaBank тоже не знали! Вы освоите важный навык ML инженера: как обученную модель конвертировать из одного формата в другой для ускорения инференса.
Tree-Based-Models / SQL
Уровень: Hard
BOOSTING UNCERTAINTY
Tree-Based Models / SQL / Time-Series
Мы прогнозируем объемы продаж маркетплейса для миллионов товаров с помощью градиентного бустинга. Стейкхолдеры обращаются с вопросом: насколько мы уверены в предсказаниях модели? Ваша задача — оценить надежность её предсказаний для данных в будущем.
WAU
SQL / Metrics
Уровень: Easy
Вам предстоит посчитать метрику WAU (weekly active users) — количество активных пользователей в неделю, используя живые данные Симулятора ML.
Уровень: Easy
USER SEGMENTATION
SQL / Clustering
Вам дана таблица оплат пользователей крупной компании. Вы напишете sql запрос, который сегментирует пользователей на основе цен их покупок.
TIME-SERIES DASHBOARD
Вам дана таблица оплат пользователей крупной компании. Постройте дашборд, отображающий сумму успешных оплат пользователей за каждую неделю.
SQL / Time Series
Уровень: Easy
Вы работаете в одной крупной FMCG-компании. Ваш руководитель дал задание провести анализ продаж. Первым делом необходимо посчитать, сколько товаров компания продает в день.
SQL / Metrics
Уровень: Easy
SKU SALES
Уровень: Easy
PAYMENTS DASHBOARD
Дана таблица оплат пользователей крупной компании. Вам предстоит построить дашборд с процентом успешных оплат в месяц по всем видам оплат.
SQL
AVERAGE CHECK
Уровень: Easy
В этой задаче познакомимся с одной из самых простых и популярных метрик AVERAGE CHECK и научимся считать ее с помощью простого SQL запроса.
SQL / Metrics
Уровень: Hard
ML-команде маркетплейса потребовались векторные представления товаров, чтобы находить похожие товары. Постройте эмбеддинги товаров на основе паттернов поведения покупателей, используя методы коллаборативной фильтрации.
Matrix Factorization / Embeddings / SQL / kNN
SKU EMBEDDINGS
SQL
Вы проходите стажировку в команде ML-ценообразования в одной крупной ретейл компании. Для первичного анализа данных о продажах вам предстоит составить четыре SQL запроса, чтобы получить TOP-10 различных объектов.
Уровень: Easy
TOP-10
CHURN RATE I: SQL
Karpov.Courses хочет понимать, какие студенты стали реже заходить в Симулятор. Решите задачу-квест разработки модели оттока, пройдя несколько этапов. В первой части задачи вам предстоит написать SQL-запрос с оконными функциями для построения датасета.
SQL / Linear Models / ETL / Deploy
Уровень: Hard
Вы научитесь считать ARPU, AOV — важнейшие метрики, напрямую указывающие на успешность бизнеса.
SQL / Metrics
Уровень: Easy
ARPU & AOV
Stats / SQL / Python
Уровень: Easy
ELASTICITY FEATURE
Эластичность — это зависимость спроса от цены, одно из базовых понятий не только в онлайн/оффлайн ретейле, но и других бизнес задачах. Вы научитесь считать эластичность товаров для дальнейшего использования в качестве признака для модели ценообразования.
Продуктовые метрики DAU (daily active users), WAU (weekly active users) и MAU (monthly active users) встречаются очень часто. В этой задаче мы разберемся, как они считаются, и научимся строить одну из них — метрику DAU.
SQL / Metrics
Уровень: Easy
DAU

метрики //

Metrics
Уровень: Easy
REGRESSION METRICS
Каждый успешный ML проект требует выбора подходящих метрик. Мы реализуем основные метрики для задач регрессии и классификации, изучим их различия на примерах.
В этой задаче вам необходимо придумать функцию потерь, адекватную для бизнес-задач двух компаний: Х6 — ретейлера бытовой техники и B2B финтех стартапа, который предоставляет депозиты/кредиты, куплю/продажу ценных бумаг и другие финансовые инструменты.
Metrics / Python
Уровень: Easy
ASYMMETRIC METRICS
PROXY METRICS
Работая над ML-системой мы сталкиваемся с разными типами метрик: бизнес-метрики, метрики качества, лосс-функции. Что это за метрики, какую роль выполняют и как связаны между собой, мы разберем в этой задаче.
SQL / Metrics
Уровень: Easy
SMAPE
Debug / Metrics / Python
Уровень: Medium
Два месяца назад ваш коллега во время стажировки написал sMAPE, который корректно работал 
в продакшене всё это время. Периодически метрика выдаёт ошибку, а логи ошибки нам недоступы. Ваша задача – отыскать случаи, когда данный код выдаёт ошибку, а затем исправить его, не меняя поведение метрики в остальных ситуациях.
Уровень: Easy
RECALL @ K
Мы разрабатываем платформу Greenterest для хранения картинок, сгенерированных нейросетями, и строим поисковой сервис, который по запросу пользователя выдаёт релевантные. Модель предсказывает релевантность картинок. Мы оценим точность нового алгоритма ранжирования на истории до того, как проводить А/Б-тест.
Metrics
SKU SALES
Вы работаете в одной крупной FMCG-компании. Ваш руководитель дал задание провести анализ продаж. Первым делом необходимо посчитать, сколько товаров компания продает в день.
SQL / Metrics
Уровень: Easy
Каждый успешный ML проект требует выбора подходящих метрик. Мы реализуем основные метрики для задач регрессии и классификации, изучим их различия на примерах.
Metrics
Уровень: Easy
classifications METRICS
Stats / SQL / Metrics
Продуктовые метрики DAU (daily active users), WAU (weekly active users) и MAU (monthly active users) встречаются очень часто. В этой задаче мы разберемся, как они считаются, и научимся строить одну из них — метрику DAU.
Уровень: Easy
DAU
Уровень: Easy
QUANTILE T-TEST
Если мы обещали доставку еды через 20 минут, а дрон-курьер летел час – это обернётся потерянным клиентом. Нас интересует не то, насколько мы обманываем клиента в среднем (обычный t-test), а то, насколько заявленное время расходится с реальным в худшем случае. Как правильно проводить A/B-тест для квантилей метрики?
Stats / A/B
AVERAGE CHECK
В этой задаче познакомимся с одной из самых простых и популярных метрик AVERAGE CHECK и научимся считать ее с помощью простого SQL запроса.
SQL / Metrics
Уровень: Easy
Уровень: Easy
ARPU & AOV
Вы научитесь считать ARPU, AOV — важнейшие метрики, напрямую указывающие на успешность бизнеса.
SQL / Metrics
Уровень: Easy
WAU
Вам предстоит посчитать метрику WAU (weekly active users) — количество активных пользователей в неделю, используя живые данные Симулятора ML.
SQL / Metrics / ClickHouse
Уровень: Easy
ELASTICITY FEATURE
Эластичность — это зависимость спроса от цены, одно из базовых понятий не только в онлайн/оффлайн ретейле, но и других бизнес задачах. Вы научитесь считать эластичность товаров для дальнейшего использования в качестве признака для модели ценообразования.
Stats / SQL / Python
Уровень: Easy
NDCG
Задача познакомит вас с метриками ранжирования. Вам предстоит помочь телеграм-боту CyberTolya разобраться, какие видео с YouTube канала Karpov.Courses релевантны вопросам студентов. Сможет 
ли робот Толя помочь нашим студентам?
Metrics / Python / Math
Уровень: Medium
SKU UNIQUENESS
Задача является сиквелом к задаче про эмбеддинги товаров (впрочем, их можно решать независимо).
Вы занимаетесь построением рекомендательной системы в компании KarpovExpress. Иногда пользователи жалуются, что выдача состоит из однотипных товаров. Вам нужно придумать свою метрику для оценки разнообразия в выдаче.
Embeddings / Metrics / kNN / Real-Time / Deploy
Уровень: Easy
PAYMENTS DASHBOARD
Дана таблица оплат пользователей крупной компании. Вам предстоит построить дашборд с процентом успешных оплат в месяц по всем видам оплат.
SQL
Уровень: Medium
MRR (MONTHLY RECURRING REVENUE)
Мы успешно запустили AI-продукт, работающий по модели подписки, набрали лояльную аудиторию и продолжаем привлекать новых подписчиков. Теперь встал вопрос оценить финансовую устойчивость нашего бизнеса и стабильность доходов. Как это правильно сделать? В этой задаче мы рассчитаем метрику Monthly Recurring Revenue (MRR) и построим дашборд.
SQL / Metrics
Уровень: Medium
RETENTION RATE
Мы разрабатываем AI-продукт и несколько недель назад запустили своё приложение. Удержание пользователей – ключевой фактор для определения того, удовлетворяет ли продукт потребность пользователя. Но как понять, даёт ли сервис ценность, спустя неделю, месяц, полгода? В этой задаче мы узнаем способ.
SQL / Metrics
Уровень: Medium
MARKETING MIXTURE MODELING
На каких платформах закупать рекламу для нашего сервиса? Что делать, когда теряется информация, откуда к нам пришёл пользователь? ML-инженеры знают, как сформулировать эти вопросы на языке машинного обучения. Вы познакомитесь с Marketing Mixture Modeling (MMM) и научитесь распределять маркетинговый бюджет, максимизируя ROI.
Linear Models
Уровень: Medium
SMART-LINK II: A/B DESIGN
Продолжаем строить сервис real-time рекомендаций. Пришло время проводить эксперимент: мы поделим трафик на 2 группы, проведём симуляцию A/A и A/B тестов и научимся определять, сколько должен длиться тест.
AB-testing / Stats / Metrics
Уровень: Easy
TIME-SERIES DASHBOARD
Вам дана таблица оплат пользователей крупной компании. Постройте дашборд, отображающий сумму успешных оплат пользователей за каждую неделю.
Time-Series / SQL

Знакомство с новыми инструментами //

HELLO PYTEST
Testing / Metrics
Хороший код — надёжный код. Код в машинном обучении, в силу своей сложности и запутанности, особенно подвержен проблемам. Попробуем написать наши первые юнит-тесты для трёх бизнес-метрик, используя Pytest.
Уровень: Easy
HELLO DOCKER
Для того, чтобы подружить зоопарк из разных версий библиотек, языков, баз данных и сервисов, применяют изоляцию окружения. Для каждого приложения фиксируются свои версии библиотек и инструментов, что позволяет разным микросервисам, находясь в разных окружениях, работать друг с другом как одно целое. Мы познакомимся с самым популярным инструментом контейнеризации приложений, Docker.
Deploy
Уровень: Medium
ANTIFRAUD II: DVC
Машинное обучение не обходится без экспериментов: мы пробуем разные модели и собираем разные датасеты. Иногда текущая ветвь экспериментирования оказывается тупиковой, в этом случае хочется откатиться на предыдущие итерации. Для этих целей применяют версионирование моделей и данных. Мы познакомимся с одним из таких инструментов — DVC. Мы научимся переключаться между разными версиями датасетов, вооружившись DVC и GitLab.
Deploy
Уровень: Medium
HELLO BERT
Deep Learning / NLP / Transformers / Embeddings
Долгожданная задача на Трансформеры. Изучим особенности архитектуры BERT. Узнаем, что такое эмбеддинг, токенизация и динамический паддинг. Разберёмся, как применять предобученную модель для оценки тональности отзывов в приложении по доставке еды по воздуху с помощью дронов.
Уровень: Medium
ANTI-FRAUD I: MLFLOW
Задача знакомит вас с новым инструментом, MLflow, который используется для контроля жизненного цикла модели, включая её версионирование (аля «github для моделей») и трекинги экспериментов. Знакомство с MLflow происходит попутно с детекцией ботов в некой социальной сети Glitter, которую недавно выкупил один небезызвестный миллиардер.
Embeddings / Metrics / MLOps
Уровень: Medium
DATA QUALITY & PYSPARK
Задача со сторителлингом в 4 шага на контроль качества данных, которая является плавным введением в интерфейс PySpark для тех из вас, кто уже приноровился работать с Pandas.
PySpark / Pandas / ETL
Уровень: Medium

Какие еще инструменты представлены в Симуляторе:

модели прогноза //

SQL
Уровень: Easy
PAYMENTS DASHBOARD
Дана таблица оплат пользователей крупной компании. Вам предстоит построить дашборд с процентом успешных оплат в месяц по всем видам оплат.
STOCKS
Наша модель динамического ценообразования на маркетплейсе KarpovExpress предсказывает оборот на завтра в рублях. Прогноз выполняется на основе некоторого набора фичей и цены. Вам нужно написать функцию для постобработки предсказаний модели.
Pandas / Debug / Python
Уровень: Easy
QUANTILE T-TEST
Если мы обещали доставку еды через 20 минут, а дрон-курьер летел час — это обернётся потерянным клиентом. Нас интересует не то, насколько мы обманываем клиента в среднем (обычный t-test), а то, насколько заявленное время расходится с реальным в худшем случае. Как правильно проводить A/B-тест для квантилей метрики?
Stats / AB-testing
Уровень: Easy
Мы построим решающее дерево с нуля и применим его к задаче кредитного скоринга. Узнаем, как сегментируются клиенты нашего банка по их кредитоспособности.
Tree-Based Models
Уровень: Easy
DECISION TREE
Уровень: Medium
DATA QUALITY & PYSPARK
Задача со сторителлингом в 4 шага на контроль качества данных, которая является плавным введением в интерфейс PySpark для тех из вас, кто уже приноровился работать с Pandas.
PySpark / Pandas / ETL
ASYMMETRIC METRICS
В этой задаче вам необходимо придумать функцию потерь, адекватную для бизнес-задач двух компаний: Х6 — ретейлера бытовой техники и B2B финтех стартапа, который предоставляет депозиты/кредиты, куплю/продажу ценных бумаг и другие финансовые инструменты.
Metrics / Python
Уровень: Easy
BOOSTING UNCERTAINTY
Tree-Based Models / SQL / Time-Series
Мы прогнозируем объемы продаж маркетплейса для миллионов товаров с помощью градиентного бустинга. Стейкхолдеры обращаются с вопросом: насколько мы уверены в предсказаниях модели? Ваша задача — оценить надежность её предсказаний для данных в будущем.
Уровень: Hard
DECISION TREE
Мы построим решающее дерево с нуля и применим его к задаче кредитного скоринга. Узнаем, как сегментируются клиенты нашего банка по их кредитоспособности.
Tree-Based Models
Уровень: Easy
SIMILAR ITEM PRICE
Pandas / kNN / Embeddings
В данной задаче мы сконцентрируемся на ценах похожих товаров. Как померить «схожесть» между двумя товарами? Используя готовые эмбеддинги, найдите средневзвешенные цены для топ-N похожих товаров.
Уровень: Medium

Динамическое ценообразование:

Time-Series
Уровень: Medium
HOUSE PRICE PREDICTION
Предскажите цены объектов недвижимости на основе их числовых признаков. Задание считается успешно выполненным при преодолении порога RMSE метрики.
Два месяца назад ваш коллега во время стажировки написал sMAPE, который корректно работал в продакшене всё это время. Периодически метрика выдаёт ошибку, а логи ошибки нам недоступы. Ваша задача — отыскать случаи, когда данный код выдаёт ошибку, а затем исправить его, не меняя поведение метрики в остальных ситуациях.
Debug / Metrics / Python
Уровень: Easy
SMAPE
ELASTICITY FEATURE
Эластичность — это зависимость спроса от цены, одно из базовых понятий не только в онлайн/оффлайн ретейле, но и других бизнес задачах. Вы научитесь считать эластичность товаров для дальнейшего использования в качестве признака для модели ценообразования.
Stats / SQL / Python
Уровень: Easy
SKU PRICE PREDICTION
Linear Models / Python / Time-Series
Уровень: Medium
Вы работаете в компании Karpov. Express и должны предсказать будущие цены товаров. Для этого вы определите возможный спрос на товары для каждого дня. Затем построите линейную модель предсказания спроса от цены и с ее помощью восстановите цену для нужных товаров.
Уровень: Hard
TARGET MARGIN
Компания X6 управляет тысячами магазинов по всей стране. Перед ней стоит задача устанавливать цены на товары так, чтобы получать стабильную прибыль, при этом не терять покупателей. Вам предстоит разработать алгоритм, который максимизирует выручку для целевой маржи.
Optimization / Matrix Algebra / Python
AVERAGE CHECK
В этой задаче познакомимся с одной из самых простых и популярных метрик AVERAGE CHECK и научимся считать ее с помощью простого SQL запроса.
SQL / Metrics
Уровень: Easy
Вы решаете задачу ценообразования в компании Karpov.Express. Узнаем 5 разных способов агрегации цен конкурентов, применяемых в rule-based ценообразовании.
Pandas / Python / kNN
Уровень: Medium
COMPETITOR PRICE
SQL / Metrics
Вы научитесь считать ARPU, AOV — важнейшие метрики, напрямую указывающие на успешность бизнеса.
Уровень: Easy
ARPU & AOV
Уровень: Easy
USER SEGMENTATION
Вам дана таблица оплат пользователей крупной компании. Вы напишете sql запрос, который сегментирует пользователей на основе цен их покупок.
Clustering / SQL
COLD START
Задача познакомит с простым решением проблемы «холодного старта» для товаров-новинок. Как оценить продажи и спрогнозировать спрос, если у нас еще нет истории продаж?
Pandas
Уровень: Easy
Уровень: Hard
COCA-COLA
Вы решаете задачу динамического ценообразования в компании X6. Необходимо разработать алгоритм постобработки для цен, который обеспечивает соблюдение принципа Кока-Колы (цена товара снижается не пропорционально его уменьшению).
Optimization / Pandas / OOP / Math

Рекомендательные системы:

Уровень: Easy
USER SEGMENTATION
Вам дана таблица оплат пользователей крупной компании. Вы напишете sql запрос, который сегментирует пользователей на основе цен их покупок.
Clustering / SQL
Вы проходите стажировку в команде ML-ценообразования в одной крупной ретейл компании. Для первичного анализа данных о продажах вам предстоит составить четыре SQL запроса, чтобы получить TOP-10 различных объектов.
SQL
Уровень: Easy
TOP-10
Уровень: Hard
SKU EMBEDDINGS
ML-команде маркетплейса потребовались векторные представления товаров, чтобы находить похожие товары. Постройте эмбеддинги товаров на основе паттернов поведения покупателей, используя методы коллаборативной фильтрации.
Matrix Factorization / Embeddings / SQL / kNN
RECALL @ K
Metrics
Уровень: Easy
Мы разрабатываем платформу Greenterest для хранения картинок, сгенерированных нейросетями, и строим поисковой сервис, который по запросу пользователя выдаёт релевантные. Модель предсказывает релевантность картинок. Мы оценим точность нового алгоритма ранжирования на истории до того, как проводить А/Б-тест.
SKU UNIQUENESS
Уровень: Medium
Задача является сиквелом к задаче про эмбеддинги товаров (впрочем, их можно решать независимо). Вы занимаетесь построением рекомендательной системы в компании KarpovExpress. Иногда пользователи жалуются, что выдача состоит из однотипных товаров. Вам нужно придумать свою метрику для оценки разнообразия в выдаче.
Embeddings / Metrics / kNN / Real-Time / Deploy
Вам предстоит познакомиться с многорукими бандитами, написанием web-сервисов на FastAPI и научиться в режиме реального времени распределять трафик между рекламными баннерами.
Real-Time / Multi-Armed Bandits / Deploy
Уровень: Medium
SMARTLINK I: E-GREEDY
NDCG
Задача познакомит вас с метриками ранжирования. Вам предстоит помочь телеграм-боту CyberTolya разобраться, какие видео с YouTube канала Karpov. Courses релевантны вопросам студентов. Сможет ли робот Толя помочь нашим студентам?
Metrics / Python / Math
Уровень: Easy
Tree-Based Models / AB-testing / Validation
Уровень: Medium
KAGGLE: A/B-TEST
Часто модели сравнивают, усредняя метрику по фолдам валидации. Вырос ROC-AUC на 1%, значит новая модель лучше. А если на 0.5%? А на 0.1%? Где прирост значимый, а где уже нет? Оказывается, даже на Kaggle есть место для А/Б тестов. Мы научимся внедрять статистические критерии в процедуру валидации и отыщем гиперпараметры, дающие стат. значимый прирост качества.
Embeddings / Matrix Factorization / Deploy / kNN
Рекомендательные системы — «сердце» любой современной стриминговой платформы. Платформа Tolich не исключение. Помогите команде создать первую версию RecSys на основе неявных оценок интересов пользователей.
Уровень: Medium
RECSYS LIVE-STREAMING PLATFORM

NLP & LLM

Новая подборка
Уровень: Hard
AI SEO (GPT-2)
Мы основательно изучим, что у ChatGPT происходит под капотом при генерации каждого нового токена. Мы реализуем GPT-2 с нуля на чистом numpy; узнаем, как меняется «смысл слова» с каждым слоем; разберёмся, зачем нужен тот или иной элемент архитектуры — и поймём механизм Self-Attention. В конце мы решим продуктовую задачу, запустив Streamlit сервис на основе построенной GPT для автоматической генерации описаний товаров на KarpovExpress.
NLP / Transformers / RegEx
Мы научимся генерировать краткое содержание любого ролика на YouTube. Мы подружимся с API OpenAI и завернём наш LLM-сервис в веб-приложение с помощью Streamlit.
LLM
Уровень: Medium
VIDEO SUMMARY
VALID EMAILS
Python / Optimization / Real-Time / RegEx
Уровень: Easy
Вашей команде поручили заняться разработкой сервиса для автоматического отлова ботов и предотвращения DDoS-атак. Для регистрации на сайте необходимо указать email-адрес. Не всегда указанный набор символов — это корректный email. Ваш коллега написал код, который медленно работает. Ваша задача — ускорить код минимум в 2 раза, поменяв буквально две строчки.
URL PARSING
Уровень: Easy
В этом задании вы научитесь извлекать URL-адреса из текстовых сообщений, тем самым повысите эффективность обнаружения спама.
Python / RegEx
Пицца хорошо прожарена" и «Пицца не прожарена хорошо» — кардинально разные отзывы с отличием лишь в частичку «не». Не всегда наша модель оценки тональности отзывов замечает разницу. В этой задаче мы с помощью подобных пар запросов научимся контролировать поведение модели даже в самых сложных случаях.
NLP / Testing
Уровень: Medium
NEGATION
MUTABLE WORD COUNT
Ваш коллега-стажёр написал счетчик слов в тексте, который умеет обрабатывать документы по батчам. Однако он в его имплементации есть баг, связанный с изменяемыми типами данных. Напишите тест, который ловит нежелательное поведение, и помогите ему исправить функцию.
Testing / NLP / Optimization
Уровень: Easy
Deep Learning / NLP / Transformers / Embeddings
Уровень: Medium
HELLO BERT
Долгожданная задача на Трансформеры. Изучим особенности архитектуры BERT. Узнаем, что такое эмбеддинг, токенизация и динамический паддинг. Разберёмся, как применять предобученную модель для оценки тональности отзывов в приложении по доставке еды по воздуху с помощью дронов.
Python / Parsing
Мы научимся парсить большие многоуровневые конфиги в формате YAML с помощью рекурсии. Если вы испытываете трудности с рекурсивными функциями, эта задача для вас.
Уровень: Easy
YAML CONFIG
RAG
NLP / Transformers / Embeddings
Уровень: Medium
Мы внедряем LLM в свой продукт.
Один из самый простых, дешёвых и быстрых способов «научить» модель отвечать на вопросы с учётом нашей специфической базы знаний — подставлять кусочки знаний, релевантные к запросу пользователя, на лету. Данный паттерн LLM систем называется RAG (Retrieval-Augmented Generation) и в этой задаче мы научимся с его помощью строить простые Q&A сервисы.

Тестирование в Python:

Ваш коллега-стажёр написал счетчик слов в тексте, который умеет обрабатывать документы по батчам. Однако он в его имплементации есть баг, связанный с изменяемыми типами данных. Напишите тест, который ловит нежелательное поведение, и помогите ему исправить функцию.
Testing / NLP / Optimization
Уровень: Easy
MUTABLE WORD COUNT
ROTATION BUG
Computer Vision / Testing
Уровень: Easy
Наша команда на платформе для AI-художников Greenterest занимается детекцией изображений, нарисованных дизайнерами вручную, и блокирует аккаунты нарушителей. Хитрые дизайнеры научились обходить детектор. Вы написали аугментацию для картинок, однако в имплементации оказался баг. Напишите тест, чтобы поймать баг и исправить его.
Хороший код — надёжный код. Код в машинном обучении, в силу своей сложности и запутанности, особенно подвержен проблемам. Попробуем написать наши первые юнит-тесты для трёх бизнес-метрик, используя Pytest.
Testing / Metrics
Уровень: Easy
HELLO PYTEST
Testing
Большинство пишут тесты, которые проверяют работу кода, когда всё хорошо. Однако чем опытнее инженер, тем больше внимания он уделяет случаям, когда код не работает. В этой задаче мы научимся контролировать, что мусор на входе не порождает мусор на выходе, и проблемы отлавливаются на ранних стадиях.
NEGATIVE TESTS
Уровень: Easy

A/B-тестирование:

Часто модели сравнивают, усредняя метрику по фолдам валидации. Вырос ROC-AUC на 1%, значит новая модель лучше. А если на 0.5%? А на 0.1%? Где прирост значимый, а где уже нет? Оказывается, даже на Kaggle есть место для А/Б тестов. Мы научимся внедрять статистические критерии в процедуру валидации и отыщем гиперпараметры, дающие стат. значимый прирост качества.
Tree-Based Models / AB-testing / Validation
Уровень: Medium
KAGGLE: A/B-TEST
QUANTILE T-TEST
Stats / AB-testing
Уровень: Easy
Если мы обещали доставку еды через 20 минут, а дрон-курьер летел час — это обернётся потерянным клиентом. Нас интересует не то, насколько мы обманываем клиента в среднем (обычный t-test), а то, насколько заявленное время расходится с реальным в худшем случае. Как правильно проводить A/B-тест для квантилей метрики?
AB-testing / Stats / Metrics
Уровень: Medium
Продолжаем строить сервис real-time рекомендаций. Пришло время проводить эксперимент: мы поделим трафик на 2 группы, проведём симуляцию A/A и A/B тестов и научимся определять, сколько должен длиться тест.
SMART-LINK II: A/B DESIGN
Вооружившись статистическими тестами, мы усовершенствуем алгоритм жадного отбора признаков. Разберем, что такое множественное тестирование гипотез и как с помощью поправок Бонферрони избежать ложного-положительных срабатываний.
T-TESTED FEATURES
Уровень: Medium
AB-testing / Features

Матчинг:

MATCH GROUPS
Clustering / Postprocessing / Python
Уровень: Easy
Модель матчинга товаров на KarpovExpress сгенерировала новые матчи. Напишите небольшой постпроцессинг предсказаний, чтобы дополнить недостающие пары и объединить их в матч-группы.
Metrics
Уровень: Easy
RECALL @ K
Мы разрабатываем платформу Greenterest для хранения картинок, сгенерированных нейросетями, и строим поисковой сервис, который по запросу пользователя выдаёт релевантные. Модель предсказывает релевантность картинок. Мы оценим точность нового алгоритма ранжирования на истории до того, как проводить А/Б-тест.
ML-команде маркетплейса потребовались векторные представления товаров, чтобы находить похожие товары. Постройте эмбеддинги товаров на основе паттернов поведения покупателей, используя методы коллаборативной фильтрации.
Matrix Factorization / Embeddings / SQL / kNN
Уровень: Hard
SKU EMBEDDINGS
Вы решаете задачу ценообразования в компании Karpov.Express. Узнаем 5 разных способов агрегации цен конкурентов, применяемых в rule-based ценообразовании.
Pandas / Python / kNN
Уровень: Medium
COMPETITOR PRICE
На первом этапе задачи CHURN RATE вы занимались сбором данных, feature engineering и построением модели. А теперь мы перейдем к продвинутой валидации модели и расчёту метрик.
Уровень: Hard
CHURN RATE II: BOOTSTRAP
Python / Stats / AB-testing / Math
В данной задаче мы сконцентрируемся на ценах похожих товаров. Как померить «схожесть» между двумя товарами? Используя готовые эмбеддинги, найдите средневзвешенные цены для топ-N похожих товаров.
Pandas / kNN / Embeddings
Уровень: Medium
SIMILAR ITEM PRICE
Вы с нуля напишете алгоритм приближенного поиска ближайших соседей. Реализуете построение SW-графа и алгоритм NSW навигации по нему.
kNN / Optimization / Python / Embeddings
Уровень: Hard
APPROXIMATE K-NN

Еще задачи:

Уровень: Easy
MULTIPROCESSING
Ваш коллега написал парсер вакансий и хочет посчитать частотность слов в вакансиях. Подсчет слов в текущей реализации работает медленно. Вооружившись новыми знаниями о параллельных вычислениях, вы взялись помочь ему оптимизировать код.
Optimization / Python
Уровень: Easy
TIME-SERIES DASHBOARD
Time-Series / SQL
Вам дана таблица оплат пользователей крупной компании. Постройте дашборд, отображающий сумму успешных оплат пользователей за каждую неделю.
SKU SALES
SQL / Metrics
Уровень: Easy
Вы работаете в одной крупной FMCG-компании. Ваш руководитель дал задание провести анализ продаж. Первым делом необходимо посчитать, сколько товаров компания продает в день.
Уровень: Hard
UPLIFT TREE
OOP / Python / Tree-Based Models / Metrics / Math
Представьте, что нам нужно отправить промоакцию по огромной клиентской базе. Как бы выделить только тех клиентов, которых промо сподвигнет приобрести товар, чтобы не тратить деньги на рассылку по всей базе? В этой задаче мы научимся строить такую uplift-модель, которая умеет предсказывать нужных нам покупателей.
Вам предоставлен python-файл, над которым потрудились 4 разных джуна, каждый привык писать документацию в своём стиле (а кто-то не пишет вообще). Как быстро и легко привести всё к общему виду?
Python
Уровень: Easy
DOCSTRING
Уровень: Easy
WAU
Вам предстоит посчитать метрику WAU (weekly active users) — количество активных пользователей в неделю, используя живые данные Симулятора ML.
SQL / Metrics
DAU
Уровень: Easy
Продуктовые метрики DAU (daily active users), WAU (weekly active users) и MAU (monthly active users) встречаются очень часто. В этой задаче мы разберемся, как они считаются, и научимся строить одну из них — метрику DAU.
Stats / SQL / Metrics
Уровень: Medium
Ваш коллега-стёжер написал простые Feature Selection классы, основанные на базовых статистиках. Вы решили заглянуть в его код, и вот беда, в нём очень много нарушений DRY принципа. Давайте покажем ему, как переиспользовать код эффективно с помощью абстрактных классов.
OOP / Features
ABSTRACT SELECTOR
SQL / ETL / Linear Modeling / Deploy
Karpov.Courses хочет понимать, какие студенты стали реже заходить в Симулятор. Решите задачу-квест разработки модели оттока, пройдя несколько этапов. В первой части задачи вам предстоит написать SQL-запрос с оконными функциями для построения датасета.
Уровень: Hard
CHURN RATE I: SQL
FACE ID I: TRIPLET LOSS
Недавно наш стартап начал арендовать офис в одной из башен Moscow City. Компания хочет реализовать Face ID систему для предотвращения перемещения случайных людей в офисе. Вы изучите задачу Metric Learning и напишете Contrastive и Triplet функции потерь.
Metric Learning / Deep Learning
Уровень: Medium
Вашей команде поручили заняться разработкой сервиса для автоматического отлова ботов и предотвращения DDoS-атак. Для регистрации на сайте необходимо указать email-адрес. Не всегда указанный набор символов — это корректный email. Ваш коллега написал код, который медленно работает. Ваша задача — ускорить код минимум в 2 раза, поменяв буквально две строчки.
Python / Optimization / Real-Time / RegEx
Уровень: Easy
VALID EMAILS
Optimization / Python
Уровень: Easy
MEMOIZATION
В real-time сервисах существуют строгие лимиты на время ответа. Для сервисов, включающих машинное обучение, их соблюдать особенно трудно: много манипуляций с данными, не говоря уже о вычислениях самой модели. Мы познакомимся с одним из приёмов оптимизации вычислений — мемоизацией.
В этой задаче мы поможем AI-художникам сжимать картинки, по шагам построив алгоритм K-means и разобрав его вариации.
Clustering / Computer Vision
Уровень: Medium
K-MEANS POSTERIZATION

Остались вопросы?

Отправьте заявку, и мы проконсультируем вас.