---
title: Трансформеры и языковые модели
questionDates:
  q-transfer-0041: '2026-10-01'
  q-transfer-0042: '2026-10-01'
  q-transfer-0043: '2026-10-01'
  q-transfer-0060: '2026-10-01'
  q-transfer-0061: '2026-10-01'
seo:
  description: >-
    Тема «Трансформеры и языковые модели» для собеседования Data Scientist.
    Почему чувствительные данные в тексте лучше искать гибридом правил и NER?
    Что именно оценивает языковая модель?
  title: Трансформеры и языковые модели — Data Scientist
---

[Все темы Data Scientist](/prep/data-scientist)

Подтемы:

- [NLP и языковые модели](#q-transfer-0041)
- [Трансформеры](#q-14bee738d69b817b95b2fd40fc9025b4)
- [Attention](#q-14bee738d69b81f09360e6a48b1e1af2)
- [BERT](#q-14bee738d69b814c986ecb33298eb849)
- [Сравнение нейронных сетей](#q-14bee738d69b811595a4d37e7d066f46)

## Почему чувствительные данные в тексте лучше искать гибридом правил и NER? [#q-transfer-0041]

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

:::note[Ссылки для изучения]

1. [Гибридное обнаружение чувствительных данных: NER, регулярные выражения и словари на примере Jay Guard](https://habr.com/ru/companies/just_ai/articles/946392/)
   :::

---

## Что именно оценивает языковая модель? [#q-transfer-0042]

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

:::note[Ссылки для изучения]

1. [Вероятности продолжения текста: предсказание следующего токена в GPT и масок в BERT](https://contest.yandex.ru/tracks/ml/generative-models/language-models#chto-takoe-yazykovye-modeli)
   :::

---

## Как N-gram модель оценивает вероятность последовательности? [#q-transfer-0043]

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

:::note[Ссылки для изучения]

1. [N-граммная модель: условные частоты, короткий контекст и сглаживание на примере исправления опечаток](https://habr.com/ru/companies/joom/articles/433554/)
   :::

---

## <strong>Что такое Multi-Head Attention?</strong> [#q-14bee738d69b817b95b2fd40fc9025b4]

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

:::note[Ссылки для изучения]

1. [Трансформеры](https://education.yandex.ru/handbook/ml/article/transformery)
2. [Multi-Head Attention. Sergey Nikolenko, с 1:09:46](https://www.youtube.com/watch?v=YZa_sBuzII4&t=4186s)

:::

---

## <strong>Чем</strong> <code>Encoder</code> <strong>отличается от</strong> <code>Decoder&#45;а</code><strong>?</strong> [#q-14bee738d69b8129b0caedf69f82c440]

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

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

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

:::note[Ссылки для изучения]

1. [Трансформеры](https://education.yandex.ru/handbook/ml/article/transformery)
   :::

---

## <strong>Что такое Positional Encoding и зачем он нужен?</strong> [#q-14bee738d69b81b7aba4d229e4e901b4]

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

:::note[Ссылки для изучения]

1. [Трансформеры](https://education.yandex.ru/handbook/ml/article/transformery)
   :::

---

## <strong>Какие примеры трансформерных моделей существуют? (например,</strong> <code>BERT</code> <strong>как</strong> <code>Encoder</code><strong>,</strong> <code>GPT</code> <strong>как</strong> <code>Decoder</code><strong>)?</strong> [#q-14bee738d69b811a8850cd9074a594b5]

Примеры трансформенных моделей&#58;

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

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

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

:::note[Ссылки для изучения]

1. [Трансформеры](https://education.yandex.ru/handbook/ml/article/transformery)
2. [BERT и GPT как семейства трансформеров. Sergey Nikolenko, с 1:53:53](https://www.youtube.com/watch?v=YZa_sBuzII4&t=6833s)

:::

---

## <strong>Расскажите про оптимизаторы. (</strong><code>AdamW</code><strong>,</strong> <code>LAMB</code><strong>,</strong> <code>LANS</code><strong>, большой батч)</strong> [#q-14bee738d69b815ca940e3852ac5d8bf]

Кратко о некоторых оптимизаторах&#58;

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

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

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

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

:::note[Ссылки для изучения]

1. [AdamW: decoupled weight decay](https://education.yandex.ru/handbook/ml/article/metody-optimizacii-v-deep-learning#adamw-sgdw)
1. [Большой батч, накопление градиентов и LAMB](https://education.yandex.ru/handbook/ml/article/transformery)
   :::

---

## <strong>Почему лучше использовать нормализацию по слоям</strong> <code>&#40;layer norm&#41;</code> <strong>вместо нормализации по батчу</strong> <code>&#40;batch norm&#41;</code><strong>?</strong> [#q-14bee738d69b81ceaa96ec00bb009f44]

Использование нормализации по слоям <code>&#40;layer norm&#41;</code> обычно предпочтительнее нормализации по батчу <code>&#40;batch norm&#41;</code> в задачах, где размер батча может быть небольшим или изменчивым, так как&#58;

1. <strong>Более стабильное обучение</strong>&#58; Нормализация по слоям не
   зависит от размера батча, поэтому обеспечивает более стабильное обучение в
   различных условиях.

1. <strong>Независимость от размера батча</strong>&#58; Нормализация по слоям
   независима от размера батча и может быть эффективно применена даже при работе
   с одним образцом данных.

1. <strong>Большая параллелизация</strong>&#58; Нормализация по слоям позволяет
   большей степени параллелизма при обучении на устройствах с разными
   характеристиками, такими как распределенные системы или GPU с ограниченной
   памятью.

:::note[Ссылки для изучения]

1. [BatchNorm и LayerNorm: оси статистик и режимы обучения](https://aisec.cs.msu.ru/section_robust_ml/nn/)
   :::

---

## <strong>Чем отличается модель</strong> <code>BERT</code> <strong>от модели</strong> <code>GPT</code><strong>?</strong> [#q-14bee738d69b81f98a5fe0388a439bb2]

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

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

1. <strong>Цель обучения</strong>&#58; <code>BERT</code> обучается на задачах
   предварительной тренировки, таких как предсказание маскированных слов и
   предсказание следующего предложения. Он используется для создания
   представлений слов и контекста, которые можно использовать в различных
   задачах NLP. <code>GPT</code> обучается на задаче предсказания следующего
   слова в тексте и используется в основном для генерации текста и выполнения
   других задач, связанных с пониманием текста.

1. <strong>Генерация и понимание</strong>&#58; <code>GPT</code> хорошо подходит
   для генерации текста, такого как продолжение предложений или создание новых
   текстовых данных. <code>BERT</code>, с другой стороны, лучше подходит для
   задач понимания текста, таких как классификация, извлечение информации или
   вопросно-ответные системы.

:::note[Ссылки для изучения]

1. [Трансформеры](https://education.yandex.ru/handbook/ml/article/transformery)
   :::

---

## <strong>Есть ли отдельный слой-токенизатор у трансформера?</strong> [#q-14bee738d69b8144b468de0611e71241]

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

:::note[Ссылки для изучения]

1. [Токенизатор перед моделью: текст, подслова, словарь и числовые ID](https://huggingface.co/learn/llm-course/ru/chapter2/4)
   :::

---

## <strong>Чем эмбеддинг w2v отличается от эмбеддинга трансформера?</strong> [#q-14bee738d69b8190b4e3fe9a1aa59f48]

Эмбеддинг <code>word2vec</code> <code>&#40;w2v&#41;</code> - это статические векторы, представляющие слова в пространстве непрерывных векторов, обученные на больших текстовых корпусах. Они представляют собой фиксированные представления слов, которые не изменяются во время обработки моделью.

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

:::note[Ссылки для изучения]

1. [Word2vec: фиксированный словарь, CBOW и Skip-gram](https://contest.yandex.ru/tracks/ml/deep-learning-architectures/neural-networks-for-sequences#word2vec)
1. [Self-attention: контекстные представления токенов](https://education.yandex.ru/handbook/ml/article/transformery)
   :::

---

## <strong>Расскажите полностью архитектуру трансформера.</strong> [#q-14bee738d69b817f9299fea7895452d1]

Архитектура трансформера - это модель глубокого обучения, предназначенная для обработки последовательностей данных, таких как тексты или временные ряды. Она была представлена в статье <code>&#34;Attention is All You Need&#34;</code> в 2017 году. Вот ее основные компоненты&#58;

1. <strong>Входной вектор</strong>&#58; На вход трансформеру поступает
   последовательность токенов (слов, символов или эмбеддингов) размерности
   <InlineMath tex={"T \\times d"} />, где <InlineMath tex={"T"} /> - длина
   последовательности, а <InlineMath tex={"d"} /> - размерность эмбеддинга для
   каждого токена.

1. <strong>Позиционные эмбеддинги</strong>&#58; Для кодирования информации о
   позиции каждого токена в последовательности добавляются позиционные
   эмбеддинги.

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

1. <strong>Много-головые внимательные механизмы (Multi-Head Attention)</strong>
   &#58; Этот механизм позволяет модели фокусироваться на разных частях входной
   последовательности одновременно, используя несколько "голов" внимания. Каждая
   голова вычисляет внимательность между входными токенами, учитывая их
   взаимосвязи и важность для предсказания.

1. <strong>Полносвязные слои</strong>&#58; После много-головых внимательных
   механизмов выходные данные подвергаются обработке полносвязными слоями для
   обеспечения нелинейности и извлечения высокоуровневых признаков.

1. <strong>Декодер</strong>&#58; В задачах генерации текста или машинного
   перевода используется декодер, который также состоит из нескольких слоев с
   много-головыми внимательными механизмами и полносвязными слоями. Декодер
   генерирует выходную последовательность, принимая на вход выход энкодера и
   внимание на входной последовательности.

1. <strong>Финальный полносвязный слой</strong>&#58; Финальный полносвязный слой
   преобразует выходы декодера в вероятности или векторы предсказания.

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

:::note[Ссылки для изучения]

1. [Трансформеры](https://education.yandex.ru/handbook/ml/article/transformery)
2. [Блок архитектуры Transformer. Sergey Nikolenko, с 1:16:50](https://www.youtube.com/watch?v=YZa_sBuzII4&t=4610s)

:::

---

## <strong>Батч нормализация происходит во время</strong> <code>backward</code> <strong>или</strong> <code>forward pass</code><strong>. Зачем вообще нужна?</strong> [#q-14bee738d69b8192af3ddceef9914693]

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

:::note[Ссылки для изучения]

1. [BatchNorm: нормализация активаций и обучаемые gamma/beta](https://education.yandex.ru/handbook/math/article/preprotsessing-priznakov)
   :::

---

## <strong>Чем отличается</strong> <code>RNN</code> <strong>от Трансформера?</strong> [#q-14bee738d69b81ea8a83c94d40334fc9]

Между <code>RNN</code> и Трансформером есть основное отличие&#58;

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

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

:::note[Ссылки для изучения]

1. [Трансформеры](https://education.yandex.ru/handbook/ml/article/transformery)
   :::

---

## <strong>Какая вычислительная сложность у</strong> <code>RNN</code> <strong>и Трансформера?</strong> [#q-14bee738d69b8150880bc45ce6dcc070]

У <code>RNN</code> и Трансформера следующая вычислительная сложность&#58;

- У <code>RNN</code> сложность O(n), где n — длина последовательности.

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

:::note[Ссылки для изучения]

1. [Трансформеры](https://education.yandex.ru/handbook/ml/article/transformery)
   :::

---

## <strong>Как посчитать attention?</strong> [#q-14bee738d69b81f09360e6a48b1e1af2]

<code>Attention</code> в нейронных сетях используется для выделения важных
элементов входных данных при выполнении задачи. Применительно к моделям
<code>seq2seq</code> и <code>трансформерам</code>, <code>attention</code>
считается следующим образом&#58;

1. Вычисляются веса <code>&#40;scores&#41;</code> для каждой пары элементов входной и выходной последовательностей. Эти веса обычно вычисляются с помощью функции скалярного произведения, например, <code>dot&#45;product</code>, или с использованием нейронной сети.

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

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

:::note[Ссылки для изучения]

1. [ML Attention](https://qudata.com/ml/ru/NN_Attention.html)
   :::

---

## Какие механизмы attention применяют вне трансформеров? [#q-transfer-0060]

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

:::note[Ссылки для изучения]

1. [Attention в seq2seq RNN: взвешенный контекст, dot-product, мультипликативный и MLP-варианты](https://contest.yandex.ru/tracks/ml/deep-learning-architectures/neural-networks-for-sequences#mehanizm-vnimaniya-attention)
   :::

---

## <strong>Для какой задачи происходит предварительное обучение модели? (Masked Language Modeling</strong> <code>&#40;MLM&#41;</code> <strong>+ Next Sentence Prediction</strong> <code>&#40;NSP&#41;</code><strong>)</strong> [#q-14bee738d69b814c986ecb33298eb849]

Предварительное обучение модели, использующей метод Masked Language Modeling <code>&#40;MLM&#41;</code> и Next Sentence Prediction <code>&#40;NSP&#41;</code>, обычно выполняется для создания общего понимания языка и контекста. Модель обучается на больших корпусах текста, где случайно маскируются некоторые слова, и модель должна предсказать их на основе контекста <code>&#40;MLM&#41;</code>. <code>NSP</code> задача состоит в том, чтобы предсказать, является ли одно предложение следующим за другим в тексте. Эти задачи позволяют модели учиться о языковых структурах, семантике и связях между предложениями.

:::note[Ссылки для изучения]

1. [BERT (языковая модель)](https://neerc.ifmo.ru/wiki/index.php?title=BERT_%28%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%29)
   :::

---

## <strong>Расскажите как происходит процесс обучения и дообучения Берта на задачу MLM-NSP.</strong> [#q-14bee738d69b8156a32bd78f9129491f]

Процесс обучения и дообучения <code>BERT</code> на задачу <code>MLM&#45;NSP &#40;Masked Language Model &#45; Next Sentence Prediction&#41;</code> можно описать следующим образом&#58;

{/* prettier-ignore */}
1. <strong>Исходная предварительная тренировка</strong>&#58;

    - BERT сначала предварительно обучается на больших корпусах текста с использованием двух задач&#58; MLM и NSP.

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

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

1. <strong>Дообучение на конкретной задаче</strong>&#58;

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

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

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

1. <strong>Адаптация для специфической задачи</strong>&#58;

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

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

Таким образом, процесс обучения и дообучения <code>BERT</code> на задачу <code>MLM&#45;NSP</code> включает в себя предварительную тренировку на больших корпусах текста с учетом маскирования токенов и определения следующего предложения, а затем дообучение на конкретной задаче с использованием предварительно обученных весов и новых данных.

:::note[Ссылки для изучения]

1. [Предобучение BERT: MLM и NSP](https://education.yandex.ru/handbook/ml/article/transformery)
1. [Доменное дообучение masked LM: данные и случайные маски](https://huggingface.co/learn/llm-course/ru/chapter7/3)
   :::

---

## <strong>Как делается токенизация и позишенл энкодинг текстов для Берта?</strong> [#q-14bee738d69b811e8892d851872f5dd7]

Токенизация и позиционное кодирование текстов для <code>BERT</code> происходят следующим образом&#58;

{/* prettier-ignore */}
1. <strong>Токенизация</strong>&#58;

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

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

1. <strong>Позиционное кодирование</strong>&#58;

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

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

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

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

:::note[Ссылки для изучения]

1. [Позиционные признаки Transformer: синусы, косинусы и обучаемые эмбеддинги](https://education.yandex.ru/handbook/ml/article/transformery)
1. [Вход BERT: токен, сегмент и позиция](https://neerc.ifmo.ru/wiki/index.php?title=BERT_%28%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%29)
   :::

---

## <strong>Что нам нужно прикрутить к</strong> <code>BERT</code> <strong>чтобы сделать классификацию?</strong> [#q-14bee738d69b8126b589f48094006c0c]

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

:::note[Ссылки для изучения]

1. [Transformer и классификационная голова: представления и логиты](https://huggingface.co/learn/llm-course/ru/chapter2/2)
   :::

---

## <strong>Как обучался</strong> <code>BERT</code><strong>?</strong> [#q-14bee738d69b8106bed7c1767552c613]

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

:::note[Ссылки для изучения]

1. [BERT (языковая модель)](https://neerc.ifmo.ru/wiki/index.php?title=BERT_%28%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%29)
   :::

---

## <strong>Как</strong> <code>BERT</code> <strong>определяет что предложения является продолжением след/ предложения?</strong> [#q-14bee738d69b81529097f9b26fa2fd5d]

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

:::note[Ссылки для изучения]

1. [BERT (языковая модель)](https://neerc.ifmo.ru/wiki/index.php?title=BERT_%28%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%29)
   :::

---

## Чем языковая адаптация RuBERT отличается от исходного BERT? [#q-transfer-0061]

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

:::note[Ссылки для изучения]

1. [Русскоязычный корпус, токенизатор и downstream-проверка: обучение версии ruBERT от SberDevices](https://habr.com/ru/companies/sberdevices/articles/567776/)
   :::

---

## <strong>Расскажите об отличиях BERT, GPT, Т5 и ELECTRA.</strong> [#q-14bee738d69b811595a4d37e7d066f46]

Каждая из этих моделей - <code>BERT</code>, <code>GPT</code>, <code>T5</code> и <code>ELECTRA</code> - является мощным представителем глубокого обучения для обработки текста, но они имеют свои уникальные особенности&#58;

{/* prettier-ignore */}
1. <code>BERT &#40;Bidirectional Encoder Representations from Transformers&#41;</code>&#58;

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

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

1. <code>GPT &#40;Generative Pre&#45;trained Transformer&#41;</code>&#58;

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

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

1. <code>T5 &#40;Text&#45;To&#45;Text Transfer Transformer&#41;</code>&#58;

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

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

1. <code>ELECTRA &#40;Efficiently Learning an Encoder that Classifies Token Replacements Accurately&#41;</code>&#58;

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

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

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

:::note[Ссылки для изучения]

1. [BERT, GPT и ELECTRA: MLM, следующее слово и заменённые токены](https://habr.com/ru/articles/521166/)
1. [Encoder-decoder модели и span masking T5](https://huggingface.co/learn/llm-course/ru/chapter1/7)
   :::

---

## <strong>Какие</strong> <code>Positional Encoders</code> <strong>ты знаешь?</strong> [#q-14bee738d69b8198975fd9b759834995]

Есть два позиционных энкодера&#58;

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

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

:::note[Ссылки для изучения]

1. [Позиционные признаки Transformer: sin/cos, обучаемые и относительные варианты](https://education.yandex.ru/handbook/ml/article/transformery)
   :::
