BERT (language model) (BG)

From Systems analysis Wiki
Jump to navigation Jump to search

BERT (Bidirectional Encoder Representations from Transformers, двупосочни представления на енкодера от трансформери) — това е голям езиков модел (LLM) за разбиране на естествен език, разработен от изследователи на Google и представен през 2018 година. BERT бележи нова ера в обработката на естествен език (NLP), демонстрирайки безпрецедентна производителност върху широк спектър от задачи и утвърждавайки парадигмата „предобучение + дообучение" (pre-train & fine-tune) като стандарт в индустрията.

Ключовата иновация на BERT е дълбоко двупосочната архитектура, която позволява на модела да отчита контекста на дадена дума едновременно вляво и вдясно във всички слоеве на мрежата. Това се постига чрез нова задача за предварително обучение — Masked Language Modeling (MLM).

Наименование и принцип на работа

Акронимът BERT означава Bidirectional Encoder Representations from Transformers.

  • Bidirectional (Двупосочен): Указва основната особеност на модела — способността да обработва контекста на дадена дума в двете посоки (от ляво надясно и от дясно наляво) едновременно. За разлика от еднопосочните модели (като GPT), които при обработката на дума виждат само предшестващия я контекст, BERT вижда цялата последователност наведнъж, което му позволява да формира по-дълбоко и точно разбиране на смисъла на думата.
  • Encoder (Енкодер): Означава, че BERT използва само кодиращата част от архитектурата на Трансформера. Задачата на енкодера е да прочете входната последователност от текст и да създаде за всеки токен богато контекстуално представление (вектор). BERT не е предназначен за свободно генериране на текст, за разлика от моделите-декодери.
  • Representations (Представления): Моделът се обучава да създава висококачествени числови представления (вектори или embedding-и) за думи и изречения, които след това могат да бъдат използвани за решаване на различни NLP задачи.
  • from Transformers: Указва, че архитектурата на модела е изцяло базирана на Трансформера.

История на създаването

Разработката на BERT е резултат от няколко ключови пробива в NLP:

  1. Контекстни embedding-и: Модели като Word2vec и GloVe създаваха статични вектори за думите, без да отчитат контекста. Моделът ELMo (2018) беше крачка напред, генерирайки контекстно-зависими представления чрез двупосочни LSTM мрежи, но тази двупосочност беше „повърхностна" (конкатенация на два еднопосочни модела).
  2. Трансферно обучение и GPT: В средата на 2018 година OpenAI представи модела GPT, който демонстрира ефективността на предобучението на голям трансформерен модел върху неразмеченни данни с последващо дообучение (fine-tuning) за конкретни задачи. Въпреки това GPT беше строго еднопосочен (от ляво надясно), което ограничаваше възможностите му при задачи, изискващи разбиране на пълния контекст.

Осъзнавайки тези ограничения, изследователите на Google начело с Джейкъб Девлин разработиха BERT, за да създадат наистина дълбоко двупосочен модел. Статията за BERT беше публикувана в arXiv през октомври 2018 година, а кодът и предобучените модели бяха пуснати в отворен достъп, което предизвика взривен интерес в научната общност. BERT счупи рекорди на 11 ключови NLP benchmark-а, включително GLUE и SQuAD, и беше наречен „моментът ImageNet" за NLP, тъй като един универсален модел можеше лесно да бъде адаптиран за множество задачи.

Архитектура

BERT е изцяло базиран на кодиращата част (енкодера) на архитектурата на Трансформера. Той се състои от няколко идентични слоя, наредени един върху друг. Съществуват две основни версии:

  • BERT-Base: 12 слоя, 12 глави на внимание, размер на скритото състояние 768, общ брой параметри ~110 млн.
  • BERT-Large: 24 слоя, 16 глави на внимание, размер на скритото състояние 1024, общ брой параметри ~340 млн.

