ხელოვნური ინტელექტი
დიდი ენის მოდელის პარამეტრების და მეხსიერების მოთხოვნების გაგება: ღრმა ჩაყვინთვა
![mm](https://www.unite.ai/wp-content/uploads/2023/07/Aayush_mittal-150x150.jpg)
გამოქვეყნებულია
6 დღის წინon
By
აიუშ მიტალისარჩევი
![პარამეტრების გაანგარიშება ტრანსფორმატორზე დაფუძნებულ LLM-ებში](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)
დიდი ენის მოდელები (LLM-ებმა) ბოლო წლებში მნიშვნელოვანი წინსვლა დაინახეს. მოდელები, როგორიცაა GPT-4, Google-ის Gemini და Claude 3, ადგენენ ახალ სტანდარტებს შესაძლებლობებსა და აპლიკაციებში. ეს მოდელები არა მხოლოდ აძლიერებს ტექსტის გენერაციას და თარგმნას, არამედ ახალ ნიადაგს არღვევს მულტიმოდალური დამუშავების სფეროში, აერთიანებს ტექსტს, სურათს, აუდიო და ვიდეო შეყვანას, რათა უზრუნველყოს უფრო სრულყოფილი AI გადაწყვეტილებები.
მაგალითად, OpenAI-ს GPT-4-მა აჩვენა მნიშვნელოვანი გაუმჯობესება ადამიანის მსგავსი ტექსტის გაგებაში და გენერირებაში, ხოლო Google-ის Gemini-ის მოდელები გამოირჩევიან სხვადასხვა ტიპის მონაცემთა დამუშავებით, მათ შორის ტექსტის, სურათების და აუდიოს, რაც საშუალებას აძლევს უფრო შეუფერხებელ და კონტექსტურად რელევანტურ ინტერაქციას. ანალოგიურად, Anthropic-ის Claude 3 მოდელები გამოირჩევიან მრავალენოვანი შესაძლებლობებით და გაუმჯობესებული შესრულებით AI ამოცანებით.
როგორც LLM-ების განვითარება აგრძელებს დაჩქარებას, ამ მოდელების სირთულეების, განსაკუთრებით მათი პარამეტრების და მეხსიერების მოთხოვნების გაგება გადამწყვეტი ხდება. ეს სახელმძღვანელო მიზნად ისახავს ამ ასპექტების დემისტიფიკაციას, გთავაზობთ დეტალურ და ადვილად გასაგებ ახსნას.
დიდი ენის მოდელების საფუძვლები
რა არის დიდი ენის მოდელები?
Large Language Models არის ნერვული ქსელები, რომლებიც გაწვრთნილი არიან მონაცემთა მასიურ ნაკრებებზე, რათა გაიგონ და გამოიმუშაონ ადამიანის ენა. ისინი ეყრდნობიან არქიტექტურებს, როგორიცაა ტრანსფორმერები, რომლებიც იყენებენ მექანიზმებს, როგორიცაა თვითყურადღება ტექსტის დასამუშავებლად და წარმოებისთვის.
პარამეტრების მნიშვნელობა LLM-ებში
პარამეტრები ამ მოდელების ძირითადი კომპონენტებია. ისინი მოიცავს წონებს და მიკერძოებებს, რომლებსაც მოდელი ასწორებს ვარჯიშის დროს, რათა მინიმუმამდე დაიყვანოს შეცდომები წინასწარმეტყველებაში. პარამეტრების რაოდენობა ხშირად დაკავშირებულია მოდელის სიმძლავრესთან და შესრულებასთან, მაგრამ ასევე გავლენას ახდენს მის გამოთვლით და მეხსიერების მოთხოვნებზე.
ტრანსფორმატორის არქიტექტურის გაგება
მიმოხილვა
ტრანსფორმატორის არქიტექტურა, რომელიც წარმოდგენილია ვასვანის და სხვების მიერ ნაშრომში „Attention Is All You Need“. (2017), გახდა საფუძველი მრავალი LLM-ისთვის. იგი შედგება ენკოდერისა და დეკოდერისგან, რომელთაგან თითოეული შედგება რამდენიმე იდენტური ფენისგან.
შიფრატორი და დეკოდერის კომპონენტები
- Encoder: ამუშავებს შეყვანის თანმიმდევრობას და ქმნის კონტექსტური წარმოდგენას.
- დეკოდერი: აგენერირებს გამომავალ თანმიმდევრობას ენკოდერის წარმოდგენის და ადრე გენერირებული ტოკენების გამოყენებით.
ძირითადი სამშენებლო ბლოკები
- მრავალმხრივი ყურადღება: საშუალებას აძლევს მოდელს ფოკუსირება მოახდინოს შეყვანის თანმიმდევრობის სხვადასხვა ნაწილზე ერთდროულად.
- მიწოდების წინსვლის ნერვული ქსელები: მოდელს მატებს არაწრფივობას და სირთულეს.
- ფენის ნორმალიზაცია: ასტაბილურებს და აჩქარებს ვარჯიშს შუალედური შედეგების ნორმალიზებით.
პარამეტრების რაოდენობის გამოთვლა
პარამეტრების გაანგარიშება ტრანსფორმატორზე დაფუძნებულ LLM-ებში
მოდით დავშალოთ პარამეტრის გაანგარიშება ტრანსფორმატორზე დაფუძნებული LLM-ის თითოეული კომპონენტისთვის. ჩვენ გამოვიყენებთ აღნიშვნას ორიგინალური ქაღალდისგან, სადაც d_model
წარმოადგენს მოდელის ფარული მდგომარეობების განზომილებას.
- ჩაშენების ფენა:
- პარამეტრები =
vocab_size
*d_model
- პარამეტრები =
- მრავალმხრივი ყურადღება:
- იყიდება
h
თავები, თანd_k = d_v = d_model / h
: - პარამეტრები = 4 *
d_model
^2 (Q, K, V და გამომავალი პროგნოზებისთვის)
- იყიდება
- მიწოდების ქსელი:
- პარამეტრები = 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
= 768h
(ყურადღების თავების რაოდენობა) = 12N
(ფენების რაოდენობა) = 12vocab_size
= 50,000
- ჩაშენების ფენა:
- 50,000 * 768 = 38,400,000
- მრავალმხრივი ყურადღება:
- 4 * 768 ^ 2 = 2,359,296
- მიწოდების ქსელი:
- 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
- ფენის ნორმალიზაცია:
- 2 * 768 = 1,536
ჯამური პარამეტრები ფენაზე:
- 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984
მთლიანი პარამეტრები 12 ფენისთვის:
- 12 * 7,081,984 = 84,983,808
მოდელის მთლიანი პარამეტრები:
- 84,983,808 + 38,400,000 = 123,383,808
ამ მოდელს დაახლოებით 123 მილიონი პარამეტრი ექნება.
მეხსიერების გამოყენების სახეები
LLM-ებთან მუშაობისას უნდა გავითვალისწინოთ მეხსიერების გამოყენების ორი ძირითადი ტიპი:
- მოდელის მეხსიერება: მოდელის პარამეტრების შესანახად საჭირო მეხსიერება.
- სამუშაო მეხსიერება: მეხსიერება, რომელიც საჭიროა დასკვნის ან ვარჯიშის დროს შუალედური აქტივაციების, გრადიენტებისა და ოპტიმიზატორის მდგომარეობის შესანახად.
მოდელის მეხსიერების გაანგარიშება
მოდელის მეხსიერება პირდაპირ კავშირშია პარამეტრების რაოდენობასთან. თითოეული პარამეტრი ჩვეულებრივ ინახება, როგორც 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 MB = 988 MB ≈ 1 GB
- სავარჯიშო მეხსიერება ≈ 4 * 494 MB = 1,976 MB ≈ 2 GB
სტაბილური მდგომარეობის მეხსიერების გამოყენება და მეხსიერების მაქსიმალური გამოყენება
ტრანსფორმატორის არქიტექტურაზე დაფუძნებული დიდი ენების მოდელების სწავლისას, მეხსიერების გამოყენების გაგება გადამწყვეტია რესურსების ეფექტური განაწილებისთვის. მოდით დავყოთ მეხსიერების მოთხოვნები ორ ძირითად კატეგორიად: სტაბილური მდგომარეობის მეხსიერების გამოყენება და მეხსიერების მაქსიმალური გამოყენება.
სტაბილური მდგომარეობის მეხსიერების გამოყენება
სტაბილური მდგომარეობის მეხსიერების გამოყენება მოიცავს შემდეგ კომპონენტებს:
- მოდელის წონა: FP32 მოდელის პარამეტრების ასლები, საჭიროებს 4N ბაიტს, სადაც N არის პარამეტრების რაოდენობა.
- ოპტიმიზატორი ქვეყნები: Adam ოპტიმიზატორისთვის ეს მოითხოვს 8N ბაიტს (2 მდგომარეობა თითო პარამეტრზე).
- გრადიენტი: FP32 გრადიენტების ასლები, რომლებიც საჭიროებენ 4N ბაიტს.
- Შესაყვანი მონაცემები: ვივარაუდოთ, რომ int64 შეყვანები, ამას სჭირდება 8BD ბაიტი, სადაც B არის ჯგუფის ზომა და D არის შეყვანის განზომილება.
მთლიანი სტაბილური მდგომარეობის მეხსიერების გამოყენება შეიძლება მიახლოებითი იყოს:
- M_steady = 16N + 8BD ბაიტი
პიკის მეხსიერების გამოყენება
მეხსიერების მაქსიმალური გამოყენება ხდება უკან გადასვლის დროს, როდესაც აქტივაციები ინახება გრადიენტური გამოთვლებისთვის. პიკის მეხსიერების ძირითადი წვლილი შეაქვს:
- ფენის ნორმალიზაცია: მოითხოვს 4E ბაიტს ფენის ნორმაზე, სადაც E = BSH (B: ჯგუფის ზომა, S: მიმდევრობის სიგრძე, H: ფარული ზომა).
- ყურადღების ბლოკი:
- QKV გამოთვლა: 2E ბაიტი
- ყურადღების მატრიცა: 4BSS ბაიტი (S: თანმიმდევრობის სიგრძე)
- ყურადღება გამომავალი: 2E ბაიტი
- მიწოდების ბლოკი:
- პირველი ხაზოვანი ფენა: 2E ბაიტი
- GELU აქტივაცია: 8E ბაიტი
- მეორე ხაზოვანი ფენა: 2E ბაიტი
- ჯვარედინი ენტროპიის დაკარგვა:
- ლოჯიტები: 6BSV ბაიტი (V: ლექსიკის ზომა)
მთლიანი აქტივაციის მეხსიერება შეიძლება შეფასდეს შემდეგნაირად:
- M_act = L * (14E + 4BSS) + 6BSV ბაიტი
სადაც L არის ტრანსფორმატორის ფენების რაოდენობა.
მეხსიერების მაქსიმალური მაქსიმალური მოხმარება
ვარჯიშის დროს მეხსიერების გამოყენების პიკი შეიძლება მიახლოებული იყოს სტაბილური მდგომარეობისა და აქტივაციის მეხსიერების კომბინაციით:
- M_peak = M_steady + M_act + 4BSV ბაიტი
დამატებითი 4BSV ვადა ითვალისწინებს დამატებით გამოყოფას უკან გადასვლის დასაწყისში.
ამ კომპონენტების გაგებით, ჩვენ შეგვიძლია გავაუმჯობესოთ მეხსიერების გამოყენება ტრენინგისა და დასკვნის დროს, რაც უზრუნველყოფს რესურსების ეფექტურ განაწილებას და დიდი ენობრივი მოდელების გაუმჯობესებულ შესრულებას.
სკალირების კანონები და ეფექტურობის მოსაზრებები
სკალირების კანონები LLM-ებისთვის
კვლევამ აჩვენა, რომ LLM-ების შესრულება მიდრეკილია სკალირების გარკვეულ კანონებს, როდესაც იზრდება პარამეტრების რაოდენობა. კაპლანი და სხვ. (2020) დაფიქსირდა, რომ მოდელის შესრულება უმჯობესდება, როგორც პარამეტრების რაოდენობის, გამოთვლითი ბიუჯეტის და მონაცემთა სიდიდის სიმძლავრის კანონი.
კავშირი მოდელის შესრულებასა და პარამეტრების რაოდენობას შორის შეიძლება მიახლოებული იყოს:
შესრულება ∝ N^α
სადაც N არის პარამეტრების რაოდენობა და α არის სკალირების მაჩვენებელი, როგორც წესი, დაახლოებით 0.07 ენის მოდელირების ამოცანებისთვის.
ეს გულისხმობს, რომ შესრულების 10%-ით გაუმჯობესების მისაღწევად, ჩვენ უნდა გავზარდოთ პარამეტრების რაოდენობა 10^(1/α) ≈ 3.7-ით.
ეფექტურობის ტექნიკა
როგორც LLM განაგრძობს ზრდას, მკვლევარებმა და პრაქტიკოსებმა შეიმუშავეს სხვადასხვა ტექნიკა ეფექტურობის გასაუმჯობესებლად:
a) შერეული სიზუსტის ვარჯიში: 16-ბიტიანი ან თუნდაც 8-ბიტიანი მცურავი წერტილის ნომრების გამოყენება გარკვეული ოპერაციებისთვის მეხსიერების გამოყენებისა და გამოთვლითი მოთხოვნების შესამცირებლად.
b) მოდელის პარალელიზმი: მოდელის განაწილება მრავალ GPU-ზე ან TPU-ზე უფრო დიდი მოდელების დასამუშავებლად, ვიდრე შეიძლება მოთავსდეს ერთ მოწყობილობაზე.
c) გრადიენტური გამშვები წერტილი: გამოთვლების ვაჭრობა მეხსიერებაზე გარკვეული აქტივაციების ხელახალი გამოთვლით უკან გადასვლის დროს მათი შენახვის ნაცვლად.
d) Pruning და Quantization: ნაკლებად მნიშვნელოვანი წონების მოხსნა ან მათი სიზუსტის შემცირება ვარჯიშის შემდეგ, უფრო მცირე, უფრო ეფექტური მოდელების შესაქმნელად.
e) დისტილაცია: პატარა მოდელების სწავლება უფრო დიდი მოდელების ქცევის მიბაძვის მიზნით, რაც პოტენციურად შეინარჩუნებს შესრულების დიდ ნაწილს ნაკლები პარამეტრით.
პრაქტიკული მაგალითი და გამოთვლები
GPT-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 მილიარდი
დარჩენილი პარამეტრები მოდის ჩაშენებიდან და სხვა კომპონენტებიდან.
დასკვნა
დიდი ენობრივი მოდელების პარამეტრების და მეხსიერების მოთხოვნების გაგება გადამწყვეტია ამ ძლიერი ხელსაწყოების ეფექტური დიზაინის, ტრენინგისა და გამოყენებისთვის. ტრანსფორმატორის არქიტექტურის კომპონენტების დაშლით და პრაქტიკული მაგალითების გამოკვლევით, როგორიცაა GPT, ჩვენ უფრო ღრმად ვიგებთ ამ მოდელების სირთულესა და მასშტაბებს.
დიდი ენობრივი მოდელებისა და მათი აპლიკაციების უახლესი მიღწევების გასაგებად, იხილეთ ეს ყოვლისმომცველი სახელმძღვანელო:
- გამოიკვლიეთ სრული გზამკვლევი Gemma 2-ზე: Google-ის ახალი ღია დიდი ენის მოდელი მისი გაუმჯობესებული შესრულებისა და ინოვაციური მახასიათებლების შესახებ ინფორმაციის მისაღებად.
- შეიტყვეთ Building LLM Agents-ისთვის RAG-ისთვის ნულიდან და მიღმა: ყოვლისმომცველი გზამკვლევი რომელიც განიხილავს გამოწვევებს და გადაწყვეტილებებს მოძიება-გადიდებული თაობის დროს.
- აღმოაჩინეთ სირთულეები LLM-ების ტრენინგის, დახვეწის რეგულირებისა და დასკვნის დაყენება NVIDIA GPU-ებით და CUDA-ით AI სისტემების ოპტიმიზაციისთვის.
![](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)
გასული ხუთი წელი გავატარე მანქანათმცოდნეობის და ღრმა სწავლის მომხიბლავ სამყაროში ჩაძირვაში. ჩემმა გატაცებამ და გამოცდილებამ მიბიძგა, რომ წვლილი შემეტანა 50-ზე მეტ მრავალფეროვან პროგრამულ საინჟინრო პროექტში, განსაკუთრებული აქცენტით AI/ML-ზე. ჩემმა მუდმივმა ცნობისმოყვარეობამ ასევე მიმიზიდა ბუნებრივი ენის დამუშავებისკენ, სფერო, რომლის შემდგომი შესწავლა მსურს.
შეიძლება მოგწონს
MARKLLM: ღია წყაროს ინსტრუმენტარიუმის LLM Watermarking-ისთვის
დიდი ენობრივი მოდელების დაყენება Kubernetes-ზე: ყოვლისმომცველი გზამკვლევი
Sparse Autoencoders, GPT-4 & Claude 3: სიღრმისეული ტექნიკური გამოკვლევა
Qwen2 – Alibaba-ს უახლესი მრავალენოვანი ენობრივი მოდელი გამოწვევებს SOTA-ს, როგორიცაა Llama 3
LLaVA-UHD: LMM, რომელიც აღიქვამს ნებისმიერი ასპექტის თანაფარდობას და მაღალი გარჩევადობის სურათებს
დიდი ენების მოდელების სუპერ დამუხტვა მრავალ ტოკენური პროგნოზით
ბოლო პოსტები
- Llama 3.1: Meta-ს ყველაზე მოწინავე ღია AI მოდელი – ყველაფერი რაც თქვენ უნდა იცოდეთ
- თქვენი მოწყობილობის გამოცდილების რევოლუცია: როგორ განაახლებს Apple-ის AI ტექნოლოგიას
- AI წარმატებული გადაწყვეტილებების გასაღები? ქცევის მონაცემები
- GAN-ების როლი კიბერუსაფრთხოების გაუმჯობესებაში
- AI თმის ვარცხნილობის 10 საუკეთესო აპლიკაცია (2024 წლის ივლისი)