Библиотека собеса по Data Science | вопросы с собеседований
4.31K subscribers
442 photos
10 videos
1 file
459 links
Вопросы с собеседований по Data Science и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/7dfb7235

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Как работает механизм self attention в трансформерах и за что отвечает?

Self-attention в трансформерах — это способ обращения модели на важные слова в предложении. Для каждого слова (входного вектора) генерируется Query, Key и Value. Модель вычисляет соотношения между Query и Key, используя метрику близости. Затем взвешенно суммирует Value, чтобы создать представление слова. Это помогает модели лучше понимать зависимости между словами. Механизм отвечает за моделирование зависимостей между словами в предложении. Он позволяет модели определить, какие слова взаимодействуют друг с другом и как важны они для понимания контекста.
👍4
Пробовали ли вы обучить LLM или любой другой генератор текста на своих данных и что у вас выходило?
Какие методы и техники вы бы использовали для решения проблемы затухающего градиента при обучении модели seq2seq, особенно когда входная последовательность длиннее, чем выходная, и какие меры предприняли бы, чтобы справиться с потерей информации на начальных этапах декодирования?

1. Архитектурные модификации: использование архитектур, которые способствуют передаче информации на большие расстояния, таких как архитектуры с аттеншн-механизмами (например, Transformer). Аттеншн-механизм позволяет модели фокусироваться на разных частях входной последовательности в процессе декодирования, что уменьшает вероятность затухания градиента.
2. Skip Connections: Включение пропускающих соединений в архитектуру, чтобы градиент мог путешествовать на более длинные расстояния между входом и выходом.
3. Residual Connections: Аналогично skip connections, но с добавлением остаточных соединений, что позволяет сети изучать разницу между текущим состоянием и предыдущим, помогая справляться с затухающим градиентом.
4. Layer Normalization и Batch Normalization: Нормализация слоев и батчей может помочь уменьшить влияние затухания градиента на обучение.
5. Scheduled Sampling: Использование стратегии постепенного внедрения сгенерированных токенов в качестве входа вместо реальных токенов для учебных данных. Это может помочь модели привыкнуть к собственным предсказаниям.
6. Gradient Clipping: Ограничение нормы градиента, чтобы избежать роста градиента.
👍4🥱3
Различные этапы аналитического проекта

🔸 Понимание бизнес-проблемы
🔸 Изучение данных и ознакомление с ними
🔸 Подготовка данных к моделированию посредством обнаружения резко отклоняющихся значений, преобразования переменных, обработки пропущенных значений и т. Д.
🔸 Запуск модели и анализ результата для внесения соответствующих изменений или модификаций в модель (итеративный шаг, который повторяется до достижения наилучшего возможного результата)
🔸 Проверка модели с использованием нового набора данных
🔸 Внедрение модели и отслеживание результата для анализа производительности одного и того же
🥱4👍21
Что такое выбросы и как с ними обращаться?

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

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

Есть два популярных способа обработки выбросов:
🔸 Чтобы изменить значение так, чтобы его можно было привести в диапазон
🔸 Чтобы просто удалить значение
👍4🥱3
Как следует поддерживать развернутую модель?

Шаги по поддержанию развернутой модели:

🟠 Мониторинг
Необходим постоянный мониторинг всех моделей для определения точности их работы. Когда вы что-то меняете, вы хотите выяснить, как изменения повлияют на ситуацию.

🟠 Оценка
Метрики оценки текущей модели рассчитываются, чтобы определить, нужен ли новый алгоритм.

🟠 Сравнение
Новые модели сравниваются друг с другом, чтобы определить, какая модель работает лучше.

🟠 Перезапуск
Наиболее эффективная модель дообучается на новых данных.
👍7🥱3
Подходы к задаче ранжирования

🔸 Pointwise, он же поточечный. Мы будем рассматривать релевантность как абсолютное мерило и будем штрафовать модель за абсолютную разность между предсказанной релевантностью и той, которую мы знаем по обучающей выборке. Например, асессор поставил документу оценку 3, а мы бы сказали 2, поэтому штрафуем модель на 1.
🔸 Pairwise, попарный. Мы будем сравнивать документы друг с другом. Например, в обучающей выборке есть два документа, и нам известно, какой из них более релевантный по данному запроса. Тогда мы будем штрафовать модель, если она более релевантному поставила прогноз ниже, чем менее релевантному, то есть неправильно сранжировала пару.
🔸 Listwise. Он тоже основан на относительных релевантностях, но уже не внутри пар: мы ранжируем моделью всю выдачу и оцениваем результат — если на первом месте оказался не самый релевантный документ, то получаем большой штраф.
👍4🥱3
Что такое CI/CD в контексте MLOps и как это работает?

