LLM-ების ეფექტური განლაგება: გამოთვლითი და მეხსიერების გამოწვევების გადაჭრა
დიდი ენობრივი მოდელები (LLM-ები) სწრაფად იკიდებენ ფეხს ცოდნაზე დაფუძნებულ ინდუსტრიებში, თუმცა მათი რეალურ სამყაროში განლაგება გამოწვევებითაა სავსე, განსაკუთრებით გამოთვლითი რესურსებისა და მეხსიერების კუთხით, ვრცელი შეტანის თანმიმდევრობებთან მუშაობისას. ეს პოსტი მიმოიხილავს ყველაზე ეფექტურ ტექნიკებს LLM-ების ოპტიმიზებული განლაგებისთვის, მათ შორის დაბალ სიზუსტეს (8-ბიტიანი და 4-ბიტიანი), Flash Attention-ს მეხსიერების ეფექტური გამოყენებისთვის და არქიტექტურულ ინოვაციებს, როგორიცაა Alibi, Rotary embe
დიდი ენობრივი მოდელები (LLM-ები), როგორიცაა GPT3/4, Falcon და LLama, სწრაფად ვითარდებიან ადამიანზე ორიენტირებული ამოცანების გადაჭრის უნარში და იქცევიან შეუცვლელ ინსტრუმენტებად თანამედროვე, ცოდნაზე დაფუძნებულ ინდუსტრიებში.
თუმცა, ამ მოდელების რეალურ სამყაროში განლაგება კვლავ გამოწვევად რჩება: ამ გამოწვევების მთავარი არსი LLM-ების გამოთვლითი და მეხსიერების შესაძლებლობების გაზრდაშია, განსაკუთრებით ვრცელი შეტანის თანმიმდევრობებთან მუშაობისას. ამ ბლოგ პოსტში განვიხილავთ ყველაზე ეფექტურ ტექნიკებს, რომლებიც ამჟამად ხელმისაწვდომია ამ გამოწვევების დასაძლევად LLM-ების ეფექტური განლაგებისთვის:
**დაბალი სიზუსტე (Lower Precision):** კვლევამ აჩვენა, რომ შემცირებული რიცხვითი სიზუსტით (კერძოდ, 8-ბიტიანი და 4-ბიტიანი) მუშაობას შეუძლია გამოთვლითი უპირატესობების მიღწევა მოდელის მუშაობის შესამჩნევი გაუარესების გარეშე.
**Flash Attention:** Flash Attention არის ყურადღების ალგორითმის ვარიაცია, რომელიც არა მხოლოდ მეხსიერების თვალსაზრისით უფრო ეფექტურ მიდგომას გვთავაზობს, არამედ ზრდის ეფექტურობას GPU მეხსიერების ოპტიმიზებული გამოყენების გამო.
**არქიტექტურული ინოვაციები:** იმის გათვალისწინებით, რომ LLM-ები ინფერენციის დროს ყოველთვის ერთნაირად ნაწილდებიან – კერძოდ, ავტორეგრესიული ტექსტის გენერაცია გრძელი შეყვანის კონტექსტით – შემოთავაზებულია მოდელის სპეციალიზებული არქიტექტურები, რომლებიც უფრო ეფექტურ ინფერენციას იძლევა. მოდელის არქიტექტურებში ყველაზე მნიშვნელოვანი მიღწევებია Alibi, Rotary embeddings, Multi-Query Attention (MQA) და Grouped-Query-Attention (GQA).
ამ ჩანაწერის განმავლობაში, ჩვენ შემოგთავაზებთ ავტორეგრესიული გენერაციის ანალიზს ტენზორის პერსპექტივიდან. ჩვენ ჩავუღრმავდებით დაბალი სიზუსტის გამოყენების დადებით და უარყოფით მხარეებს, წარმოვადგენთ უახლესი ყურადღების ალგორითმების ყოვლისმომცველ კვლევას და განვიხილავთ გაუმჯობესებულ LLM არქიტექტურებს. ამასთან ერთად, ჩვენ გავუშვებთ პრაქტიკულ მაგალითებს, რომლებიც აჩვენებს თითოეული მახასიათებლის გაუმჯობესებას.
LLM-ების მეხსიერების მოთხოვნები საუკეთესოდ შეიძლება შეფასდეს LLM-ის, როგორც წონის მატრიცებისა და ვექტორების ერთობლიობის, ხოლო ტექსტური შეყვანის, როგორც ვექტორების თანმიმდევრობის აღქმით. ქვემოთ მოცემულში, ტერმინი „წონები“ გამოყენებული იქნება მოდელის ყველა წონის მატრიცისა და ვექტორის აღსანიშნავად. ამ პოსტის წერის მომენტისთვის, LLM-ები სულ მცირე რამდენიმე მილიარდ პარამეტრს შეიცავს. თითოეული პარამეტრი შედგება ათობითი რიცხვისგან, მაგალითად, 4.5689, რომელიც, როგორც წესი, ინახება float32, bfloat16 ან float16 ფორმატში. ეს საშუალებას გვაძლევს ადვილად გამოვთვალოთ მეხსიერების მოთხოვნა LLM-ის მეხსიერებაში ჩასატვირთად:
მოდელის წონების ჩასატვირთად, რომელსაც აქვს X მილიარდი პარამეტრი, საჭიროა დაახლოებით 4 * X GB VRAM float32 სიზუსტით.
დღესდღეობით, მოდელები იშვიათად იწვრთნება სრული float32 სიზუსტით, არამედ, როგორც წესი, bfloat16 სიზუსტით ან უფრო იშვიათად float16 სიზუსტით. ამიტომ, ზოგადი წესი ხდება:
მოდელის წონების ჩასატვირთად, რომელსაც აქვს X მილიარდი პარამეტრი, საჭიროა დაახლოებით 2 * X GB VRAM bfloat16/float16 სიზუსტით.
მოკლე ტექსტური შეტანისას (1024 ტოკენზე ნაკლები), ინფერენციისთვის საჭირო მეხსიერების მოთხოვნა ძირითადად განისაზღვრება წონების ჩასატვირთად საჭირო მეხსიერებით. ამიტომ, ჯერჯერობით ვივარაუდოთ, რომ ინფერენციისთვის საჭირო მეხსიერება უდრის მოდელის GPU VRAM-ში ჩასატვირთად საჭირო მეხსიერებას. იმის მაგალითად, თუ დაახლოებით რამდენი VRAM არის საჭირო მოდელის bfloat16-ში ჩასატვირთად:
ამ დოკუმენტის წერის მომენტისთვის, ბაზარზე ყველაზე დიდი GPU ჩიპი არის A100, რომელიც გთავაზობთ 80 GB VRAM-ს. ზემოთ ჩამოთვლილი მოდელების უმეტესობას 80 GB-ზე მეტი სჭირდება მხოლოდ ჩასატვირთად და, შესაბამისად, აუცილებლად საჭიროებს ტენზორულ პარალელიზმს და/ან კონვეიერულ პარალელიზმს. 🤗 Transformers არ უჭერს მხარს ტენზორულ პარალელიზმს „მოკიდებულიდან“, რადგან ეს მოითხოვს მოდელის არქიტექტურის სპეციფიკურ ფორმით დაწერას. თუ დაინტერესებული ხართ მოდელების ტენზორულ-პარალელიზმისთვის მოსახერხებელი ფორმით დაწერით, გაეცანით text-generation-inference ბიბლიოთეკას. ნაივური კონვეიერული პარალელიზმი მხარდაჭერილია „მოკიდებულიდან“. ამისათვის, უბრალოდ ჩატვირთეთ მოდელი `device="auto"`-ით, რაც ავტომატურად განათავსებს სხვადასხვა ფენებს ხელმისაწვდომ GPU-ებზე, როგორც ეს აქ არის ახსნილი.
გაითვალისწინეთ, რომ მიუხედავად იმისა, რომ ძალიან ეფექტურია, ეს ნაივური კონვეიერული პარალელიზმი არ წყვეტს GPU-ს უმოქმედობის პრობლემებს. ამისათვის საჭიროა უფრო მოწინავე კონვეიერული პარალელიზმი, როგორც ეს აქ არის ახსნილი. თუ თქვენ გაქვთ წვდომა 8 x 80GB A100 კვანძზე, შეგიძლიათ BLOOM ჩატვირთოთ შემდეგნაირად: `device_map="auto"`-ის გამოყენებით ყურადღების ფენები თანაბრად გადანაწილდებოდა ყველა ხელმისაწვდომ GPU-ზე. ამ ნოუთბუქში ჩვენ გამოვიყენებთ bigcode/octocoder-ს, რადგან მისი გაშვება შესაძლებელია ერთ 40 GB A100 GPU მოწყობილობის ჩიპზე. გაითვალისწინეთ, რომ ყველა მეხსიერებისა და სიჩქარის ოპტიმიზაცია, რომელსაც წინ მივყვებით, თანაბრად ვრცელდება იმ მოდელებზე, რომლებიც საჭიროებენ მოდელურ ან ტენზორულ პარალელიზმს. ვინაიდან მოდელი ჩატვირთულია bfloat16 სიზუსტით, ჩვენი ზემოთ მოცემული წესის მიხედვით, ჩვენ ველოდებით, რომ bigcode/octocoder-ით ინფერენციის გაშვებისთვის საჭირო მეხსიერება იქნება დაახლოებით 31 GB VRAM. მოდით ვცადოთ. ჩვენ ჯერ ვტვირთავთ მოდელს და ტოკენაიზერს, შემდეგ კი ორივეს გადავცემთ Transformers-ის pipeline ობიექტს. Output: Nice, we can now directly use the result to convert bytes into Gigabytes. Let's call `torch.cuda.max_memory_allocated` to measure the peak GPU memory allocation.
თეგები:
#ხელოვნური ინტელექტი
#llm
#მანქანური სწავლება
#ოპტიმიზაცია
#gpu
#ღრმა სწავლება
#მეხსიერება
#ინფერენცია
#პარალელიზმი
#flash attention
#სიზუსტე
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ხელოვნური ინტელექტი
Anthropic-ის Claude-ის აღზევება Apple App Store-ის რეიტინგებში პენტაგონთან მოლაპარაკებების ფონზე
ხელოვნური ინტელექტი
ტრამპის ადმინისტრაცია Anthropic-ს სანქციებს უწესებს ხელოვნური ინტელექტის გამოყენებაზე უარის გამო: ექსპერტი ინდუსტრიის უსაფრთხოების ხარვეზებზე საუბრობს
ხელოვნური ინტელექტი