Machine learning Interview
24.5K subscribers
1.05K photos
73 videos
12 files
707 links
Разбираем вопросы с собеседований по Machine Learning, Data Science, Deep Learning и Нейронным сетям, Python.

Вопросы - @notxxx1


@itchannels_telegram -🔥лучшие it каналы

РКН: clck.ru/3FmwRz
Download Telegram
#вопросы_с_собеседований
Что такое аугментация данных? Можете привести примеры?

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

— Изменить размер
— Горизонтально или вертикально перевернуть
— Добавить шум
— Деформировать
— Изменить цвета
Minimum Viable Study Plan for Machine Learning Interviews

Сборник интервью по машинному обучению от FAANG, Snapchat, LinkedIn.

Github

@machinelearning_interview
Расскажите что вы знаете о LLM: больших языковых моделях ? Расскажите про наиболее известным LLM ?

Большие языковые модели — это нейросетевые модели, использующие алгоритмы машинного обучения, позволяющие обобщать, прогнозировать, генерировать человеческие языки на основе больших наборов текстовых данных. Принцип работы таких моделей основан на определении вероятностного сочетания слов и их значений в заданном контексте с использованием определенных алгоритмов вычислений.

В БЯМ чаще всего использовалась архитектура трансформера, которая с 2018 года стала стандартной техникой глубокого обучения для последовательных данных (ранее наиболее распространёнными были рекуррентные архитектуры, такие как модели с долгой кратковременной памятью). БЯМ обучаются без учителя на неаннотированном тексте. Трансформер при генерации вывода слева направо обучается максимизировать вероятность, назначенную следующему слову в обучающих данных, с учётом предыдущего контекста. В качестве альтернативы БЯМ может использовать двунаправленный трансформер (как в примере BERT), который присваивает распределение вероятностей по словам, имеющим доступ как к предыдущему, так и к последующему контексту. В дополнение к задаче прогнозирования следующего слова или «заполнения пробелов» БЯМ могут быть обучены вспомогательным задачам, которые проверяют их понимание распределения данных, таких как прогнозирование следующего предложения (NSP), в котором представлены пары предложений и модель должна предсказать, появятся ли они рядом в обучающем корпусе текстов.

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

К наиболее известным LLM относят:

GPT ( OpenAI). Является одной из крупнейших языковых моделей, обученной на огромном количестве разнообразных наборов данных и 175 млрд параметров. Модель умеет писать тексты (статьи, стихи и т.д.), переводить, отвечать на вопросы по тексту. Архитектура модели transformer1

LaMDA ( Google). Относится к разговорным нейросетевым моделям. Построенная на архитектуре transformer и обученная также на текстовых наборах данных модель способна вести диалог.

BERT ( Google). Данная нейросетевая модель в большей степени используется в поисковых запросах. Модель обучена в целях увеличения эффективности процесса понимания контекста запроса пользователя для выдачи релевантного результата. Архитектура модели transformer.

BLOOM (Исследовательская группа BigScience). На текущий момент является самой большой многоязычной нейросетевой моделью. Обученная на огромных объемах текстовых данных и 176 млрд параметров с использованием вычислительных ресурсов промышленного масштаба модель способна генерировать текст на 46 языках и 13 языках программирования.

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

Специалисты в области языковых моделей также расходятся во мнении о возможном позитивном развитии данного направления искусственного интеллекта в дальнейшем. Одни утверждают, что предел развития LLM практически достигнут, по мнению других – масштабирование LLM будет способствовать формированию более умных моделей. Однако, текущее положение показывает, что использование LLM сейчас видится в большей степени в качестве вспомогательного инструмента, без всецелого полагания на результат, а применение в особо значимых сферах деятельности человека может привести к необратимым последствиям.

@machinelearning_interview
Что такое алгоритмы схожести и когда они используются?

Алгоритмы схожести вычисляют сходство пары записей/узлов/точек/текстов. Есть алгоритмы, которые вычисляют расстояние между двумя значениями данных, такими как расстояние Евклида. А также есть алгоритмы, вычисляющие схожесть текстов, такие как алгоритм Левенштейна.

Когда используются?

Алгоритмы сходства применяются повсеместно, но чаще всего в рекомендательных системах.

Какие статьи предложит тебе Medium, основываясь на прочитанном тобой ранее?
Какие ингредиенты вы можете использовать для замены голубики?
Какие треки предложит тебе Spotify, основываясь на треках, которые тебе уже нравятся?
Какие продукты Amazon предложит тебе, основываясь на истории покупок?

Это только некоторые примеры применения алгоритмов сходства в повседневной жизни.


Примеры алгоритмов
Ниже приведены самые популярные алгоритмы сходства:

К-ближайших соседей;
расстояние Евклида;
косинусное сходство;
алгоритм Левенштейна;
алгоритм Джаро-Винклера;
сингулярное разложение (SVD).

@machinelearning_interview
🔍 Что такое объяснительные алгоритмы Когда они используются? Приведите примеры объяснительных алгоритмов

Что такое объяснительные алгоритмы?
Объяснительные алгоритмы позволяют нам обнаруживать и понимать переменные, которые оказывают статистически значимое влияние на выходное значение (результат). Вместо создания алгоритмов для предсказания значений, мы создаем объяснительные модели для понимания взаимосвязи между переменными в модели.

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

Недавно появились два метода: SHAP и LIME. Они используются для интерпретации моделей машинного обучения.

Когда используются?
Объяснительные модели эффективны, когда вы хотите понимать, почему выбрано именно такое решение. Или когда вы хотите понять как две или более переменных связаны между собой.

На практике возможность объяснить, как ваша модель работает, так же важна, как и качество модели. Если вы не можете объяснить, никто не поверит ей и никто не будет её использовать. Это особенно актуально для банковской сферы, где все модели должны быть интерпретируемыми.

Примеры алгоритмов
Традиционные объяснительные модели, основанные на проверке гипотез:

Линейная регрессия.
Логистическая регрессия.

Алгоритмы для объяснения моделей машинного обучения:

SHAP;
LIME.

@machinelearning_interview
Какова сложность алгоритма поиска k ближайших соседей?
Anonymous Quiz
12%
O(log n).
29%
O(n log n).
21%
O(n).
39%
O(n^2).
Какой эффект может произойти при использовании L2 регуляризации?
Anonymous Quiz
25%
Отбор признаков
6%
Увеличение размерности модели
16%
Увеличение весов модели
53%
Уменьшение разброса модели
🌐 Что такое эмбединги в NLP. Приведите примеры.

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

Построить эту модель можно следующим образом:

Текст нужно разделить на словосочетания из нечетного количества слов. Например 3 или 5 слов. Это называют Context Window.
На вход модели подается центральное слово из Context Window в формате one-hot вектора.
На выход модели подаются слова которые идут следом или перед ним. Для Context Windows = 3, это будут 2 one hot вектора (предыдущее слово и следующее слово), либо сумма этих 2х векторов (bag of words). Если Context Window будет равным 5, то слов будет 4, а не 2.
Затем нужно сдвинуть Context Window на один шаг и повторить процедуру.

Таким образом мы создадим датасет для обучения. Этот датасет мы подадим в автоенкодер для обучения.

Такая модель называется Skip Gram (Когда на входе центральное слово, а на выходе то что его окружает). CBOW - это наоборот, когда мы в модель подаем то что окружает слово, а на выходе получаем центральное слово.

Размер входного слоя и выходного слоя равен размеру словаря. Входной слой и скрытый слой кодируют слово. Скрытый слой и выход декодируют слово. Таким образом можно, закодировать one hot вектора в эмбеддинг. А вектор эмбединга будет заметно меньше, чем one-hot вектор. Эмбедингом называется матрица весов между входом и скрытым слоем. Или значения, которые возникают на скрытом слое, при подаче one-hot вектора слова в модель.

Эмбеддинг, в дальнейшем можно передать в классификатор, вместо Bag of words. Делается это следующим образом:

Береться строка и каждому слову ставятся индексы из словоря. Получается вектор индексов.
Затем для каждого слова, нужно поставить его эмбединг по индексу слова. Получается двумерный вектор размером [ длина строки ] X [ размер эмбединга ]. Например, 300 x 50.
После этого, этот вектор надо передать в классификатор. Т.к. используются уже двумерные слои, можно использовать сверточные сети.
Это будет уже новая нейронная сеть, которая принимает на вход индексы слов, превращает их в вектор эмбединга, а после отправить результат в классификатор. И данную сеть можно обучать, в том числе обучить и эмбединг. Можно взять готовый эмбединг, а можно обучить его самостоятельно.

model = ai.CustomModel(
model_name = "Model_embedding_1",
input_shape = input_shape,
module = nn.Sequential(

nn.Embedding(10000, 50),

Transform_Flat(),

nn.Linear(300*50, 1024),
nn.ReLU(inplace=True),

nn.Linear(1024, 256),
nn.ReLU(inplace=True),

nn.Linear(256, output_shape[0]),
nn.Softmax(dim=-1),
),
)


@machinelearning_interview
Можно ли использовать L1 и L2 регуляризацию одновременно?
Anonymous Quiz
24%
Нет
8%
Это зависит от дисперсии данных
60%
Да
9%
Это зависит от распределения данных
Какой эффект может произойти при использовании L1 регуляризации?
Anonymous Quiz
5%
Увеличение размерности модели
9%
Увеличение весов модели
31%
Уменьшение разброса модели
55%
Отбор признаков
#вопросы_с_собеседований
Как работает ROC-кривая?

