Biz bilan ulang

Sun'iy intellekt

Katta til modeli parametrlari va xotira talablarini tushunish: chuqur sho'ng'in

mm

Published

 on

Transformatorga asoslangan LLMlarda parametrlarni hisoblash

Katta til modellari (LLMs) so'nggi yillarda ajoyib yutuqlarga erishdi. GPT-4, Google's Gemini va Claude 3 kabi modellar imkoniyatlar va ilovalarda yangi standartlarni o'rnatmoqda. Ushbu modellar nafaqat matn yaratish va tarjima qilishni yaxshilaydi, balki AIning yanada kengroq yechimlarini taqdim etish uchun matn, tasvir, audio va video kiritishlarni birlashtirib, multimodal ishlov berishda yangi zamin yaratadi.

Misol uchun, OpenAI-ning GPT-4 insonga o'xshash matnni tushunish va yaratishda sezilarli yaxshilanishlarni ko'rsatdi, Google-ning Gemini modellari esa matn, tasvir va audio kabi turli xil ma'lumotlar turlarini qayta ishlashda ustunlik qiladi, bu esa uzluksiz va kontekstga mos keladigan shovqinlarni ta'minlaydi. Xuddi shunday, Anthropic's Claude 3 modellari ko'p tilli imkoniyatlari va sun'iy intellekt vazifalarida yaxshilangan ishlashi bilan ajralib turadi.

LLMlarning rivojlanishi jadallashib borar ekan, ushbu modellarning nozik tomonlarini, xususan, ularning parametrlari va xotira talablarini tushunish juda muhim bo'ladi. Ushbu qo'llanma batafsil va tushunarli tushuntirishni taklif qilib, ushbu jihatlarni ochib berishga qaratilgan.

Katta til modellarining asoslari

Katta til modellari nima?

Katta til modellari - bu inson tilini tushunish va yaratish uchun katta ma'lumotlar to'plamida o'qitilgan neyron tarmoqlar. Ular matnni qayta ishlash va ishlab chiqarish uchun o'z-o'ziga e'tibor berish kabi mexanizmlardan foydalanadigan Transformerlar kabi arxitekturalarga tayanadi.

LLMlarda parametrlarning ahamiyati

Parametrlar ushbu modellarning asosiy komponentlari hisoblanadi. Ular vaznlar va noaniqliklarni o'z ichiga oladi, ular prognozlardagi xatolarni minimallashtirish uchun o'quv jarayonida model sozlaydi. Parametrlar soni ko'pincha modelning sig'imi va ishlashi bilan bog'liq bo'lib, uning hisoblash va xotira talablariga ham ta'sir qiladi.

Transformator arxitekturasini tushunish

Transformatorlar - arxitektura

Transformatorlar arxitekturasi

haqida umumiy ma'lumot

Transformator arxitekturasi, Vaswani va boshqalar tomonidan "Diqqat sizga kerak" maqolasida taqdim etilgan. (2017), ko'plab LLMlar uchun asos bo'ldi. U har biri bir nechta bir xil qatlamlardan tashkil topgan kodlovchi va dekoderdan iborat.

Kodlovchi va dekoder komponentlari

  • Kodlovchini: Kirish ketma-ketligini qayta ishlaydi va kontekstdan xabardor tasvirni yaratadi.
  • Dekoder: Kodlovchi tasviri va avval yaratilgan tokenlar yordamida chiqish ketma-ketligini yaratadi.

Asosiy qurilish bloklari

  1. Ko'p boshli e'tibor: Modelga bir vaqtning o'zida kirish ketma-ketligining turli qismlariga e'tibor qaratish imkonini beradi.
  2. Oldinga uzatish neyron tarmoqlari: Modelga chiziqli bo'lmaganlik va murakkablik qo'shadi.
  3. Qatlamni normallashtirish: Oraliq natijalarni normallashtirish orqali treningni barqarorlashtiradi va tezlashtiradi.

Parametrlar sonini hisoblash

Transformator tayyorlash

Transformatorni samarali o'rgatish uchun oldindan tayyorlangan modellar

Transformatorga asoslangan LLMlarda parametrlarni hisoblash

Keling, Transformatorga asoslangan LLM ning har bir komponenti uchun parametr hisobini ajratamiz. Biz asl qog'ozdagi yozuvdan foydalanamiz, bu erda d_model modelning yashirin holatlari hajmini ifodalaydi.

  1. O'rnatish qatlami:
    • Parametrlar = vocab_size * d_model
  2. Ko'p boshli e'tibor:
    • uchun h boshlar, bilan d_k = d_v = d_model / h:
    • Parametrlar = 4 * d_model^2 (Q, K, V va chiqish proyeksiyalari uchun)
  3. Oldinga uzatish tarmog'i:
    • Parametrlar = 2 * d_model * d_ff + d_model + d_ff
    • qayerda d_ff odatda 4 * d_model
  4. Qatlamni normallashtirish:
    • Parametrlar = 2 * d_model (masshtab va tarafkashlik uchun)

Bitta transformator qatlami uchun umumiy parametrlar:

  • Parameters_layer = Parameters_attention + Parameters_ffn + 2 * Parameters_layernorm

bilan model uchun N qatlamlar:

  • Umumiy parametrlar = N * Parameters_layer + Parameters_embedding + Parameters_output

Hisoblash misoli

Keling, quyidagi xususiyatlarga ega modelni ko'rib chiqaylik:

  • d_model = 768
  • h (diqqat boshlari soni) = 12
  • N (qatlamlar soni) = 12
  • vocab_size = 50,000
  1. O'rnatish qatlami:
    • 50,000 * 768 = 38,400,000
  2. Ko'p boshli e'tibor:
    • 4 * 768^2 = 2,359,296
  3. Oldinga uzatish tarmog'i:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616 XNUMX XNUMX
  4. Qatlamni normallashtirish:
    • 2 * 768 = 1,536

Har bir qatlam uchun umumiy parametrlar:

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

12 qatlam uchun umumiy parametrlar:

  • 12 * 7,081,984 = 84,983,808

Umumiy model parametrlari:

  • 84,983,808 + 38,400,000 = 123,383,808

Ushbu model taxminan 123 million parametrga ega bo'ladi.

Xotiradan foydalanish turlari

LLMlar bilan ishlashda biz xotiradan foydalanishning ikkita asosiy turini hisobga olishimiz kerak:

  1. Model xotira: Model parametrlarini saqlash uchun zarur bo'lgan xotira.
  2. Ishchi xotira: Oraliq faollashtirishlar, gradientlar va optimallashtiruvchi holatlarni saqlash uchun xulosa chiqarish yoki oʻqitish vaqtida zarur boʻlgan xotira.

Model xotirasini hisoblash

Model xotirasi to'g'ridan-to'g'ri parametrlar soniga bog'liq. Har bir parametr odatda 32-bitli suzuvchi nuqtali raqam sifatida saqlanadi, ammo ba'zi modellar 16-bitli float bilan aralash aniqlikdagi treningdan foydalanadi.

Model xotirasi (bayt) = Parametrlar soni * Har bir parametr uchun bayt

123 million parametrli namunamiz uchun:

  • Model xotirasi (32 bit) = 123,383,808 4 493,535,232 * 494 bayt = XNUMX XNUMX XNUMX bayt ≈ XNUMX MB
  • Model xotirasi (16 bit) = 123,383,808 2 246,767,616 * 247 bayt = XNUMX XNUMX XNUMX bayt ≈ XNUMX MB

Ishchi xotirani baholash

Ishchi xotira talablari aniq vazifa, partiya hajmi va ketma-ketlik uzunligiga qarab sezilarli darajada farq qilishi mumkin. Xulosa qilish paytida ishlaydigan xotira uchun taxminiy taxmin:

Ishchi xotira ≈ 2 * Model xotirasi

