Перейти к содержимому
На этой странице

Трансформеры и языковые модели

Все темы Data Scientist

Подтемы:

Почему чувствительные данные в тексте лучше искать гибридом правил и NER?

Правила хорошо находят устойчивые форматы: номера карт, телефоны, email и идентификаторы с checksum. NER использует контекст и распознает имена, адреса и вариативные формулировки, но может пропускать редкие случаи. Гибрид объединяет их, разрешает конфликты по политике типов и настраивает пороги с приоритетом recall для критичных данных. Проверять надо по типам сущностей и языкам, включая ложные срабатывания. До логирования текст маскируют, а исходный доступ ограничивают.


Что именно оценивает языковая модель?

Авторегрессионная языковая модель оценивает условную вероятность следующего токена по предыдущим и тем самым вероятность последовательности как произведение этих условных вероятностей. Masked language model, например BERT, восстанавливает скрытые токены по двустороннему контексту и не задает такую же left-to-right вероятность напрямую. Perplexity измеряет среднюю log-loss авторегрессионной модели, но сравнима только при согласованной токенизации и данных. При генерации вероятности преобразуются стратегией decoding.


Как N-gram модель оценивает вероятность последовательности?

По chain rule вероятность последовательности раскладывается в произведение условных вероятностей токенов. N-gram модель делает марковское допущение и оставляет в контексте только предыдущие n-1 токенов. Условные вероятности оценивает по частотам n-грамм. Невидимые комбинации дают ноль, поэтому применяют smoothing, например add-k или Kneser-Ney, и backoff к более короткому контексту. С ростом n контекст точнее, но разреженность и память растут очень быстро.


Что такое Multi-Head Attention?

Multi-Head Attention - это механизм внимания в архитектуре трансформера, который позволяет модели сосредотачиваться на различных частях входных данных сразу. Он достигается путем одновременного применения нескольких “голов” (head) внимания к входным данным, каждая из которых обрабатывает данные с различными весами. Это позволяет модели обрабатывать различные аспекты контекста независимо друг от друга, что может привести к более эффективному изучению долгосрочных зависимостей в данных.


Чем Encoder отличается от Decoder-а?

Encoder и Decoder - это две основные компоненты в архитектуре seq2seq, которая часто используется в задачах машинного перевода.

  • Encoder преобразует входную последовательность в последовательность контекстных представлений, обычно по одному на токен.

  • Decoder генерирует выходные токены, используя причинное self-attention по уже доступным выходным токенам и cross-attention к представлениям encoder.


Что такое Positional Encoding и зачем он нужен?

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


Какие примеры трансформерных моделей существуют? (например, BERT как Encoder, GPT как Decoder)?

Примеры трансформенных моделей:

  1. BERT (Bidirectional Encoder Representations from Transformers) - используется для решения задач обработки естественного языка (Natural Language Processing, NLP).

  2. GPT (Generative Pre-trained Transformer) - также используется в задачах NLP, но в отличие от BERT, GPT обычно используется для генерации текста.

  3. T5 (Text-To-Text Transfer Transformer) - обобщенная трансформерная модель, которая может быть применена к различным задачам NLP, представленная в работе “Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer”.


Расскажите про оптимизаторы. (AdamW, LAMB, LANS, большой батч)

Кратко о некоторых оптимизаторах:

  1. AdamW (Adam with Weight Decay) - это вариант оптимизатора Adam, который добавляет весовую декэй-регуляризацию для улучшения стабильности и обобщающей способности модели.

  2. LAMB (Layer-wise Adaptive Moments) - это оптимизатор, который адаптивно масштабирует градиенты для каждого слоя нейронной сети, что позволяет эффективнее обучать модели с различными масштабами градиентов.

  3. LANS (Layer-wise Adaptive Nesterov momentum): оптимизатор для обучения с большими батчами, использующий послойную адаптацию шага и момент Нестерова.

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


Почему лучше использовать нормализацию по слоям (layer norm) вместо нормализации по батчу (batch norm)?

Использование нормализации по слоям (layer norm) обычно предпочтительнее нормализации по батчу (batch norm) в задачах, где размер батча может быть небольшим или изменчивым, так как:

  1. Более стабильное обучение: Нормализация по слоям не зависит от размера батча, поэтому обеспечивает более стабильное обучение в различных условиях.

  2. Независимость от размера батча: Нормализация по слоям независима от размера батча и может быть эффективно применена даже при работе с одним образцом данных.

  3. Большая параллелизация: Нормализация по слоям позволяет большей степени параллелизма при обучении на устройствах с разными характеристиками, такими как распределенные системы или GPU с ограниченной памятью.


Чем отличается модель BERT от модели GPT?

BERT (Bidirectional Encoder Representations from Transformers) и GPT (Generative Pre-trained Transformer) - это обе модели на основе трансформеров, но с разными архитектурами и целями:

  1. Направленность: BERT использует двунаправленный encoder и восстанавливает выбранные токены по левому и правому контексту. GPT использует причинную маску и предсказывает следующий токен по предыдущим.

  2. Цель обучения: BERT обучается на задачах предварительной тренировки, таких как предсказание маскированных слов и предсказание следующего предложения. Он используется для создания представлений слов и контекста, которые можно использовать в различных задачах NLP. GPT обучается на задаче предсказания следующего слова в тексте и используется в основном для генерации текста и выполнения других задач, связанных с пониманием текста.

  3. Генерация и понимание: GPT хорошо подходит для генерации текста, такого как продолжение предложений или создание новых текстовых данных. BERT, с другой стороны, лучше подходит для задач понимания текста, таких как классификация, извлечение информации или вопросно-ответные системы.


Есть ли отдельный слой-токенизатор у трансформера?

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


Чем эмбеддинг w2v отличается от эмбеддинга трансформера?

Эмбеддинг word2vec (w2v) - это статические векторы, представляющие слова в пространстве непрерывных векторов, обученные на больших текстовых корпусах. Они представляют собой фиксированные представления слов, которые не изменяются во время обработки моделью.

Эмбеддинги трансформера - это динамические векторы, которые вычисляются во время работы модели и зависят от контекста. Они создаются на основе входных данных и внутренних матриц весов модели трансформера. Эти эмбеддинги учитывают контекст и семантику слова в конкретном контексте.


Расскажите полностью архитектуру трансформера.

Архитектура трансформера - это модель глубокого обучения, предназначенная для обработки последовательностей данных, таких как тексты или временные ряды. Она была представлена в статье "Attention is All You Need" в 2017 году. Вот ее основные компоненты:

  1. Входной вектор: На вход трансформеру поступает последовательность токенов (слов, символов или эмбеддингов) размерности T×dT \times d, где TT - длина последовательности, а dd - размерность эмбеддинга для каждого токена.

  2. Позиционные эмбеддинги: Для кодирования информации о позиции каждого токена в последовательности добавляются позиционные эмбеддинги.

  3. Энкодер: каждый блок содержит multi-head self-attention и позиционную полносвязную сеть с нелинейной активацией. В исходном Transformer оба подблока используют остаточные соединения и LayerNorm.

  4. Много-головые внимательные механизмы (Multi-Head Attention) : Этот механизм позволяет модели фокусироваться на разных частях входной последовательности одновременно, используя несколько “голов” внимания. Каждая голова вычисляет внимательность между входными токенами, учитывая их взаимосвязи и важность для предсказания.

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

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

  7. Финальный полносвязный слой: Финальный полносвязный слой преобразует выходы декодера в вероятности или векторы предсказания.

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


Батч нормализация происходит во время backward или forward pass. Зачем вообще нужна?

Батч нормализация происходит во время forward pass. Ее основная цель - ускорить обучение и улучшить обобщающую способность нейронной сети. Путем нормализации входных данных к батчу (входных активаций) по их среднему значению и дисперсии внутри батча, батч нормализация помогает справиться с проблемой внутреннего сдвига и способствует более стабильному обучению модели. Она также может уменьшить зависимость от выбора начальных весов и улучшить работу оптимизатора, позволяя использовать более высокие скорости обучения.


Чем отличается RNN от Трансформера?

Между RNN и Трансформером есть основное отличие:

  • RNN обрабатывает данные последовательно и хорошо подходит для временных рядов, но страдает от проблемы долгосрочной зависимости.

  • Трансформеры параллельно обрабатывают последовательности и используют механизм внимания (attention), что позволяет эффективно работать с длинными последовательностями.


Какая вычислительная сложность у RNN и Трансформера?

У RNN и Трансформера следующая вычислительная сложность:

  • У RNN сложность O(n), где n — длина последовательности.

  • У Трансформера сложность O(n²) из-за механизма внимания, но он лучше масштабируется благодаря параллелизму.


Как посчитать attention?

Attention в нейронных сетях используется для выделения важных элементов входных данных при выполнении задачи. Применительно к моделям seq2seq и трансформерам, attention считается следующим образом:

  1. Вычисляются веса (scores) для каждой пары элементов входной и выходной последовательностей. Эти веса обычно вычисляются с помощью функции скалярного произведения, например, dot-product, или с использованием нейронной сети.

  2. Веса нормализуются с помощью функции Softmax, чтобы получить вероятностное распределение.

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


Какие механизмы attention применяют вне трансформеров?

Attention появился до трансформеров и используется как способ взвешенно собрать контекст. В seq2seq RNN additive attention обучает сеть оценивать совместимость состояния decoder и состояний encoder; multiplicative attention использует скалярное произведение. Cross-attention связывает две последовательности или модальности. В CNN применяют spatial attention по координатам и channel attention по картам признаков. Сам механизм не требует transformer-блока: нужны запрос, набор ключей, значений и нормированные веса совместимости.


Для какой задачи происходит предварительное обучение модели? (Masked Language Modeling (MLM) + Next Sentence Prediction (NSP))

Предварительное обучение модели, использующей метод Masked Language Modeling (MLM) и Next Sentence Prediction (NSP), обычно выполняется для создания общего понимания языка и контекста. Модель обучается на больших корпусах текста, где случайно маскируются некоторые слова, и модель должна предсказать их на основе контекста (MLM). NSP задача состоит в том, чтобы предсказать, является ли одно предложение следующим за другим в тексте. Эти задачи позволяют модели учиться о языковых структурах, семантике и связях между предложениями.


Расскажите как происходит процесс обучения и дообучения Берта на задачу MLM-NSP.

Процесс обучения и дообучения BERT на задачу MLM-NSP (Masked Language Model - Next Sentence Prediction) можно описать следующим образом:

  1. Исходная предварительная тренировка:

    • BERT сначала предварительно обучается на больших корпусах текста с использованием двух задач: MLM и NSP.

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

    • В задаче NSP модель обучается определять, является ли второе предложение следующим за первым в оригинальном тексте.

  2. Дообучение на конкретной задаче:

    • После исходной предварительной тренировки BERT можно дообучать на конкретной задаче, такой как классификация текста или вопросно-ответная система.

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

    • Дообучение может включать в себя оптимизацию весов модели для улучшения производительности на конкретной задаче.

  3. Адаптация для специфической задачи:

    • Дополнительно можно проводить адаптацию BERT для более узких задач, например, для конкретной области предметной области или языка.

    • В этом случае можно использовать методы дообучения или донастройки (fine-tuning), чтобы адаптировать BERT к конкретным требованиям и особенностям новой задачи или данных.

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


Как делается токенизация и позишенл энкодинг текстов для Берта?

