რა მოხდებოდა, თუკი თანამედროვე, ღია კოდის დიდ ენობრივ მოდელებს (LLM) ტიპურ პერსონალურ კომპიუტერზე გავუშვებდით? განა ამას ბევრი სარგებელი არ მოჰყვებოდა? ეს ყველაფერი მართლაც ამაღელვებლად ჟღერს. მაშ, რატომ არ ვაკეთებთ ამას უკვე? დავუბრუნდეთ საწყის დებულებას: თქვენს ტიპურ, გონივრულ ფასიან ლეპტოპს არ აქვს საკმარისი გამოთვლითი სიმძლავრე, რომ LLM-ები მისაღები წარმადობით გაუშვას. არ არსებობს ათასობით ბირთვიანი GPU და არც ელვისებურად სწრაფი მაღალი გამტარუნარიანობის მეხსიერება. მაშ, უიმედო საქმეა? რა თქმა უნდა, არა. არ არსებობს არაფერი, რასაც ადამიანის გონება ვერ გახდის უფრო პატარას, სწრაფს, ელეგანტურს და ეკონომიურს. ბოლო თვეებში, ხელოვნური ინტელექტის საზოგადოება ბევრს მუშაობდა მოდელების ზომის შემცირებაზე მათი პროგნოზირების ხარისხის კომპრომისის გარეშე. სამი მიმართულება განსაკუთრებით საინტერესოა: **აპარატურული აჩქარება:** თანამედროვე CPU არქიტექტურები შეიცავს აპარატურას, რომელიც განკუთვნილია ღრმა სწავლების ყველაზე გავრცელებული ოპერატორების (როგორიცაა მატრიცული გამრავლება ან კონვოლუცია) დასაჩქარებლად, რაც საშუალებას აძლევს ახალ გენერაციულ AI აპლიკაციებს იმუშაოს AI კომპიუტერებზე და მნიშვნელოვნად აუმჯობესებს მათ სიჩქარესა და ეფექტურობას. **მცირე ენობრივი მოდელები (SLM):** ინოვაციური არქიტექტურებისა და ტრენინგის ტექნიკის წყალობით, ეს მოდელები არ ჩამოუვარდებიან ან უკეთესებიც კი არიან, ვიდრე უფრო დიდი მოდელები. იმის გამო, რომ მათ ნაკლები პარამეტრი აქვთ, დასკვნის გამოტანას (inference) ნაკლები გამოთვლითი სიმძლავრე და მეხსიერება სჭირდება, რაც მათ შესანიშნავ კანდიდატებად აქცევს რესურსებით შეზღუდული გარემოსთვის. **კვანტიზაცია:** კვანტიზაცია არის პროცესი, რომელიც ამცირებს მეხსიერების და გამოთვლით მოთხოვნებს მოდელის წონების და აქტივაციების ბიტის სიგანის შემცირებით, მაგალითად, 16-ბიტიანი მცურავწერტილიდან (fp16) 8-ბიტიან მთელ რიცხვებამდე (int8). ბიტების რაოდენობის შემცირება ნიშნავს, რომ მიღებულ მოდელს ნაკლები მეხსიერება სჭირდება დასკვნის გამოტანის დროს (inference), რაც აჩქარებს მეხსიერებით შეზღუდულ ნაბიჯებს, როგორიცაა დეკოდირების ფაზა, როდესაც ტექსტი გენერირდება. გარდა ამისა, ოპერაციები, როგორიცაა მატრიცული გამრავლება, უფრო სწრაფად სრულდება მთელი რიცხვების არითმეტიკის წყალობით, როდესაც კვანტიზირებულია როგორც წონები, ასევე აქტივაციები. ამ სტატიაში, ჩვენ გამოვიყენებთ ყოველივე ზემოთქმულს. Microsoft Phi-2 მოდელიდან დაწყებული, მოდელის წონებზე 4-ბიტიან კვანტიზაციას გამოვიყენებთ, რაც შესაძლებელი გახდა Intel OpenVINO-ს ინტეგრაციით ჩვენს Optimum Intel ბიბლიოთეკაში. შემდეგ, ჩვენ გავუშვებთ დასკვნის გამოტანას (inference) საშუალო დონის ლეპტოპზე, რომელიც აღჭურვილია Intel Meteor Lake CPU-ით. **შენიშვნა:** თუ დაინტერესებული ხართ კვანტიზაციის გამოყენებით როგორც წონებზე, ასევე აქტივაციებზე, მეტი ინფორმაციის ნახვა შეგიძლიათ ჩვენს დოკუმენტაციაში. მოდით, საქმეს შევუდგეთ. 2023 წლის დეკემბერში გამოშვებული Intel Meteor Lake, ამჟამად გადარქმეული Core Ultra-დ, არის ახალი არქიტექტურა, ოპტიმიზებული მაღალი წარმადობის ლეპტოპებისთვის. ეს არის პირველი Intel-ის კლიენტური პროცესორი, რომელიც იყენებს ჩიპლეტ არქიტექტურას. Meteor Lake მოიცავს: ენერგოეფექტურ CPU-ს 16-მდე ბირთვით, ინტეგრირებულ GPU-ს (iGPU) 8-მდე Xe ბირთვით, რომელთაგან თითოეული შეიცავს 16 Xe Vector Engines (XVE)-ს. როგორც სახელიდან ჩანს, XVE-ს შეუძლია ვექტორული ოპერაციების შესრულება 256-ბიტიან ვექტორებზე. ის ასევე ახორციელებს DP4a ინსტრუქციას, რომელიც ითვლის წერტილოვან ნამრავლს (dot product) 4-ბაიტიანი მნიშვნელობების ორ ვექტორს შორის, ინახავს შედეგს 32-ბიტიან მთელ რიცხვში და ამატებს მას მესამე 32-ბიტიან მთელ რიცხვს. **ნეირონული დამუშავების ერთეული (NPU),** რაც სიახლეა Intel-ის არქიტექტურებისთვის. NPU არის სპეციალიზებული AI ძრავა, შექმნილი ეფექტური კლიენტური AI-სთვის. ის ოპტიმიზირებულია რთული AI გამოთვლების ეფექტურად დასამუშავებლად, რაც ათავისუფლებს მთავარ CPU-სა და გრაფიკულ პროცესორს სხვა ამოცანებისთვის. CPU-ს ან iGPU-ს AI ამოცანებისთვის გამოყენებასთან შედარებით, NPU უფრო ენერგოეფექტურია. ქვემოთ მოცემული დემოს გასაშვებად, ჩვენ ავირჩიეთ საშუალო დონის ლეპტოპი, რომელიც აღჭურვილია Core Ultra 7 155H CPU-ით. ახლა, ავარჩიოთ მშვენიერი მცირე ენობრივი მოდელი ამ ლეპტოპზე გასაშვებად. **შენიშვნა:** ამ კოდის Linux-ზე გასაშვებად, დააინსტალირეთ თქვენი GPU დრაივერი ამ ინსტრუქციების მიხედვით. 2023 წლის დეკემბერში გამოშვებული Phi-2 არის 2.7 მილიარდი პარამეტრის მქონე მოდელი, რომელიც გაწვრთნილია ტექსტის გენერაციისთვის. მოხსენებულ ბენჩმარკებზე, მისი მცირე ზომის მიუხედავად, Phi-2 აჭარბებს ზოგიერთ საუკეთესო 7-მილიარდ და 13-მილიარდ LLM-ს და დიდ Llama-2 70B მოდელთანაც კი ახლოს დგას. ეს მას ლეპტოპზე დასკვნის გამოტანისთვის (inference) საინტერესო კანდიდატად აქცევს. ცნობისმოყვარე მკითხველებს ასევე შეუძლიათ ექსპერიმენტები ჩაატარონ 1.1-მილიარდიან TinyLlama მოდელთან. ახლა ვნახოთ, როგორ შეგვიძლია მოდელის შემცირება, რათა ის უფრო პატარა და სწრაფი გავხადოთ. Intel OpenVINO არის ღია კოდის ინსტრუმენტთა ნაკრები AI დასკვნის გამოტანის ოპტიმიზაციისთვის Intel-ის ბევრ აპარატურულ პლატფორმაზე (Github, დოკუმენტაცია), განსაკუთრებით მოდელის კვანტიზაციის გზით. Intel-თან პარტნიორობით, ჩვენ OpenVINO ინტეგრირებული გვაქვს Optimum Intel-ში, ჩვენს ღია კოდის ბიბლიოთეკაში, რომელიც ეძღვნება Hugging Face მოდელების აჩქარებას Intel-ის პლატფორმებზე (Github, დოკუმენტაცია). პირველ რიგში დარწმუნდით, რომ დაინსტალირებული გაქვთ optimum-intel-ის უახლესი ვერსია ყველა საჭირო ბიბლიოთეკით: ეს ინტეგრაცია Phi-2-ის 4-ბიტიან კვანტიზაციას მარტივს ხდის. ჩვენ განვსაზღვრავთ კვანტიზაციის კონფიგურაციას, ვადგენთ ოპტიმიზაციის პარამეტრებს და ვტვირთავთ მოდელს ჰაბიდან. მისი კვანტიზაციისა და ოპტიმიზაციის შემდეგ, მას ლოკალურად ვინახავთ. `ratio` პარამეტრი აკონტროლებს წონების იმ ნაწილს, რომელსაც 4-ბიტამდე კვანტიზაციას ჩავუტარებთ (აქ, 80%), ხოლო დანარჩენს 8-ბიტამდე. `group_size` პარამეტრი განსაზღვრავს წონის კვანტიზაციის ჯგუფების ზომას (აქ, 128), თითოეულ ჯგუფს აქვს საკუთარი სკალირების ფაქტორი. ამ ორი მნიშვნელობის შემცირება, როგორც წესი...