კვანტიზაცია არის ტექნიკა, რომელიც AI მოდელს ამცირებს — მისი შიდა რიცხვების სიზუსტეს ამცირებს, რათა მცირე რაოდენობის სიზუსტე დიდი მოცულობის მეხსიერებასა და გამოთვლით სიმძლავრეზე გადავცვალოთ. სწორედ ამის წყალობით ხერხდება მილიარდობით პარამეტრიანი მოდელის ტელეფონზე გაშვება, დატაცენტრის ნაცვლად.

მცოცავი წერტილიდან მთელ რიცხვებამდე

გაწვრთნილი დიდი ენობრივი მოდელის თითოეული წონა უბრალოდ რიცხვია — ჩვეულებრივ, 32-ბიტიან ან 16-ბიტიან მცოცავი წერტილის ფორმატში შენახული, რომელიც დიდი დიაპაზონის ათწილადების ზუსტად წარმოსაჩენად არის შექმნილი. ეს სიზუსტე ძვირი ჯდება: 7 მილიარდპარამეტრიან მოდელს, 16-ბიტიანი სიზუსტით შენახვისას, მხოლოდ წონების დასაჭერად დაახლოებით 14 გიგაბაიტი მეხსიერება სჭირდება — და ეს მანამდე, სანამ ის ერთ შეკითხვასაც კი უპასუხებდეს.

კვანტიზაცია ამ 16- თუ 32-ბიტიან რიცხვებს გაცილებით პატარათი ცვლის — 8-ბიტიანი ან 4-ბიტიანი მთელი რიცხვებით, ხოლო ყველაზე აგრესიულ შემთხვევებში — თითო ბიტით თითო წონაზე. რიცხვის სიზუსტის განახევრება დაახლოებით განახევრებს საჭირო მეხსიერებასაც და მონაცემის იმ მოცულობასაც, რომელიც მეხსიერებასა და პროცესორს შორის უნდა გადაინაცვლოს — ეს კი ხშირად სწორედ განსაზღვრავს, რამდენად სწრაფად უპასუხებს მოდელი.

როგორ ხდება შეკუმშვა სინამდვილეში