CI (Continuous Integration) и CD (Continuous Deployment) в MLOps означают непрерывную интеграцию и непрерывное развертывание. Это практики автоматической сборки, тестирования и развертывания моделей машинного обучения при каждом изменении кода или данных.
🥱6👍1
Что такое контейнеризация, и как она используется в MLOps?

Контейнеризация - это технология, которая позволяет упаковывать приложения и их зависимости в изолированные контейнеры. В MLOps она используется для упаковки моделей и их зависимостей, что делает развертывание более надежным и портируемым.
🥱6👍5
Что такое A/B тестирование моделей и как оно используется в MLOps?

A/B тестирование моделей - это метод сравнения двух или более моделей машинного обучения для определения наилучшей производительности. В MLOps, это используется для оценки эффективности новых моделей перед их развертыванием в production.
👍9🥱92
Опишите вкратце ваш самый интересный проект в DS - как проект помог бизнесу, какой стек использовали и в чем суть проекта?
🔥3🥱2🤔1
Перечислите этапы построения дерева решений

🟦 Взять весь набор входных данных.
🟦 Вычислить энтропию целевой переменной, а также прогнозные атрибуты.
🟦 Рассчитать прирост информации по всем атрибутам (информацию о том, как отсортировать разные объекты друг от друга).
🟦 Выбрать атрибут с наибольшим объёмом информации в качестве корневого узла.
🟦 Повторить ту же процедуру для каждой ветви, пока узел решения каждой ветви не будет завершён.
👍2
Какие существуют эмбеддинги в NLP и в чем они отличаются?

1. Word2Vec: Создает плотные векторы слов, подходит для множества задач NLP. Обучается на основе локальных контекстов в предложениях.
2. GloVe: Использует глобальную статистику совместной встречаемости слов, хорошо подходит для классификации текстов.
3. FastText: Учитывает подслова, полезен для языков с морфологией.
4. ELMo: Контекстуализированные эмбеддинги, учитывает значение слова в зависимости от контекста.
5. BERT: Мощная модель, учитывает контекст с обеих сторон слова, применяется во многих задачах NLP.
6. ULMFiT: Основан на LSTM, дообучается для конкретных задач с ограниченными данными.
👍10
Как работает Dropout?

Dropout - это метод регуляризации нейронных сетей, который помогает предотвратить переобучение. Он работает следующим образом:
1. Исключение нейронов: В процессе обучения нейронной сети, на каждом шаге обучения, dropout случайным образом "отключает" (или исключает) некоторые нейроны сети. Это означает, что в процессе прямого и обратного распространения ошибки, эти нейроны не участвуют.
2. Параметр "вероятность отключения": Dropout вводит параметр "вероятность отключения" (обычно обозначается как p), который указывает, с какой вероятностью каждый нейрон будет исключен на каждом обновлении (проходе) через сеть.
3. Устранение переобучения: Dropout помогает бороться с переобучением, потому что он заставляет сеть стать более устойчивой и генерализировать лучше на новых данных. Из-за случайного отключения нейронов сеть вынуждена распределять вычислительные ресурсы более эффективно.
4. Использование во время тестирования: Важно помнить, что dropout используется только во время обучения сети. Когда сеть применяется для создания предсказаний на новых данных, dropout выключается, и все нейроны используются.
👍9
В чем разница между бустингом и бэггингом?

Разница между бустингом и бэггингом заключается в том, как они комбинируют прогнозы базовых моделей:

1. Бэггинг
Принцип: В бэггинге создается множество подвыборок данных путем случайного выбора с заменой из исходного набора данных. Затем над каждой подвыборкой обучается отдельная базовая модель (например, решающее дерево).
Прогноз: Прогнозы отдельных моделей усредняются (для регрессии) или выбирается наиболее часто встречающийся класс (для классификации).
Пример: Случайный лес (Random Forest) - это пример бэггинга, где базовые модели - решающие деревья.

2. Бустинг
Принцип: В бустинге базовые модели обучаются последовательно. Каждая новая модель фокусируется на ошибках, сделанных предыдущими моделями, и пытается их исправить.
Прогноз: Прогнозы базовых моделей взвешиваются, и веса назначаются на основе их производительности. Прогнозы базовых моделей объединяются, и каждая следующая модель старается уменьшить ошибки предыдущих.
Пример: Градиентный бустинг (Gradient Boosting) и AdaBoost - это популярные методы бустинга.

В бэггинге модели независимы и усредняются, в то время как в бустинге модели взаимодействуют и учатся на ошибках друг друга, что позволяет им вместе достичь лучшей производительности.
👍10🔥3
Какой слой в gpt обрабатывает выход трансформера и как он работает?

В архитектуре GPT (Generative Pre-trained Transformer) слой, который обрабатывает выход трансформеров, называется "декодирующим слоем" или "генеративным слоем".

