Вопросы с собеседования ДомКлика
Продолжение предыдущего поста
Classic ML
- Вероятность классов. тык, тык, мегатык
- лог лосс, опять тык, тык, мегатык
Шаг 1: Начинаем построение с корня
Шаг 2: Ищем лучший предикат и смотрим на новые разбиения
Шаг 3: Проваливаемся в новые вершины
Шаг 4: Если выполнен критерий останова, то даем прогноз
Шаг 5: Иначе - для выбранной вершины повторяем Шаги 2-5
тык, тык
- при задачи классификации возвращается вероятность - доля классов, в задачах регрессии среднее от значений, опять тык, тык
Краткий ликбез по вопросам ниже:
Смещение - говорит о том, насколько точно модель предсказывает выборку, если смещение маленькое, то модель хорошо подстроилась под выборку, если смещение большое, то она не очень подстроилась под неё
Разброс - насколько хорошо модель генерилизировалась на данных, другими словами, насколько не чувствительна к изменению данных.. Маленький разброс - модель имеет обобщающую способность, большой разброс - модель плохо обобщает.
- У каждого дерева в лесе малое смещение, но большой разброс. За счёт бустрапа выборки и усреднения деревьев мы уменьшаем разброс. При удалении дерева увеличится разброс ансамбля, так мы удалили один элемент усреднения.
- Каждое дерево в ансамбле имеет высокое смещение, но маленький разброс, так как мы обучаем деревья маленькой глубины - они имеют хорошую обобщающую способность. При обучении бустинга на каждом шаге модель пытается улучшить свои предсказания, уменьшая остатки предыдущих моделей. Это необходимо для уменьшения смещения и улучшения качества предсказаний.
Deep Learning
- Кратко говоря, TF-IDF - это вектор предложения, лучше тык на базу
- Функция активации - нелинейное преобразование, поэлементно применяющееся к пришедшим на вход данным. Благодаря функциям активации нейронные сети способны порождать более информативные признаковые описания, преобразуя данные нелинейным образом. Тык
- LSTM (Long Short-Term Memory) и GRU (Gated Recurrent Unit), уже название говорит само за себя. LSTM имеет под собой более сложную архитектуру, чем GRU, что помогает ей запоминать больше, Тык
Итог:
Как БлицОпрос - норм, 3 Валерия Бабушкина из 5 Валериев Бабушкинов
Оценка:
Please open Telegram to view this post
VIEW IN TELEGRAM
Глобальное уничтожение ML System Design на собеседованиях
На собеседованиях очень часто спрашивают ML System Design, и я решил сделать гайдик по уничтожению
Введение
Когда вас спрашивают про ML System Design, ваша цель - это построить пайплайн, в котором вы должны рассказать про следующие пункты: проблема, метрики, данные, сущности, pipeline, модель, deploy, a/b тесты.
Вы должны построить систему на костылях, которую вы будуте улучшать каждую итерацию, то есть построили гавно из всех пунктов, превратили это гавно в павозку с костылями, пройдя по всем пунктам заново, закрывая все дыры и так далее...
Пункты:
Очень важно изначально понять и сформулировать задачу для себя, чтобы понимать куда и зачем идти
- Поставить бизнес задачу - тут самое главное - это понять, что от вас требуют. Задавайте вопрос: "правильно ли я понял, что..."
- Обговорить ограничения - в кейсе, который вас просят задизайнить могут быть ограничения на память, на ресурсы и тд
Нужно дизайнить с метрик, так как вы должны понимать к чему вы идёте, и вы должны уметь как-то сравнивать модели в последующих апдейтах
- Бизнес метрики - одно из самых важных, на что будет ориентироваться бизнес
- Online метрики - это те метрики, которые будут измеряться во время A/B теста, чтобы понять хуже/лучше модель
- Offline метрики - метрики, которая проверяются на train/test во время обучения модели
Знаем метрики, теперь нужно разобрать какие данные у нас есть для последующего обучения моделей
- Сущности - Нужно определить какие у нас сущности: пользователь, карточка товара....
- Характеристики сущностей - У каждой сущности есть свои характеристики. Для пользователя это - фио, пол, возраст и тд, для карточки товара - это цена, описание, бренд...
- Сбор Данных - Как мы будем собирать данные: cпарсим, копирайтеры, возьмём из БД
- Как работает сервис - Необходимо описать как сервис будет работать в целом: какие есть блоки, как они взаимодействуют между собой, что и как друг другу передаёт.
Нужно лучше начать с бейзлайна - с самой просто задачи.
Если у вас задача рекомендации, то для начала стоит просто сказать: "пусть бейзлайном будет выдача самих лучших товаров по рейтингу, чуть позже улучшим модель, опираясь на online и offline метрики". Помни, твоя задача всего интервью- построить полностью готовый пайплайн решения.
После того как вы закрыли данные пункты, то улучшайте бейзлайн, рассказывая про это:
- Задача - классификация, ранжирование, регрессия
- Loss - для каждой задачи свой лосс
- X/y - необходимо написать на каких данных вы обучаетесь
- Train/Test Split - Как вы разбиваете данные для обучениия: на чём тренируетесь, на чём валидируетесь
- Фичи и их сбор - Как вы собираете данные, и как вы преобразовывайте данные
Как вы будете деплоить, лично я обычно говорю про данные пункты, упоминая технологии.
- Пайплайн хранения данных и транспорт даты - Amazon S3, MySQL, FEAST, HDFS, Kafka
- Пайплайн создания фичей - Apache Spark
- Пайплайн дообучения модели - Airflow
- Пайплайн мониторинга - ML Flow
- Архитектуры: микросервис - Docker, K8s
A/B тест - это та вещь, на которую вы будете смотреть, чтобы понять, как изменяется модель в "реальном мире", а не в ноутбуке.
- На какую метрику смотрим в тесте - обычно это онлайн метрика: CVR, CTR, Retention
- Контрольная тестовая группа - как будем делить A выборку и B выборку, обычно я говорю "A (старая модель) - 70% выборки, B (новая модель)- 30% выборки. Главное, чтобы и в А, и в В выборке количество данных было таковым, чтобы была статистическая значимость A/B теста."
- Сколько наблюдений - "Главное, чтобы и в А, и в В выборке количество данных было таковым, чтобы была статистическая значимость A/B теста."
Материалы (Очень рекомендую к просмотру)
ML System Design: Выпуск 1, Выпуск 2, Выпуск 3
Please open Telegram to view this post
VIEW IN TELEGRAM
Как могут рофлить LLMки
Я хотел подсветить риски использования LLM в больших продуктах - это их бесконтрольная генерация
Ребята генерировали текста к баннерам, по итогу могли получаться вот такие вот результаты (пруфы на картинках)
- "запах и пятна мочи больше не проблема" при рекламе моющего средства
- "взорвет ваши уши" при рекламе колонки
- и самое интересное "почувствуй себя в раю" при рекламе какой-то дрочилки
Модель - YaGPT + p-tuning
Баннеры проходили этап модерации, поэтому естественно они не вышли на общий взор.
Как итог, важно бороться с такими вещами: аномалиями и некоторого образом выбросами. Можно построить модель классификатор или ранжировщик, который будет классифицировать/ранжировать товары по "порядочности" или сразу обучать модель так, чтобы она генерировала текста без такого контекста
Выступление, кстати, фрагмент с факапами я не нашёл в записи
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Ebout Data Science | Дима Савелко pinned «⭐️ Глобальное уничтожение ML System Design на собеседованиях ⭐️ На собеседованиях очень часто спрашивают ML System Design, и я решил сделать гайдик по уничтожению 🔔 Введение 👀 Когда вас спрашивают про ML System Design, ваша цель - это построить пайплайн…»
Зачем нужен ML System Design? И что это такое ?
ML System Design - это план и процессы того, как имплементировать, поддерживать и расширять сервисы и продукты, которые основаны на машинном обучении. Другими словами, это реализация сервиса не через код, словами, на листочке
Накой он нам нужен этот мл систем дизайн?
Ну представьте, что вы строите здание. Вы можете построить какую-нибудь халупу из говна и палок без чертежа. Но небоскрёб без чертежа вы никогда не построите, а если даже и начнёте, то получите ту же самую халупку только из бетона и арматуры.
Личный пример того, как не стоит строить ML System Design
Существует у меня стартап с командой, который решает задачу text-video retrieval, а по русски это - достать короткое видео по тексту. Типо вбиваем "человек идёт под дождём с собаком" и сервис должен из БД достать видео, того как человек идёт под дождём с собакой. И вокруг этой задачи нам надо было сделать продукт.
И самая большая и роковая ошибка - это то что мы не продумали нормальный дизайн системы. У нас было описания, что и как мы будем делать, ни нормальных бизнес-онлайн-оффлайн метрик у нас не было, ни ограничений по ответу пользователю тоже, ни MLOps`ных штук тоже не было и много чего другого.
По итогу, мы сделали по нашему недоплану и получилось пук + среньк
- качество гавно
- инференс лагает
- для апдейтов сервис мало к чему готов с точки зрения МЛ
- как сравнивать модель - хз
Поэтому если вы начинаете стартап или проект всегда продумайте дизайн системы, не слишком глубоко, но затрагивая его основыне аспеткы
Так же ML System Design в интервью нужен, чтобы показать сеньорность кандидата. По факту это его соло выступление но 40-60 минут, где он должен в неопределённой задаче построить систему с нуля
Итог
ML System Design - база, которую каждый DS должен знать не только ради собесов, но и грамотного построения системы продукта.
Ставлю 5 Валериев Бабушкинов из 5 Валериев Бабушкинов
Если вы хотите
Please open Telegram to view this post
VIEW IN TELEGRAM
1+ выигранный хакатон или как мы уничтожили TenderHack
Задача
На основе названия товара выдать его характеристики пользователю.
Как это выглядит со стороны пользователя:
- Модель/Производителя товара (Aspire/Acer)
- Категорию товара (Ноутбуки)
- Характеристику товара (60 Гц, 512 Гб, ...)
Решение
- Я сразу сказал, что давайте строить на e5 с помощью ANN+cosine similarity, но результаты были ужасны... Precision@1 ~ 0.001. После этого я решил обучить модель (последний слой и LoRA) на Contrastive Learning (SimCSE), но лосс оказался настолько ужасным, что мне захотелось плакать, и я понял, что я вообще не сделал анализ данных
- После этого мой напарник бился всю ночь за е5, а после этого предложил немного поменять данные, на которых мы считаем эмбеддинги и взять Okapi BM25 + обучить токенизатор. И УРА! Оно очень хорошо работает!
- Вывод: делайте анализ данных и начинайте с наивных методов
- Retrieval - это поиск в Яндексе различных сайтов и их парсинг
- Augment - Запихали всё в LLM (128к контекста) и промптонули её, чтобы она агрегировала инфу с разных доков
- Generation - она выдала свою ЛЛМ-базу, тем что агрегировала результаты и выдала текст
Здесь мы столкнулись с проблемой, что наш IP забанили на сайтах пока мы тестили, но по итогу мы накупили прокси и парсили через них
Итог
Хакатон был топовый по задачам, по организации, по соперникам, по атомсфере. Были сильные решения от топ-5 команд, но зарешал фронт и технологии.
Оценка хакатона
5 Валериев Бабушкина из 5 Валериев Бабушкинов
Please open Telegram to view this post
VIEW IN TELEGRAM
Кто я?
Налетело кучу людей на канал за последнее время, поэтому обновляю информацию о себе
Дарова!
Я Дима Савелко, мне 21 год. Занимаюсь менторством, то есть помогаю ребятам найти первую работу в DS/ML или апнуться до мидла/сеньора. И вот несколько фактов обо мне:
- Работал в:
- Есть ютуб, снимаю ролики про DS, рассказываю про вопросы на собесах и про то, как вкатываться
- Активно введу свой бизнес нейро-сети.рф
- Участник более 10 хакатонов и победитель 3 хаков
- Сейчас учусь в РТУ МИРЭА на 4 курсе
Вот подборка моих самых полезных постов
- Как правильно торговаться
- Типичные ошибки на собеседовании, которые ты можешь допустить
- Улучшаем резюме в х100 с помощью нескольких простых правил
- Алгоритм прохождения собеседования, который даст тебе 99.999...% оффер
- Что такое HR-скринниг, и как наиболее эффективно его проходить?
- RoadMap по архитектуре трансформеров и LLM
- Мегаполезные ссылки на курсы, ресурсы и статьи по подготовке на собесах: ML, DL, NLP, CV, RecSys, RL
- Полное и тотальное объяснение с примерами Self-Attention и MultiHead Attention
- Простое и понятное объяснение стадий обучения LLM
- Объяснение BERT`а на пальцах ваших ног
- Как готовится к секции ML System Design на собесах
- RoadMap по прохождению ML System Design
- Полное и подробное описание MLSD retrieve-модели из RAG-системы
- Полное и подробное описание MLSD для обучения LLM
- Мой персональный сборник вопросов
- теле-2
- Транснефть
- Тинькофф
- ДомКлик ч1
- ДомКлик ч2
- Huawei
- Подготовка по алгосам
- Типичный день датасаентиста
- Как не обкакаться при старте ML-проекта ч1
- Как не обкакаться при старте ML-проекта ч2
Please open Telegram to view this post
VIEW IN TELEGRAM
Дрочка и Точка
Про Точку
Я получил оффер в Точку на позицию NLP Researcher&Developer DS - короче NLP DS в R&D отдел.
Здесь я буду решать NLP таски, разрабатывать и обучать LLMки, RAGи и другие многие интересности
Сейчас я в точке не вижу минусов, только плюсы:
- топ тима
- топ задачи
- топ процессы
- топ экспертиза
- классное погружение
- отличный офис
А теперь про дрочку
Напомню, что в Сбере я работал NLP Engineer'ом, учил LLMку и делал Reward-модель для отсеивания плохих генераций.
В Сбере я понял, что большие корпорации - это не про меня:
- куча бюрократии
- много времени занимают самые элементарные процессы
- лично мне офис вообще не зашел
- ограничение банком использования моделей
- лично у нас в команде не было ревью и не было структурированного
планирования задач, и это я слышал от других команд тоже
Но не может быть только минусов, поэтому в Сбере есть и положительные моменты:
- огромные ресурсы, я хоть могу гпт-4 запускать (если разрешит система безопасности)
- там интересные и многогранные люди, у которых есть чему поучиться
- знания, которые я получил, довольно таки топовые, спасибо коллегам, которые меня натаскивали
- замедленность процессов - это и плюс, и минус, так как ты очень долго вывозишь что-то в прод, но при этом есть куча свободного времени для своих дел, например для менторства
Вывод:
Нет плохих и хороших компаний.
Вы уже принимаете для себя, что для вас приемлемо, что нет. После Сбера я определил для себя, что мне нужно, а что не нужно. Если вы хотите тихой и спокойной разработки порой с тупорылыми процессами, то вам корпорат. Если же хотите динамики и более драйвой разработки, то в компанию поменьше.
Так же не стоит забывать, что процессы ещё очень зависят от команды, в которой вы работаете. В Сбере может попасться такая команда, которая будет обходить все минусы, и приумножать только плюсы, поэтому стоит смотреть не только на компанию, а более глубоко: команда, люди, эскпертиза и тд...
Сберу я ставлю 3 валерия бабушкиных из 5 валериев бабушкиных по личным ощущениям
Оценка:
Please open Telegram to view this post
VIEW IN TELEGRAM
Ebout Data Science | Дима Савелко pinned «Кто я? ✋ Налетело кучу людей на канал за последнее время, поэтому обновляю информацию о себе 🫶 Дарова! Я Дима Савелко, мне 21 год. Занимаюсь менторством, то есть помогаю ребятам найти первую работу в DS/ML или апнуться до мидла/сеньора. И вот несколько…»
Уничтожение трансофрмеров и LLM (RoadMap)
Трансформеры сейчас суются буквально везде и повсюду, поэтому их очень часто спрашивают на собесах и на них построены SOTA решения для многих областей особенно в LLM, поэтому не знать их - это не база
Это RoadMap, который вам поможет разобраться с этой трансформерами и с LLMками
Начинаем мы с изучения архитектуры трансформеров, а закончим LLMками
Полезные дополнительные материалы
Теперь вы сами стали трансформером и можете объяснить, что такое Self-Attention своей маме, папе, бабушке, дедушке и даже собаке
Если вы хотите:
Please open Telegram to view this post
VIEW IN TELEGRAM
Типичный день Дата Сатаниста
Меня часто на консультациях по менторству спрашивают: «Димас, расскажи про свой типичный рабочий день, чем вообще занимается Data Scientist?»
Ну вот я и выдаю такую базу
Так, ладно, убираем всю ересь
В целом день Data Scientist`a состоит из тех же элементов, что и у любого другого разработчика: пишем код, созвоны, таски. Только мы иногда делаем жёсткий ресёрч статей для нахождения наиболее релевантного решения для нашей задачи
Плюс DS`а заключается в том, что тут постоянно происходит развитие, прочтение статей, работа с чем-то новым, и как следствие мало рутины и тебе становиться действительно интересно выполнять такую работу
Please open Telegram to view this post
VIEW IN TELEGRAM
Как торговаться на собесах
Если вы получили оффер и вам уже сказали какую ЗП вы будете получать, то не торопитесь его принимать. Вы можете спокойно за несколько секунд зарабатотать 30% к своей ЗП, а то и более.
Зачем торговаться?
Давайте включим простую математику, если вам предложили ЗП в 300к, а вы сторговали ЗП на 360к, 360к - 300к = 60к в месяц вы сторговали, 60к*12 месяцев = 720к, вы за несколько минут заработали 720к в разрезе года, вы просто СЛОН
Именно так у меня было с СамокатTech
Почему можно торговаться?
Алгоритм торговли
Допустим вам дали оффер с ЗП, тогда вы пишите следующее (взял отсюда):
"Да, возращаюсь с ответом. Только вот другая компания Y сделал оффер X минут назад. У вас и у них хорошие команды и задачи. Но есть финансовый момент, что они предложили мне на Z$ больше. И выбор мой усложняется. <тут описываешь почему тебя компания зацепила>. Можете ли вы сделать что-нибудь по этому, чтобы облегчить мой выбор?"
И тогда с большой долей вероятности к вам могут прийти с повышенным оффером, и да это можно делать даже тогда, когда у вас нет второго оффера, но это ваш выбор...
Вывод:
Умение продать свою жопу за большие деньги - важный навык в жизни. Если вы не сделаете этого, то за вас обязательно это сделает кто-то другой
Please open Telegram to view this post
VIEW IN TELEGRAM
Я закончил школу в 20 лет
С 3 по 9 июня я был в Школе PE - это школа для тех, кто хочет начать создавать свой продукт, как-то его завернуть и правильно пушить в массы - именно такое определение я дал после прохождения школы. Сама школа проходила в Альметьевске, в кампусе АГНИ - вуза, который построила ТатНефть.
Что я там получил:
Итог
Не бойтесь принимать участие в подобного рода мероприятиях, знакомиться с разными людьми, расширять свой кругозор не только в вашей теме, но и смежных, не забывайте про софты, потому что нетворкинг - один из двигателей вашего развития
Лично для себя я понял, в каком направлении мне стоит улучшаться, качаться, и как дальше качать себя и своё дело
Школе PE я ставлю Пять Валериев Бабушкиных из Пяти Валериев Бабушкиных
Оценка:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM