SetFit-ის მოდელების ოპტიმიზაცია Intel CPU-ებზე: 7.8-ჯერ უფრო სწრაფი ინფერენცია
SetFit მაღალ სიზუსტეს აღწევს მცირე მარკირებული მონაცემებით, აჭარბებს GPT-3.5-ს და GPT-4-საც კი, და გამოირჩევა LLM-ზე დაფუძნებული მეთოდებისგან პრომპტების არარსებობითა და ვარჯიშის სისწრაფით. ეს სტატია განმარტავს, თუ როგორ შეიძლება SetFit-ის ინფერენციის დაჩქარება 7.8-ჯერ Intel-ის პროცესორებზე Optimum Intel-ის ბიბლიოთეკისა და ვარჯიშის შემდგომი კვანტიზაციის გამოყენებით. განხილულია Optimum Intel-ის ტექნიკური უპირატესობები, კვანტიზაციის მექანიზმები და მოცემულია პრაქტიკული ნაბიჯები მოდელის ოპტიმიზაციისა
SetFit მაღალ სიზუსტეს აღწევს მცირე მარკირებული მონაცემებით – მაგალითად, SetFit აჭარბებს GPT-3.5-ს 3-shot პრომპტინგში და 5-shot-ით ის ასევე აჭარბებს 3-shot GPT-4-ს Banking 77 ფინანსური განზრახვის მონაცემთა ნაკრებზე. LLM-ზე დაფუძნებულ მეთოდებთან შედარებით, SetFit-ს ორი უნიკალური უპირატესობა აქვს: 🗣️ არანაირი პრომპტი ან ვერბალაიზერი: LLM-ებთან რამდენიმე-კადრიანი კონტექსტში სწავლა მოითხოვს ხელით შექმნილ პრომპტებს, რაც შედეგებს მყიფეს, ფრაზირების მიმართ მგრძნობიარეს და მომხმარებლის ექსპერტიზაზე დამოკიდებულს ხდის. SetFit საერთოდ უარს ამბობს პრომპტებზე მდიდარი ჩანერგვების პირდაპირ გენერირებით მარკირებული ტექსტური მაგალითების მცირე რაოდენობიდან. 🏎️ სწრაფი ვარჯიში: SetFit არ ეყრდნობა LLM-ებს, როგორიცაა GPT-3.5 ან Llama2, მაღალი სიზუსტის მისაღწევად. შედეგად, მისი ვარჯიში და ინფერენციის გაშვება, როგორც წესი, ერთი რიგით (ან მეტით) სწრაფია.
SetFit-ის შესახებ დამატებითი დეტალებისთვის იხილეთ ჩვენი ნაშრომი, ბლოგი, კოდი და მონაცემები. SetFit ფართოდ იქნა მიღებული AI დეველოპერების საზოგადოების მიერ, თვეში დაახლოებით 100 ათასი ჩამოტვირთვით და დაახლოებით 1500 SetFit მოდელით Hub-ზე, და იზრდება დღეში საშუალოდ ~4 მოდელით!
ამ ბლოგ პოსტში ჩვენ განვმარტავთ, თუ როგორ შეგიძლიათ დააჩქაროთ ინფერენცია SetFit-ით 7.8-ჯერ Intel-ის პროცესორებზე, თქვენი SetFit მოდელის ოპტიმიზაციით 🤗 Optimum Intel-ის გამოყენებით. ჩვენ გაჩვენებთ, თუ როგორ შეგიძლიათ მიაღწიოთ გამტარუნარიანობის დიდ ზრდას თქვენს მოდელზე მარტივი ვარჯიშის შემდგომი კვანტიზაციის ეტაპის შესრულებით. ამან შეიძლება ხელი შეუწყოს SetFit გადაწყვეტილებების სამრეწველო დონეზე განთავსებას Intel Xeon პროცესორების გამოყენებით. Optimum Intel არის ღია წყაროს ბიბლიოთეკა, რომელიც აჩქარებს Hugging Face-ის ბიბლიოთეკებით აშენებულ სრულ პროცესებს Intel-ის აპარატურაზე. Optimum Intel მოიცავს მოდელების დასაჩქარებლად რამდენიმე ტექნიკას, როგორიცაა დაბალი ბიტის კვანტიზაცია, მოდელის წონების შემცირება (pruning), დისტილაცია და დაჩქარებული გაშვების დრო (runtime). Optimum Intel-ში შემავალი გაშვების დრო და ოპტიმიზაციები იყენებენ Intel® Advanced Vector Extensions 512 (Intel® AVX-512), Vector Neural Network Instructions (VNNI) და Intel® Advanced Matrix Extensions (Intel® AMX) Intel-ის პროცესორებზე მოდელების დასაჩქარებლად. კონკრეტულად, მას აქვს ჩაშენებული BFloat16 (bf16) და int8 GEMM ამაჩქარებლები თითოეულ ბირთვში, ღრმა სწავლების ვარჯიშისა და ინფერენციის სამუშაოების დასაჩქარებლად. AMX-ით დაჩქარებული ინფერენცია დაინერგა PyTorch 2.0-ში და Intel Extension for PyTorch (IPEX)-ში, სხვადასხვა საერთო ოპერატორებისთვის განკუთვნილი სხვა ოპტიმიზაციებთან ერთად. წინასწარ გაწვრთნილი მოდელების ოპტიმიზაცია მარტივად შეიძლება განხორციელდეს Optimum Intel-ის საშუალებით; მრავალი მარტივი მაგალითის ნახვა შეგიძლიათ აქ.
ჩვენს ბლოგს თან ახლავს ნოუთბუქი ეტაპობრივი ინსტრუქციებისთვის. ჩვენი SetFit მოდელის ოპტიმიზაციისთვის, მოდელის სხეულზე გამოვიყენებთ კვანტიზაციას, Intel Neural Compressor (INC)-ის გამოყენებით, რომელიც Optimum Intel-ის ნაწილია. კვანტიზაცია არის ღრმა სწავლების მოდელის ოპტიმიზაციის ძალიან პოპულარული ტექნიკა ინფერენციის სიჩქარის გასაუმჯობესებლად. ის ამცირებს ბიტების რაოდენობას, რომელიც საჭიროა ნეირონულ ქსელში წონებისა და/ან აქტივაციების წარმოსაჩენად. ეს ხდება მაღალი სიზუსტის რიცხვების ნაკრების უფრო დაბალი ბიტის მონაცემთა წარმოდგენებში გადაყვანით, როგორიცაა INT8. უფრო მეტიც, კვანტიზაციამ შეიძლება ხელი შეუწყოს უფრო სწრაფ გამოთვლებს დაბალი სიზუსტით. კონკრეტულად, ჩვენ გამოვიყენებთ ვარჯიშის შემდგომ სტატიკურ კვანტიზაციას (PTQ). PTQ-ს შეუძლია შეამციროს მეხსიერების მოხმარება (memory footprint) და შეყოვნება ინფერენციისთვის, მოდელის სიზუსტის შენარჩუნებით, მხოლოდ მცირე არა-მარკირებული კალიბრაციის ნაკრების გამოყენებით და ყოველგვარი ვარჯიშის გარეშე.
დაწყებამდე, დარწმუნდით, რომ დაინსტალირებული გაქვთ ყველა საჭირო ბიბლიოთეკა და Optimum Intel-ის თქვენი ვერსია არის მინიმუმ 1.14.0, რადგან ფუნქციონალი სწორედ ამ ვერსიაში დაინერგა: კალიბრაციის მონაცემთა ნაკრები უნდა იყოს წარმომადგენლობითი უხილავი მონაცემების განაწილებისთვის. ზოგადად, 100 ნიმუშის მომზადება საკმარისია კალიბრაციისთვის. ჩვენს შემთხვევაში გამოვიყენებთ rotten_tomatoes მონაცემთა ნაკრებს, რადგან ის შედგება ფილმების მიმოხილვებისგან, რაც ჩვენი სამიზნე მონაცემთა ნაკრების, sst2-ის მსგავსია. ჯერ ამ მონაცემთა ნაკრებიდან ჩავტვირთავთ 100 შემთხვევით ნიმუშს. შემდეგ, მონაცემთა ნაკრების კვანტიზაციისთვის მოსამზადებლად, თითოეული მაგალითის ტოკენიზაცია დაგვჭირდება. ჩვენ არ დაგვჭირდება „text“ და „label“ სვეტები, ამიტომ წავშალოთ ისინი. კვანტიზაციის გაშვებამდე, ჩვენ უნდა განვსაზღვროთ სასურველი კვანტიზაციის პროცესი – ჩვენს შემთხვევაში – სტატიკური ვარჯიშის შემდგომი კვანტიზაცია, და გამოვიყენოთ optimum.intel კვანტიზაციის გასაშვებად ჩვენს კალიბრაციის მონაცემთა ნაკრებზე: სულ ესაა! ახლა გვაქვს ჩვენი კვანტიზირებული SetFit მოდელის ლოკალური ასლი. მოდით გამოვცადოთ. ჩვენს ნოუთბუქში, ჩვენ შევქმენით PerformanceBenchmark კლასი მოდელის შეყოვნების (latency) და გამტარუნარიანობის (throughput), ასევე სიზუსტის საზომის გამოსათვლელად. მოდით გამოვიყენოთ ის ჩვენი Optimum Intel მოდელის შესადარებლად ორ სხვა ხშირად გამოყენებულ მეთოდთან: ჩავტვირთოთ ჩვენი სატესტო მონაცემთა ნაკრები, sst2, და გავუშვათ ბენჩმარკი PyTorch-ისა და 🤗 Transformers ბიბლიოთეკის გამოყენებით: მეორე ბენჩმარკისთვის, ჩვენ გამოვიყენებთ Intel Extension for PyTorch (IPEX)-ს bf16 სიზუსტით და TorchScript ტრეისინგით. IPEX-ის გამოსაყენებლად, ჩვენ უბრალოდ შემოგვაქვს IPEX ბიბლიოთეკა და ვიყენებთ ipex.optimize()-ს სამიზნე მოდელზე, რომელიც, ჩვენს შემთხვევაში, არის SetFit (ტრანსფორმერი) მოდელის სხეული: TorchScript ტრეისინგისთვის, ჩვენ ვქმნით შემთხვევით თანმიმდევრობას მოდელის მაქსიმალური შეყვანის სიგრძის საფუძველზე, ტოკენებით, რომლებიც აღებულია ტოკენიზატორის ლექსიკონიდან: ახლა გავუშვათ ბენჩმარკი ჩვენი კვანტიზირებული Optimum მოდელის გამოყენებით. პირველ რიგში დაგვჭირდება
თეგები:
#ხელოვნური ინტელექტი
#ოპტიმიზაცია
#ღრმა სწავლა
#მანქანური სწავლა
#hugging face
#pytorch
#კვანტიზაცია
#intel
#optimum intel
#cpu
#gpt
#ინფერენცია
#setfit
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ტექნოლოგიები
Honor Magic V6: უთხელესი დასაკეცი ტელეფონი? პირველი შთაბეჭდილებები
ტექნოლოგიები
Honor Magic V6: ყველაზე თხელი დასაკეცი სმარტფონი და მისი შთამბეჭდავი შესაძლებლობები
ტექნოლოგიები