100-ჯერ გაზრდილი წარმადობა: დიდი AI მოდელების ოპტიმიზაცია Hugging Face-ის ინფრასტრუქტურაზე
მიუხედავად იმისა, რომ დიდი ენობრივი მოდელების ექსპერიმენტირება მარტივია, მათი მაქსიმალური წარმადობით პროდუქციაში განთავსება რთული საინჟინრო გამოწვევაა. Hugging Face გთავაზობთ გადაწყვეტას თავისი Accelerated Inference API-ის მეშვეობით, რომელიც უზრუნველყოფს 100-ჯერ გაზრდილ სიჩქარეს და მასშტაბირებადობას. სტატია დეტალურად აღწერს ოპტიმიზაციის სხვადასხვა დონეს – ბიბლიოთეკების გამოყენებიდან აპარატურის სპეციფიკურ მოდიფიკაციამდე – და ხაზს უსვამს Hugging Face-ის ექსპერტიზასა და პარტნიორობებს ტექნიკის წამყვ
მიუხედავად იმისა, რომ 🤗 Transformers-ში მოდელებთან ექსპერიმენტები მარტივია, ამ დიდი მოდელების პროდუქციაში მაქსიმალური წარმადობით განთავსება და მათი მასშტაბირებად არქიტექტურად მართვა რთული საინჟინრო გამოწვევაა ნებისმიერი მანქანური სწავლების ინჟინრისთვის. ამ 100-ჯერ გაზრდილი წარმადობისა და ჩაშენებული მასშტაბირებადობის გამო ჩვენი ჰოსტირებული Accelerated Inference API-ის აბონენტებმა არჩიეს თავიანთი NLP ფუნქციების მის ბაზაზე აგება. წარმადობის ბოლო 10-ჯერ გაუმჯობესებისთვის, ოპტიმიზაცია უნდა იყოს დაბალ დონეზე, სპეციფიკური მოდელისა და სამიზნე აპარატურისთვის. ეს პოსტი აზიარებს ჩვენს ზოგიერთ მიდგომას, რომელიც მიზნად ისახავს გამოთვლითი რესურსების მაქსიმალურად ეფექტურად გამოყენებას ჩვენი მომხმარებლებისთვის. 🍋
ოპტიმიზაციის მოგზაურობის პირველი ეტაპი ყველაზე ხელმისაწვდომია და ეხება Hugging Face ბიბლიოთეკების მიერ შემოთავაზებული ტექნიკის საუკეთესო კომბინაციის გამოყენებას, სამიზნე აპარატურის მიუხედავად. ჩვენ ვიყენებთ Hugging Face-ის მოდელების კონვეიერებში ჩაშენებულ ყველაზე ეფექტურ მეთოდებს, რათა შევამციროთ გამოთვლების რაოდენობა ყოველი forward pass-ის დროს. ეს მეთოდები სპეციფიკურია მოდელის არქიტექტურისა და სამიზნე ამოცანისთვის; მაგალითად, GPT არქიტექტურაზე ტექსტის გენერირების ამოცანისთვის, ჩვენ ვამცირებთ ყურადღების მატრიცების გამოთვლის განზომილებას, ფოკუსირებით ბოლო ტოკენის ახალ ყურადღებაზე ყოველ გაშვებაზე: ტოკენიზაცია ხშირად წარმოადგენს ეფექტურობის შემაფერხებელ ფაქტორს ინფერენციის დროს. ჩვენ ვიყენებთ 🤗 Tokenizers ბიბლიოთეკის ყველაზე ეფექტურ მეთოდებს, ვსარგებლობთ მოდელის ტოკენაიზერის Rust-ის იმპლემენტაციით ჭკვიან ქეშირებასთან ერთად, რათა მივიღოთ 10-ჯერ გაზრდილი სიჩქარე საერთო ლატენტურობისთვის. Hugging Face ბიბლიოთეკების უახლესი ფუნქციების გამოყენებით, ჩვენ მივაღწევთ საიმედო 10-ჯერ გაზრდილ სიჩქარეს სტანდარტულ (out-of-box) განლაგებასთან შედარებით მოცემული მოდელი/აპარატურის წყვილისთვის. ვინაიდან Transformers-ისა და Tokenizers-ის ახალი ვერსიები, როგორც წესი, ყოველთვიურად გამოდის, ჩვენს API მომხმარებლებს არ სჭირდებათ მუდმივად ახალ ოპტიმიზაციის შესაძლებლობებთან ადაპტირება – მათი მოდელები უბრალოდ უფრო სწრაფად მუშაობენ.
აქ კი საქმე ნამდვილად რთულდება. საუკეთესო შესაძლო წარმადობის მისაღწევად, ჩვენ დაგვჭირდება მოდელის მოდიფიცირება და მისი კომპილაცია სპეციფიკური აპარატურისთვის, ინფერენციის მიზნით. აპარატურის არჩევანი დამოკიდებულია როგორც მოდელზე (მეხსიერების ზომა), ასევე მოთხოვნის პროფილზე (მოთხოვნების დაჯგუფება). ერთი და იგივე მოდელიდან პროგნოზების სერვისის გაწევისასაც კი, ზოგიერთ API მომხმარებელს შესაძლოა მეტი სარგებელი მიიღოს CPU-ზე დაჩქარებული ინფერენციიდან, ზოგს კი – GPU-ზე დაჩქარებული ინფერენციიდან, თითოეულ შემთხვევაში სხვადასხვა ოპტიმიზაციის ტექნიკისა და ბიბლიოთეკის გამოყენებით. მას შემდეგ, რაც გამოთვლითი პლატფორმა შეირჩევა კონკრეტული გამოყენების შემთხვევისთვის, შეგვიძლია საქმეს შევუდგეთ. აქ მოცემულია CPU-ს სპეციფიკური ტექნიკა, რომელიც შეიძლება გამოყენებულ იქნას სტატიკური გრაფის საშუალებით: ღია წყაროს ბიბლიოთეკებიდან (მაგალითად, 🤗 Transformers ONNX Runtime-თან ერთად) სტანდარტული ფუნქციების გამოყენება საუკეთესო შედეგებს არ მოგვცემს, ან შეიძლება გამოიწვიოს სიზუსტის მნიშვნელოვანი დაკარგვა, განსაკუთრებით კვანტიზაციის დროს. არ არსებობს უნივერსალური გადაწყვეტა და საუკეთესო გზა განსხვავებულია თითოეული მოდელის არქიტექტურისთვის. მაგრამ Transformers-ის კოდსა და ONNX Runtime-ის დოკუმენტაციაში ღრმა ჩაძიებით, შესაძლებელია კიდევ 10-ჯერ გაზრდილი სიჩქარის მიღწევა.
ტრანსფორმერის არქიტექტურა გადამწყვეტი გარდამტეხი მომენტი იყო მანქანური სწავლების წარმადობისთვის, დაწყებული ბუნებრივი ენის დამუშავებიდან (NLP). ბოლო 3 წლის განმავლობაში ბუნებრივი ენის გაგებისა და გენერირების გაუმჯობესების ტემპი მკვეთრად გაიზარდა და აჩქარდა. კიდევ ერთი მეტრიკა, რომელიც შესაბამისად დაჩქარდა, არის მოდელების საშუალო ზომა, BERT-ის 110 მილიონი პარამეტრიდან დღევანდელ GPT-3-ის 175 მილიარდ პარამეტრამდე. ამ ტენდენციამ სერიოზული გამოწვევები შექმნა მანქანური სწავლების ინჟინრებისთვის უახლესი მოდელების პროდუქციაში განთავსებისას. მიუხედავად იმისა, რომ 100-ჯერ გაზრდილი სიჩქარე მაღალი ზღვარია მისაღწევად, სწორედ ეს არის საჭირო პროგნოზების მისაღები ლატენტურობით მომსახურებისთვის რეალურ დროში სამომხმარებლო აპლიკაციებში. ამ ზღვრის მისაღწევად, Hugging Face-ის მანქანური სწავლების ინჟინრებს ჩვენ ნამდვილად გვაქვს უსამართლო უპირატესობა, რადგან ვიმყოფებით ერთსა და იმავე (ვირტუალურ) ოფისებში 🤗 Transformers-ისა და 🤗 Tokenizers-ის შემქმნელებთან ერთად 😬. ჩვენ ასევე უაღრესად გაგვიმართლა იმ მდიდარი პარტნიორობების გამო, რომელიც განვავითარეთ ღია წყაროს თანამშრომლობით ისეთ აპარატურულ და ღრუბლოვან ვენდორებთან, როგორებიც არიან Intel, NVIDIA, Qualcomm, Amazon და Microsoft, რაც გვაძლევს საშუალებას, ჩვენი მოდელები და ინფრასტრუქტურა ოპტიმიზებული იყოს უახლესი აპარატურული ოპტიმიზაციის ტექნიკით.
თუ გსურთ იგრძნოთ სიჩქარე ჩვენს ინფრასტრუქტურაზე, დაიწყეთ უფასო საცდელი პერიოდი და ჩვენ დაგიკავშირდებით. თუ გსურთ ისარგებლოთ ჩვენი გამოცდილებით თქვენს საკუთარ ინფრასტრუქტურაზე ინფერენციის ოპტიმიზაციაში, მიიღეთ მონაწილეობა ჩვენს 🤗 Expert Acceleration Program-ში. მეტი სტატია ჩვენი ბლოგიდან · დარეგისტრირდით ან შეხვიდეთ კომენტარის დასატოვებლად.
თეგები:
#ai
#მანქანური სწავლება
#ოპტიმიზაცია
#gpu
#ტრანსფორმერები
#hugging face
#nlp
#წარმადობა
#cpu
#ინფერენცია
#მასშტაბირებადობა
#პროდუქცია
წყარო: huggingface.co
AI-ით გადამუშავებული