GaLore-ის შესაძლებლობა, ხელი შეუწყოს 7 მილიარდ პარამეტრამდე მოდელების, მაგალითად Llama არქიტექტურაზე დაფუძნებული მოდელების, ვარჯიშს სამომხმარებლო GPU-ებზე, ისეთებზე როგორიცაა NVIDIA RTX 4090, ნამდვილად რევოლუციურია. ეს მიიღწევა ტრადიციულად ოპტიმიზატორის მდგომარეობებთან და გრადიენტებთან დაკავშირებული მეხსიერების მოთხოვნების მნიშვნელოვანი შემცირებით, ვარჯიშის პროცესში. მიდგომა იყენებს ღრმა ნეირონულ ქსელებში გრადიენტების თანდაყოლილ დაბალ-რანგიან სტრუქტურას, იყენებს პროექციას, რომელიც ამცირებს შესანახი და მანიპულირებული მონაცემების განზომილებას. ოპტიმიზატორის მდგომარეობა, განსაკუთრებით ადაპტური ოპტიმიზაციის ალგორითმებში, როგორიცაა Adam, მოდელის ვარჯიშის დროს მეხსიერების მოხმარების მნიშვნელოვან ნაწილს შეადგენს. GaLore ამ პრობლემას აგვარებს გრადიენტების დაბალგანზომილებიან ქვესივრცეში პროექტირებით, სანამ მათ ოპტიმიზატორი დაამუშავებს. ეს არა მხოლოდ ამცირებს ამ მდგომარეობების შესანახად საჭირო მეხსიერებას, არამედ ინარჩუნებს ოპტიმიზაციის პროცესის ეფექტურობას. მეხსიერების დაზოგვა მნიშვნელოვანია; ავტორები აცხადებენ, რომ „ოპტიმიზატორის მდგომარეობების შესანახად საჭირო მეხსიერება 82.5%-ზე მეტით შემცირდა ვარჯიშის დროს“, რაც შესაძლებელს ხდის უფრო დიდი მოდელების ვარჯიშს ან უფრო დიდი პაკეტის ზომების გამოყენებას იგივე მეხსიერების შეზღუდვებში. 8-ბიტიანი სიზუსტის ოპტიმიზატორებთან კომბინაციაში, ეს დაზოგვა კიდევ უფრო თვალსაჩინო ხდება. GaLore-ის ეფექტურობის კრიტიკული კომპონენტია მისი დინამიური ქვესივრცის შეცვლის მექანიზმი, რომელიც საშუალებას აძლევს მოდელს ნავიგაცია მოახდინოს სხვადასხვა დაბალ-რანგიან ქვესივრცეებში ვარჯიშის პროცესში. ეს უზრუნველყოფს, რომ მოდელი არ შემოიფარგლოს პარამეტრების სივრცის შეზღუდული ნაწილით, რითაც ინარჩუნებს სრულ-პარამეტრული სწავლის შესაძლებლობას. გადაწყვეტილება, თუ როდის და როგორ უნდა შეიცვალოს ქვესივრცეები, გადამწყვეტია; ამ ცვლილებების სიხშირე არის ბალანსი თანმიმდევრული ოპტიმიზაციის ტრაექტორიის შენარჩუნებასა და გრადიენტის დაბალ-რანგიანი სტრუქტურის განვითარებად ლანდშაფტთან ადაპტაციას შორის. გრადიენტის სტრუქტურაში ცვლილებების საპასუხოდ ამ პროექციების დინამიურად მორგების უნარი GaLore-ის არსენალში ძლიერი ინსტრუმენტია, რაც საშუალებას იძლევა მეხსიერება-ოპტიმიზაციის კომპრომისებზე უფრო ნატიფი კონტროლი იქნას გამოყენებული დიდი მოდელების ვარჯიშის დროს. GaLore-ის კომბინაცია 8-ბიტიანი სიზუსტის ოპტიმიზატორებთან წარმოადგენს სინერგიას, რომელიც მაქსიმალურად ზრდის მეხსიერების ეფექტურობას, ვარჯიშის პროცესის მთლიანობისა და შესრულების შენარჩუნებით. 8-ბიტიანი ოპტიმიზატორები ამცირებენ მეხსიერების ნაკვალევს ოპტიმიზატორის მდგომარეობების კვანტიზაციით. GaLore-ის პროექციის მექანიზმთან ერთად გამოყენებისას, შედეგი არის მეხსიერების მაღალეფექტური ვარჯიშის რეჟიმი, რომელიც არ აზიანებს მოდელის სიზუსტეს ან კონვერგენციის სიჩქარეს. ეს კომბინაცია განსაკუთრებით ეფექტურია სცენარებში, სადაც მეხსიერება კრიტიკული შეზღუდვაა, მაგალითად, დიდი მოდელების ვარჯიშისას სამომხმარებლო აპარატურაზე ან მოდელების განთავსებისას მეხსიერება შეზღუდულ გარემოში. ეს იძლევა საშუალებას გამოვიყენოთ უფრო რთული მოდელები და უფრო დიდი მონაცემთა ნაკრებები იგივე აპარატურული შეზღუდვებით, რაც ზღვარს წევს იმისა, თუ რა შეიძლება მიღწეული იყოს შეზღუდული რესურსებით. 8-ბიტიანი ოპტიმიზატორების GaLore-თან ინტეგრაცია დიდი ენობრივი მოდელების (LLMs) ვარჯიშისთვის გულისხმობს გრადიენტების, წონების და ოპტიმიზატორის მდგომარეობების 8-ბიტიან წარმოდგენებამდე კვანტიზაციას. ეს კვანტიზაციის პროცესი მნიშვნელოვნად ამცირებს მეხსიერების ნაკვალევს, რაც შესაძლებელს ხდის უფრო დიდი მოდელების ვარჯიშს ან უფრო დიდი პაკეტის ზომების გამოყენებას იგივე მეხსიერების შეზღუდვებში. ამ ინტეგრაციის ალგორითმული დეტალები მოიცავს რამდენიმე ძირითად ნაბიჯს, რომელთაგან ზოგიერთი მნიშვნელოვნად ისარგებლებს CUDA-ს მშობლიური იმპლემენტაციით ეფექტურობის გასაუმჯობესებლად. GaLore ხსნის ახალ შესაძლებლობებს ამ ტექნიკების კიდევ უფრო მჭიდროდ ინტეგრირებისთვის კვანტიზაციასთან და მატრიცების სპეციალიზებულ პარამეტრიზაციასთან, რამაც შეიძლება გამოიწვიოს მეხსიერების გამოყენების შემდგომი შემცირება. ამ მიმართულებას ამჟამად ვიკვლევთ bitsandbytes ბიბლიოთეკაში. **ძირითადი ალგორითმული ნაბიჯები:** * **გრადიენტების პროექცია:** GaLore ახდენს სრულსიზუსტიანი გრადიენტების პროექტირებას დაბალ-რანგიან ქვესივრცეში საპროექციო მატრიცების გამოყენებით. ეს ნაბიჯი ამცირებს გრადიენტების განზომილებას, რომლებიც შემდეგ 8-ბიტიან ფორმატამდე კვანტიზდება. * **კვანტიზაცია:** პროექტირებული გრადიენტები, მოდელის წონებთან და ოპტიმიზატორის მდგომარეობებთან ერთად (მაგალითად, Adam-ის მოძრავი საშუალოები), კვანტიზდება 32-ბიტიანი მცურავწერტილიდან 8-ბიტიან მთელ რიცხვებად. ეს გულისხმობს მცურავწერტილიანი მნიშვნელობების 8-ბიტიან დიაპაზონამდე მასშტაბირებას და უახლოეს მთელ რიცხვამდე დამრგვალებას. * **ოპტიმიზატორის განახლება:** 8-ბიტიანი კვანტიზებული გრადიენტები გამოიყენება მოდელის წონების განახლებისთვის. ეს ნაბიჯი გულისხმობს გრადიენტების უკან მცურავწერტილიან ფორმატში დეკვანტიზაციას, ოპტიმიზატორის განახლების წესის გამოყენებას (მაგალითად, Adam-ის მომენტის განახლება და პარამეტრის რეგულირება) და შემდეგ განახლებული ოპტიმიზატორის მდგომარეობების ისევ 8-ბიტად კვანტიზაციას შესანახად. * **დეკვანტიზაცია და წონის განახლება:** 8-ბიტიანი კვანტიზებული წონები განიცდის დეკვანტიზაციას მცურავწერტილიან წარმოდგენამდე დასამუშავებლად, თუმცა ინარჩუნებს 8-ბიტიან სიზუსტეს, რაც მათი კვანტიზებული ფორმის თანდაყოლილია მნიშვნელობების შეზღუდული დიაპაზონის გამო. ეს ნაბიჯი საჭიროა, რადგან PyTorch-ის მსგავსი ფრეიმვორკებში სტანდარტული ოპერაციები არ უჭერს მხარს 8-ბიტიან მთელ რიცხვებს.