ch
Feedback
Ebout Data Science | Дима Савелко

Ebout Data Science | Дима Савелко

前往频道在 Telegram

Ebout Data Science by @ngmdite | По поводу менторства пиши на @savelkoteam

显示更多
5 474
订阅者
+924 小时
+2067
+61430
帖子存档
Собес в Тинькофф на зп от 250к на DS NLP 🙌 Там три собеса: базовый мл, нлп часть и разговор с командой. Проходил собес на базовый ML, было дефолтненько, но всё равно интересно 👀 1️⃣ Какие метрики классификации бывают? Распиши формулу Precision, Recall, F1, F1-weighted. Всегда ли 2 встречается в формуле F1? Почему F1 выглядит именно так, почему не среднее между Recall и Precision ? Расскажи про макро/микро усреднение, расскажи про One-vs-All и про One-vs-One? - База про метрики: видос, habr, medium про One-vs-All, One-vs-One - Формула F1 - это среднее гармоническое, данная формула подразумевает, что мы отдаём предпочтениее как и Recall, так и Precision. А вот если бы мы взяли среднее, то может возникнуть такая ситуация, где Recall = 0.9, а Precision = 0.1, а среднее от них 0.5, а мы стараемся избежать дисбаланс метрик, поэтому и используем среднее гармоническое 🤥 2️⃣ Вот тебе данные (1 картинка в комментариях), посчитай мне ROC-AUC, Precision, Recall. - Но тут на технику тупо 🦾 3️⃣ Дана такая картинка (2 картинка в комментариях), покажи как будет выглядит график на test data таких алгоритмов как: линейная регрессия, решающие дерево и knn. Смотрите на 3 картинку в коммментариях - линейная регрессия показана оранжевым цветов. Она выглядит так, так как это просто линейная функция - дерево показано фиолетовой линией. Так как решающее дерево - это кусочно-постоянная приближение, поэтому она выглядит на графике из вертикальных и горизонтальных линий, и так как для самого "высокого" Y она сделает "самую высокую" горизонтальную линию, следовательно для X из тестовового датасета она даст предсказание по "самой высокой" линии - старался объяснить понятным языком 🤡 - KNN будет выглядеть как прямая линия, которая берёт своё начало от самого дальнего объекта из train data. Так как KNN ищет ближайшего соседа к X_test, а самый ближайший сосед для неё - это "самый правый" из train data - опять старался объяснить понятным языком 🤡 4️⃣ Если в нейронных сетях поменять функцию активации на функцию, которая возвращает X, то сколько слоёв потребуется, чтобы аппроксимировать полином ? - Так как функция активации возвращает X, то при умножении матриц нейронки, вся нейронка будет состоять сугубо из линейных преобразований, а значит нейронка = линейная функция. Поэтому у нас никак не получится аппроксимировать полином, так как мы пытаемся аппроксимировать полиномлинейной функцией - а это невозможно 5️⃣ Расскажи про токенизацию, виды токенайзеров, n-gramms, лемматизацию, стемминг, очистку данных, распиши формулу TF-IDF. - Тут сугубо формулы и базовые определения, вся инфа есть в инете 🌐 Итог 👌 Собес кайф, выебали по базе, дальше только секция NLP. Тинькофф советую, хоть я и работаю в Сбере, но бесплатные столовки никто не отменял. Чат для вопросов и рассуждений всегда открыт, я не гений, могу сам где-то ошибиться 🤓

100 вопросов на собеседовании NLP 🤖 На данном канале увидел классный сборник вопросов по NLP на собеседованиях. Сборник представляет из себя notion, где есть несколько две темы и несколько подтем: Classic NLP и NLP and Transformers 🤤 Вопросы составлены на подтемы и вот несколько из них: 41. Что используется в трансформере layer norm или batch norm и почему? 75. В чем отличие оптимизатора Adam от AdamW? 98. Объясните принцип работы KV cache, Grouped-Query Attention и MultiQuery Attention. Также в этом посте смотрите, как уничтожить собесы по ML & DL. Там собраны ультрамиллион полезных ссылок на источники, где вы можете изучать NLP, CV, RecSys, Classic ML и другое... 💪 👇В коментах скинул структуру вопросов👇

