Познай трансформеры в 3D
🦍
На просторах интернета наткнулся на классный сайт для 3D визуализации трансформеров. Можно потыкать как конкретно умножаются матрицы под капотом, как работает self-attention в визуализации, да и в целом посмотреть на трансформеры с другой стороны 🤖Ну и конечно же, чтобы полностью понять суть великого трансформера, то стоит в сокопуности посмотреть видео Котенкова про эту архитектуру 😎
Собеседование в Транснефть на вилку от 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 сортируем по косинусной близости
Вывод:
Собес мне очень понравился, вопросы по теме, которой они хотят ввести разработку. Интервьюер очень доброжелательный. Основываясь на отношении ко мне, команда ДСов в Транснефть халяль 🤤
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 и другое... 💪
👇В коментах скинул структуру вопросов👇
Собес в Тинькофф на зп от 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.
Тинькофф советую, хоть я и работаю в Сбере, но бесплатные столовки никто не отменял.
Чат для вопросов и рассуждений всегда открыт, я не гений, могу сам где-то ошибиться 🤓
Собеседование в 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
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 сегодня не работает
Forwarded from Сиолошная
https://openai.com/sora
OpenAI воспользовались минутой слабостью, и пока я спал, потому что болела голова, порвали мир генерации видео-по-тексту. То что вы видите выше — примеры работ, сгенерированных моделью SORA. Посмотреть больше примеров можно в других каналах, а также на сайте, и в твиттере Sam Altman, где он генерит видео по запросам пользователей: https://twitter.com/sama
Доступа у публики нет (я бы не ждал до окончания выборов или вообще), но будет доступна спец. командам, отвечающим за безопасность генерации:
> Мы заранее делимся результатами наших исследований, чтобы начать работать и получать отзывы от людей за пределами OpenAI, а также дать общественности представление о том, какие возможности ИИ ждут нас на горизонте.
Конец блогпоста OpenAI:
> SORA служит основой для моделей, которые могут понимать и моделировать реальный мир, и мы считаем, что эта способность станет важной вехой на пути к достижению AGI.
🤣 🤣
(Техническая статья позже сегодня)
OpenAI воспользовались минутой слабостью, и пока я спал, потому что болела голова, порвали мир генерации видео-по-тексту. То что вы видите выше — примеры работ, сгенерированных моделью SORA. Посмотреть больше примеров можно в других каналах, а также на сайте, и в твиттере Sam Altman, где он генерит видео по запросам пользователей: https://twitter.com/sama
Доступа у публики нет (я бы не ждал до окончания выборов или вообще), но будет доступна спец. командам, отвечающим за безопасность генерации:
> Мы заранее делимся результатами наших исследований, чтобы начать работать и получать отзывы от людей за пределами OpenAI, а также дать общественности представление о том, какие возможности ИИ ждут нас на горизонте.
Конец блогпоста OpenAI:
> SORA служит основой для моделей, которые могут понимать и моделировать реальный мир, и мы считаем, что эта способность станет важной вехой на пути к достижению AGI.
(Техническая статья позже сегодня)
Please open Telegram to view this post
VIEW IN TELEGRAM
Openai
Sora
Sora is OpenAI’s video generation model, designed to take text, image, and video inputs and generate a new video as an output. Users can create videos in various formats, generate new content from text, or enhance, remix, and blend their own assets.
БлицОпрос в Домклик
Блиц опрос - это обычный опросник на полчаса на базовые знания Python, Статистика, Classic ML, NLP
Python
1) Значение должно быть не изменяемым и уникальным. Важно, чтобы от значения ключа можно было взять хеш-функцию
1) Изменение состояния объекта: поскольку у нас изменяемый объект в аргументе, то это тварь может взять и изменится при последующем вызове функции, поэтому будьте аккуратны с этим
1) Декоратор - это обёртка над функцией, которая позволяет менять поведение функций без изменения её исходного кода
2) Синтаксис прост: функция декоратора принимает в аргументы функцию, в которую мы хотим обернуть. Внутри функции декоратора находится функция, которая описывает логику декоратора, в конце мы возвращаем эту функцию. (1 картинка)
Статистика
- Ошибка первого рода состоит в том, что гипотеза H0 будет отвергнута, хотя на самом деле она правильная.
- Ошибка второго рода состоит в том, что гипотеза H0 будет принята, но на самом деле она неправильная.
- p-value - величина, которая показывает вероятность получения наблюдаемых результатов при условии, что нулевая гипотеза верна, или вероятность ошибки в случае отклонения нулевой гипотезы.
- Значение b-1 называют мощностью критерия – это вероятность отвержения неправильной гипотезы.
Ml и Deep Learning будут совсем скоро…
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопросы с собеседования ДомКлика
Продолжение предыдущего поста
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