Sun'iy intellekt
Katta til modeli parametrlari va xotira talablarini tushunish: chuqur sho'ng'in
![mm](https://www.unite.ai/wp-content/uploads/2023/07/Aayush_mittal-150x150.jpg)
Published
5 kun oldinon
Mundarija
![Transformatorga asoslangan LLMlarda parametrlarni hisoblash](https://www.unite.ai/wp-content/uploads/2024/07/DALL·E-2024-07-16-16.06.52-A-16_9-aspect-ratio-clean-minimal-theme-illustration-of-computer-memory-and-a-2D-matrix.-The-artwork-features-simple-and-sleek-lines-representing-com.webp)
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
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
- Ko'p boshli e'tibor: Modelga bir vaqtning o'zida kirish ketma-ketligining turli qismlariga e'tibor qaratish imkonini beradi.
- Oldinga uzatish neyron tarmoqlari: Modelga chiziqli bo'lmaganlik va murakkablik qo'shadi.
- Qatlamni normallashtirish: Oraliq natijalarni normallashtirish orqali treningni barqarorlashtiradi va tezlashtiradi.
Parametrlar sonini hisoblash
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.
- O'rnatish qatlami:
- Parametrlar =
vocab_size
*d_model
- Parametrlar =
- Ko'p boshli e'tibor:
- uchun
h
boshlar, biland_k = d_v = d_model / h
: - Parametrlar = 4 *
d_model
^2 (Q, K, V va chiqish proyeksiyalari uchun)
- uchun
- Oldinga uzatish tarmog'i:
- Parametrlar = 2 *
d_model
*d_ff
+d_model
+d_ff
- qayerda
d_ff
odatda 4 *d_model
- Parametrlar = 2 *
- Qatlamni normallashtirish:
- Parametrlar = 2 *
d_model
(masshtab va tarafkashlik uchun)
- Parametrlar = 2 *
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
= 768h
(diqqat boshlari soni) = 12N
(qatlamlar soni) = 12vocab_size
= 50,000
- O'rnatish qatlami:
- 50,000 * 768 = 38,400,000
- Ko'p boshli e'tibor:
- 4 * 768^2 = 2,359,296
- Oldinga uzatish tarmog'i:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616 XNUMX XNUMX
- 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:
- Model xotira: Model parametrlarini saqlash uchun zarur bo'lgan xotira.
- 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:
- Model og'irliklari: 32N baytni talab qiluvchi model parametrlarining FP4 nusxalari, bu erda N - parametrlar soni.
- Optimizator holatlari: Adam optimallashtiruvchisi uchun bu 8N baytni talab qiladi (har bir parametr uchun 2 ta holat).
- Gradientlar: 32N baytni talab qiluvchi gradientlarning FP4 nusxalari.
- 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:
- 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).
- Diqqat bloki:
- QKV hisoblash: 2E bayt
- Diqqat matritsasi: 4BSS bayt (S: ketma-ketlik uzunligi)
- Diqqat chiqishi: 2E bayt
- Oldinga uzatish bloki:
- Birinchi chiziqli qatlam: 2E bayt
- GELU faollashuvi: 8E bayt
- Ikkinchi chiziqli qatlam: 2E bayt
- 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:
- Gemma 2 bo'yicha to'liq qo'llanmani o'rganing: Googlening yangi ochiq katta til modeli uning yaxshilangan ishlashi va innovatsion xususiyatlari haqida tushunchalar uchun.
- RAG uchun Build LLM agentlari haqida noldan va undan tashqarida bilib oling: To'liq qo'llanma Qayta tiklash-kengaytirilgan avlodda muammolar va yechimlarni muhokama qiladi.
- ning nozik tomonlarini kashf eting NVIDIA GPU va CUDA bilan LLMlarni o'qitish, nozik sozlash va xulosa chiqarishni o'rnatish AI tizimlarini optimallashtirish uchun.
![](https://www.unite.ai/wp-content/uploads/2022/10/join-the-future-newsletter.png)
![](https://www.unite.ai/wp-content/uploads/2024/01/Unite-AI-Mobile-Newsletter-1.png)
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.
Sizga yoqishi mumkin
MARKLLM: LLM moybo'yoqlari uchun ochiq manbali asboblar to'plami
Kubernetes-da katta til modellarini o'rnatish: keng qamrovli qo'llanma
Noyob avtomatik kodlovchilarni tushunish, GPT-4 va Klod 3: chuqur texnik tadqiqotlar
Qwen2 – Alibaba’ning eng so‘nggi ko‘p tilli modeli Llama 3 kabi SOTA’ni qiyinlashtiradi
LLaVA-UHD: har qanday tomonlar nisbati va yuqori aniqlikdagi tasvirlarni idrok etuvchi LMM
Ko'p tokenli bashoratli katta tilli modellarni zaryadlash
Recent Posts
- 10 ta eng yaxshi AI soch turmagi ilovalari (iyul, 2024)
- Fikringizni o'qish: siz ko'rgan va eshitgan narsalarni qayta tiklash uchun AI miya faoliyatini qanday hal qiladi
- LLM joylashuvini optimallashtirish: vLLM PagedAttention va samarali AI xizmatining kelajagi
- Charity Majors, CTO va Honeycomb hammuassisi - Intervyu seriyasi
- Yaqinlashib kelayotgan ishchilarning chiqishi tarmoq xavfsizligi uchun nimani anglatadi va tashkilotlar qanday javob berishi mumkin