Bu model parametrlarini ham, oraliq faollashtirishni ham saqlashni hisobga oladi. Trening davomida xotira talablari gradientlar va optimallashtiruvchi holatlarni saqlash zarurati tufayli yanada yuqori bo'lishi mumkin:

Trening xotirasi ≈ 4 * Model xotirasi

Bizning namunaviy modelimiz uchun:

  • Ishchi xotira ≈ 2 * 494 MB = 988 MB ≈ 1 GB
  • Trening xotirasi ≈ 4 * 494 MB = 1,976 MB ≈ 2 GB

Doimiy xotiradan foydalanish va maksimal xotiradan foydalanish

Transformator arxitekturasiga asoslangan katta til modellarini o'rgatishda, xotiradan foydalanishni tushunish resurslarni samarali taqsimlash uchun juda muhimdir. Xotira talablarini ikkita asosiy toifaga ajratamiz: barqaror xotiradan foydalanish va maksimal xotiradan foydalanish.

Doimiy xotiradan foydalanish

Barqaror xotiradan foydalanish quyidagi komponentlarni o'z ichiga oladi:

  1. Model og'irliklari: 32N baytni talab qiluvchi model parametrlarining FP4 nusxalari, bu erda N - parametrlar soni.
  2. Optimizator holatlari: Adam optimallashtiruvchisi uchun bu 8N baytni talab qiladi (har bir parametr uchun 2 ta holat).
  3. Gradientlar: 32N baytni talab qiluvchi gradientlarning FP4 nusxalari.
  4. Ma'lumotlarni kiritish: int64 kirishlarini nazarda tutsak, buning uchun 8BD bayt kerak bo'ladi, bu erda B partiya hajmi va D - kirish o'lchami.

Jami barqaror holatdagi xotiradan foydalanishni quyidagicha taxmin qilish mumkin:

  • M_steady = 16N + 8BD bayt

Xotiradan foydalanishning eng yuqori darajasi

Faollashtirishlar gradientni hisoblash uchun saqlanganida, xotiradan foydalanishning eng yuqori darajasi orqaga o'tish paytida sodir bo'ladi. Eng yuqori xotiraga hissa qo'shadigan asosiy omillar:

  1. Qatlamni normallashtirish: Har bir qatlam normasi uchun 4E bayt talab qiladi, bu erda E = BSH (B: partiya hajmi, S: ketma-ketlik uzunligi, H: yashirin o'lcham).
  2. Diqqat bloki:
    • QKV hisoblash: 2E bayt
    • Diqqat matritsasi: 4BSS bayt (S: ketma-ketlik uzunligi)
    • Diqqat chiqishi: 2E bayt
  3. Oldinga uzatish bloki:
    • Birinchi chiziqli qatlam: 2E bayt
    • GELU faollashuvi: 8E bayt
    • Ikkinchi chiziqli qatlam: 2E bayt
  4. O'zaro entropiyani yo'qotish:
    • Logitlar: 6BSV bayt (V: lug'at hajmi)

Umumiy faollashtirish xotirasi quyidagicha baholanishi mumkin:

  • M_act = L * (14E + 4BSS) + 6BSV bayt

Bu erda L - transformator qatlamlari soni.

Jami maksimal xotiradan foydalanish

Mashg'ulot paytida maksimal xotiradan foydalanish barqaror holat xotirasi va faollashtirilgan xotirani birlashtirish orqali taxmin qilinishi mumkin:

  • M_peak = M_steady + M_act + 4BSV bayt

Qo'shimcha 4BSV muddati orqaga o'tishning boshida qo'shimcha ajratishni hisobga oladi.

Ushbu komponentlarni tushunish orqali biz o'qitish va xulosa chiqarish jarayonida xotiradan foydalanishni optimallashtirishimiz mumkin, bu esa resurslarni samarali taqsimlashni va katta til modellarining yaxshilangan ishlashini ta'minlaydi.

Masshtablash qonunlari va samaradorlik masalalari

 LLM uchun masshtablash qonunlari

Tadqiqotlar shuni ko'rsatdiki, LLMlarning ishlashi parametrlar soni ortishi bilan ma'lum miqyoslash qonunlariga amal qiladi. Kaplan va boshqalar. (2020) model ishlashi parametrlar soni, hisoblash byudjeti va ma'lumotlar to'plami hajmining kuch qonuni sifatida yaxshilanishini kuzatdi.

Modelning ishlashi va parametrlar soni o'rtasidagi bog'liqlikni quyidagicha taxmin qilish mumkin:

Ishlash ∝ N^a

Bu erda N - parametrlar soni va a - tilni modellashtirish vazifalari uchun odatda 0.07 ga yaqin masshtab ko'rsatkichi.

Bu shuni anglatadiki, ishlashning 10% yaxshilanishiga erishish uchun biz parametrlar sonini 10^(1/a) ≈ 3.7 marta oshirishimiz kerak.

Samaradorlik texnikasi

LLMlar o'sishda davom etar ekan, tadqiqotchilar va amaliyotchilar samaradorlikni oshirish uchun turli usullarni ishlab chiqdilar:

a) Aralash aniqlikdagi trening: Xotiradan foydalanish va hisoblash talablarini kamaytirish uchun muayyan operatsiyalar uchun 16-bit yoki hatto 8-bitli suzuvchi nuqta raqamlaridan foydalanish.

b) Model parallelligi: Bir qurilmaga sig'maydigan kattaroq modellarni boshqarish uchun modelni bir nechta GPU yoki TPUlar bo'ylab tarqatish.