Собеседование в Транснефть на вилку от 230 💸 Побывал на собеседовании на позицию NLP Data Scientist. Сначала спросили про опыт, а потом по технической части меня стали гнать. На собеседованиях такого рода вы можете встретить следующие вопросы: 1️⃣ Prompt-tuning 🤖 Вопрос: как заставить LLM выполнять любую задачу, допустим задачу классификации ? Ответ: Сначала я сказал, что дообучить модель на задаче, но есть способ проще - это просто задать правильный промпт (Есть ли мат в данном предложении {предложение}, ответь да или нет) 2️⃣ Гиперпараметры и вставка в генерацию 💻 Вопрос: Как можно заставить модель генерировать по шаблону текст ? Ответ: 1) Можно попробовать задать промпт, в котором будет правило как писать текст и поиграться с параметрами top_k и temperature 2) Также в момент генерации можно самостоятельно подсунуть модели токены для генерации Суём во время генерации: json generation: { И дальше модель генерирует сама начиная с json generation: { генерация.... } 3️⃣ Логиты ♾️ Вопрос: Как посмотреть уверенность модели в своём ответе? Ответ: (Здесь могу ошибаться) 1) Посчитать лосс-функцию на генерации 2) Посмотреть на распределение логитов генерации 4️⃣ Retriever в Retrieval-Augmented Generation 🖥 Вопрос: Как улучшить Retriever ? (Retriever - модель, которая ищет релевантную информацию по запроу, другими словам, это поисковик) Ответ: 1) Обучить энкодер на доменных данных, например с помощью Contrastive Learning 2) Улучшить разбиение на чанки, то есть на кусочки текста 3) Улучшить алгоритм поиска, например из 100 000 чанков с помощью ANN находим 50, а из 50 сортируем по косинусной близости Вывод: Собес мне очень понравился, вопросы по теме, которой они хотят ввести разработку. Интервьюер очень доброжелательный. Основываясь на отношении ко мне, команда ДСов в Транснефть халяль 🤤

Познай трансформеры в 3D 🦍 На просторах интернета наткнулся на классный сайт для 3D визуализации трансформеров. Можно потыка
+1
Познай трансформеры в 3D 🦍 На просторах интернета наткнулся на классный сайт для 3D визуализации трансформеров. Можно потыкать как конкретно умножаются матрицы под капотом, как работает self-attention в визуализации, да и в целом посмотреть на трансформеры с другой стороны 🤖 Ну и конечно же, чтобы полностью понять суть великого трансформера, то стоит в сокопуности посмотреть видео Котенкова про эту архитектуру 😎

Деньги - это главное... для бизнеса💵 Первая цель бизнеса - это постоянная прибыль, а не качественный продукт или помощь всему миру. На что ты будешь жить, если у тебя убыточная компания? На помощь всему миру? Именно поэтому в компаниях требуют, чтобы ML приносил деньги, а не просто, чтобы модель была ради модели 🤖 И бывает так, что ребята сразу строят нейронку на 7b параметров, обучают её и стараются выкатить в прод, выходя с обосранными штанами 💩 Но в большинстве случаев простой tf-idf + svm и качественный вывод в прод может дать наиболее лучший результат, если ваша цель - это прибыль 🤑 Вот несколько причин: 1️⃣ Обучение на практике Если это ваша первая модель, то нужно построить бейзлайн и гнаться за набиванием ошибок в онлайне, а не за сранной метрикой в оффлайне. Ведь ваша цель не обучить её у себя в ноутбуке, а быстрее выкатить модель, дать предикт на пользвователях, даже если он будет не такой хороший как у нейронки, и собрать нужные метрики для улучшения модели📝 2️⃣ Интерпритация ML можно намного качественне интерпитировать нежели нейронки, что может помочь уменьшить риски, что модель будет ввести себя как обезьяна с гранатой 🐒💣 3️⃣ Уменьшение рисков Также большую роль играет размер модели, намного проще задеплоить катбуст нежели ЛЛМку на 7B и откатать процесс деплоя на более маленьких моделей, а не страдать сутками с гигантской нейронкой, не понимая почему у вас кластер отваливаетсяя, но в любом случае с ML-ом вы тоже пострадаете 🤕 4️⃣ Проверка гипотез А нужна ли ваша модель пользователям ? А будет ли ваша модель работать и показывать нужный результат? Намного проще выпустить простой бейзлайн и иметь представление о там как реально проходят процессы вокруг этой модели 💸 Вывод: Не бегите за моделью ради модели, стремитесь больше пользы принести продукту, отталкиваясь от проблем вашей ЦА, тогда и вы будете довольны и ЦА удолетворён новой фичей)

#работа # Методичка по поиску работы в ML/DS и IT в целом В канале накопилось немало материала про поиск работы. Я собрал, дополнил и превратил всё в небольшую книжку. Все кратко и по делу. Чтения минут на 30. Внутри рассматриваю поиск работы с самых азов и до деталей с примерами из жизни. https://btseytlin.github.io/intro.html Если вы давно читаете этот канал и хотели бы ему помочь, то вот лучший способ: скиньте методичку кому-то из друзей. @boris_again

