Изкуствен интелект
Базирани на декодер големи езикови модели: Пълно ръководство
Големи езикови модели (LLM) направиха революция в областта на обработката на естествения език (NLP), като демонстрираха забележителни способности за генериране на човешки текст, отговаряне на въпроси и подпомагане с широк набор от задачи, свързани с езика. В основата на тези мощни модели лежи трансформаторна архитектура само за декодер, вариант на оригиналната трансформаторна архитектура, предложен в основната статия „Вниманието е всичко, от което се нуждаете” от Vaswani et al.
В това изчерпателно ръководство ще проучим вътрешната работа на базираните на декодер LLMs, като се задълбочим във фундаменталните градивни елементи, архитектурните иновации и детайлите на изпълнението, които изведоха тези модели в челните редици на изследванията и приложенията на НЛП.
Архитектурата на трансформатора: опресняване
Преди да се потопите в спецификата на LLM, базирани на декодер, важно е да преразгледате трансформаторната архитектура, основата, върху която са изградени тези модели. Трансформаторът въведе нов подход към моделирането на последователности, разчитайки единствено на механизми за внимание за улавяне на дългосрочни зависимости в данните, без необходимост от повтарящи се или конволюционни слоеве.
Оригиналната трансформаторна архитектура се състои от два основни компонента: енкодер и декодер. Кодерът обработва входната последователност и генерира контекстуализирано представяне, което след това се използва от декодера, за да произведе изходната последователност. Тази архитектура първоначално е проектирана за задачи за машинен превод, при които енкодерът обработва входното изречение на изходния език, а декодерът генерира съответното изречение на целевия език.
Самовниманието: Ключът към успеха на Transformer
В сърцето на трансформатор се крие механизмът за самовнимание, мощна техника, която позволява на модела да претегля и обобщава информация от различни позиции във входната последователност. За разлика от традиционните модели на последователност, които обработват входните токени последователно, самовниманието позволява на модела да улавя зависимости между всяка двойка токени, независимо от тяхната позиция в последователността.
Операцията за самовнимание може да бъде разделена на три основни стъпки:
- Прогнози за заявка, ключ и стойност: Входната последователност се проектира в три отделни представяния: запитвания (Q), ключове (K) и ценности (V). Тези прогнози се получават чрез умножаване на входа с научени матрици за тегло.
- Изчисляване на резултата за внимание: За всяка позиция във входната последователност оценките за внимание се изчисляват чрез вземане на точковия продукт между съответния вектор на заявката и всички ключови вектори. Тези резултати представляват уместността на всяка позиция спрямо текущата позиция, която се обработва.
- Претеглена сума от стойности: Резултатите за внимание се нормализират с помощта на функция softmax и получените тегла за внимание се използват за изчисляване на претеглена сума от векторите на стойността, като се получава изходното представяне за текущата позиция.
Вниманието с няколко глави, вариант на механизма за самовнимание, позволява на модела да улавя различни типове взаимоотношения чрез изчисляване на резултати за внимание в множество "глави” паралелно, всеки със собствен набор от прогнози за заявка, ключ и стойност.
Архитектурни варианти и конфигурации
Докато основните принципи на базираните на декодер LLMs остават последователни, изследователите са проучили различни архитектурни варианти и конфигурации за подобряване на производителността, ефективността и възможностите за обобщение. В този раздел ще разгледаме различните архитектурни решения и техните последици.
Видове архитектура
Базираните на декодер LLMs могат да бъдат широко класифицирани в три основни типа: енкодер-декодер, каузален декодер и префиксен декодер. Всеки тип архитектура показва различни модели на внимание.
Архитектура на енкодер-декодер
Базирана на модела vanilla Transformer, архитектурата на енкодер-декодер се състои от два стека: енкодер и декодер. Енкодерът използва подредени многоглави слоеве за самовнимание, за да кодира входната последователност и да генерира латентни представяния. След това декодерът извършва кръстосано внимание върху тези представяния, за да генерира целевата последователност. Въпреки че са ефективни при различни задачи на НЛП, малко LLM, като напр Флан-Т5, приемете тази архитектура.
Архитектура на каузален декодер
Архитектурата на причинно-следствения декодер включва еднопосочна маска за внимание, позволяваща на всеки входен токен да обръща внимание само на минали токени и себе си. И входните, и изходните токени се обработват в рамките на един и същ декодер. Известни модели като GPT-1, GPT-2 и GPT-3 са изградени върху тази архитектура, като GPT-3 демонстрира забележителни възможности за обучение в контекст. Много LLM, включително OPT, BLOOM и Gopher, са широко приели каузални декодери.
Архитектура на префикс декодер
Известен също като некаузален декодер, архитектурата на префиксния декодер модифицира механизма за маскиране на причинно-следствените декодери, за да позволи двупосочно внимание върху префиксни токени и еднопосочно внимание върху генерирани токени. Подобно на архитектурата енкодер-декодер, декодерите с префикс могат да кодират последователността на префикса двупосочно и да предсказват изходни токени авторегресивно, като използват споделени параметри. LLM базирани на префикс декодери включват GLM130B и U-PaLM.
И трите вида архитектура могат да бъдат разширени с помощта на комбинация от експерти (MoE) техника на мащабиране, която рядко активира подмножество от тегла на невронни мрежи за всеки вход. Този подход е използван в модели като Switch Transformer и GLaM, като увеличаването на броя на експертите или общия размер на параметрите показва значителни подобрения в производителността.
Трансформатор само с декодер: Възприемане на авторегресивната природа
Докато оригиналната трансформаторна архитектура е проектирана за задачи от последователност към последователност, като машинен превод, много NLP задачи, като моделиране на език и генериране на текст, могат да бъдат оформени като авторегресивни проблеми, при които моделът генерира един символ наведнъж, в зависимост от преди това генерирани токени.
Въведете трансформатора само за декодер, опростен вариант на архитектурата на трансформатора, който запазва само компонента на декодера. Тази архитектура е особено подходяща за авторегресивни задачи, тъй като генерира изходни токени един по един, като използва генерираните преди това токени като входен контекст.
Ключовата разлика между трансформатора само за декодер и оригиналния декодер на трансформатора се крие в механизма за самонасочване. В настройката само за декодер операцията за самонасочване е модифицирана, за да попречи на модела да обръща внимание на бъдещи токени, свойство, известно като причинно-следствена връзка. Това се постига чрез техника, наречена „маскирано самовнимание“, където оценките на вниманието, съответстващи на бъдещи позиции, са настроени на отрицателна безкрайност, като ефективно ги маскират по време на стъпката на нормализиране на softmax.
Архитектурни компоненти на LLM, базирани на декодер
Докато основните принципи на самовниманието и маскираното самовнимание остават същите, съвременните LLM, базирани на декодер, въведоха няколко архитектурни иновации за подобряване на производителността, ефективността и възможностите за обобщение. Нека проучим някои от ключовите компоненти и техники, използвани в най-съвременните LLMs.
Входящо представяне
Преди да обработят входната последователност, LLM, базирани на декодер, използват техники за токенизиране и вграждане, за да преобразуват необработения текст в цифрово представяне, подходящо за модела.
токанизация: Процесът на токенизиране преобразува въведения текст в поредица от токени, които могат да бъдат думи, поддуми или дори отделни знаци, в зависимост от използваната стратегия за токенизиране. Популярните техники за токенизиране за LLMs включват кодиране на двойки байтове (BPE), SentencePiece и WordPiece. Тези методи имат за цел да постигнат баланс между размера на речника и детайлността на представянето, което позволява на модела да обработва редки думи или думи извън речника ефективно.
Вграждане на токени: След токенизация всеки токен се картографира към плътно векторно представяне, наречено вграждане на токен. Тези вграждания се научават по време на процеса на обучение и улавят семантични и синтактични връзки между токени.
Позиционни вграждания: Трансформаторните модели обработват цялата входна последователност едновременно, като им липсва присъщата идея за позиции на токени, присъстващи в повтарящите се модели. За да се включи позиционна информация, към вгражданията на токени се добавят позиционни вграждания, което позволява на модела да прави разлика между токени въз основа на техните позиции в последователността. Ранните LLMs използваха фиксирани позиционни вграждания, базирани на синусоидални функции, докато по-нови модели изследваха обучаеми позиционни вграждания или алтернативни техники за позиционно кодиране като въртящи се позиционни вграждания.
Блокове за внимание с няколко глави
Основните градивни елементи на LLM, базирани на декодер, са слоеве за внимание с множество глави, които изпълняват маскираната операция за самовнимание, описана по-рано. Тези слоеве са подредени няколко пъти, като всеки слой се грижи за изхода на предишния слой, което позволява на модела да улавя все по-сложни зависимости и представяния.
Внимание Глави: Всеки слой за внимание с множество глави се състои от множество „глави за внимание“, всяка със собствен набор от заявки, ключови и стойностни проекции. Това позволява на модела да се грижи за различни аспекти на входа едновременно, улавяйки различни взаимоотношения и модели.
Остатъчни връзки и нормализиране на слоя: За да улеснят обучението на дълбоки мрежи и да смекчат проблема с изчезващия градиент, базираните на декодер LLM използват остатъчни връзки и техники за нормализиране на слоеве. Остатъчните връзки добавят входа на слой към неговия изход, позволявайки на градиентите да протичат по-лесно по време на обратното разпространение. Нормализирането на слоя помага за стабилизиране на активациите и градиентите, като допълнително подобрява стабилността и ефективността на тренировката.
Слоеве за подаване напред
В допълнение към слоевете за внимание с множество глави, LLM, базирани на декодер, включват слоеве за подаване напред, които прилагат проста невронна мрежа за подаване напред към всяка позиция в последователността. Тези слоеве въвеждат нелинейности и позволяват на модела да научи по-сложни представяния.
Функции за активиране: Изборът на функция за активиране в слоевете за подаване напред може значително да повлияе на производителността на модела. Докато по-ранните LLM разчитаха на широко използваното ReLU активиране, по-новите модели възприеха по-сложни функции за активиране като линейната единица за грешка на Гаус (GELU) или активирането SwiGLU, които показаха подобрена производителност.
Оскъдно внимание и ефективни трансформатори
Въпреки че механизмът за самовнимание е мощен, той идва с квадратична изчислителна сложност по отношение на дължината на последователността, което го прави изчислително скъп за дълги последователности. За да се отговори на това предизвикателство, бяха предложени няколко техники за намаляване на изискванията за изчисление и памет на самовниманието, което позволява ефективна обработка на по-дълги последователности.
Оскъдно внимание: Техниките за оскъдно внимание, като тази, използвана в модела GPT-3, избирателно обръщат внимание на подмножество от позиции във входната последователност, вместо да изчисляват резултати за внимание за всички позиции. Това може значително да намали изчислителната сложност, като същевременно поддържа разумна производителност.
Плъзгащ се прозорец Внимание: Въведено в модела Mistral 7B, вниманието на плъзгащия се прозорец (SWA) е проста, но ефективна техника, която ограничава обхвата на вниманието на всеки жетон до фиксиран размер на прозореца. Този подход използва способността на трансформаторните слоеве да предават информация през множество слоеве, като ефективно увеличава обхвата на вниманието без квадратичната сложност на пълното самовнимание.
Подвижен буферен кеш: За допълнително намаляване на изискванията за памет, особено за дълги последователности, моделът Mistral 7B използва подвижна буферна кеш памет. Тази техника съхранява и използва повторно изчислените вектори на ключ и стойност за фиксиран размер на прозореца, като избягва излишните изчисления и минимизира използването на паметта.
Групирана заявка Внимание: Въведено в модела LLaMA 2, вниманието към групирана заявка (GQA) е вариант на механизма за внимание към множество заявки, който разделя заглавията на вниманието на групи, като всяка група споделя общ ключ и матрица на стойността. Този подход постига баланс между ефективността на вниманието при множество заявки и изпълнението на стандартното самовнимание, осигурявайки подобрени времена за извод, като същевременно поддържа висококачествени резултати.