c) Gradientni tekshirish: Orqaga o'tish paytida ma'lum faollashtirishlarni saqlash o'rniga qayta hisoblash orqali xotira uchun hisob-kitoblarni savdo qilish.

d) Azizillo va kvantlash: Kichikroq, samaraliroq modellarni yaratish uchun kamroq muhim og'irliklarni olib tashlash yoki ularning mashg'ulotdan keyingi aniqligini kamaytirish.

e) Distillash: Kattaroq modellarning xatti-harakatlariga taqlid qilish uchun kichikroq modellarni o'rgatish, potentsial ravishda kamroq parametrlar bilan ishlashning katta qismini saqlab qolish.

Amaliy misol va hisoblar

Eng yirik til modellaridan biri bo'lgan GPT-3 175 milliard parametrga ega. U Transformator arxitekturasining dekoder qismidan foydalanadi. Uning masshtabini tushunish uchun parametrlar sonini gipotetik qiymatlar bilan ajratamiz:

  • d_model = 12288
  • d_ff = 4 * 12288 = 49152
  • Qatlamlar soni = 96

Bitta dekoder qatlami uchun:

Jami parametrlar = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 mlrd.

Jami 96 qatlam uchun:

1.1 milliard * 96 = 105.6 milliard

Qolgan parametrlar o'rnatish va boshqa komponentlardan kelib chiqadi.

Xulosa

Katta til modellarining parametrlari va xotira talablarini tushunish ushbu kuchli vositalarni samarali loyihalash, o'qitish va joylashtirish uchun juda muhimdir. Transformator arxitekturasining tarkibiy qismlarini ajratish va GPT kabi amaliy misollarni ko'rib chiqish orqali biz ushbu modellarning murakkabligi va miqyosi haqida chuqurroq ma'lumotga ega bo'lamiz.

Katta til modellari va ularning ilovalaridagi so'nggi yutuqlarni qo'shimcha tushunish uchun ushbu keng qamrovli qo'llanmalarni ko'rib chiqing:

Men so'nggi besh yilni Mashinani o'rganish va chuqur o'rganishning maftunkor dunyosiga sho'ng'ish uchun o'tkazdim. Mening ishtiyoqim va tajribam meni AI/MLga alohida e'tibor qaratgan holda 50 dan ortiq turli xil dasturiy injiniring loyihalariga hissa qo'shishimga olib keldi. Doimiy qiziquvchanligim meni tabiiy tilni qayta ishlashga ham tortdi, bu sohani men ko'proq o'rganishni xohlayman.