Собес Tele2🤖 Был на собеседовании в Tele2 на позицию Middle Data Scientist NLP на 260к - 280к 💵 Были следующие вопросы: 1️⃣ На SQL 2 задачи: - Даны две таблички, их нужно было просто INNER JOINить и вывести нужные поля - Даны три таблицы, опять INNER JOIN, плюс вложенный запрос 2️⃣ Задача на теорию вероятностей: Есть 500 уникальных карт, то есть с значением от 1 до 500. Нужно посчитать вероятность того, что мы вытащим 3 карты и они будут по возрастанию. Мне сказали ответ = 1/6, почему - я не понял. 3️⃣ Данны два numpy массива, нужно реализовать функцию подсчета recall Итог: Вопросы были адекватные, если позовут на следующий этап, то там будет ml system design

как перейти из джунов в мидлы 🍼💪 Я это говорю со своей колокольни, основываясь на личном опыте Давайте начнём с того чем отличается джун от мидла. Во-первых, постановка задачи 🤷‍♂️ Если к вам подошёл бизнес и сказал, что нужно больше денег, то сеньоры и лиды находят и формулируют проблему. Проблема такова: слишком много людей тратит времени на это задачу A, давайте как-то её решим👍👍👍 Мидлы ,понимая проблему, придумывают идею как её решить - давайте соберём данные здесь, затрейнимся на этом, затестимся на том и используем катбуст👍👍 Джуны, в свою очередь, уже делают это решение по заданному шаблону👍 Поэтому кругозор джунов, грубо говоря, ограничивается только выполнением задачи по тз👶 Во-вторых, это харды 💻 Мидл может взять любую задачу, сам разобраться, сам написать код и грамотно оценить инференс модели. Джун в большей степени спрашивает у старших - это нормально, он так учится. Естественно мидл тоже спрашивает, но реже🦍 В-третьих, это коммуникация с бизнесом 💸 Мидл или сеньор спрашивают требования, корректировку тз и многое другое, также они зачастую презентуют модели, метрики качества и успехи. Джуны делают грязюку в основном, то есть сугубо пишут код 💩 По итогу, самый главный прирост из джунов в мидлы - это брать больше ответственности, выходить за рамки моделей, а погружаться в другие сферы работы: почему бизнес принимает это решение, почему мы не можем запустить эту модель? 🧔‍♂️ Также брать больше ответственности в хардовых вопросах: какая модель будет лучше, какие гиперпараметры подобрать, а хорошие ли данные я использую? 👴

Repost from Machinelearning
🏆 LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models 13B and 70B 32k models with the supervised fine-tuni
+1
🏆 LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models 13B and 70B 32k models with the supervised fine-tuning, which is feasible for long context LongLoRA - эффективный подход к файнтюнингу, позволяющий расширить размер контекста предварительно обученных больших языковых моделей (БЯМ) при ограниченных вычислительных затратах. 🖥 Github: https://github.com/dvlab-research/longlora 📕 Paper: https://arxiv.org/abs/2309.12307v1 ⭐️ Demo: https://b3cfcf9e79ff42df5f.gradio.live/Dataset: https://paperswithcode.com/dataset/pg-19 ai_machinelearning_big_data

К посту выше😋

Как обучить свой GPT даже на калькуляторе ? Модели становятся всё больше и больше, поэтому стоит вопрос ребром про их оптимиз
+1
Как обучить свой GPT даже на калькуляторе ? Модели становятся всё больше и больше, поэтому стоит вопрос ребром про их оптимизацию. Тут на сцену выходит LoRA, делая грязь 💣 Смысл метода состоит в том, что она "исправляет ошибки" уже обученной модели, то есть мы импортируем предобученный трансформер, замораживаем его и делаем файн-тюнинг с помощью LoRA 🤖 И весь сок состоит в том, что LoRA состоит из двух матриц: A и B, размерности которых довольны малы по сравнению с матрицами трансформеров. A и B матрицы имеют размеренность (1, 8) на (длина входного вектора), вот почему LoRA - Low Rank ⚡️ Мы теряем в общности, но и не страшно, по мнению авторов статьи, большинство параметров в моделях "не работают", являются около нулевыми 🤫 Также для обучения требуется малое количество обучаемых параметров, около 3% от замороженной модели, также веса занимают меньше места на диске 💽 Статья на хабре , arxiv , лекция на ютубе , практика на ютубе

