ფლორენს-2 მრავალ ამოცანას ასრულებს უშუალოდ: წარწერების გენერირებას, ობიექტების ამოცნობას, OCR-ს (ოპტიკური სიმბოლოების ამოცნობა) და სხვა. თუმცა, შესაძლოა თქვენი ამოცანა ან დომენი არ იყოს მხარდაჭერილი, ან მოგინდეთ უკეთ გააკონტროლოთ მოდელის გამომავალი შედეგი თქვენი ამოცანისთვის. სწორედ ამ დროს დაგჭირდებათ მოდელის დახვეწა (fine-tune). ამ პოსტში ჩვენ ვაჩვენებთ ფლორენს-2-ის დახვეწის მაგალითს DocVQA-ზე (დოკუმენტების ვიზუალური კითხვა-პასუხი). ავტორები აცხადებენ, რომ ფლორენს-2-ს შეუძლია ვიზუალური კითხვა-პასუხის (VQA) შესრულება, მაგრამ გამოშვებული მოდელები არ შეიცავს VQA შესაძლებლობას. მოდით ვნახოთ, რისი გაკეთება შეგვიძლია! **ფლორენს-2-ის არქიტექტურა** მიუხედავად კომპიუტერული ხედვის შესასრულებელი ამოცანისა, ფლორენს-2 პრობლემას მიმდევრობა-მიმდევრობაზე დავალებად აყალიბებს. ფლორენს-2 იღებს გამოსახულებასა და ტექსტს შეტანად მონაცემებად და ტექსტს წარმოქმნის გამოსავალად. მოდელს მარტივი სტრუქტურა აქვს. ის იყენებს DaViT ვიზუალურ ენკოდერს გამოსახულებების ვიზუალურ ემბედინგებად გადასაყვანად, ხოლო BERT-ს ტექსტური მოთხოვნების ტექსტისა და ლოკაციის ემბედინგებად გადასაყვანად. მიღებული ემბედინგები შემდეგ მუშავდება სტანდარტული ენკოდერ-დეკოდერის ტრანსფორმერის არქიტექტურით, რომელიც წარმოქმნის ტექსტურ და ლოკაციის ტოკენებს. ფლორენს-2-ის სიძლიერე არ მომდინარეობს მისი არქიტექტურიდან, არამედ იმ მასიური მონაცემთა ნაკრებიდან, რომელზეც ის წინასწარ გაიწრთვნა. ავტორებმა აღნიშნეს, რომ წამყვანი კომპიუტერული ხედვის მონაცემთა ნაკრებები, როგორც წესი, შეზღუდულ ინფორმაციას შეიცავს – WIT მხოლოდ გამოსახულება/წარწერის წყვილებს მოიცავს, SA-1B კი მხოლოდ გამოსახულებებს და მათთან დაკავშირებულ სეგმენტაციის ნიღბებს. ამიტომ, მათ გადაწყვიტეს შეექმნათ ახალი FLD-5B მონაცემთა ნაკრები, რომელიც შეიცავს ინფორმაციის ფართო სპექტრს თითოეული გამოსახულების შესახებ – ყუთებს, ნიღბებს, წარწერებს და დამიწებას (grounding). მონაცემთა ნაკრების შექმნის პროცესი მეტწილად ავტომატიზებული იყო. ავტორებმა გამოიყენეს მზა, ამოცანაზე ორიენტირებული მოდელები და ჰევრისტიკისა და ხარისხის შემოწმების წესები მიღებული შედეგების გასაწმენდად. შედეგი იყო ახალი მონაცემთა ნაკრები, რომელიც შეიცავს 5 მილიარდზე მეტ ანოტაციას 126 მილიონი გამოსახულებისთვის, რაც გამოყენებულ იქნა ფლორენს-2 მოდელის წინასწარი წვრთნისთვის. ჩვენ ჩავატარეთ ექსპერიმენტები სხვადასხვა მეთოდით მოდელის ადაპტირებისთვის VQA (ვიზუალური კითხვა-პასუხი) რეაგირებისთვის. ყველაზე ეფექტური მიდგომა, რომელიც ვიპოვეთ, იყო „რეგიონიდან აღწერამდე მოთხოვნა“ (region-to-description prompting), თუმცა ის სრულად არ შეესაბამება VQA ამოცანებს. წარწერების გენერაცია იძლევა გამოსახულების აღწერილობით ინფორმაციას, მაგრამ არ იძლევა კითხვების უშუალო შეყვანის საშუალებას. ჩვენ ასევე გამოვცადეთ რამდენიმე „არამხარდაჭერილი“ მოთხოვნა, როგორიცაა „“, „“ და „“. სამწუხაროდ, ამ მცდელობებმა გამოუსადეგარი შედეგები გამოიღო. ჩვენ ვზომავთ მუშაობას ლევენშტეინის მსგავსების გამოყენებით, რაც DocVQA მონაცემთა ნაკრების სტანდარტული მეტრიკაა. დახვეწამდე, მოდელის პროგნოზებსა და ვალიდაციის მონაცემთა ნაკრებზე არსებულ რეალურ მონაცემებს (ground truth) შორის მსგავსება იყო 0, რადგან გამომავალი შედეგები არ იყო ახლოს რეალურ მონაცემებთან. სასწავლო ნაკრებით შვიდი ეპოქის განმავლობაში დახვეწის შემდეგ, ვალიდაციის ნაკრებზე მსგავსების ქულა 57.0-მდე გაუმჯობესდა. ჩვენ შევქმენით 🤗 სივრცე დახვეწილი მოდელის დემონსტრირებისთვის. მიუხედავად იმისა, რომ მოდელი კარგად მუშაობს DocVQA-სთვის, ზოგადად დოკუმენტების გაგებაში ჯერ კიდევ არის გასაუმჯობესებელი ასპექტები. თუმცა, ის წარმატებით ასრულებს ამოცანებს, რაც აჩვენებს ფლორენს-2-ის პოტენციალს შემდგომი ამოცანებისთვის დახვეწაში. გამორჩეული VQA მოდელის შესაქმნელად, გირჩევთ, ფლორენს-2 კიდევ უფრო დახვეწოთ The Cauldron-ის გამოყენებით. საჭირო კოდი უკვე განთავსებულია ჩვენს GitHub გვერდზე. კონკრეტული მაგალითის მოსაყვანად, ქვემოთ მოცემულია ორი ინფერენციის შედეგი დახვეწამდე და მის შემდეგ. მოდელის გამოცდა აქაც შეგიძლიათ. **დახვეწამდე და დახვეწის შემდეგ** წინასწარი წვრთნისთვის ავტორებმა გამოიყენეს 2048 პაკეტის ზომა საბაზისო მოდელისთვის და 3072 დიდი მოდელისთვის. მათ ასევე აღწერეს მუშაობის გაუმჯობესება გამოსახულების ენკოდერის არ გაყინვის შემთხვევაში, გაყინვასთან შედარებით. ჩვენ ჩავატარეთ ექსპერიმენტები გაცილებით დაბალი რესურსების კონფიგურაციით, რათა შეგვესწავლა, თუ რისი უნარი ექნებოდა მოდელს უფრო შეზღუდულ დახვეწის გარემოში. ჩვენ გავყინეთ ვიზუალური ენკოდერი და გამოვიყენეთ 6 პაკეტის ზომა ერთ A100 GPU-ზე Colab-ში, ან 1 პაკეტის ზომა T4-თან ერთად. პარალელურად, ჩავატარეთ ექსპერიმენტი მეტი რესურსით, დავხვეწეთ მთელი მოდელი 64 პაკეტის ზომით. ეს წვრთნის პროცესი 70 წუთი გაგრძელდა 8 H100 GPU-თ აღჭურვილ კლასტერზე. ეს გაწვრთნილი მოდელი შეგიძლიათ იხილოთ აქ. ყველა შემთხვევაში, ჩვენ აღმოვაჩინეთ, რომ მცირე სწავლის ტემპი (1e-6) სასარგებლოა წვრთნისთვის. უფრო მაღალი სწავლის ტემპებით მოდელი სწრაფად ზედმეტად მოერგება (overfit) სასწავლო ნაკრებს. თუ გსურთ მიჰყვეთ პროცესს, ჩვენი Colab დახვეწის ნოუთბუქი შეგიძლიათ იპოვოთ აქ DocVQA მონაცემთა ნაკრების ჩექპოინტთან ერთად. დავიწყოთ დამოკიდებულებების დაყენებით. ჩავტვირთოთ DocVQA მონაცემთა ნაკრები Hugging Face Hub-იდან. მოდელის და პროცესორის ჩატვირთვა შეგვიძლია transformers ბიბლიოთეკის AutoModelForCausalLM და AutoProcessor კლასების გამოყენებით. აუცილებელია trust_remote_code=True პარამეტრის გადაცემა, რადგან მოდელი იყენებს საბაჟო კოდს – ის ჯერ არ არის ინტეგრირებული transformers-ში. ასევე გავყინავთ ვიზუალურ ენკოდერს, რათა დახვეწა ნაკლებად ძვირი იყოს. ახლა დავხვეწოთ მოდელი! ჩვენ ავაშენებთ სასწავლო PyTorch Dataset-ს, რომელშიც თითოეულ კითხვას მონაცემთა ნაკრებიდან წინ დავურთავთ პრეფიქსს. ახლა ავაშენებთ მონაცემთა შემგროვებელს (data collator), რომელიც სასწავლო პაკეტებს აგებს მონაცემთა ნაკრების ნიმუშებიდან, და დავიწყებთ წვრთნას. A100-ზე, 40GB მეხსიერებით, ჩვენ შეგვიძლია...