Токенизация и позиционное кодирование текстов для BERT происходят следующим образом:

  1. Токенизация:

    • Входной текст разбивается на токены, которые представляют собой минимальные единицы текста, такие как слова, символы или подслова.

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

  2. Позиционное кодирование:

    • Для каждого токена вводится позиционное кодирование, чтобы модель могла учитывать порядок слов в тексте.

    • В исходном BERT используются обучаемые абсолютные позиционные эмбеддинги. Они суммируются с эмбеддингами токенов и сегментов.

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

Таким образом, токенизация преобразует входной текст в последовательность числовых индексов, а позиционное кодирование добавляет информацию о позициях токенов в этой последовательности. Эти входные данные затем передаются в BERT для дальнейшей обработки и предсказания.


Что нам нужно прикрутить к BERT чтобы сделать классификацию?

Обычно BERT для задач классификации требует добавления линейного слоя (fully connected layer) поверх выходов CLS токена для предсказания класса.


Как обучался BERT?

BERT обучался с использованием задач Masked Language Modeling ( MLM), где случайные слова маскируются, и модель предсказывает их, а также задачи Next Sentence Prediction (NSP), где предсказывается, являются ли два предложения последовательными.


Как BERT определяет что предложения является продолжением след/ предложения?

BERT обучается на задаче Next Sentence Prediction (NSP ), где модель предсказывает, является ли второе предложение логическим продолжением первого.


Чем языковая адаптация RuBERT отличается от исходного BERT?

RuBERT сохраняет BERT-подобную архитектуру, но адаптирован к русскому через продолжение pretraining на русскоязычном корпусе и подходящий словарь токенизатора. Это дает лучшее представление русской морфологии и частых фрагментов слов, чем модель с неподходящим корпусом и словарем. Конкретные различия зависят от версии RuBERT, поэтому нельзя приписывать всем вариантам один corpus или размер. Преимущество подтверждают на русских downstream-задачах при одинаковом fine-tuning, а не по названию модели.


Расскажите об отличиях BERT, GPT, Т5 и ELECTRA.

Каждая из этих моделей - BERT, GPT, T5 и ELECTRA - является мощным представителем глубокого обучения для обработки текста, но они имеют свои уникальные особенности:

  1. BERT (Bidirectional Encoder Representations from Transformers):

    • BERT основан на архитектуре трансформера и предназначен для обучения двунаправленных контекстуализированных эмбеддингов слов.

    • Он способен моделировать контекст в обе стороны при обработке текста, что помогает в решении различных задач, таких как классификация, разметка и вопросно-ответные системы.

  2. GPT (Generative Pre-trained Transformer):

    • GPT также основан на архитектуре трансформера, но он предназначен для генерации текста.

    • GPT использует однонаправленное моделирование контекста и обучается на больших корпусах текста для генерации текста по заданному контексту.

  3. T5 (Text-To-Text Transfer Transformer):

    • T5 является универсальной моделью, которая преобразует все задачи обработки текста в единый формат “текст-в-текст”, где вход и выход текстовой информации.

    • Это позволяет использовать одну и ту же модель для различных задач, таких как машинный перевод, суммаризация, вопросно-ответные системы и другие.

  4. ELECTRA (Efficiently Learning an Encoder that Classifies Token Replacements Accurately):

    • ELECTRA обучает дискриминатор распознавать токены, заменённые небольшим генератором. В отличие от GAN, генератор обучают через masked language modeling, а не состязательно.

    • В отличие от BERT, который обучается маскированию слов, ELECTRA обучает модель определять, какие слова заменены случайно сгенерированными словами. Это позволяет эффективнее использовать обучающие данные и улучшить качество модели.

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


Какие Positional Encoders ты знаешь?

Есть два позиционных энкодера:

  • Sinusoidal Positional Encoding — добавляет синусоидальные функции к вектору для кодирования позиций токенов.

  • Learned Positional Encoding — обучаемые векторы, которые добавляются к эмбеддингам для кодирования позиций.

Собеседования: Data Science

Смотри записи интервью, узнай, какие вопросы задают и как отвечают кандидаты.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

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

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: Data Scientist, ML-инженер. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.