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
13B and 70B 32k models with the supervised fine-tuning, which is feasible for long context
LongLoRA - эффективный подход к файнтюнингу, позволяющий расширить размер контекста предварительно обученных больших языковых моделей (БЯМ) при ограниченных вычислительных затратах.
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😱3❤1👍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
# Методичка по поиску работы в 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🍌2❤1🍓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.
Тинькофф советую, хоть я и работаю в Сбере, но бесплатные столовки никто не отменял.
Чат для вопросов и рассуждений всегда открыт, я не гений, могу сам где-то ошибиться 🤓
🍌9❤5🍓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 - это адаптер, которые встраивается в модель. Она нужна, чтобы не обучать модель 1000 лет, а обучить 1% от всех модели, что сокращает время в несколько раз.
У 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🔥4⚡3🥰1🍌1
Forwarded from Denis Sexy IT 🤖
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Просто посмотрите на это качество, о-ф-и-г-е-т-ь
У многих txt2video стартаперов FaceId сегодня не работает
У многих txt2video стартаперов FaceId сегодня не работает
🤯2🔥1🍌1