Ebout Data Science | Дима Савелко – Telegram
Ebout Data Science | Дима Савелко
2.69K subscribers
200 photos
19 videos
101 links
Ebout Data Science by @ngmdite | По поводу менторства пиши на @savelkoteam
Download Telegram
К посту выше😋
🥰3🕊1😈1
Forwarded from Machinelearning
🏆 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌭6😱31👍1🐳1
как перейти из джунов в мидлы 🍼💪

Я это говорю со своей колокольни, основываясь на личном опыте

Давайте начнём с того чем отличается джун от мидла.
Во-первых, постановка задачи 🤷‍♂️
Если к вам подошёл бизнес и сказал, что нужно больше денег, то сеньоры и лиды находят и формулируют проблему. Проблема такова: слишком много людей тратит времени на это задачу A, давайте как-то её решим👍👍👍
Мидлы ,понимая проблему, придумывают идею как её решить - давайте соберём данные здесь, затрейнимся на этом, затестимся на том и используем катбуст👍👍
Джуны, в свою очередь, уже делают это решение по заданному шаблону👍
Поэтому кругозор джунов, грубо говоря, ограничивается только выполнением задачи по тз👶

Во-вторых, это харды 💻
Мидл может взять любую задачу, сам разобраться, сам написать код и грамотно оценить инференс модели. Джун в большей степени спрашивает у старших - это нормально, он так учится. Естественно мидл тоже спрашивает, но реже🦍

В-третьих, это коммуникация с бизнесом 💸
Мидл или сеньор спрашивают требования, корректировку тз и многое другое, также они зачастую презентуют модели, метрики качества и успехи. Джуны делают грязюку в основном, то есть сугубо пишут код 💩

По итогу, самый главный прирост из джунов в мидлы - это брать больше ответственности, выходить за рамки моделей, а погружаться в другие сферы работы: почему бизнес принимает это решение, почему мы не можем запустить эту модель? 🧔‍♂️
Также брать больше ответственности в хардовых вопросах: какая модель будет лучше, какие гиперпараметры подобрать, а хорошие ли данные я использую? 👴
🔥14😱3👍2👌1
Собес 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
15🦄5🍌3🔥2👌2👍1
Forwarded from Борис опять
#работа

# Методичка по поиску работы в ML/DS и IT в целом

В канале накопилось немало материала про поиск работы. Я собрал, дополнил и превратил всё в небольшую книжку.

Все кратко и по делу. Чтения минут на 30. Внутри рассматриваю поиск работы с самых азов и до деталей с примерами из жизни.

https://btseytlin.github.io/intro.html

Если вы давно читаете этот канал и хотели бы ему помочь, то вот лучший способ: скиньте методичку кому-то из друзей.

@boris_again
🔥9👍2
Деньги - это главное... для бизнеса💵

Первая цель бизнеса - это постоянная прибыль, а не качественный продукт или помощь всему миру. На что ты будешь жить, если у тебя убыточная компания? На помощь всему миру? Именно поэтому в компаниях требуют, чтобы ML приносил деньги, а не просто, чтобы модель была ради модели 🤖

И бывает так, что ребята сразу строят нейронку на 7b параметров, обучают её и стараются выкатить в прод, выходя с обосранными штанами 💩
Но в большинстве случаев простой tf-idf + svm и качественный вывод в прод может дать наиболее лучший результат, если ваша цель - это прибыль 🤑

Вот несколько причин:
1️⃣ Обучение на практике
Если это ваша первая модель, то нужно построить бейзлайн и гнаться за набиванием ошибок в онлайне, а не за сранной метрикой в оффлайне. Ведь ваша цель не обучить её у себя в ноутбуке, а быстрее выкатить модель, дать предикт на пользвователях, даже если он будет не такой хороший как у нейронки, и собрать нужные метрики для улучшения модели📝

2️⃣ Интерпритация
ML можно намного качественне интерпитировать нежели нейронки, что может помочь уменьшить риски, что модель будет ввести себя как обезьяна с гранатой 🐒💣

3️⃣ Уменьшение рисков
Также большую роль играет размер модели, намного проще задеплоить катбуст нежели ЛЛМку на 7B и откатать процесс деплоя на более маленьких моделей, а не страдать сутками с гигантской нейронкой, не понимая почему у вас кластер отваливаетсяя, но в любом случае с ML-ом вы тоже пострадаете 🤕

4️⃣ Проверка гипотез
А нужна ли ваша модель пользователям ? А будет ли ваша модель работать и показывать нужный результат? Намного проще выпустить простой бейзлайн и иметь представление о там как реально проходят процессы вокруг этой модели 💸

Вывод:
Не бегите за моделью ради модели, стремитесь больше пользы принести продукту, отталкиваясь от проблем вашей ЦА, тогда и вы будете довольны и ЦА удолетворён новой фичей)
7🦄3🍌2👌1
Познай трансформеры в 3D 🦍

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

Ну и конечно же, чтобы полностью понять суть великого трансформера, то стоит в сокопуности посмотреть видео Котенкова про эту архитектуру 😎
🌭6🍌21🍓1
Собеседование в Транснефть на вилку от 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 сортируем по косинусной близости

Вывод:
Собес мне очень понравился, вопросы по теме, которой они хотят ввести разработку. Интервьюер очень доброжелательный. Основываясь на отношении ко мне, команда ДСов в Транснефть халяль 🤤
🍌10👍2🔥2🎄2
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 и другое... 💪

👇В коментах скинул структуру вопросов👇
7🔥3👍1🥰1🍌1
Собес в Тинькофф на зп от 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.
Тинькофф советую, хоть я и работаю в Сбере, но бесплатные столовки никто не отменял.
Чат для вопросов и рассуждений всегда открыт, я не гений, могу сам где-то ошибиться 🤓
🍌95🍓5🤔3😱2💅2👍1
Собеседование в Huawei от 270к на Data Science NLP 👀

Задачи:

Первая картинка - дана функция:
- Нужно определить сложность алгоритма - O(n^2)
- Оптимизировать данную функцию и сказать сложность нового функции - (2 картинка), да, меня только на это и хватило....

Третья картинка - дана функция:
- Нужно понять, что делает данная функция - делает матрицу-маску для нейронки, я там оставил комментарии
- Оптимизировать её - тут ненмого душно и касается входных данных, но расскажу про идейку. Жирная функция np.count_nonzero(v_all == i), которую можно заменить вычисление данных из функции np.unique(v_all, return_counts=True)

Дальше вопросы по моему опыту:
Что такое MAP (Mean Average Precision) ?
MAP - это метрика ранжирования, которая считает кумулятивная сумму Recall`а. Чем больше MAP, тем лучше ранжирования. Грубо говоря, MAP стремится к тому, чтобы правильные ответы стремились в вверх, а отрицательные ответы - вниз.

Что такое LoRA?
LoRA - это адаптер, которые встраивается в модель. Она нужна, чтобы не обучать модель 1000 лет, а обучить 1% от всех модели, что сокращает время в несколько раз.

Какие ограничения у attention?
У attention сложность - это O(2^n), но существуют разные виды его ускорений, также есть flash-attention, который очень быстро считает attention из-за правильной работы с памятью CUDA.

Итог:
В целом задачи интересные, особенно вторая. Также классно, что спросили по опыту, так делают редко 👉
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥43🥰1🍌1