Этот слой работает следующим образом:
1. Составление вероятностного распределения слов: Для генерации текста декодирующий слой принимает выходные данные из трансформера, которые представляют собой скрытое состояние, кодирующее информацию о контексте. Декодирующий слой преобразует это скрытое состояние в вероятностное распределение над возможными словами в словаре.
2. Генерация слов: На основе вероятностного распределения декодирующий слой выбирает следующее слово для генерации. Это может быть выполнено с использованием методов выбора, таких как сэмплирование согласно вероятностям или выбор наиболее вероятного слова.
3. Обратная связь: Сгенерированное слово добавляется к предыдущему контексту, и этот расширенный контекст возвращается на вход декодирующему слою. Это позволяет модели учитывать уже сгенерированный текст при принятии решения о следующем слове.
4. Повторение: Процесс генерации слов повторяется до достижения определенной длины текста или до выполнения некоторого условия завершения, такого как генерация специального символа конца текста.
5. Обучение: Декодирующий слой обучается на парах вход-выход на больших текстовых корпусах. Обучение включает в себя подбор параметров так, чтобы модель максимизировала вероятность правильной генерации текста.
👍6
Что такое квантизация и бинаризация модели и в чем между ними разница?

Квантизация и бинаризация модели - это методы снижения объема памяти и вычислительной сложности нейронных сетей, путем уменьшения точности представления весов и активаций модели. Вот как они работают:


Квантизация модели:
• Идея: Квантизация заключается в уменьшении точности чисел, используемых для представления весов и активаций модели. Вместо хранения и вычисления чисел с плавающей запятой, мы используем целочисленные числа с ограниченным числом бит.
• Пример: Вместо хранения числа с плавающей запятой 0.753218, мы можем использовать квантованное значение, например, 8-битное целое число 155.
• Плюсы: Квантизация снижает объем памяти и требования к вычислительным ресурсам, что особенно полезно для встраиваемых систем и мобильных устройств.
• Минусы: Это может привести к некоторой потере точности, так как мы снижаем разрешение чисел.


Бинаризация модели:
• Идея: Бинаризация идет еще дальше и заключается в том, чтобы представлять веса и активации как бинарные (0 или 1) значения. Вместо вещественных чисел используются биты. Это делает модель еще более компактной.
• Пример: Вместо числа с плавающей запятой можно использовать всего два значения: 0 и 1.
• Плюсы: Бинаризация дает значительное снижение объема памяти и требований к вычислительным ресурсам. Она подходит для задач, где крайне ограничены ресурсы.
• Минусы: Бинаризация может привести к еще большей потере точности, и сложные модели могут стать непригодными для задач с высокими требованиями к точности.
Оба метода, квантизация и бинаризация, имеют свои компромиссы между размером модели и ее производительностью. Их выбор зависит от конкретных потребностей приложения и доступных ресурсов.
👍8
В чем отличие глобального пулинга от локального?

Отличие глобального пулинга от локального заключается в том, что размер окна всегда равняется длине входной последовательности. Если подают последовательность другой длины, то размер окна подстраиваться под неё.
👍2
В чем отличие стохастического градиентного спуска от обычного?

Стандартный градиентный спуск (Gradient Descent) и стохастический градиентный спуск (Stochastic Gradient Descent или SGD) - это два важных метода оптимизации в машинном обучении. Они отличаются в том, как обновляют параметры модели в процессе обучения.

• Градиентный спуск обновляет параметры модели на основе градиента, вычисленного на всем обучающем наборе.
• Стохастический градиентный спуск (SGD) обновляет параметры, используя случайные образцы из обучающего набора, делая обучение быстрее, но более шумным.
10👍4
Как работает LambdaMART?

1. Построение деревьев LambdaMART: LambdaMART использует деревья решений, которые предсказывают релевантность объектов (например, веб-страниц или товаров). Для каждого объекта есть целевая переменная - его реальный ранг или релевантность.

2. Вычисление функции потерь LambdaMART: Функция потерь оценивает, насколько хорошо предсказанные ранги соответствуют реальным рангам. Она учитывает веса (lambdas), которые определяют важность каждого объекта.

3. Градиентный бустинг для деревьев LambdaMART: LambdaMART использует градиентный бустинг для обучения последовательности деревьев. Каждое дерево строится для улучшения текущего ранжирования.

4. Ансамбль деревьев LambdaMART: После обучения деревьев они объединяются в ансамбль. Каждое дерево представляет собой слабый ранжировщик, но ансамбль улучшает ранжирование.

5. Предсказание рангов: Для новых объектов LambdaMART предсказывает их ранги, используя ансамбль деревьев. Это помогает определить порядок объектов в результатах поиска или рекомендациях, учитывая их релевантность.
🔥2🤯1😱1