ROC-кривая — это графическое изображение контраста между показателями истинно положительных и ложноположительных результатов при различных пороговых значениях.

Если считать TPR и FPR для фиксированного порога μ є [0,1], то их можно представить в виде функций от аргумента μ:

TPR = TPR(μ), FPR = FPR(μ). При этом обе функции монотонно возрастают от 0 до 1, а значит, определена функция:

ROC(x) = TPR(FPR-1(x)), x є [0,1]

ROC-кривая — это график функции. Как правило, у хорошего классификатора кривая лежит по большей части либо целиком выше прямой y=x. Это связано с тем что при хорошей классификации надо получать максимальный TPR при минимальном FPR.

@machinelearning_interview
👀Что такое галлюцинации в больших языковых моделях? Какие методы решения вы знаете ?

БЯМ (Большие языковые модели) или LLM (Large Language Models) стали популярными в обработке естественного языка. Они используются для перевода, генерации текста и ответов на вопросы. Эти модели обучаются на больших наборах данных и могут создавать тексты, похожие на тексты, написанные человеком. Известные примеры LLM - ChatGPT и GPT-4 от OpenAI.

Однако у таких моделей есть проблемы с «галлюцинациями» и доступом к актуальной информации. Галлюцинации проявляются как генерация текста, не соответствующего реальности, с нарушениями фактологии. Нейросеть может придумывать детали, факты, имена или события, которые не существуют в реальности.имеют отношения к реальности.

Для решения данной проблемы и уменьшения вероятности галлюцинаций, исследователи предлагают несколько методов:

1. Использование дополнительной модели для поиска информации в документах, с последующей передачей этой информации в генеративную нейросеть.

2. Обучение моделей на бОльшем количестве данных, а также создание специальных (фактологических) наборов данных.

3. Использование обучения с подкреплением, на основе оценок поставленных людьми, как это делают в OpenAI (RLHF).

4. Соединение LLM с моделью мира (это наиболее сложный и перспективный подход, но в данной статье мы его не будем рассматривать из-за объемности).

@machinelearning_interview
#тест
ACID-требования к транзакциям полностью поддерживают
Anonymous Quiz
19%
все базы данных
58%
только реляционные базы данных
9%
только NoSQL-базы данных
14%
только OLTP-базы
📌 Задача про метрики

Пусть мы обучили логистическую регрессию и метод опорных векторов для решения задачи бинарной классификации, предсказали классы с помощью моделей на тестовых данных и измерили f1-score. Оказалось, что значение метрики у логистической регрессии на 0,1 выше, чем у метода опорных векторов.

Означает ли это, что логистическая регрессия лучше решает задачу?

Ответ: нет, не означает.

Решение
Метрика f1-score зависит от порога, по которому мы переводим предсказанные моделью «вероятности» в классы. По умолчанию порог для перевода равен 0,5: то есть если уверенность модели в положительном классе составляет 0,5 или больше, мы относим объект к положительному классу, а иначе — к отрицательному.

При увеличении порога точность (precision) растет, а полнота (recall) падает, и наоборот. Метрика f1-score нелинейно зависит от точности и полноты и вычисляется по формуле:

f1= 2*precision *recall / precision* recall

Поэтому она будет изменяться при изменении порога.

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

Чтобы узнать, какая из моделей лучше работает в конкретном случае с точки зрения метрики f1, необходимо для каждой из моделей подобрать свой оптимальный порог и вычислить для него значение f1.
Тогда мы сможем сказать, какая модель лучше.

@machinelearning_interview
📌 Что такое вариационные автоэнкодеры (VAE) ?

Автоэнкодер состоит из двух соединенных нейронных сетей: модели энкодера (кодировщика) и модели декодера (декодировщика). Его цель – нахождение метода кодирования лиц знаменитостей в сжатую форму (скрытое пространство) таким образом, чтобы восстановленная версия была как можно ближе к входно

Как правило, скрытое пространство Z, создаваемое энкодером, редко заселено, то есть трудно предсказать, распределение значений в этом пространстве. Значения разбросаны, и пространство обычно хорошо визуализируется в двухмерном представлении.

Это очень полезная особенность для систем сжатия (компрессии). Однако для генерации новых изображений знаменитостей эта разреженность – проблема, поскольку найти скрытое значение, для которого декодер будет знать, как произвести нормальное изображение, почти невозможно.

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

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

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

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

Условные вариационные автоэнкодеры позволяют моделировать вход на основе не только скрытой переменной z, но и дополнительной информации вроде метаданных изображения (улыбка, очки, цвет кожи и т.п.)

@machinelearning_interview