Reranker მოდელების მორგება: ძალა, რომელიც აჭარბებს დიდ მოდელებს
Reranker მოდელების მორგება (finetuning) გადამწყვეტია მათი პოტენციალის მაქსიმალურად გამოსაყენებლად. ეს პროცესი მოიცავს მონაცემთა ბაზებს, დანაკარგის ფუნქციებს, ტრენინგის არგუმენტებსა და შემფასებლებს. სტატია ხაზს უსვამს, რომ დომენზე სპეციალურად მორგებულ პატარა reranker მოდელსაც კი შეუძლია მნიშვნელოვნად აჯობოს ბევრად უფრო დიდ, ზოგადი დანიშნულების მოდელებს. embedding მოდელებისგან განსხვავებით, reranker მოდელები (ჯვარედინი ენკოდერები) ტექსტების წყვილებს ერთად ამუშავებენ, რაც მათ შესაბამისობის შეფასები
Reranker მოდელების მორგება რამდენიმე კომპონენტს მოიცავს: მონაცემთა ბაზებს, დანაკარგის ფუნქციებს, ტრენინგის არგუმენტებს, შემფასებლებსა და თავად ტრენერის კლასს. თითოეულ ამ კომპონენტს განვიხილავ, პრაქტიკული მაგალითების თანხლებით, თუ როგორ შეიძლება მათი გამოყენება ძლიერი reranker მოდელების დასაზუსტებლად.
და ბოლოს, შეფასების განყოფილებაში გაჩვენებთ, რომ ჩემს მიერ, ამ ბლოგპოსტთან ერთად გაწვრთნილი, მცირე ზომის, მორგებული reranker მოდელი tomaarsen/reranker-ModernBERT-base-gooaq-bce მარტივად აჭარბებს 13 ყველაზე ხშირად გამოყენებულ საჯარო reranker მოდელს ჩემს შეფასების მონაცემთა ბაზაზე. ის 4-ჯერ უფრო დიდ მოდელებსაც კი სჯობს. რეცეპტის უფრო დიდი საბაზისო მოდელით გამეორება იძლევა tomaarsen/reranker-ModernBERT-large-gooaq-bce მოდელს, reranker მოდელს, რომელიც ჩემს მონაცემებზე აბსოლუტურად ყველა არსებულ ზოგადი დანიშნულების reranker მოდელს აღემატება.
თუკი embedding მოდელების დაზუსტება გაინტერესებთ, მაშინ გაითვალისწინეთ ჩემი წინა ბლოგპოსტის „Training and Finetuning Embedding Models with Sentence Transformers v3“ წაკითხვაც. Reranker მოდელები, რომლებიც ხშირად Cross Encoder არქიტექტურის გამოყენებით არის დანერგილი, შექმნილია ტექსტების წყვილებს (მაგალითად, მოთხოვნასა და დოკუმენტს, ან ორ წინადადებას) შორის შესაბამისობის შესაფასებლად. Sentence Transformers-ისგან (იგივე bi-encoders, embedding მოდელები) განსხვავებით, რომლებიც თითოეულ ტექსტს დამოუკიდებლად გარდაქმნიან ვექტორებად და მსგავსებას მანძილის მეტრიკის საშუალებით ითვლიან, Cross Encoder-ები წყვილში შემავალ ტექსტებს ერთად ამუშავებენ საერთო ნერვული ქსელის მეშვეობით, რის შედეგადაც მიიღება ერთი გამომავალი ქულა. ამ ორი ტექსტის ურთიერთქმედების დაშვებით, Cross Encoder მოდელებს შეუძლიათ აჯობონ embedding მოდელებს. თუმცა, ამ უპირატესობას თან ახლავს გარკვეული კომპრომისი: Cross Encoder მოდელები უფრო ნელია, რადგან ისინი ამუშავებენ ტექსტების ყველა შესაძლო წყვილს (მაგალითად, 10 მოთხოვნა 500 კანდიდატ დოკუმენტთან საჭიროებს 5,000 გამოთვლას, embedding მოდელებისთვის საჭირო 510-ის ნაცვლად). ეს მათ ნაკლებად ეფექტურს ხდის ფართომასშტაბიანი საწყისი მოძიებისთვის, მაგრამ იდეალურს ხელახალი რანჟირებისთვის: უფრო სწრაფი Sentence Transformer მოდელების მიერ თავდაპირველად იდენტიფიცირებული top-k შედეგების დაზუსტებისთვის. ყველაზე ძლიერი საძიებო სისტემები ხშირად იყენებენ ამ 2-ეტაპიან „მოძიება და ხელახალი რანჟირება“ მიდგომას. ამ ბლოგპოსტში ტერმინებს „reranker მოდელი“ და „Cross Encoder მოდელი“ ურთიერთშემცვლელად გამოვიყენებ.
Reranker მოდელებს ხშირად ურთულესი ამოცანა აქვთ: ამ kkk მაღალშესაბამისი დოკუმენტიდან რომელი პასუხობს მოთხოვნას საუკეთესოდ? ზოგადი დანიშნულების reranker მოდელები გაწვრთნილია ამ კონკრეტულ კითხვაზე ადეკვატურად პასუხისთვის დომენებისა და თემების ფართო სპექტრში, რაც ხელს უშლის მათ მაქსიმალური პოტენციალის მიღწევაში თქვენს სპეციფიკურ დომენში. მორგების (finetuning) მეშვეობით, მოდელს შეუძლია ისწავლოს ექსკლუზიურად ფოკუსირება იმ დომენსა და/ან ენაზე, რომელიც თქვენთვის მნიშვნელოვანია. ამ ბლოგპოსტის ბოლოს, შეფასების განყოფილებაში, გაჩვენებთ, რომ თქვენს დომენზე მოდელის გაწვრთნა შეუძლია ნებისმიერ ზოგადი დანიშნულების reranker მოდელს აჯობოს, თუნდაც ეს საბაზისო მოდელები ბევრად დიდი იყოს. ნუ შეაფასებთ თქვენს დომენზე მორგების ძალას!
Reranker მოდელების ტრენინგი მოიცავს შემდეგ კომპონენტებს: მოდით, უფრო დეტალურად განვიხილოთ თითოეული მათგანი. CrossEncoderTrainer იყენებს datasets.Dataset ან datasets.DatasetDict ინსტანციებს ტრენინგისა და შეფასებისთვის. შეგიძლიათ მონაცემები ჩატვირთოთ Hugging Face Datasets Hub-იდან ან გამოიყენოთ თქვენი ადგილობრივი მონაცემები ნებისმიერი სასურველი ფორმატით (მაგ., CSV, JSON, Parquet, Arrow, ან SQL).
შენიშვნა: ბევრი საჯარო მონაცემთა ბაზა, რომელიც მზადაა გამოსაყენებლად Sentence Transformers-თან, მონიშნულია sentence-transformers ტეგით Hugging Face Hub-ზე, ასე რომ, მათი ადვილად მოძიება შეგიძლიათ https://huggingface.co/datasets?other=sentence-transformers ბმულზე. გაითვალისწინეთ მათი დათვალიერება, რათა იპოვოთ მზა მონაცემთა ბაზები, რომლებიც შეიძლება სასარგებლო იყოს თქვენი ამოცანებისთვის, დომენებისთვის ან ენებისთვის.
შეგიძლიათ გამოიყენოთ load_dataset ფუნქცია Hugging Face Hub-ის მონაცემთა ბაზებიდან მონაცემების ჩასატვირთად. ზოგიერთ მონაცემთა ბაზას, მაგალითად nthakur/swim-ir-monolingual, აქვს მრავალი ქვეჯგუფი სხვადასხვა მონაცემთა ფორმატით. საჭიროა ქვეჯგუფის სახელის მითითება მონაცემთა ბაზის სახელთან ერთად, მაგალითად: dataset = load_dataset("nthakur/swim-ir-monolingual", "de", split="train"). ასევე შეგიძლიათ გამოიყენოთ load_dataset ადგილობრივი მონაცემების ჩასატვირთად გარკვეულ ფაილის ფორმატებში: შეგიძლიათ გამოიყენოთ datasets.Dataset.from_dict, თუ თქვენი ადგილობრივი მონაცემები მოითხოვს წინასწარ დამუშავებას. ეს საშუალებას გაძლევთ ინიციალიზება გაუკეთოთ თქვენს მონაცემთა ბაზას სიების ლექსიკონით: ლექსიკონის ყოველი გასაღები ხდება სვეტი მიღებულ მონაცემთა ბაზაში. მნიშვნელოვანია, რომ თქვენი მონაცემთა ბაზის ფორმატი ემთხვეოდეს თქვენს დანაკარგის ფუნქციას (ან რომ თქვენ აირჩიოთ დანაკარგის ფუნქცია, რომელიც ემთხვევა თქვენს მონაცემთა ბაზის ფორმატს და მოდელს).
იმის დასადასტურებლად, მუშაობს თუ არა მონაცემთა ბაზის ფორმატი და მოდელი დანაკარგის ფუნქციასთან, სამი ნაბიჯია საჭირო: მაგალითად, თუ გვაქვს მონაცემთა ბაზა სვეტებით ["text1", "text2", "label"], სადაც "label" სვეტს აქვს მცურავი წერტილის მსგავსების ქულა 0-დან 1-მდე დიაპაზონში და მოდელი გამოაქვს 1 ლეიბლს, შეგვიძლია გამოვიყენოთ ის BinaryCrossEntropyLoss-თან, რადგან: დარწმუნდით, რომ ხელახლა დაალაგებთ თქვენი მონაცემთა ბაზის სვეტებს Dataset.select_columns-ის გამოყენებით, თუ თქვენი სვეტები სწორად არ არის დალაგებული. მაგალითად, თუ თქვენს მონაცემთა ბაზას აქვს სვეტები ["good_answer", "bad_answer", "question"], მაშინ ეს მონაცემთა ბაზა ტექნიკურად შეიძლება გამოყენებულ იქნას დანაკარგთან, რომელიც მოითხოვს (წამყვან, დადებით, უარყოფით) სამეულებს, მაგრამ "good_answer" სვეტმა...
თეგები:
#ai
#მანქანური სწავლება
#ღრმა სწავლება
#hugging face
#მონაცემთა ბაზები
#embedding მოდელები
#reranker მოდელები
#მორგება
#cross encoder
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ხელოვნური ინტელექტი
Anthropic-ის Claude-ის აღზევება Apple App Store-ის რეიტინგებში პენტაგონთან მოლაპარაკებების ფონზე
ხელოვნური ინტელექტი
ტრამპის ადმინისტრაცია Anthropic-ს სანქციებს უწესებს ხელოვნური ინტელექტის გამოყენებაზე უარის გამო: ექსპერტი ინდუსტრიის უსაფრთხოების ხარვეზებზე საუბრობს
ხელოვნური ინტელექტი