Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

Трансформеры

Все темы Data Scientist

Что такое 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²) из-за механизма внимания, но он лучше масштабируется благодаря параллелизму.

Эта страница была полезной?