Large language model (BG)
Голям езиков модел (large language model, LLM) — това е тип модел на машинно обучение, реализиран с помощта на дълбока невронна мрежа с голям брой параметри (обикновено милиарди и повече), обучена върху големи обеми текстови данни. „Голям" в този контекст се отнася едновременно до мащаба на параметрите и до обема на обучаващия корпус, който в съвременните системи достига няколко петабайта и трилиони токени. LLM моделите се обучават предимно по само- или полу-самонаблюдаем (self-/semi-supervised) метод, предсказвайки следващото токен-звено в последователността и по този начин усвоявайки статистическите закономерности на езика. Нарастването на параметрите, данните и изчислителните стъпки води до предвидимо подобряване на качеството, което потвърждават scaling laws.
След появата на BERT (2017) и особено GPT-3 (2020) LLM подходът започна да доминира в обработката на естествен език. Съвременните модели (GPT-4o, Claude 3, Gemini 1.5, LLaMA 3 и др.) без специална настройка умеят да пишат текстове и програмен код, да превеждат, да резюмират, да отговарят на въпроси и да изграждат вериги от разсъждения; мултимодалните версии анализират изображения, звук и видео. Адаптацията към приложна задача се извършва чрез фина настройка (fine-tuning) или чрез инженерия на подсказките (prompt engineering, in-context learning). Наред с постиженията си LLM моделите наследяват предубежденията и грешките на изходните данни, склонни са към „халюцинации" и изискват значителни изчислителни ресурси, затова съвременните изследвания са съсредоточени върху изравняване на поведението, филтриране на корпусите и енергоефективни архитектури.
Архитектура
В съвременните LLM почти винаги се използва архитектурата Transformer (трансформер) — мрежа с механизъм за самовнимание (self-attention). За пръв път моделът трансформер е предложен в статията Attention is All You Need от разработчиците на Google през 2017 година.
Архитектурата Transformer е базова невронна схема за работа с последователности, включваща два логически модула — енкодер (кодира входа) и декодер (генерира изхода). На входа се приема последователност, създава се нейното векторно представяне (embedding), добавя се вектор на позиционно кодиране, след което наборът от елементи без отчитане на реда в последователността постъпва в кодиращия компонент (паралелна обработка), а след това декодиращият компонент получава на входа си част от тази последователност и изхода на кодиращия. В резултат се получава нова изходна последователност.
Кодиращият компонент на трансформера се състои от няколко еднакви слоя-кодировщика; аналогично е устроен и декодиращият компонент. Самият трансформер е последователност от модели на внимание, които преобразуват изходната последователност от вектори в нова последователност, в която всеки елемент отчита контекста на останалите. Кодировщикът формира скрити представяния на входните данни, запазвайки информацията за взаимовръзките между елементите. Декодировщикът на базата на скритите представяния създава нова последователност от embedding-и за изходните токени. След това въз основа на тези embedding-и с помощта на езиков модел се генерират окончателните изходни елементи.
Тъй като трансформерите са разработени първоначално за задачи като машинен превод, тяхната архитектура включва енкодер (обработващ входния текст, например изходното изречение) и декодер (генериращ изхода, например превода). Въпреки това в много езикови модели се използва само декодерната част, работеща в авторегресивен режим.
Трансформерите се прилагат в три основни конфигурации, всяка от които по различен начин използва енкодера и декодера и е ориентирана към свой кръг от задачи:
- Енкодер-трансформери (двупосочни) се обучават да възстановяват умишлено скрити фрагменти от текст, поради което са подходящи за задачи на „разбиране" — класификация, извличане на факти, семантично търсене.
- Декодер-трансформери (авторегресивни) се оптимизират за предсказване на следващия токен и се използват там, където е необходим поточен изход: диалогови агенти, автодопълване на код, творческа генерация.
- Пълни схеми „енкодер + декодер" съчетават двата подхода: енкодерът изгражда представяне на целия входен текст, а декодерът, опирайки се на него, поетапно формира резултата. Тази конфигурация е най-ефективна за машинен превод, суммаризация и въпросно-отговорни системи.
Токенизация
Токенизацията е ключов начален етап на обработка на текст в големите езикови модели. На този етап непрекъснатият низ от символи се разбива на отделни единици — токени. Токенизацията изпълнява задачата за преобразуване на последователност от символи в последователност от структурирани елементи, осигуряващи ефективната работа на невронната мрежа.
От лингвистична гледна точка токенизацията в известна степен би могла да съответства на процеса на обособяване на минимални единици на езика, притежаващи самостоятелен смисъл или функционална натовареност, като думи, морфеми или техни фрагменти. В същото време, нерядко токенът е просто статистически често срещана последователност от символи, затова е важно да не се надценява лингвистичната осмисленост на всички токени. В зависимост от избраната схема токенът може да бъде: цяла дума, поддума, отделен символ, служебна метка (например маркери за начало и край на последователност).
Токенизацията позволява:
- да се ограничи размерът на речника до приемливи мащаби;
- да се обработват коректно редки и нови думи;
- да се осигури еднозначно изображение на текста върху последователност от числови идентификатори.
За разбиване на текста се прилагат субсловни алгоритми, най-разпространените от които са Byte Pair Encoding (BPE), WordPiece и UnigramLM. Всеки от тях изгражда речник от най-честите фрагменти на корпуса и го използва за последователно сегментиране на всеки входен текст.
След етапа на токенизация всяка единица от текста — токен — се преобразува в числово представяне, разбираемо от невронната мрежа. Този процес включва няколко последователни стъпки:
- Преобразуване на токените в идентификатори: Всеки токен се съпоставя с уникален числов индекс въз основа на предварително изграден речник от токени. Текстовите токени се заменят с техните уникални числови идентификатори (ID). Всеки ID е номерът на токена в предварително изградения речник, което позволява на невронната мрежа да работи с числа вместо с думи.
- Преобразуване на идентификаторите в embedding-и: За всеки токен-идентификатор се извлича или изчислява съответният вектор с фиксирана размерност — embedding. Това многомерно числово представяне замества ID и вече съдържа информация за значението и контекстните свойства на токена. Всички embedding-и имат еднаква дължина за удобство при обработката.
- Добавяне на позиционни кодировки: Тъй като архитектурата Transformer сама по себе си не отчита реда на елементите, към embedding-ите се добавят позиционни кодировки (positional encodings), които предоставят информация за позицията на токена в последователността. С други думи, благодарение на това моделът „знае" кой токен е първи, втори, трети и т.н. в изречението.
- Формиране на входни матрици: На изхода се получава матрица с размерност
[длина последовательности × размерность эмбеддинга], която служи като начално представяне на текста и се подава на входа на невронната мрежа, по-конкретно в блоковете за самовнимание (self-attention) на Transformer. Всеки ред на тази матрица съответства на един токен, а съдържащият се в него вектор носи както семантичното му значение (embedding), така и информация за позицията му в текста (позиционна кодировка).
Текст → Токены → Идентификаторы → Эмбеддинги + Позиционные кодировки → Вход в модель
Механизъм на внимание
Механизмът на внимание (attention mechanism) е ключов компонент на архитектурата Transformer, който осигурява възможността за отчитане на зависимостите между токените независимо от разстоянието между тях в последователността. След като входният текст е преобразуван в последователност от вектори, тази последователност постъпва в централния елемент на трансформера — блока на вниманието (attention block).
Механизмът на внимание е начин за невронната мрежа да определи на кои части от входните данни трябва да се обръща повече внимание при обработката на всеки елемент от последователността. Благодарение на него векторите на отделните фрагменти от текста могат да взаимодействат помежду си, обогатявайки се с информация и актуализирайки стойностите си, отчитайки заобикалящия контекст. По този начин моделът получава възможността ефективно да улавя както локални, така и далечни зависимости между токените, което съществено повишава способността му да интерпретира сложни текстови структури.
В естествения език значението на дума или израз не се определя изолирано — то зависи от контекста, т.е. от останалите думи и структури в обкръжението. В невронните мрежи текстът се кодира чрез векторни представяния — embedding-и, които числово отразяват лексикалните и синтактичните свойства на токените. Без механизъм за пряко внимание (като в Transformer), информацията за контекста или би се губила при големи разстояния (както в простите модели), или би се предавала последователно, което е по-малко ефективно за улавяне на далечни връзки. Въпреки това в естествения език значението на дума или синтактична конструкция е динамично и интерпретацията им трябва да се адаптира в зависимост от контекста. Механизмът на внимание извършва контекстуализация на векторните представяния, което означава (или просто :):
- Всеки токен „оценява" важността си спрямо останалите токени в изречението.
- В процеса на актуализация векторните представяния се обогатяват с взаимна информация, отразявайки синтактичните зависимости, семантичните роли и прагматичния контекст.
В резултат на този обмен на информация актуализираните вектори започват да кодират не само значението на самия токен, но и неговите граматически връзки (синтаксис), ролята му в описваната ситуация (семантика) и общия смисъл в контекста (прагматика).
Входные векторы токенов (с позициями) → Механизм Внимания (Взаимодействие векторов) → Контекстуализированные векторы токенов (Векторы обогащенные информацией о связях с другими токенами)
Техническа реализация на механизма на внимание
Вътрешното устройство на механизма на внимание включва няколко ключови изчислителни стъпки и компоненти. За всеки входен вектор се генерират три вектора: Заявка (Query), Ключ (Key) и Стойност (Value). Въз основа на тяхното взаимодействие се изчисляват теглата на вниманието, които след това се използват за получаване на актуализирани, контекстуализирани векторни представяния. Широко разпространен подход е използването на многоглавна архитектура (Multi-Head Attention) за паралелна обработка на информацията.
Заявка (Query), Ключ (Key), Стойност (Value)
В основата на изчислението на механизма на внимание стои преобразуването на всеки входен вектор (представляващ сума от embedding-а на токена и неговото позиционно кодиране) в три различни векторни представяния: Заявка (Query, Q), Ключ (Key, K) и Стойност (Value, V).
Концептуално тези три вектора изпълняват следните роли в механизма на внимание:
- Заявка (Query): Представлява вектора на текущия токен, който инициира процеса на търсене на релевантна информация в последователността. Може да се разглежда като „въпрос" или „сонда", използвани за оценка на важността на останалите токени спрямо текущия.
- Ключ (Key): Изпълнява ролята на идентификатор или „етикет", описващ аспект от съдържанието на всеки токен. Векторът Заявка (Q) на текущия токен се сравнява с всички вектори Ключове (K) в последователността (включително собствения си) за определяне на степента им на съответствие или релевантност.
- Стойност (Value): Съдържа фактическата информация или представянето, асоциирано с всеки токен, което ще бъде предадено по-нататък. След изчисляване на теглата на вниманието въз основа на взаимодействието на Заявките и Ключовете, тези тегла се прилагат към векторите Стойности за формиране на окончателното претеглено представяне, което е изходът на механизма на внимание за дадения токен.
Обучение на големи езикови модели
Обучението на LLM се осъществява предимно в два етапа:
- Предварително обучение (Pretraining) На този етап моделът се обучава върху големи неразмечени корпуси от текст чрез метода на самонаблюдаемото обучение (self-supervised learning). Задачата се състои в предсказване на следващия токен в последователността (авторегресия) или в възстановяване на скрити фрагменти (маскирано обучение). Предварителното обучение позволява на модела да усвои обширни статистически закономерности на езика, граматика, факти за света и базови форми на разсъждения.
- Фина настройка (Fine-tuning) След предварителното обучение моделът се доучва върху специализирани данни за изпълнение на конкретни задачи, например генериране на отговори, класификация на текстове или изпълнение на инструкции. Съвременните подходи включват:
- Фина настройка върху размечени dataset-и (supervised fine-tuning).
- Обучение с подкрепление с участието на човек (RLHF, reinforcement learning from human feedback) за коригиране на поведението на модела съгласно целевите метрики за качество, безопасност и полезност.
Проблеми и ограничения
Въпреки впечатляващия напредък, съвременните Големи езикови модели (LLM) притежават редица проблеми и ограничения:
I. Изчислителни и Архитектурни Ограничения
- Високи изчислителни разходи: Обучението и експлоатацията на LLM изискват значителни изчислителни мощности, време и енергия, което води до високи икономически и екологични разходи. Освен това авторегресивната природа на генерацията (последователно създаване на токени) ограничава паралелизацията и забавя скоростта на извод в сравнение с неавторегресивните подходи.
- Ограничение на дължината на контекста: Архитектурата Transformer има квадратична зависимост на изчислителните разходи и изискванията към паметта от дължината на последователността. Това принуждава да се установява фиксирана граница (прозорец на контекста) за обема на текста, който моделът може да обработи едновременно, водейки до отрязване на дълги документи и загуба на информация извън прозореца.
II. Проблеми с Надеждността и Точността на Генерацията
- Халюцинации: Генериране на фактически невярна, но правдоподобно звучаща информация. Това е свързано с липсата у модела на реално разбиране на света, опирането на статистически закономерности в данните и невъзможността за верификация на генерираните твърдения.
- Натрупване на грешки (Error Propagation): Процес, при който грешките, допуснати на ранните етапи на генерацията, се усилват и водят до нарастване на неточностите на следващите стъпки, намалявайки общото качество и съгласуваността на текста.
- Ограничена композиционност: Затруднения при задачи, изискващи многостъпков логически извод или точни изчисления (например умножение на многоцифрени числа, решаване на пъзели). Точността на моделите при такива задачи рязко спада с нарастването на сложността поради авторегресивната природа на генерацията.
- Повторения: Склонност към излишно повтаряне на думи или фрази, намаляваща информативността и четивността на текста. Свързана е с особеностите на обучението и алгоритмите за декодиране (избор на следващия токен).
- Обратното проклятие (Reversal Curse): Неспособността на модела автоматично да обобщава знанията в обратна посока: обучен на твърдението „A е B", моделът често не може да изведе „B е A".
- Компромис „креативност-точност": Необходимостта от балансиране между генерирането на разнообразни, оригинални отговори и поддържането на фактологическа точност. Повишаването на единия аспект нерядко се отразява негативно на другия, например високата креативност може да корелира с увеличаване на халюцинациите.
III. Проблеми на Взаимодействието и Управлението:
- Ниска управляемост: Трудността за точен контрол върху стила, тона, съдържанието на генерирания текст или спазването на сложни инструкции. Управляемостта силно зависи от качеството на входните инструкции („промптове") и методите за дообучение (fine-tuning).
- Чувствителност към формулировките: Незначителни промени във входната заявка (промпта) могат да водят до съществено различни отговори, дори ако семантиката на заявката е запазена. Това затруднява получаването на стабилни и предсказуеми резултати.
IV. Етични и Социални Аспекти:
- Проблеми с предубежденията и справедливостта: Моделите могат да възпроизвеждат и усилват съществуващите в обучаващите данни социални стереотипи, предубеждения или токсичност. Осигуряването на справедливост и безопасност на моделите е сложна задача.
- Проблемът с изравняването (LLM Alignment): По-общ проблем, включващ предходната точка. Това е задачата за осигуряване на съответствие на поведението на модела с човешките ценности, намерения и етични норми. Тя включва борба с предубежденията, халюцинациите, генерирането на вредно съдържание и повишаване на управляемостта.
- Рискове от злонамерено използване: Възможността за използване на LLM за създаване и масово разпространение на дезинформация, фишинг, спам, вреден код или генериране на убедителни фалшиви текстове, което носи заплахи за информационната и личната сигурност и подкопава общественото доверие.
Препратки:
- „Голям езиков модел" // Уикипедия (Руска версия)
- Large Language Model // Wikipedia (English version)
- Grand Modèle de Langage // Wikipédia (Version française)
- Sprachmodell // Wikipedia (Deutsche version)
- Naveed H. и др. // A Comprehensive Overview of Large Language Models // arXiv:2307.06435, 2023
Литература
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Brown, T. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
- Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
- Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. arXiv:2203.15556.
- Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
- Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
- Bubeck, S. et al. (2023). Sparks of Artificial General Intelligence: Early Experiments with GPT-4. arXiv:2303.12712.
- OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
- Touvron, H. et al. (2024). The Llama 3 Herd of Models. arXiv:2407.21783.