მოდელის დასაკვანტიზებლად თითოეული წონის შესაძლო მნიშვნელობების დიაპაზონი გაცილებით მცირე რაოდენობის დისკრეტულ მნიშვნელობებზე გადაინაცვლება, შემდეგ კი ყოველი საწყისი წონა უახლოეს ასეთ მნიშვნელობამდე მრგვალდება. წონა, რომელიც ადრე მილიარდობით შესაძლო ათწილადიდან ერთ-ერთი იყო, ახლა შეიძლება მხოლოდ 16-დან (4-ბიტიან შემთხვევაში) ან თუნდაც 2-3-დან (1-ბიტიან თუ „ტერნარულ" სიზუსტეში) ერთ-ერთი გახდეს.

ეს შეიძლება მოხდეს ვარჯიშის დასრულების შემდეგ — ე.წ. post-training კვანტიზაცია (PTQ) — რაც სწრაფია და დამატებით სავარჯიშო მონაცემებს არ საჭიროებს. ან, პირიქით, თავად ვარჯიშის დროს — quantization-aware ვარჯიში (QAT) — როცა მოდელი მრგვალების გამო წარმოქმნილ დანაკარგს თავად ვარჯიშისას სწავლობს კომპენსირებას, რაც დაბალ სიზუსტეზეც უკეთეს შედეგს იძლევა, თუმცა დამატებით სავარჯიშო დროს მოითხოვს.

დღეს გავრცელებული ღია წონების მოდელების უმეტესობა GGUF ფორმატშია გამოშვებული — ეს ფორმატი llama.cpp-ის პროექტისთვის შეიქმნა და მოდელს ისეთ დონეზე კვანტიზებულს გვთავაზობს, როგორიცაა Q8_0, Q4_K_M თუ Q2_K, რაც მას ჩვეულებრივ ლეპტოპსა თუ ტელეფონზე ეფექტურად გაშვების საშუალებას აძლევს, დატაცენტრის GPU-ების ნაცვლად. ვისაც მოდელის თვითონ კვანტიზაცია სურს სცადოს, ამისთვის უფასო, ღია კოდის ხელსაწყოებია ხელმისაწვდომი.

კომპრომისი: პატარა ზომა უფასოდ არ მოდის

კვანტიზაცია დანაკარგის გარეშე არ ხდება. რაც უფრო აგრესიულად კუმშავენ მოდელს, მით უფრო შორდება მისი პასუხები საწყისს — და ისტორიულად, წონაზე 4 ბიტზე დაბლა დაწევა შესამჩნევად აუარესებდა შედეგებს ისეთ ამოცანებში, სადაც ზუსტი მსჯელობა თუ არითმეტიკაა საჭირო. ლაბორატორიები ამას მართავენ მრგვალების კალიბრირებით რეპრეზენტატიულ მონაცემებზე, მხოლოდ ყველაზე ნაკლებად მგრძნობიარე ფენების აგრესიულად კვანტიზებით, ან, QAT-ის მსგავსად, მოდელის თავიდანვე ამ დანაკარგისადმი მედეგობაზე გავარჯიშებით.

ტექნიკა განუწყვეტლივ ვითარდება: ზოგიერთი უახლესი ღია წონების მოდელი უკვე 1-ბიტიან ან ტერნარულ (სამმნიშვნელოვან) წონებს იყენებს — რაც ადრე გამოსაყენებლად ზედმეტად დანაკარგიანად მიიჩნეოდა — და მაინც აცხადებენ, რომ მოდელის თავდაპირველი ბენჩმარკული შედეგების უმეტესობას ინარჩუნებენ.

რატომ აქვს მნიშვნელობა

კვანტიზაცია მთავარი მიზეზთაგანია, რის გამოც ონ-დივაის AI საერთოდ შესაძლებელი გახდა. მოდელი, რომელიც მხოლოდ დატაცენტრის GPU-ების სტელაჟზე თავსდება, ვერც ოფლაინ იმუშავებს, ვერც მომხმარებლის მონაცემების მოწყობილობის გარეთ არასდროს გატანას უზრუნველყოფს და ყოველი ღრუბელში მიღებული პასუხისთვის ფულს მოითხოვს. კვანტიზებული მოდელი, რომელიც რამდენიმე გიგაბაიტ მეხსიერებაში თავსდება, შეუძლია იმუშაოს ლოკალურად, ოფლაინ და ჩამოტვირთვის შემდეგ — უფასოდ. ლაბორატორიების არჩევანი აქ მარტივია: მცირე რაოდენობის სიზუსტე დიდი მოცულობის მოქნილობის სანაცვლოდ — სად და რამდენად იაფად შეიძლება მოდელის გაშვება.

სიახლეებში

PrismML-ის Bonsai 27B, რომელიც 27-მილიარდპარამეტრიანი, Qwen-ზე დაფუძნებული მოდელის 1-ბიტიან და ტერნარულ ვერსიებად გამოვიდა, ცხადყოფს, რამდენად შორს შეიძლება მივიდეს ეს შეკუმშვა — მოდელი, რომელსაც ჩვეულებრივ ათეულობით გიგაბაიტი სჭირდებოდა, 6 გიგაბაიტზე ნაკლებამდე შემცირდა, რაც თანამედროვე სმარტფონზეც კი მის გაშვებას შესაძლებელს ხდის.

ხშირად დასმული კითხვები

კვანტიზაცია მოდელს „სულელს" ხდის? შეიძლება, განსაკუთრებით ძალიან დაბალ სიზუსტეზე, თუმცა კარგად კალიბრირებული 8- ან 4-ბიტიანი კვანტიზაცია ჩვეულებრივ მოდელის თავდაპირველ შესაძლებლობებს დიდწილად ინარჩუნებს.

კვანტიზაცია იგივეა, რაც მოდელის დისტილაცია? არა. დისტილაცია პატარა მოდელს ავარჯიშებს, დიდის მიბაძვით, ხოლო კვანტიზაცია იმავე მოდელს ტოვებს, უბრალოდ მის არსებულ წონებს ნაკლები სიზუსტით ინახავს.

შემიძლია თუ არა თვითონ დავაკვანტიზო მოდელი? დიახ — ისეთი ხელსაწყოები, როგორიცაა llama.cpp და Hugging Face-ის ბიბლიოთეკები, ბევრი ღია წონების მოდელის კვანტიზაციის საშუალებას პირად კომპიუტერზეც იძლევა, თუმცა გარკვეული ტექნიკური მომზადებაა საჭირო.

წყაროები: IBM, „What Is Quantization?"; Hugging Face Optimum-ის კვანტიზაციის სახელმძღვანელო; llama.cpp-ის კვანტიზაციის დოკუმენტაცია.