От синьки к зелёнке Теперь я Middle Data Scientist at Sber, буду заниматься задачами NLP/NLU, а именно llm, генеративные/диффузионные модели (ChatGPT, Stable Diffusion). Сейчас буду заниматься ранжирование сообщейний, которые выходят из внутреннего Сберовского ЧатаХПТ 🥴 Что там я понял за это время: 😬 - никогда не бывает идеально выстраенных бизнесс-процессов в компаниях, всегда будут свои проблемы, которые могут очень неприятным образом вскрыться и через годы 😈 - компании хотят вас завлечь, поэтому не всегда верьте HR-ам, а делайте собвственный ресёрч компании 🤥 - по моему мнению, не стоит убиваться в копрорациях, делайте то, что от вас требуют. рост в больших корпоратах очень тяжёл и тернист, если только вам не предлагают опционы 😲 - удалёнка - имба, если вы имеет самодисциплину, это отличный вариант, чтобы чувствовать себя свободным и иметь огромное количество времени для собвстенного развития 😎 - хороший руководитель и хорошая команда = хорошая рабочий день и улыбка в конце дня, спасибо моей команде за приобритённый опыт 😘 - не забывайте о моралочке, так как работа никуда не уйдёт, а крыша поехать спокойно может 🥰 Благодарю Газ за приобретённый опыт, были и положительные, и отрицательные моменты - это нормально, учиться на ошибках - это не выбор, а необходимость 👆👆👆

Как GPT-4 только бесплатно 💸 MiniGPT-4 - это модель разработанная ребятами из Саудовской Аравии. Модель выполняет такую же ф
+3
Как GPT-4 только бесплатно 💸 MiniGPT-4 - это модель разработанная ребятами из Саудовской Аравии. Модель выполняет такую же функцию, как и GPT-4, она понимает диалоги и принимает на вход картинки, также с ней можно общаться в форме диалога. Формулирует она предложения порой лучше, чем я, поэтому рекомендую к использованию 🤪. Такие функции на таком уровне ранее не встречались в языковых моделях и моделях визуального восприятия. Она состоит из LLM модели Vicuna (отвечает за входящий/выходящий текст), а также Vision Transformer (отвечает за картинки). Обучение MiniGPT-4 происходило в два этапа. Первый, этап предварительной подготовки, проводился на ~5 миллионах пар изображение-текст в течении 10 часов с использованием 4xA100. После первого этапа Vicuna стала способна понимать изображение. На втором этапе модель дообучилась на полученным в результате предыдущего шага наборе данных в виде диалоговых инструкций. В результате значительно улучшилось качество генерации ответов. YouTube

Глобальное уничтожение ML/AI & ML System Design💥

Здесь собрано огромное количество открытых курсов по ML / AI & ML System Design, чтобы уничтожать на собеседованиях, на работе, в соревнованиях. Classic ML: 1️⃣ ODS - Open ML Course / DLS - мега база начинающего ML-щика 2️⃣ MLHandbook - параллельно с курсами нужно читать это 3️⃣ Joseph Misiti: awesome-machine-learning - Огромная подборка курсов по DS Deep Learning: 1️⃣ ШАД DeepLearning - курс от ШАДа 2️⃣ Catalyst Team: DL_course - Курс по DL от тинька, DLS, Catalyst Team NLP: 1️⃣ ШАД NLP 2️⃣ ВШЭ NLP 3️⃣ Stanford NLP 4️⃣ Сборник вопросов по NLP для собесов CV: 1️⃣ Stanford CV 2️⃣ MIT CV RL: 1️⃣ ШАД RL RecSys: 1️⃣ MTC. Your first recsys 2️⃣ MTC. Your Second RecSys 3️⃣ Deep Neural Networks for YouTube Recommendations 4️⃣ Preserving Integrity in Online Social Networks 5️⃣ Bag of Tricks for Efficient Text Classification 6️⃣ Wide & Deep Learning for Recommender Systems Примеры вопросов по ML: 1️⃣ Quant notes 2️⃣ Data science interview questions and answers 3️⃣ 120 data science interview questions 4️⃣ Data-science-interviews ML System Design: 1️⃣ Deep-Learning-in-Production 2️⃣ Production-Level-Deep-Learning 3️⃣ Monitoring Machine Learning Models in Production 4️⃣ Как в YouDo машинное обучение катится в продакшен Основу для материалов брал здесь, здесь и на основе собственного опыта

Уничтожение Алгоритмов

