В чём отличие BERT от GPT?
BERT (Bidirectional Encoder Representations from Transformers) и GPT (Generative Pre-trained Transformer) — две фундаментальные архитектуры в области обработки естественного языка, основанные на трансформерах, но с ключевыми отличиями в архитектуре, принципах обучения и применении.
Архитектура: Энкодер vs Декодер
BERT: Только энкодер
-
Основан на энкодерной части трансформеров (Transformer Encoder).
-
Каждый токен видит весь контекст слева и справа одновременно — бидирекциональность.
-
Использует self-attention, где каждый токен обращает внимание на все остальные, включая те, что следуют за ним.
GPT: Только декодер
-
Основан на декодерной части трансформеров (Transformer Decoder).
-
Каждый токен видит только левый контекст, то есть предыдущие токены (каузальное внимание, masked attention).
-
Строит текст по порядку, один токен за другим.
| Компонент | BERT | GPT |
|---|---|---|
| Основа | Transformer Encoder | Transformer Decoder |
| --- | --- | --- |
| Направленность | Бидирекционный | Левосторонний (каузальный) |
| --- | --- | --- |
| Применение | Понимание текста | Генерация текста |
| --- | --- | --- |
Метод предобучения
BERT: Masked Language Modeling (MLM)
-
15% токенов во входном тексте случайным образом заменяются на [MASK], и модель обучается восстанавливать эти токены по всему контексту.
-
Также использовалась задача Next Sentence Prediction (NSP): модель определяет, следует ли одно предложение за другим.
Пример входа для MLM:
"Мой [MASK] любит гулять" → [MASK] = "кот"
GPT: Causal Language Modeling (CLM)
-
Модель обучается предсказывать следующий токен на основе предыдущих.
-
Никакие токены справа не видны.
-
Используется для автогерерации текста: «продолжи предложение».
Пример входа для CLM:
"Мой кот любит" → модель должна предсказать "гулять"
| Обучение | BERT (MLM) | GPT (CLM) |
|---|---|---|
| Тип задачи | Восстановление замаскированных токенов | Предсказание следующего токена |
| --- | --- | --- |
| Контекст | Полный (лево + право) | Только левый (каузальный) |
| --- | --- | --- |
Применение
BERT — понимание текста
-
Классификация текста
-
Named Entity Recognition (NER)
-
Sentiment Analysis
-
Вопросно-ответные системы (Question Answering)
-
Semantic search
GPT — генерация текста
-
Диалоговые системы
-
Текстовая генерация
-
Перевод
-
Summarization
-
Code generation
| Назначение | BERT | GPT |
|---|---|---|
| Основной сценарий | Понимание (understanding) | Генерация (generation) |
| --- | --- | --- |
| Инференс | Не используется [MASK] | Автогенерация по токену |
| --- | --- | --- |
Размер и структура
| Характеристика | BERT-base | GPT-2 |
|---|---|---|
| Слои (Layers) | 12 | 12 |
| --- | --- | --- |
| Attention Heads | 12 | 12 |
| --- | --- | --- |
| Hidden Size | 768 | 768 |
| --- | --- | --- |
| Параметров | 110 млн | 117 млн |
| --- | --- | --- |
| Позиционные эмбеддинги | Learnable | Learnable |
| --- | --- | --- |
| Архитектура | Энкодер | Декодер |
| --- | --- | --- |
Поведение в задачах
Контекстное представление
-
BERT строит богатое представление каждого токена, учитывая его окружение с обеих сторон.
-
GPT — каждое представление токена формируется только на основе левого контекста.
Пример:
Фраза: "банк"
-
В BERT слово «банк» в контексте «на берегу реки» и «финансовое учреждение» будет иметь разные эмбеддинги, потому что модель видит весь контекст.
-
В GPT — тоже может быть различие, но модель формирует представление только по уже прочитанному тексту.
Fine-tuning (дообучение)
BERT
-
Фиксированная длина входа, чаще до 512 токенов.
-
Вектор [CLS] используется для классификации.
-
Предобученную модель дообучают на конкретной задаче с добавлением простой головы (например, linear classifier).
GPT
-
Дообучается на диалогах, ответах, инструкциях.
-
Может быть легко использован для in-context learning, то есть понимания инструкции в самом вводе без обновления весов модели.
Развитие
| Архитектура | Потомки / Улучшения |
|---|---|
| BERT | RoBERTa, ALBERT, SpanBERT |
| --- | --- |
| GPT | GPT-2, GPT-3, GPT-4 |
| --- | --- |
-
RoBERTa — улучшает BERT за счёт убирания NSP и более агрессивного обучения.
-
ALBERT — уменьшает параметры BERT с помощью параметрического шаринга.
-
GPT-3/4 — масштабируют GPT до сотен миллиардов параметров и внедряют возможности обучения по контексту (in-context learning).
Сравнение по ключевым аспектам
| Аспект | BERT | GPT |
|---|---|---|
| Основной модуль | Энкодер | Декодер |
| --- | --- | --- |
| Направленность | Бидирекциональная | Левосторонняя (каузальная) |
| --- | --- | --- |
| Стратегия обучения | Masked Language Modeling | Causal Language Modeling |
| --- | --- | --- |
| Использование [MASK] | Да (только при обучении) | Нет |
| --- | --- | --- |
| Предназначение | Понимание текста | Генерация текста |
| --- | --- | --- |
| Fine-tuning подход | Добавление головы на [CLS] | Дообучение или in-context learning |
| --- | --- | --- |
| Примеры задач | Классификация, QA, NER | Генерация, чат-боты, перевод |
| --- | --- | --- |
| Популярные улучшения | RoBERTa, ALBERT | GPT-2, GPT-3, GPT-4 |
| --- | --- | --- |
Таким образом, основное отличие между BERT и GPT заключается в направленности и цели: BERT обучается восстанавливать маскированные слова на основе двунаправленного контекста, что делает его отличным для задач понимания, а GPT предсказывает следующий токен, что делает его пригодным для генерации текста.