Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
104 - Telegram Web
Telegram Web
Познай трансформеры в 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?
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
Forwarded from Сиолошная
https://openai.com/sora

OpenAI воспользовались минутой слабостью, и пока я спал, потому что болела голова, порвали мир генерации видео-по-тексту. То что вы видите выше — примеры работ, сгенерированных моделью SORA. Посмотреть больше примеров можно в других каналах, а также на сайте, и в твиттере Sam Altman, где он генерит видео по запросам пользователей: https://twitter.com/sama

Доступа у публики нет (я бы не ждал до окончания выборов или вообще), но будет доступна спец. командам, отвечающим за безопасность генерации:
> Мы заранее делимся результатами наших исследований, чтобы начать работать и получать отзывы от людей за пределами OpenAI, а также дать общественности представление о том, какие возможности ИИ ждут нас на горизонте.

Конец блогпоста OpenAI:
> SORA служит основой для моделей, которые могут понимать и моделировать реальный мир, и мы считаем, что эта способность станет важной вехой на пути к достижению AGI.

🤣🤣

(Техническая статья позже сегодня)
Please open Telegram to view this post
VIEW IN TELEGRAM
БлицОпрос в Домклик

Блиц опрос - это обычный опросник на полчаса на базовые знания Python, Статистика, Classic ML, NLP

Python
🤵‍♂️
Какие ограничения на значения ключа в dict`е ?
1) Значение должно быть не изменяемым и уникальным. Важно, чтобы от значения ключа можно было взять хеш-функцию

Есть ли риски при использовании изменяемых объектов в качестве значений по умолчанию для аргументов функции в Python?
1) Изменение состояния объекта: поскольку у нас изменяемый объект в аргументе, то это тварь может взять и изменится при последующем вызове функции, поэтому будьте аккуратны с этим

Что такое декоратор и каков её синтаксис?
1) Декоратор - это обёртка над функцией, которая позволяет менять поведение функций без изменения её исходного кода
2) Синтаксис прост: функция декоратора принимает в аргументы функцию, в которую мы хотим обернуть. Внутри функции декоратора находится функция, которая описывает логику декоратора, в конце мы возвращаем эту функцию. (1 картинка)

Статистика 💻
Ошибка первого и второго рода
- Ошибка первого рода состоит в том, что гипотеза H0 будет отвергнута, хотя на самом деле она правильная.
- Ошибка второго рода состоит в том, что гипотеза H0 будет принята, но на самом деле она неправильная.
Что такое p-value ?
- 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, расскажи формулу ?
- Кратко говоря, TF-IDF - это вектор предложения, лучше тык на базу
Что такое функция активации ? И зачем она нужна ?
- Функция активации - нелинейное преобразование, поэлементно применяющееся к пришедшим на вход данным. Благодаря функциям активации нейронные сети способны порождать более информативные признаковые описания, преобразуя данные нелинейным образом. Тык
Что будет лучше для длинной последовательности: LSTM или GRU ?
- 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 тесты.
Вы должны построить систему на костылях, которую вы будуте улучшать каждую итерацию, то есть построили гавно из всех пунктов, превратили это гавно в павозку с костылями, пройдя по всем пунктам заново, закрывая все дыры и так далее... 🔝

Пункты: 🔥

1️⃣ Сформулировать проблему
Очень важно изначально понять и сформулировать задачу для себя, чтобы понимать куда и зачем идти

- Поставить бизнес задачу - тут самое главное - это понять, что от вас требуют. Задавайте вопрос: "правильно ли я понял, что..."
- Обговорить ограничения - в кейсе, который вас просят задизайнить могут быть ограничения на память, на ресурсы и тд

2️⃣ Метрики
Нужно дизайнить с метрик, так как вы должны понимать к чему вы идёте, и вы должны уметь как-то сравнивать модели в последующих апдейтах

- Бизнес метрики - одно из самых важных, на что будет ориентироваться бизнес
- Online метрики - это те метрики, которые будут измеряться во время A/B теста, чтобы понять хуже/лучше модель
- Offline метрики - метрики, которая проверяются на train/test во время обучения модели

3️⃣ Данные
Знаем метрики, теперь нужно разобрать какие данные у нас есть для последующего обучения моделей

- Сущности - Нужно определить какие у нас сущности: пользователь, карточка товара....
- Характеристики сущностей - У каждой сущности есть свои характеристики. Для пользователя это - фио, пол, возраст и тд, для карточки товара - это цена, описание, бренд...
- Сбор Данных - Как мы будем собирать данные: cпарсим, копирайтеры, возьмём из БД

4️⃣ Pipeline
- Как работает сервис
- Необходимо описать как сервис будет работать в целом: какие есть блоки, как они взаимодействуют между собой, что и как друг другу передаёт.

5️⃣ Модель
Нужно лучше начать с бейзлайна - с самой просто задачи.
Если у вас задача рекомендации, то для начала стоит просто сказать: "пусть бейзлайном будет выдача самих лучших товаров по рейтингу, чуть позже улучшим модель, опираясь на online и offline метрики". Помни, твоя задача всего интервью- построить полностью готовый пайплайн решения.

После того как вы закрыли данные пункты, то улучшайте бейзлайн, рассказывая про это:
- Задача - классификация, ранжирование, регрессия
- Loss - для каждой задачи свой лосс
- X/y - необходимо написать на каких данных вы обучаетесь
- Train/Test Split - Как вы разбиваете данные для обучениия: на чём тренируетесь, на чём валидируетесь
- Фичи и их сбор - Как вы собираете данные, и как вы преобразовывайте данные

6️⃣ Deploy
Как вы будете деплоить, лично я обычно говорю про данные пункты, упоминая технологии.

- Пайплайн хранения данных и транспорт даты - Amazon S3, MySQL, FEAST, HDFS, Kafka
- Пайплайн создания фичей - Apache Spark
- Пайплайн дообучения модели - Airflow
- Пайплайн мониторинга - ML Flow
- Архитектуры: микросервис - Docker, K8s

7️⃣ A/B Test
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
2025/07/05 13:38:25
Back to Top
HTML Embed Code: