paint-brush
Katta til modeli (LLM) xulosasini optimallashtirish bo'yicha primer: 1. Fon va muammoni shakllantirishtomonidan@mandliya
1,620 o'qishlar
1,620 o'qishlar

Katta til modeli (LLM) xulosasini optimallashtirish bo'yicha primer: 1. Fon va muammoni shakllantirish

tomonidan Ravi Mandliya11m2024/11/04
Read on Terminal Reader

Juda uzoq; O'qish

Ushbu postda biz LLM xulosasi, uning ahamiyati va u bilan bog'liq muammolar haqida qisqacha ma'lumot beramiz. Shuningdek, biz optimallashtirish usullarini o'rganishimizga yordam beradigan asosiy muammo formulalarini belgilaymiz.
featured image - Katta til modeli (LLM) xulosasini optimallashtirish bo'yicha primer: 1. Fon va muammoni shakllantirish
Ravi Mandliya HackerNoon profile picture

Katta til modeli (LLM) xulosasining umumiy ko'rinishi, uning ahamiyati, muammolari va asosiy muammolarni shakllantirish.


Katta til modellari (LLM) chatbotlar va sun'iy intellekt agentlaridan tortib kod va kontent yaratishgacha bo'lgan keng ko'lamli ilovalarni ishga tushirish orqali Tabiiy tilni qayta ishlash (NLP) sohasida inqilob qildi. Biroq, LLMlarni real stsenariylarda qo'llash ko'pincha kechikish, resurslarni iste'mol qilish va miqyoslash bilan bog'liq muammolarga duch keladi.


Ushbu blog postlarida biz LLM xulosasi uchun turli xil optimallashtirish usullarini o'rganamiz. Biz keshlash mexanizmlaridan tortib apparat tezlashuvi va modelni kvantlashgacha kechikish, xotira maydoni va hisoblash xarajatlarini kamaytirish strategiyalarini ko'rib chiqamiz.


Ushbu postda biz LLM xulosasi, uning ahamiyati va u bilan bog'liq muammolar haqida qisqacha ma'lumot beramiz. Shuningdek, biz optimallashtirish usullarini o'rganishimizga yordam beradigan asosiy muammo formulalarini belgilaymiz.

Model xulosasi: umumiy ko'rinish

Model xulosasi yangi kirish ma'lumotlari asosida bashorat qilish yoki natijalarni yaratish uchun o'rgatilgan mashinani o'rganish modelidan foydalanish jarayonini anglatadi. LLM kontekstida xulosa matn kiritishni qayta ishlash va izchil va kontekstga tegishli matn chiqishini yaratishni o'z ichiga oladi.


Model faqat bir marta yoki vaqti-vaqti bilan o'qitiladi, ishlab chiqarish muhitida xulosa chiqarish tez-tez, ehtimol soniyasiga minglab marta sodir bo'ladi.


Xulosalarni optimallashtirish LLMlarni real dunyo ilovalarida samarali qo'llashni ta'minlash uchun zarurdir. Maqsad - kechikishni minimallashtirish (javob yaratish uchun zarur bo'lgan vaqt), resurs sarfini kamaytirish (CPU, GPU, xotira) va miqyoslilikni yaxshilash (ortib borayotgan yuklarni boshqarish qobiliyati).


Masalan, GPT-3 (175 milliard parametr bilan) xulosa chiqarish uchun katta hisoblash resurslarini talab qiladi. Optimallashtirish javob vaqtlarini 1–2 soniyadan millisekundlarga qisqartirishi mumkin, bu esa LLMlarni interaktiv ilovalar uchun amaliyroq qiladi.

Transformator arxitekturasining umumiy ko'rinishi

Transformator arxitekturasi (manba: Diqqat sizga kerak)


Diqqat mexanizmlaridan foydalanadigan transformator arxitekturasi eng zamonaviy LLMlar uchun asos bo'ldi. Ushbu arxitektura pozitsion kodlash, ko'p boshli o'z-o'ziga e'tibor, oldinga neyron tarmoqlari va qatlamni normallashtirishni o'z ichiga oladi. Transformatorlar odatda uchta asosiy turga bo'linadi:


  • Faqat kodlovchi modellar (masalan, BERT) matnni tasniflash va nomli obyektni tanib olish kabi vazifalar uchun moʻljallangan. Ular kirish ketma-ketligini qat'iy uzunlikdagi tasvirga aylantiradi - o'rnatish. Ushbu modellar ikki tomonlama bo'lib, ular tokenning chap va o'ng tomonidagi kontekstni ko'rib chiqadi, bu esa kiritilgan matnni yaxshiroq tushunishga olib kelishi mumkin.


  • Matn yaratish vazifalari uchun faqat dekoder modellari (masalan, GPT-3) ishlatiladi. Kirish ketma-ketligidan ular bir vaqtning o'zida matnni bir token hosil qiladi va avval yaratilgan tokenlarga mos keladi. Ushbu modellar bir yo'nalishli bo'lib, ular faqat tilni modellashtirish kabi vazifalar uchun mos bo'lgan tokenning chap tomonidagi kontekstni ko'rib chiqadi. Bu eng keng tarqalgan LLM arxitekturasidir.


  • Kodlovchi-dekoder modellari (masalan, T5) "Diqqat sizga kerak" maqolasida taqdim etilgan original arxitektura edi. Ushbu modellar tarjima va umumlashtirish kabi tushunish va yaratishni talab qiladigan vazifalar uchun mo'ljallangan. Ular kodlovchi bilan kirish ketma-ketligini qayta ishlaydi va keyin dekoder bilan chiqish ketma-ketligini hosil qiladi.


Faqat dekoderga mo'ljallangan modellar avtoregressiv vazifalar uchun eng keng tarqalgan LLM arxitekturasi bo'lganligi sababli, ushbu seriya ushbu turdagi modellar uchun optimallashtirish usullariga qaratilgan.

Diqqat mexanizmining umumiy ko'rinishi

Diqqat mexanizmi transformator arxitekturasining asosiy komponenti bo'lib, chiqishni ishlab chiqarishda modelga kirish ketma-ketligining turli qismlariga e'tibor qaratish imkonini beradi. U kirish ko'rinishlarining vaznli yig'indisini hisoblab chiqadi, bunda og'irliklar har bir kirish tokenining ishlab chiqarilayotgan joriy chiqish tokeniga aloqadorligi bilan belgilanadi. Ushbu mexanizm modelga kirish ketma-ketligidagi masofadan qat'i nazar, tokenlar orasidagi bog'liqlikni qo'lga kiritish imkonini beradi.

Ishdagi diqqat mexanizmi


Diqqat mexanizmi hisoblash uchun qimmat bo'lishi mumkin, ayniqsa uzoq kirish ketma-ketligi uchun, chunki u barcha tokenlar o'rtasidagi juftlik o'zaro ta'sirini hisoblashni talab qiladi ( O(n^2) murakkablik). Keling, buni bosqichma-bosqich batafsil ko'rib chiqaylik:


  1. Kirish taqdimoti : Kirish ketma-ketligidagi har bir token vektor sifatida taqdim etiladi, odatda o'rnatishlar yordamida.


  2. So'rov, kalit, qiymat vektorlari : Har bir token uchun uchta vektor hisoblanadi: so'rov vektori ( Q_i ), kalit vektori ( K_i ) va qiymat vektori ( V_i ). Ushbu vektorlar o'rganilgan chiziqli transformatsiyalar yordamida kiritilgan tasvirlardan olinadi.


  3. Diqqat ballari : Diqqat ballari joriy tokenning so'rov vektorining nuqta mahsulotini kiritish ketma-ketligidagi barcha oldingi tokenlarning asosiy vektorlari bilan hisoblash orqali hisoblanadi. Bu har bir tokenga qanchalik e'tibor qaratish kerakligini ko'rsatadigan ballga olib keladi.


  4. Softmax Normalizatsiya : Diqqat ballari so'ngra 1 ga teng bo'lgan diqqat og'irliklarini olish uchun softmax funksiyasi yordamida normallashtiriladi.


  5. Og'irlangan yig'indi : Nihoyat, joriy token uchun chiqish ko'rinishi diqqat og'irliklaridan foydalangan holda qiymat vektorlarining vaznli yig'indisi sifatida hisoblanadi.

Ko'p boshli e'tibor

Ko'p boshli e'tibor - bu modelga turli xil pozitsiyalardagi turli vakillik pastki bo'shliqlaridan ma'lumotlarga birgalikda qatnashish imkonini beradigan diqqat mexanizmining kengayishi. Diqqatning yagona to'plamiga ega bo'lish o'rniga, ko'p boshli e'tibor parallel ravishda bir nechta diqqat ballarini hisoblaydi, ularning har biri o'z o'rganilgan chiziqli o'zgarishlarga ega.


Ushbu e'tibor boshlarining chiqishlari keyinchalik yakuniy chiqish tasvirini yaratish uchun birlashtiriladi va chiziqli ravishda o'zgartiriladi.


Ushbu mexanizm modelning kirish ma'lumotlaridagi turli munosabatlar va bog'liqliklarni qo'lga kiritish qobiliyatini kuchaytiradi, bu esa turli NLP vazifalari bo'yicha ish faoliyatini yaxshilashga olib keladi.

Ko'p boshli e'tibor

Xulosalarni hisoblash jarayonining umumiy ko'rinishi

LLM va transformator arxitekturasini tushungan holda, keling, xulosani hisoblash jarayonini ko'rsatamiz. Xulosa berilgan kiritish ketma-ketligi uchun keyingi $n$ tokenlarini hosil qiladi va ularni ikki bosqichga boʻlish mumkin:


  1. Oldindan to'ldirish bosqichi : Ushbu bosqichda kirish ketma-ketligi uchun model orqali oldinga o'tish amalga oshiriladi va har bir token uchun kalit va qiymat ko'rinishlari hisoblanadi. Ushbu tasvirlar keyinchalik KV keshida dekodlash bosqichida foydalanish uchun saqlanadi. Har bir qatlamdagi barcha tokenlarning ko'rinishlari parallel ravishda hisoblanadi.

    LLM xulosasi paytida oldindan to'ldirish bosqichi

  2. Dekodlash bosqichi : Ushbu bosqichda model avtomatik regressiv tarzda chiqish tokenlarini birma-bir ishlab chiqaradi. Har bir token uchun model oldindan toʻldirish bosqichida saqlangan KV keshidan kalit va qiymat koʻrinishlarini hamda keyingi tokenni ketma-ketlikda hisoblash uchun joriy kirish tokenining soʻrov koʻrinishini oladi.


    Bu jarayon to'xtash mezoni bajarilgunga qadar davom etadi (masalan, maksimal uzunlikka erishilgunga qadar yoki ketma-ketlik oxiri tokenini yaratish). Yangi kalit va qiymat ko'rinishlari keyingi tokenlar uchun KV keshida saqlanadi. Ushbu bosqichda keyingi ishlab chiqariladigan tokenni aniqlash uchun tokenni tanlash strategiyasi ham qo'llaniladi (masalan, ochko'z qidiruv, nurli qidiruv, top-k namuna olish).

    LLM xulosasi paytida dekodlash bosqichi

Xulosalarni hisoblashning murakkabligi

L uzunlikdagi prefiks, o'rnatish o'lchami d va h bosh va n qatlamli model uchun xulosani hisoblashning murakkabligini quyidagicha tahlil qilish mumkin:

  • Oldindan to'ldirish bosqichi : Oldindan to'ldirish bosqichida biz kirishdagi barcha tokenlar uchun dastlabki ko'rinishni hisoblaymiz. Bu erda murakkablik:

    Bu yerga:

    • Birinchi atama O(Ln .d^2) : Har bir tokenni qatlamlar bo'ylab mustaqil ravishda qayta ishlaydigan oldinga uzatish hisobini ifodalaydi. Bu ketma-ketlik uzunligi L va qatlamlar soni n bilan chiziqli ravishda o'zgaradi.


    • Ikkinchi muddat O(L^2. nh d) : Diqqat mexanizmining narxini ifodalaydi. Bu erda har bir token har bir boshqa token bilan o'zaro ta'sir qiladi, natijada har bir qatlam uchun e'tiborni hisoblash uchun L^2 murakkabligi yuzaga keladi. Murakkablik ketma-ketlik uzunligi bilan kvadratik ravishda o'sib boradi, bu uzoq ketma-ketliklar uchun asosiy to'siq bo'lishi mumkin.


  • Dekodlash bosqichi : dekodlash bosqichi avtoregressiv qism, murakkablik:

  • Bu yerga:

    • Oldinga uzatishni hisoblash : Har bir yaratilgan token uchun biz har bir qatlamda oldinga uzatish amallarini bajaramiz. Bir vaqtning o'zida bitta token uchun (butun ketma-ketlik emas) bajarilganligi sababli, har bir token uchun murakkablik: O(nd^2) .


    • E'tiborni keshlash bilan hisoblash : Har bir yangi token oldindan hisoblangan kalit-qiymat juftliklaridan foydalangan holda diqqat orqali mavjud ketma-ketlik bilan o'zaro ta'sir qiladi. Yaratilgan har bir token uchun ushbu e'tiborni hisoblash ketma-ketlik uzunligi L ga mutanosib bo'lib, quyidagilarni beradi: O(Lnd .h)


Ko'rib turganimizdek, xulosani hisoblashning murakkabligiga kirish ketma-ketligining uzunligi ( L ), qatlamlar soni ( n ), diqqat boshlari soni ( h ) va joylashtirish hajmi ( d ) ta'sir qiladi. Ushbu murakkablik, ayniqsa, uzoq kirish ketma-ketligi va/yoki katta modellar bilan ishlashda real vaqtda ilovalarda to'siq bo'lib qolishi mumkin.

KV keshlashning ahamiyati

KV keshlash LLM xulosasi uchun, ayniqsa dekodlash bosqichida muhim optimallashtirish usuli hisoblanadi. Oldindan to'ldirish bosqichida hisoblangan kalit va qiymat ko'rinishlarini saqlash orqali model ilgari qayta ishlangan tokenlar uchun ortiqcha hisob-kitoblardan qochishi mumkin.


Bu xulosa chiqarish vaqtida hisoblash narxini va kechikish vaqtini sezilarli darajada kamaytiradi, chunki model kiritish ketma-ketligidagi barcha tokenlar uchun kalit va qiymat ko‘rinishlarini qayta hisoblash o‘rniga, yaratilayotgan yangi token uchun e’tibor ballarini hisoblashi kerak bo‘ladi.


Bu kirish uzunligi bo'yicha kvadratik emas, balki ishlab chiqarilgan tokenlar soni bo'yicha narxni chiziqli qiladi.


Biroq, KV keshlash kalit va qiymat ko'rinishlarini saqlash uchun qo'shimcha xotirani talab qiladi, bu resurslar cheklangan muhitda o'zaro kelishuv bo'lishi mumkin.

Misol uchun hisob-kitoblar

LLaMA 7B modeli uchun xotira talablarini hisoblab chiqamiz.

Model konfiguratsiyasi

  • Parametrlar: 7 milliard
  • O'rnatish hajmi ( d_model ): 4096
  • Qatlamlar soni: 32
  • Diqqat boshlari soni ( d_head ): 32
  • Bosh o'lchami ( d_head ): 128 (4096/32)
  • Maksimal ketma-ketlik uzunligi (L): 2048
  • Ma'lumotlar turi: float16 (har bir element uchun 2 bayt)

Xotirani hisoblash

  1. Har bir qatlam kesh hajmi : Har bir qatlam uchun biz kalitlarni ham, qiymatlarni ham saqlashimiz kerak
    • Bitta token uchun kalit hajmi = d_head × num_heads = 128 × 32 = 4096 element

    • Token uchun qiymat oʻlchami = d_head × num_heads = 128 × 32 = 4096 element

    • Har bir qatlam uchun token uchun jami elementlar = 4096 + 4096 = 8192 element


  2. To'liq ketma-ketlik uchun har bir qatlam uchun xotira : L = 2048 token uzunlikdagi to'liq ketma-ketlik uchun
    • Har bir qatlam uchun elementlar = L × 8192 = 2048 × 8192 = 16 777 216 element

    • Har bir qatlam uchun xotira (baytlarda) = 16,777,216 × 2 = 33,554,432 bayt = 33,55 MB


  3. Barcha qatlamlar uchun jami KV kesh xotirasi : Bizda $32$ qatlamlari borligi sababli
    • Umumiy xotira = 33,55 × 32 MB = 1073,6 MB

Umumiy xotira talabi

  • Model og'irliklari: 7 milliard parametr × 2 bayt / parametr = 14 GB


  • KV kesh xotirasi: 1073,6 MB


  • Boshqa xotira xarajatlari (masalan, faollashtirishlar, oraliq natijalar): ~1-2 GB


Shunday qilib, umumiy xotira talabi: 14 GB (model og'irliklari) + 1-2 GB (qo'shimcha yuk) + 1073,6 MB (KV kesh) = 15-16 GB . Ushbu hisob-kitob bizga xulosa chiqarishda LLaMA 7B modeli uchun xotira talablari taxminini beradi. LLaMA 7B GPT-3 (175 milliard parametr) kabi modellarga nisbatan nisbatan kichik bo'lib, bu model og'irliklari va KV keshi uchun sezilarli darajada ko'proq xotirani talab qiladi.


Bundan tashqari, $m$ bir vaqtda foydalanuvchilar uchun masshtablanganda, resurs talablari $m$ baravar yuqori bo'ladi. Shunday qilib, optimallashtirish usullari katta modellarni resurslar cheklangan muhitda joylashtirish uchun juda muhimdir.

Xulosalarni optimallashtirishni baholash uchun ko'rsatkichlar

Xulosalarni optimallashtirish usullarining samaradorligini baholashda bir nechta ko'rsatkichlarni hisobga olish mumkin:

  1. Oldindan to'ldirish kechikishi : xulosa chiqarishning oldindan to'ldirish bosqichini bajarish uchun ketadigan vaqt, shuningdek, birinchi token (TTFT) kechikishi deb ham ataladi. Ushbu ko'rsatkich foydalanuvchilar tezkor javoblarni kutayotgan interaktiv ilovalar uchun juda muhimdir. Model o'lchami, kirish uzunligi va apparat imkoniyatlari kabi omillar ushbu ko'rsatkichga ta'sir qilishi mumkin.


  2. Dekodlash kechikishi : Oldindan to'ldirish bosqichidan keyin har bir keyingi tokenni yaratish uchun ketadigan vaqt, shuningdek, Inter-Token Latency (ITL) deb ham ataladi. Ushbu ko'rsatkich matn yaratish jarayonida modelning sezgirligini o'lchash uchun muhimdir. Chatbotlar kabi ilovalar uchun past ITL yaxshi, lekin tezroq bo'lish har doim ham yaxshi emas, chunki sekundiga 6-8 token ko'pincha odamlarning o'zaro ta'siri uchun etarli. Ta'sir qiluvchi omillarga KV kesh hajmi, namuna olish strategiyasi va apparat kiradi.


  3. End-to-End Latency : Kiritilgan ma'lumotni qabul qilishdan yakuniy natijani yaratishgacha bo'lgan umumiy vaqt. Bu koʻrsatkich xulosa chiqarish jarayonining umumiy samaradorligini tushunish uchun zarur va oldindan toʻldirish, dekodlash va boshqa komponentlar kechikishlari (masalan, JSON tahlili) taʼsir qiladi. Ta'sir etuvchi omillarga model o'lchami, kirish uzunligi va uskuna, shuningdek, butun quvur liniyasining samaradorligi kiradi.


  4. Maksimal so'rov tezligi aka QPS (soniyadagi so'rovlar) : soniyada qayta ishlanishi mumkin bo'lgan xulosa so'rovlari soni. Ushbu ko'rsatkich ishlab chiqarish muhitida modelning kengayish qobiliyatini baholash uchun juda muhimdir. Model o'lchami, apparat va optimallashtirish usullari kabi omillar QPSga ta'sir qilishi mumkin. Misol uchun, agar 1 GPU orqali P90 kechikishi uchun 15 QPS xizmat ko'rsatsa, 300 QPSga xizmat ko'rsatish uchun 20 GPU kerak bo'ladi. Ta'sir qiluvchi omillarga apparat resurslari, yuklarni muvozanatlash va optimallashtirish usullari kiradi.


  5. FLOPS (sekundiga suzuvchi nuqta operatsiyalari) : Model bir soniyada bajarishi mumkin bo'lgan suzuvchi nuqta operatsiyalari soni. Ushbu ko'rsatkich xulosa chiqarishning hisoblash narxini tushunish uchun foydalidir va turli modellar va optimallashtirish usullarining samaradorligini solishtirish uchun ishlatilishi mumkin. Ta'sir etuvchi omillarga model arxitekturasi, apparat ta'minoti va optimallashtirish texnikasi kiradi.

Xulosalarni optimallashtirish usullarining turlari

Biz ushbu optimallashtirishning barchasini seriyaning keyingi postlarida ko'rib chiqamiz.

  • Model arxitekturasini optimallashtirish : Qatlamlar yoki diqqat boshlarini kamaytirish yoki yanada samaraliroq diqqat mexanizmlaridan foydalanish (masalan, kam e'tibor) kabi xulosa chiqarish samaradorligini oshirish uchun model arxitekturasini o'zgartirish.


  • Tizimni optimallashtirish : ixtisoslashtirilgan apparat vositalaridan foydalanish (masalan, TPUlar, GPUlar) yoki dasturiy ta'minot to'plamini optimallashtirish (masalan, samarali kutubxonalar va ramkalar yordamida) kabi asosiy apparat va dasturiy ta'minot infratuzilmasini optimallashtirish. Uni quyidagilarga bo'lish mumkin:


    • Xotirani boshqarish : Qo'shimcha xarajatlarni kamaytirish va ish faoliyatini yaxshilash uchun xotiradan foydalanishni samarali boshqarish.

    • Samarali hisoblash : parallellikdan foydalanish va kechikishni kamaytirish uchun hisoblashni optimallashtirish.

    • To'plam : o'tkazish qobiliyatini yaxshilash uchun bir vaqtning o'zida bir nechta so'rovlarni qayta ishlash.

    • Rejalashtirish : Resursdan foydalanishni maksimal darajada oshirish uchun vazifalarni samarali rejalashtirish.


  • Modelni siqish : Kvantlash, kesish va distillash kabi usullardan model hajmini kamaytirish va ishlash tezligini sezilarli darajada yo'qotmasdan xulosa chiqarish tezligini yaxshilash uchun foydalanish mumkin.


  • Algoritmni optimallashtirish : Xulosa qilish uchun ishlatiladigan algoritmlarni takomillashtirish, masalan, samaraliroq namuna olish strategiyalaridan foydalanish yoki diqqat mexanizmini optimallashtirish. Masalan, modelga bir nechta tokenlarni parallel ravishda yaratishga imkon beruvchi spekulyativ dekodlash dekodlash kechikishini sezilarli darajada kamaytirishi mumkin.

    Optimallashtirish usullari taksonomiyasi


Xulosa

Ushbu postda biz LLM xulosasi, uning ahamiyati va u bilan bog'liq muammolar haqida umumiy ma'lumot berdik. Bundan tashqari, biz keyingi postlarda optimallashtirish usullarini o'rganishga yordam beradigan asosiy muammo formulalarini aytib o'tdik.


LLM xulosasining nozik tomonlarini va uning ishlashiga ta'sir etuvchi omillarni tushunib, biz LLMlarni real dunyo ilovalari uchun amaliyroq qilishda optimallashtirish usullarining ahamiyatini yaxshiroq tushunishimiz mumkin. Keyingi postda biz model ishlashini saqlab qolgan holda kechikish va resurslar sarfini kamaytirishga e'tibor qaratib, optimallashtirishning aniq usullari va ularni amalga oshirishni chuqurroq o'rganamiz.

Ma'lumotnomalar


L O A D I N G
. . . comments & more!

About Author

Ravi Mandliya HackerNoon profile picture
Ravi Mandliya@mandliya
Machine Learning Engineer focused on building AI-driven recommendation systems and exploring AI safety.

TEGI QILISH

USHBU MAQOLA TAQDIM ETILGAN...