Всеки слой съдържа два основни подслоя:

  1. Механизъм на многоглавото самовнимание (Multi-Head Self-Attention): Позволява на всеки токен от входната последователност да „обръща внимание" на всички останали токени, претегляйки тяхната важност за определяне на собственото му контекстуално значение.
  2. Напълно свързана невронна мрежа (Feed-Forward Network): Прилага се към всеки токен поотделно.

Входни данни

За правилна работа BERT изисква специално форматиране на входните данни. Последователността от токени, подавана на входа, винаги започва със специалния токен `[CLS]` (classification), който се използва за задачи по класификация на целия текст. Ако на входа се подава двойка изречения (например при задачи с въпросно-отговорни системи), те се разделят с токена `[SEP]` (separator).

Крайното представление на всеки токен на входа е сума от три embedding-а:

  • Токен-embedding: Вектор, съответстващ на конкретния токен от речника (BERT използва WordPiece токенизация).
  • Сегментен embedding: Указва към кое изречение (първото или второто) принадлежи токенът.
  • Позиционен embedding: Указва позицията на токена в последователността, тъй като архитектурата на Трансформера сама по себе си не отчита реда на думите.

Задачи за предварително обучение

За да се осигури дълбока двупосочност, BERT се обучава едновременно на две уникални задачи.

Masked Language Modeling (MLM)

Това е ключовата иновация на BERT. Вместо да предсказва следващата дума, както при стандартните езикови модели, BERT предсказва случайно „маскирани" думи в изречението. Процесът изглежда така:

  • От входната последователност случайно се избират 15% от токените.
  • От тези 15%:
    • 80% се заменят със специалния токен `[MASK]`.
    • 10% се заменят с произволен токен от речника.
    • 10% остават непроменени.
  • Задачата на модела е да предсказва оригиналните стойности на тези 15% токени, въз основа на заобикалящия ги (ляв и десен) контекст.

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

Next Sentence Prediction (NSP)

Тази задача е разработена, за да научи BERT да разбира връзките между изреченията, което е от ключово значение за задачи като въпросно-отговорни системи или анализ на текстова импликация (NLI). На модела се подава двойка изречения (A и B) и той трябва да предсказва дали изречение B е логично продължение на изречение A.

  • В 50% от случаите B е действително следващото изречение от оригиналния текст.
  • В 50% от случаите B е произволно изречение, взето от друго място в корпуса.

По-късно изследвания (например в модела RoBERTa) показаха, че задачата NSP е по-малко важна от MLM и от нея може да се откаже в полза на по-ефективни схеми за обучение, но в оригиналния BERT тя играе важна роля.

Приложение и дообучение (Fine-Tuning)

Силата на BERT се крие в парадигмата на трансферното обучение. След мащабното и ресурсоемко предварително обучение върху огромни корпуси (Wikipedia + BooksCorpus), предобученият модел може лесно и бързо да бъде дообучен (fine-tuned) за решаване на конкретна приложна задача.

Процесът на дообучение обикновено изглежда така: 1. Към архитектурата на предобучения BERT се добавя малък, необучен слой, специфичен за задачата (например класификатор за анализ на тоналност). 2. Целият модел (включително теглата на BERT и новия слой) се обучава върху малък, размеченен набор от данни за конкретната задача.

Примери за задачи, за които се адаптира BERT:

  • Класификация на текст (анализ на тоналност, спам-филтри): Към изхода на токена `[CLS]` се добавя класификатор.
  • Въпросно-отговорни системи (например SQuAD): Моделът се обучава да предсказва началния и крайния токен на отговора в зададен текст.
  • Разпознаване на именувани същности (NER): Към изхода на всеки токен се добавя класификатор, определящ дали токенът е част от собствено име, организация, дата и т.н.

Варианти и производни модели

