SetFit მნიშვნელოვნად უფრო ეფექტურია მონაცემების გამოყენების თვალსაზრისით და მდგრადია ხმაურის მიმართ, ვიდრე სტანდარტული დაზუსტება (fine-tuning). Hugging Face, Intel Labs-თან და UKP Lab-თან კვლევით პარტნიორებთან ერთად, სიხარულით წარმოგიდგენთ SetFit-ს: ეფექტურ ჩარჩოს Sentence Transformers-ის მცირემონაცემიან პირობებში სწრაფი დაზუსტებისთვის. SetFit აღწევს მაღალ სიზუსტეს მცირე მარკირებული მონაცემებით - მაგალითად, მხოლოდ 8 მარკირებული მაგალითით თითოეული კლასისთვის „მომხმარებელთა მიმოხილვების“ (CR) სენტიმენტის მონაცემთა ბაზაში, SetFit კონკურენტუნარიანია RoBERTa Large-ის დაზუსტებასთან, რომელიც სრულ საწვრთნელ ნაკრებზე (3 ათასი მაგალითი) იყო გაწვრთნილი. სხვა მცირემონაცემიან სწავლის მეთოდებთან შედარებით, SetFit-ს აქვს რამდენიმე უნიკალური მახასიათებელი: 🗣 **პრომპტების ან ვერბალაიზერების გარეშე:** მცირემონაცემიან პირობებში დაზუსტების ამჟამინდელი ტექნიკები მოითხოვს ხელით შექმნილ პრომპტებს ან ვერბალაიზერებს, რათა მაგალითები გარდაიქმნას ფორმატად, რომელიც შესაფერისია ძირითადი ენის მოდელისთვის. SetFit საერთოდ უარს ამბობს პრომპტებზე, უშუალოდ მდიდარი ემბედინგების გენერირებით მცირე რაოდენობის მარკირებული ტექსტური მაგალითებიდან. 🏎 **სწრაფი სწავლება:** SetFit-ს არ სჭირდება დიდი ზომის მოდელები, როგორიცაა T0 ან GPT-3, მაღალი სიზუსტის მისაღწევად. შედეგად, ის, როგორც წესი, ერთი რიგით (ან მეტად) უფრო სწრაფია საწვრთნელად და ინფერენსის შესასრულებლად. 🌎 **მრავალენოვანი მხარდაჭერა:** SetFit შეიძლება გამოყენებულ იქნას ნებისმიერ Sentence Transformer-თან Hub-ზე, რაც ნიშნავს, რომ თქვენ შეგიძლიათ კლასიფიციროთ ტექსტი მრავალ ენაზე უბრალოდ მრავალენოვანი ჩექპოინტის დაზუსტებით. დამატებითი დეტალებისთვის იხილეთ ჩვენი ნაშრომი, მონაცემები და კოდი. ამ ბლოგპოსტში, ჩვენ ავხსნით, როგორ მუშაობს SetFit და როგორ უნდა გაწვრთნათ თქვენი საკუთარი მოდელები. მოდით, დავიწყოთ! SetFit შექმნილია ეფექტურობისა და სიმარტივის გათვალისწინებით. SetFit ჯერ აზუსტებს (fine-tunes) Sentence Transformer მოდელს მცირე რაოდენობის მარკირებულ მაგალითებზე (როგორც წესი, 8 ან 16 თითოეული კლასისთვის). ამას მოსდევს კლასიფიკაციის თავის გაწვრთნა იმ ემბედინგებზე, რომლებიც გენერირებულია დაზუსტებული Sentence Transformer-ის მიერ. **SetFit-ის ორეტაპიანი სწავლების პროცესი** SetFit იყენებს Sentence Transformers-ის უნარს, გენერირება მოახდინოს მკვრივი ემბედინგების დაწყვილებული წინადადებების საფუძველზე. საწყისი დაზუსტების ფაზაში ის იყენებს შეზღუდულ მარკირებულ შეყვანის მონაცემებს კონტრასტული სწავლებით, სადაც პოზიტიური და ნეგატიური წყვილები იქმნება კლასში არსებული და კლასგარეშე შერჩევის გზით. შემდეგ Sentence Transformer მოდელი სწავლობს ამ წყვილებზე (ან ტრიპლეტებზე) და გენერირებს მკვრივ ვექტორებს თითოეული მაგალითისთვის. მეორე ეტაპზე, კლასიფიკაციის თავი სწავლობს კოდირებულ ემბედინგებზე მათი შესაბამისი კლასის ეტიკეტებით. ინფერენსის დროს, უხილავი მაგალითი გადის დაზუსტებულ Sentence Transformer-ზე, რაც გენერირებს ემბედინგს, რომელიც კლასიფიკაციის თავში შეტანისას გამოაქვს კლასის ეტიკეტის პროგნოზი. და მხოლოდ საბაზისო Sentence Transformer მოდელის მრავალენოვანზე შეცვლით, SetFit-ს შეუძლია შეუფერხებლად იმუშაოს მრავალენოვან კონტექსტებში. ჩვენს ექსპერიმენტებში, SetFit-ის მოქმედება აჩვენებს პერსპექტიულ შედეგებს კლასიფიკაციაში გერმანულ, იაპონურ, მანდარინულ, ფრანგულ და ესპანურ ენებზე, როგორც ენის შიგნით, ასევე ჯვარედინი ენობრივ გარემოში. მიუხედავად იმისა, რომ SetFit გაცილებით მცირე მოდელებს ეფუძნება, ვიდრე არსებული მცირემონაცემიან სწავლის მეთოდები, ის მოქმედებს იმავე დონეზე ან უკეთესად, ვიდრე უახლესი მცირემონაცემიან სწავლის რეჟიმები სხვადასხვა ბენჩმარკებზე. RAFT-ზე, მცირემონაცემიან კლასიფიკაციის ბენჩმარკზე, SetFit Roberta (all-roberta-large-v1 მოდელის გამოყენებით) 355 მილიონი პარამეტრით აჭარბებს PET-ს და GPT-3-ს. ის თითქმის ადამიანის საშუალო მოქმედების დონეზეა და 11 მილიარდი პარამეტრის მქონე T-few-ს ოდნავ ჩამორჩება – მოდელს, რომელიც SetFit Roberta-ზე 30-ჯერ დიდია. SetFit ასევე აჭარბებს ადამიანის საბაზისო დონეს RAFT-ის 11 ამოცანიდან 7-ზე. **გამოჩენილი მეთოდები RAFT-ის ლიდერბორდზე (2022 წლის სექტემბრის მდგომარეობით)** სხვა მონაცემთა ბაზებზე, SetFit აჩვენებს მდგრადობას სხვადასხვა ამოცანებში. როგორც ქვემოთ მოცემულ ფიგურაზეა ნაჩვენები, მხოლოდ 8 მაგალითით თითოეული კლასისთვის, ის, როგორც წესი, აჭარბებს PERFECT-ს, ADAPET-ს და დაზუსტებულ „ვანილა“ ტრანსფორმატორებს. SetFit ასევე აღწევს შედარებულ შედეგებს T-Few 3B-სთან, მიუხედავად იმისა, რომ ის არ იყენებს პრომპტებს და 27-ჯერ პატარაა. **SetFit-ის მოქმედების შედარება სხვა მეთოდებთან 3 კლასიფიკაციის მონაცემთა ბაზაზე.** **საწვრთნელი ღირებულებისა და საშუალო მოქმედების შედარება T-Few 3B-ისა და SetFit-ისთვის (MPNet), 8 მარკირებული მაგალითით თითოეული კლასისთვის.** ვინაიდან SetFit აღწევს მაღალ სიზუსტეს შედარებით მცირე მოდელებით, მისი გაწვრთნა ძალიან სწრაფია და გაცილებით დაბალი დანახარჯებით. მაგალითად, SetFit-ის გაწვრთნა NVIDIA V100-ზე 8 მარკირებული მაგალითით სულ რაღაც 30 წამს მოითხოვს, ღირებულებით $0.025. შედარებისთვის, T-Few 3B-ის გაწვრთნა მოითხოვს NVIDIA A100-ს და 11 წუთს, დაახლოებით $0.7 ღირებულებით იმავე ექსპერიმენტისთვის – 28-ჯერ მეტი. ფაქტობრივად, SetFit-ს შეუძლია იმუშაოს ერთ GPU-ზე, როგორიცაა Google Colab-ში ნაპოვნი, და შეგიძლიათ SetFit-ის გაწვრთნაც კი CPU-ზე სულ რამდენიმე წუთში! როგორც ზემოთ მოცემულ ფიგურაზეა ნაჩვენები, SetFit-ის სიჩქარის ზრდა შედარებულ მოდელის მოქმედებასთან ერთად მოდის. მსგავსი მოგება მიიღწევა ინფერენსისთვისაც, ხოლო SetFit მოდელის დისტილაციამ შეიძლება სიჩქარის 123-ჯერ გაზრდა გამოიწვიოს. SetFit-ის საზოგადოებისთვის ხელმისაწვდომობის მიზნით, ჩვენ შევქმენით მცირე setfit ბიბლიოთეკა, რომელიც საშუალებას გაძლევთ გაწვრთნათ საკუთარი მოდელები მხოლოდ რამდენიმე ხაზი კოდით. პირველი, რაც უნდა გააკეთოთ, არის მისი ინსტალაცია შემდეგი ბრძანების გაშვებით: შემდეგ, ჩვენ შემოგვაქვს SetFitModel და