Вештачка интелигенција
Разумевање параметара модела великог језика и меморијских захтева: Дубоко зарон
објављен
Пре КСНУМКС данаon
Преглед садржаја
Велики језички модели (ЛЛМ) последњих година бележи изузетан напредак. Модели као што су ГПТ-4, Гоогле Гемини и Цлауде 3 постављају нове стандарде у могућностима и апликацијама. Ови модели не само да побољшавају генерисање и превођење текста, већ такође отварају нови терен у мултимодалној обради, комбинујући текст, слике, аудио и видео улазе како би обезбедили свеобухватнија АИ решења.
На пример, ОпенАИ-јев ГПТ-4 је показао значајна побољшања у разумевању и генерисању текста налик човеку, док су Гуглови Гемини модели изврсни у руковању различитим типовима података, укључујући текст, слике и аудио, омогућавајући беспрекорније и контекстуално релевантне интеракције. Слично, Антхропиц-ови Цлауде 3 модели су познати по својим вишејезичним могућностима и побољшаним перформансама у задацима АИ.
Како развој ЛЛМ-а наставља да се убрзава, разумевање замршености ових модела, посебно њихових параметара и захтева за меморијом, постаје кључно. Овај водич има за циљ да демистификује ове аспекте, нудећи детаљно и лако разумљиво објашњење.
Основе модела великих језика
Шта су модели великих језика?
Велики језички модели су неуронске мреже обучене на масивним скуповима података да разумеју и генеришу људски језик. Ослањају се на архитектуре попут Трансформера, који користе механизме као што је самопажња за обраду и производњу текста.
Важност параметара у ЛЛМ
Параметри су основне компоненте ових модела. Они укључују тежине и предрасуде, које модел прилагођава током тренинга како би минимизирао грешке у предвиђањима. Број параметара често је у корелацији са капацитетом и перформансама модела, али такође утиче на његове рачунарске и меморијске захтеве.
Разумевање архитектуре трансформатора
преглед
Архитектура трансформатора, представљена у раду „Аттентион Ис Алл Иоу Неед“ аутора Васванија ет ал. (2017), постао је темељ за многе ЛЛМ. Састоји се од енкодера и декодера, од којих се сваки састоји од неколико идентичних слојева.
Компоненте енкодера и декодера
- енцодер: Обрађује улазну секвенцу и креира контекстуалну репрезентацију.
- декодер: Генерише излазну секвенцу користећи репрезентацију енкодера и претходно генерисане токене.
Кључни грађевински блокови
- Мулти-Хеад Аттентион: Омогућава моделу да се истовремено фокусира на различите делове улазне секвенце.
- Неуралне мреже са напредним преносом података: Додаје нелинеарност и сложеност моделу.
- Нормализација слоја: Стабилизира и убрзава тренинг нормализацијом средњих резултата.
Израчунавање броја параметара
Израчунавање параметара у ЛЛМ базираним на трансформаторима
Хајде да анализирамо прорачун параметара за сваку компоненту ЛЛМ-а заснованог на трансформатору. Користићемо нотацију из оригиналног рада, где d_model
представља димензију скривених стања модела.
- Уграђивање слоја:
- Параметри =
vocab_size
*d_model
- Параметри =
- Мулти-Хеад Аттентион:
- за
h
главе, саd_k = d_v = d_model / h
: - Параметри = 4 *
d_model
^2 (за К, К, В и пројекције излаза)
- за
- Феед-Форвард мрежа:
- Параметри = 2 *
d_model
*d_ff
+d_model
+d_ff
- Где
d_ff
је обично 4 *d_model
- Параметри = 2 *
- Нормализација слоја:
- Параметри = 2 *
d_model
(за размере и пристрасност)
- Параметри = 2 *
Укупни параметри за један слој трансформатора:
Parameters_layer
=Parameters_attention
+Parameters_ffn
+ 2 *Parameters_layernorm
За модел са N
слојеви:
- Укупни параметри =
N
*Parameters_layer
+Parameters_embedding
+Parameters_output
Пример израчунавања
Хајде да размотримо модел са следећим спецификацијама:
d_model
= КСНУМКСh
(број глава пажње) = 12N
(број слојева) = 12vocab_size
= КСНУМКС
- Уграђивање слоја:
- КСНУМКС * КСНУМКС = КСНУМКС
- Мулти-Хеад Аттентион:
- 4 * 768^2 = 2,359,296
- Феед-Форвард мрежа:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
- Нормализација слоја:
- КСНУМКС * КСНУМКС = КСНУМКС
Укупни параметри по слоју:
- 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984
Укупни параметри за 12 слојева:
- КСНУМКС * КСНУМКС = КСНУМКС
Укупни параметри модела:
- + = КСНУМКС КСНУМКС КСНУМКС
Овај модел би имао приближно 123 милиона параметара.
Типови употребе меморије
Када радимо са ЛЛМ-овима, морамо да размотримо два главна типа коришћења меморије:
- Меморија модела: Меморија потребна за чување параметара модела.
- Радна меморија: Меморија потребна током закључивања или обуке за складиштење средњих активација, градијента и стања оптимизатора.
Израчунавање меморије модела
Меморија модела је директно повезана са бројем параметара. Сваки параметар се обично чува као 32-битни број са помичним зарезом, иако неки модели користе обуку мешовите прецизности са 16-битним бројевима с помичним зарезом.
Меморија модела (бајтови) = број параметара * бајтова по параметру
За наш пример модела са 123 милиона параметара:
- Меморија модела (32-бит) = 123,383,808 * 4 бајта = 493,535,232 бајтова ≈ 494 МБ
- Меморија модела (16-бит) = 123,383,808 * 2 бајта = 246,767,616 бајтова ≈ 247 МБ
Процена радне меморије
Захтеви за радну меморију могу значајно да варирају у зависности од специфичног задатка, величине серије и дужине секвенце. Груба процена радне меморије током закључивања је:
Радна меморија ≈ 2 * Меморија модела
Ово укључује чување и параметара модела и међуактивација. Током тренинга, захтеви за меморијом могу бити још већи због потребе да се чувају градијенти и стања оптимизатора:
Меморија за обуку ≈ 4 * Меморија модела
За наш пример модела:
- Закључак Радна меморија ≈ 2 * 494 МБ = 988 МБ ≈ 1 ГБ
- Меморија за обуку ≈ 4 * 494 МБ = 1,976 МБ ≈ 2 ГБ
Стационарна употреба меморије и вршна употреба меморије
Када обучавате велике језичке моделе засноване на архитектури Трансформер-а, разумевање употребе меморије је кључно за ефикасну алокацију ресурса. Хајде да поделимо меморијске захтеве у две главне категорије: коришћење меморије у стабилном стању и максимално коришћење меморије.
Употреба меморије у стабилном стању
Употреба меморије у стабилном стању се састоји од следећих компоненти:
- Модел Веигхтс: ФП32 копије параметара модела, за које је потребно 4Н бајтова, где је Н број параметара.
- Оптимизатор стања: За Адам оптимизатор, ово захтева 8Н бајтова (2 стања по параметру).
- Градиентс: ФП32 копије градијената, за које је потребно 4Н бајтова.
- Унос података: Под претпоставком инт64 улаза, ово захтева 8БД бајтова, где је Б величина серије, а Д димензија улаза.
Укупна употреба меморије у стабилном стању може се апроксимирати са:
- М_стабилан = 16Н + 8БД бајтова
Врхунска употреба меморије
Максимална употреба меморије се дешава током повратног пролаза када се активације чувају за рачунање градијента. Главни фактори који доприносе врхунској меморији су:
- Нормализација слоја: Захтева 4Е бајтова по норми слоја, где је Е = БСХ (Б: величина серије, С: дужина секвенце, Х: скривена величина).
- Блок пажње:
- ККВ израчунавање: 2Е бајтова
- Матрица пажње: 4БСС бајта (С: дужина секвенце)
- Излаз за пажњу: 2Е бајта
- Фед-Форвард Блок:
- Први линеарни слој: 2Е бајта
- ГЕЛУ активација: 8Е бајтова
- Други линеарни слој: 2Е бајта
- Губитак унакрсне ентропије:
- Логитови: 6БСВ бајтова (В: величина речника)
Укупна меморија за активирање може се проценити као:
- М_ацт = Л * (14Е + 4БСС) + 6БСВ бајтова
Где је Л број слојева трансформатора.
Укупна вршна употреба меморије
Максимална употреба меморије током тренинга може се апроксимирати комбиновањем меморије у стабилном стању и меморије за активацију:
- М_пеак = М_стеади + М_ацт + 4БСВ бајтова
Додатни 4БСВ термин представља додатну алокацију на почетку пролаза уназад.
Разумевањем ових компоненти, можемо оптимизовати употребу меморије током обуке и закључивања, обезбеђујући ефикасну алокацију ресурса и побољшане перформансе великих језичких модела.
Закони о скалирању и разматрања ефикасности
Закони о скалирању за ЛЛМ
Истраживања су показала да перформансе ЛЛМ-а имају тенденцију да прате одређене законе скалирања како се број параметара повећава. Каплан и др. (2020) је приметио да се перформансе модела побољшавају као закон степена броја параметара, прорачунског буџета и величине скупа података.
Однос између перформанси модела и броја параметара може се апроксимирати на следећи начин:
Перформансе ∝ Н^α
Где је Н број параметара, а α експонент скалирања обично око 0.07 за задатке моделирања језика.
То имплицира да да бисмо постигли побољшање перформанси од 10%, потребно је да повећамо број параметара за фактор 10^(1/α) ≈ 3.7.
Технике ефикасности
Како ЛЛМ наставља да расте, истраживачи и практичари су развили различите технике за побољшање ефикасности:
a) Мешовита прецизна обука: Коришћење 16-битних или чак 8-битних бројева са покретним зарезом за одређене операције ради смањења употребе меморије и рачунарских захтева.
b) Модел Параллелисм: Дистрибуција модела на више ГПУ-а или ТПУ-а за руковање већим моделима него што могу да стану на један уређај.
c) Градиент Цхецкпоинтинг: Рачунање трговине за меморију поновним израчунавањем одређених активација током проласка уназад уместо њиховог складиштења.
d) Обрезивање и квантизација: Уклањање мање важних тегова или смањење њихове прецизности након тренинга да би се створили мањи, ефикаснији модели.
e) Дестилација: Обучавање мањих модела да опонашају понашање већих, потенцијално чувајући већи део перформанси са мање параметара.
Практични пример и прорачуни
ГПТ-3, један од највећих језичких модела, има 175 милијарди параметара. Користи декодерски део Трансформер архитектуре. Да бисмо разумели његову скалу, хајде да разбијемо број параметара са хипотетичким вредностима:
d_model = 12288
d_ff = 4 * 12288 = 49152
- Број слојева = 96
За један слој декодера:
Укупни параметри = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 милијарде
Укупно за 96 слојева:
1.1 милијарди * 96 = 105.6 милијарди
Преостали параметри потичу од уграђивања и других компоненти.
Zakljucak
Разумевање параметара и меморијских захтева великих језичких модела је кључно за ефикасно пројектовање, обуку и примену ових моћних алата. Разбијањем компоненти Трансформер архитектуре и испитивањем практичних примера као што је ГПТ, добијамо дубљи увид у сложеност и размере ових модела.
Да бисте даље разумели најновија достигнућа у великим језичким моделима и њиховим применама, погледајте ове свеобухватне водиче:
- Истражите комплетан водич за Гемма 2: Гоогле-ов нови отворени модел великог језика за увид у његове побољшане перформансе и иновативне карактеристике.
- Сазнајте више о изградњи агената за ЛЛМ за РАГ од нуле и даље: Свеобухватни водич који говори о изазовима и решењима у генерисању са проширеним проналажењем.
- Откријте замршености Подешавање обуке, финог подешавања и закључивања ЛЛМ-ова са НВИДИА ГПУ-овима и ЦУДА-ом за оптимизацију АИ система.
Провео сам последњих пет година урањајући се у фасцинантан свет машинског учења и дубоког учења. Моја страст и стручност довели су ме до тога да допринесем преко 50 различитих пројеката софтверског инжењеринга, са посебним фокусом на АИ/МЛ. Моја стална радозналост ме је такође привукла ка обради природног језика, пољу које желим даље да истражујем.
Можда вам се свидја
МАРКЛЛМ: Комплет алата отвореног кода за ЛЛМ водени жиг
Примена великих језичких модела на Кубернетес: свеобухватан водич
Разумевање ретки аутоматских кодера, ГПТ-4 и Цлауде 3: Детаљно техничко истраживање
Квен2 – Алибабин најновији модел вишејезичног језика изазива СОТА као што је Ллама 3
ЛЛаВА-УХД: ЛММ који перципира било коју пропорцију и слике високе резолуције
Надопунити велике језичке моделе са предвиђањем више токена
Последње објаве
- Револуционисање вашег искуства са уређајем: Како Аппле-ова вештачка интелигенција редефинише технологију
- Кључ за успешна АИ решења? Подаци о понашању
- Улога ГАН-а у побољшању сајбер безбедности
- 10 најбољих АИ апликација за фризуре (јул 2024.)
- Читање ваших мисли: Како АИ декодира мождану активност да би реконструисао оно што видите и чујете