Чтобы попасть в tier-one компанию вы должны лайкодить, а для этого нужно уничтожать алгоритмы и структуры данных Вот ресурсы для низведения до нуля алгоритмов и структур данных: 1️⃣ NeetCode - работник гугла, очень много рассказывает про алгоритмы 2️⃣ RoadMap от NeedCode`a - необходимая и нерушимая база каждого лайвкодера, необходимо убить все эти задачи 3️⃣ Для закрепления ваших знаний и ещё большего погружения в мир алгосов а) Тренировки по алгоритмам от Яндекса 1.0 б) Тренировки по алгоритмам от Яндекса 2.0 в) Тренировки по алгоритмам от Яндекса 3.0 4️⃣ Алгоритмы, Часть I 5️⃣ Специализация Data Structures and Algorithms 6️⃣ LeetCode - святило всех алгоритмов 7️⃣ Сложность алгоритмов

Как мы чуть не уничтожили хакатон по МТС Задача Нужно сделать сервис для людей с проблемами зрения, который помогал бы им смо
+1
Как мы чуть не уничтожили хакатон по МТС

Задача Нужно сделать сервис для людей с проблемами зрения, который помогал бы им смотреть фильм. Решение: У каждого фильма есть свои сцены 1 сцена: ♂️ Американец и Азиат стоят в раздевалке и смотрят на друг друга ♂️ 2 сцена: ♂️ Они начинают бороться ♂️ 3 сцена: .... И к каждой сцене я могу сделать текстовое описание, смотря на картинку. Получается задача Scene2Text (Visual Language) и здесь нам помогла модель VinVL, которая и отдаёт описание сцены 🦾 Отделив сцены и дав им описание, мы отправляем всё это дело на фронт, где и склеивается наш ролик 🤖 Решение крутилось на nginx, Flask в Docker-контейнерах Итог: Мы заняли никакое место, хоть и постарались учесть и продуктовую и техническую часть. Поэтому запомните, что красивая презентация и внешняя картинка вашего продукта может сыграть ключевую роль 🏆 GitHub, YouTube

HuggingChat - конкурент ChatGPT с открытым исходным кодом 🤗 HuggingFace выпустила свой аналог ChatGPT, в основе которого леж
HuggingChat - конкурент ChatGPT с открытым исходным кодом 🤗 HuggingFace выпустила свой аналог ChatGPT, в основе которого лежит модель 30B параметров, когда в ChatGPT 170B. (HuggingChat имеет под собой oasst-sft-6-llama-30b) Интерфейс похож на ChatGPT, но на деле может порой выдавать странные вещи особенно на русском языке, но на английском более менее адекватно 🔥 HuggingChat, Модель

Десять Сталинских ударов NVIDIA по соревнованию по RecSys 🪖
+3
Десять Сталинских ударов NVIDIA по соревнованию по RecSys 🪖

Десять Сталинских ударов NVIDIA по соревнованию по RecSys 🪖 Booking.com, сервис который занимается туризмом, помогая пользователям в планировании путешествий, решил устроить соревнование по RecSys. Данные 🗂 Если кратко, то когда, где и какой пользователь путешествовал Модель 🤖 Страшная нейросеть (1 картинка), которая состоит из трёх нейронок. На вход нейронкам фичи, а на выходе вероятности, что город будет последним в путешествии. На вершине каждой находится Matrix Factorization Layer - обычное умножение матриц, а именно умножение матрицы эмбеддингов пользователей, на каждый эмбеддинг сессии, а на выходе получившийся эмбеддинг проходит через softmax. r = softmax(s * I). s – эмбеддинг сессии, I – эмбеддинг пользователей. Каждое s пробегается по все множеству I. 1️⃣ Первая модель - Обычные FC слои Фичи входят перемножаются через FC слои, по итогу получается эмбеддинг, который умножается с фичами, а именно эмбеддингами последних пяти городов 2️⃣ Вторая модель - GRU Эмбеддинги последних пяти городов проходят через GRU, они же конкатятся с фичами и проходят FC слои, затем используется MultiStage Session-based Matrix Factorization head, которая состоит из двух стадий: a) На первой стадии используется softmax head для того, чтобы выбрать топ 50 городов для следующей стадии б) На второй стадии конкатим выходы с FC и с первой стадии и перемножаем с эмбеддингами прошлых городов 3️⃣ Третья модель - XLNet За основу взята модель XLNet, которая обучалась на предсказании пропущенного слова на основе соседних слов, которых мы знаем. Также и здесь, мы знаем соседние города и предсказываем город между ними. На вход XLNet`у эмбеддинг, который получился из конкатенированных данных пропущенных через FC, на выходе также эмбеддинг, который идёт в Matrix Factorization Head с эмбеддингом последнего города. Именно так NVIDIA нанесла 13 сталинских ударов по booking.com и вынесла трон, заняв первое место 🦾