Успехът на BERT доведе до появата на цяло семейство от модели, основаващи се на неговите идеи:

  • RoBERTa (от Facebook AI): „Надеждно оптимизиран BERT". Не представлява нова архитектура, а по-скоро резултат от по-задълбочено и продължително обучение на BERT: върху по-голямо количество данни, без задачата NSP и с динамично маскиране. RoBERTa показа, че оригиналният BERT е бил „недостатъчно обучен", и го превъзхожда по всички основни benchmark-и.
  • DistilBERT (от Hugging Face): Намалена версия на BERT, създадена с помощта на техниката за дистилация на знания. DistilBERT е с 40% по-малък, с 60% по-бърз и запазва 97% от производителността на BERT, което го прави идеален за използване в продукционна среда и на устройства с ограничени ресурси.
  • ALBERT (A Lite BERT, от Google): Версия, оптимизирана за намаляване на броя на параметрите. Използва две ключови техники: факторизация на embedding-ите и споделяне на параметри между слоевете (cross-layer parameter sharing). Това позволява създаването на значително по-големи модели с по-малко параметри.
  • mBERT (Multilingual BERT): Версия на BERT, предобучена едновременно на 104 езика. Показа забележителна способност за кросезиков пренос на знания.
  • Домейн-специфични модели: Множество модели, дообучени върху данни от конкретни области, като BioBERT (биомедицина), SciBERT (научни текстове) и FinBERT (финанси).
  • ModernBERT (2024-2025):Ново поколение BERT-подобни модели от компаниите Answer.AI и LightOn, включващо съвременни архитектурни подобрения като RoPE (Rotary Position Embeddings) и поддръжка на по-дълги контексти (до 8192 токена), като същевременно запазва основните принципи на BERT.

Сравнение с други модели

Сравнение на BERT с други ключови архитектури
Модел Разработчик Архитектура Посока на контекста Основна задача
BERT Google Енкодер Двупосочна Разбиране на текст, класификация, извличане
GPT OpenAI Декодер Еднопосочна (от ляво надясно) Генериране на текст, продължаване на последователност
XLNet Google / CMU Авторегресионен (пермутационен) Двупосочна (теоретично) Разбиране на текст (алтернатива на MLM)
T5 Google Енкодер-Декодер Двупосочна (енкодер) + Еднопосочна (декодер) Универсално преобразуване „текст-в-текст"

Влияние

BERT извърши истинска революция в NLP и постави основите за много последващи разработки:

  1. Утвърди парадигмата „предобучение + дообучение" като доминиращ подход в NLP.
  2. Доказа важността на дълбокия двупосочен контекст за разбиране на езика.
  3. Снижи прага за навлизане при създаването на високопроизводителни NLP системи, тъй като изследователите и разработчиците вече нямаше нужда да изграждат сложни архитектури от нулата за всяка задача.
  4. Беше интегриран в Google Търсене, което се превърна в едно от най-мащабните обновления на търсачката в цялата й история и нагледно демонстрира практическата полза от модела.
  5. Породи цяла екосистема от производни модели, инструменти и изследвания („BERTology"), превръщайки се в една от най-цитираните работи в областта на ИИ.

Въпреки че по-новите и по-големи модели като GPT-3 и GPT-4 превъзхождат BERT на много benchmark-и (особено при генеративни задачи), BERT и неговите варианти все още остават мощен и широко използван инструмент за задачи, изискващи дълбоко разбиране на текст.

Връзки

  • Официалното хранилище на BERT в GitHub
  • Обявяване на BERT в блога на Google AI
  • The Illustrated BERT — визуално обяснение на архитектурата на BERT

Литература

  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Peters, M. E. et al. (2018). Deep Contextualized Word Representations. arXiv:1802.05365.
  • Liu, Y. et al. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692.
  • Lan, Z. et al. (2020). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv:1909.11942.
  • Sanh, V. et al. (2020). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.
  • Yang, Z. et al. (2019). XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv:1906.08237.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Lee, J. et al. (2020). BioBERT: a pre-trained biomedical language representation model for biomedical text mining. arXiv:1901.08746.
  • Warner, B. et al. (2024). Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference. arXiv:2412.13663.