Повежите се са нама

Вештачка интелигенција

Разумевање параметара модела великог језика и меморијских захтева: Дубоко зарон

mm

објављен

 on

Израчунавање параметара у ЛЛМ базираним на трансформаторима

Велики језички модели (ЛЛМ) последњих година бележи изузетан напредак. Модели као што су ГПТ-4, Гоогле Гемини и Цлауде 3 постављају нове стандарде у могућностима и апликацијама. Ови модели не само да побољшавају генерисање и превођење текста, већ такође отварају нови терен у мултимодалној обради, комбинујући текст, слике, аудио и видео улазе како би обезбедили свеобухватнија АИ решења.

На пример, ОпенАИ-јев ГПТ-4 је показао значајна побољшања у разумевању и генерисању текста налик човеку, док су Гуглови Гемини модели изврсни у руковању различитим типовима података, укључујући текст, слике и аудио, омогућавајући беспрекорније и контекстуално релевантне интеракције. Слично, Антхропиц-ови Цлауде 3 модели су познати по својим вишејезичним могућностима и побољшаним перформансама у задацима АИ.

Како развој ЛЛМ-а наставља да се убрзава, разумевање замршености ових модела, посебно њихових параметара и захтева за меморијом, постаје кључно. Овај водич има за циљ да демистификује ове аспекте, нудећи детаљно и лако разумљиво објашњење.

Основе модела великих језика

Шта су модели великих језика?

Велики језички модели су неуронске мреже обучене на масивним скуповима података да разумеју и генеришу људски језик. Ослањају се на архитектуре попут Трансформера, који користе механизме као што је самопажња за обраду и производњу текста.

Важност параметара у ЛЛМ

Параметри су основне компоненте ових модела. Они укључују тежине и предрасуде, које модел прилагођава током тренинга како би минимизирао грешке у предвиђањима. Број параметара често је у корелацији са капацитетом и перформансама модела, али такође утиче на његове рачунарске и меморијске захтеве.

Разумевање архитектуре трансформатора

Трансформатори-архитектура

Трансформерс Арцхитецтуре

преглед

Архитектура трансформатора, представљена у раду „Аттентион Ис Алл Иоу Неед“ аутора Васванија ет ал. (2017), постао је темељ за многе ЛЛМ. Састоји се од енкодера и декодера, од којих се сваки састоји од неколико идентичних слојева.

Компоненте енкодера и декодера

  • енцодер: Обрађује улазну секвенцу и креира контекстуалну репрезентацију.
  • декодер: Генерише излазну секвенцу користећи репрезентацију енкодера и претходно генерисане токене.

Кључни грађевински блокови

  1. Мулти-Хеад Аттентион: Омогућава моделу да се истовремено фокусира на различите делове улазне секвенце.
  2. Неуралне мреже са напредним преносом података: Додаје нелинеарност и сложеност моделу.
  3. Нормализација слоја: Стабилизира и убрзава тренинг нормализацијом средњих резултата.

Израчунавање броја параметара

Трансформер Траининг

Унапред обучени модели за ефикасну обуку трансформатора

Израчунавање параметара у ЛЛМ базираним на трансформаторима

Хајде да анализирамо прорачун параметара за сваку компоненту ЛЛМ-а заснованог на трансформатору. Користићемо нотацију из оригиналног рада, где d_model представља димензију скривених стања модела.

  1. Уграђивање слоја:
    • Параметри = vocab_size * d_model
  2. Мулти-Хеад Аттентион:
    • за h главе, са d_k = d_v = d_model / h:
    • Параметри = 4 * d_model^2 (за К, К, В и пројекције излаза)
  3. Феед-Форвард мрежа:
    • Параметри = 2 * d_model * d_ff + d_model + d_ff
    • Где d_ff је обично 4 * d_model
  4. Нормализација слоја:
    • Параметри = 2 * d_model (за размере и пристрасност)

Укупни параметри за један слој трансформатора:

  • Parameters_layer = Parameters_attention + Parameters_ffn + 2 * Parameters_layernorm

За модел са N слојеви:

  • Укупни параметри = N * Parameters_layer + Parameters_embedding + Parameters_output

Пример израчунавања

Хајде да размотримо модел са следећим спецификацијама:

  • d_model = КСНУМКС
  • h (број глава пажње) = 12
  • N (број слојева) = 12
  • vocab_size = КСНУМКС
  1. Уграђивање слоја:
    • КСНУМКС * КСНУМКС = КСНУМКС
  2. Мулти-Хеад Аттентион:
    • 4 * 768^2 = 2,359,296
  3. Феед-Форвард мрежа:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
  4. Нормализација слоја:
    • КСНУМКС * КСНУМКС = КСНУМКС

Укупни параметри по слоју:

  • 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984

Укупни параметри за 12 слојева:

  • КСНУМКС * КСНУМКС = КСНУМКС

Укупни параметри модела:

  • + = КСНУМКС КСНУМКС КСНУМКС

Овај модел би имао приближно 123 милиона параметара.

Типови употребе меморије

Када радимо са ЛЛМ-овима, морамо да размотримо два главна типа коришћења меморије:

  1. Меморија модела: Меморија потребна за чување параметара модела.
  2. Радна меморија: Меморија потребна током закључивања или обуке за складиштење средњих активација, градијента и стања оптимизатора.

Израчунавање меморије модела

Меморија модела је директно повезана са бројем параметара. Сваки параметар се обично чува као 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 ГБ

Стационарна употреба меморије и вршна употреба меморије

Када обучавате велике језичке моделе засноване на архитектури Трансформер-а, разумевање употребе меморије је кључно за ефикасну алокацију ресурса. Хајде да поделимо меморијске захтеве у две главне категорије: коришћење меморије у стабилном стању и максимално коришћење меморије.

Употреба меморије у стабилном стању

Употреба меморије у стабилном стању се састоји од следећих компоненти:

  1. Модел Веигхтс: ФП32 копије параметара модела, за које је потребно 4Н бајтова, где је Н број параметара.
  2. Оптимизатор стања: За Адам оптимизатор, ово захтева 8Н бајтова (2 стања по параметру).
  3. Градиентс: ФП32 копије градијената, за које је потребно 4Н бајтова.
  4. Унос података: Под претпоставком инт64 улаза, ово захтева 8БД бајтова, где је Б величина серије, а Д димензија улаза.

Укупна употреба меморије у стабилном стању може се апроксимирати са:

  • М_стабилан = 16Н + 8БД бајтова

Врхунска употреба меморије

Максимална употреба меморије се дешава током повратног пролаза када се активације чувају за рачунање градијента. Главни фактори који доприносе врхунској меморији су:

  1. Нормализација слоја: Захтева 4Е бајтова по норми слоја, где је Е = БСХ (Б: величина серије, С: дужина секвенце, Х: скривена величина).
  2. Блок пажње:
    • ККВ израчунавање: 2Е бајтова
    • Матрица пажње: 4БСС бајта (С: дужина секвенце)
    • Излаз за пажњу: 2Е бајта
  3. Фед-Форвард Блок:
    • Први линеарни слој: 2Е бајта
    • ГЕЛУ активација: 8Е бајтова
    • Други линеарни слој: 2Е бајта
  4. Губитак унакрсне ентропије:
    • Логитови: 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

Разумевање параметара и меморијских захтева великих језичких модела је кључно за ефикасно пројектовање, обуку и примену ових моћних алата. Разбијањем компоненти Трансформер архитектуре и испитивањем практичних примера као што је ГПТ, добијамо дубљи увид у сложеност и размере ових модела.

Да бисте даље разумели најновија достигнућа у великим језичким моделима и њиховим применама, погледајте ове свеобухватне водиче:

Провео сам последњих пет година урањајући се у фасцинантан свет машинског учења и дубоког учења. Моја страст и стручност довели су ме до тога да допринесем преко 50 различитих пројеката софтверског инжењеринга, са посебним фокусом на АИ/МЛ. Моја стална радозналост ме је такође привукла ка обради природног језика, пољу које желим даље да истражујем.