კომპანია Segmind-ში აქტიურად ვმუშაობთ იმაზე, თუ როგორ გავხადოთ გენერაციული ხელოვნური ინტელექტის მოდელები უფრო სწრაფი და იაფი. გასულ წელს, ჩვენ გავხსენით ჩვენი აჩქარებული SD-WebUI ბიბლიოთეკა, სახელწოდებით voltaML, რომელიც არის AITemplate/TensorRT-ზე დაფუძნებული ინფერენციის (დასკვნის გამოტანის) დაჩქარების ბიბლიოთეკა და უზრუნველყოფს ინფერენციის სიჩქარის 4-6-ჯერ ზრდას. გენერაციული მოდელების უფრო სწრაფი, მცირე ზომის და იაფი გახდომის მიზნის გაგრძელების მიზნით, ჩვენ ვხსნით ჩვენი შეკუმშული SD მოდელების, SD-Small და SD-Tiny-ის, წონებსა და გაწვრთნის კოდს. წინასწარ გაწვრთნილი კონტროლური წერტილები ხელმისაწვდომია Huggingface-ზე 🤗. ჩვენი ახალი შეკუმშული მოდელები გაწვრთნილია Knowledge-Distillation (KD) ტექნიკის გამოყენებით და ეს ნაშრომი დიდწილად ეფუძნება ამ პუბლიკაციას. ავტორები აღწერენ ბლოკების ამოღების Knowledge-Distillation მეთოდს, სადაც UNet ფენების ნაწილი ამოღებულია და მოსწავლე მოდელის წონები გაწვრთნილია. პუბლიკაციაში აღწერილი KD მეთოდების გამოყენებით, ჩვენ შევძელით ორი შეკუმშული მოდელის გაწვრთნა 🧨 diffusers ბიბლიოთეკის გამოყენებით; ესენია Small და Tiny, რომლებსაც საბაზისო მოდელთან შედარებით შესაბამისად 35% და 55%-ით ნაკლები პარამეტრები აქვთ, ხოლო გამოსახულების შედარებით სიზუსტეს ინარჩუნებენ. ჩვენ გავხსენით ჩვენი დისტილაციის კოდი ამ რეპოზიტორიუმში და წინასწარ გაწვრთნილი კონტროლური წერტილები Huggingface-ზე 🤗. ნერვული ქსელის Knowledge-Distillation-ით გაწვრთნა ჰგავს მასწავლებელს, რომელიც მოსწავლეს ეტაპობრივად ხელმძღვანელობს. დიდი მასწავლებელი მოდელი წინასწარ წვრთნის დიდი რაოდენობით მონაცემებზე, შემდეგ კი პატარა მოდელი წვრთნის მცირე მონაცემთა ნაკრებზე, რათა მიბაძოს დიდი მოდელის გამოსავალს, მონაცემთა ნაკრებზე კლასიკურ გაწვრთნასთან ერთად. ამ კონკრეტულ ტიპის ცოდნის დისტილაციისას, მოსწავლე მოდელი წვრთნის ნორმალური დიფუზიის ამოცანის შესასრულებლად - სურათის სუფთა ხმაურისგან აღსადგენად, მაგრამ ამავე დროს, მოდელი ისეა კონფიგურირებული, რომ ემთხვეოდეს დიდი მასწავლებელი მოდელის გამოსავალს. გამოსავლის დამთხვევა ხდება U-net-ების თითოეულ ბლოკზე, რის გამოც მოდელის ხარისხი ძირითადად შენარჩუნებულია. ამრიგად, წინა ანალოგიის გამოყენებით, შეგვიძლია ვთქვათ, რომ ამ ტიპის დისტილაციის დროს, მოსწავლე შეეცდება ისწავლოს არა მხოლოდ კითხვებიდან და პასუხებიდან, არამედ მასწავლებლის პასუხებიდანაც, ისევე როგორც პასუხის მიღების ეტაპობრივი მეთოდიდან. ამ მიზნის მისაღწევად დანაკარგის ფუნქციაში სამი კომპონენტი გვაქვს: პირველი არის ტრადიციული დანაკარგი სამიზნე გამოსახულების ლატენტებსა და გენერირებული გამოსახულების ლატენტებს შორის. მეორე, დანაკარგი მასწავლებლის მიერ გენერირებული გამოსახულების ლატენტებსა და მოსწავლის მიერ გენერირებული გამოსახულების ლატენტებს შორის. და ბოლოს, ყველაზე მნიშვნელოვანი კომპონენტია მახასიათებლების დონის დანაკარგი, რომელიც არის დანაკარგი მასწავლებლისა და მოსწავლის თითოეული ბლოკის გამოსავალს შორის. ყოველივე ამის კომბინაცია ქმნის Knowledge-Distillation გაწვრთნის პროცესს. ქვემოთ მოცემულია Block Removed UNet-ის არქიტექტურა, რომელიც KD-ში გამოიყენება პუბლიკაციაში აღწერილის მიხედვით. სურათი აღებულია შინკუკის და სხვების ნაშრომიდან „On Architectural Compression of Text-to-Image Diffusion Models“. ჩვენ გამოვიყენეთ Realistic-Vision 4.0, როგორც ჩვენი საბაზისო მასწავლებელი მოდელი და გავწვრთენით LAION Art Aesthetic მონაცემთა ნაკრებზე, სადაც სურათების ქულა 7.5-ზე მეტი იყო, მათი მაღალი ხარისხის გამოსახულების აღწერილობების გამო. პუბლიკაციისგან განსხვავებით, ჩვენ ავირჩიეთ ორი მოდელის გაწვრთნა 1 მილიონ სურათზე, 100K ნაბიჯით Small მოდელისთვის და 125K ნაბიჯით Tiny მოდელისთვის. დისტილაციის გაწვრთნის კოდი შეგიძლიათ იხილოთ აქ. მოდელის გამოყენება შესაძლებელია 🧨 diffusers-ის DiffusionPipeline-ის მეშვეობით. ჩვენ შევამჩნიეთ, რომ დისტილირებული მოდელები 100%-ით უფრო სწრაფია, ვიდრე ორიგინალური საბაზისო მოდელები. ბენჩმარკინგის კოდი შეგიძლიათ იხილოთ აქ. დისტილირებული მოდელები ჯერ კიდევ ადრეულ ეტაპზეა და გამოსახულების ხარისხი შესაძლოა ჯერ კიდევ არ იყოს წარმოების დონის. ეს მოდელები შესაძლოა არ იყოს საუკეთესო ზოგადი მოდელები. ისინი საუკეთესოდ გამოიყენება როგორც დაზუსტებული (fine-tuned) ან LoRA-თი გაწვრთნილი კონკრეტული კონცეფციებისთვის/სტილებისთვის. დისტილირებული მოდელები ჯერჯერობით არც ისე კარგად მუშაობენ კომპოზიციურობაზე ან მრავალკონცეფციებზე. ჩვენ დავასრულეთ ჩვენი sd-tiny მოდელის დაზუსტება პორტრეტულ გამოსახულებებზე, რომლებიც გენერირებული იყო Realistic Vision v4.0 მოდელით. ქვემოთ მოცემულია გამოყენებული დაზუსტების პარამეტრები. ჩვენ შევძელით მიგვეღო გამოსახულების ხარისხი, რომელიც ახლოსაა ორიგინალური მოდელის მიერ წარმოებულ სურათებთან, თითქმის 40%-ით ნაკლები პარამეტრის გამოყენებით, და ქვემოთ მოცემული ნიმუში შედეგები თავისთავად მეტყველებს: საბაზისო მოდელების დაზუსტების კოდი შეგიძლიათ იხილოთ აქ. დისტილირებულ მოდელზე LoRA გაწვრთნის ერთ-ერთი უპირატესობა უფრო სწრაფი გაწვრთნაა. ქვემოთ მოცემულია პირველი LoRA-ს რამდენიმე სურათი, რომელიც ჩვენ გავწვრთენით დისტილირებულ მოდელზე აბსტრაქტულ კონცეფციებზე. LoRA გაწვრთნის კოდი შეგიძლიათ იხილოთ აქ. ჩვენ ვიწვევთ ღია კოდის საზოგადოებას, დაგვეხმაროს ამ დისტილირებული SD მოდელების გაუმჯობესებასა და ფართო გამოყენების მიღწევაში. მომხმარებლებს შეუძლიათ შემოუერთდნენ ჩვენს Discord სერვერს, სადაც ვაცხადებთ ამ მოდელების უახლეს განახლებებს, გამოვუშვებთ მეტ კონტროლურ წერტილს და რამდენიმე საინტერესო ახალ LoRA-ს. თუ მოგწონთ ჩვენი ნამუშევარი, გთხოვთ, მოგვცეთ ვარსკვლავი ჩვენს Github-ზე. მეტი სტატია ჩვენი ბლოგიდან · დარეგისტრირდით ან შემოხვედით კომენტარისთვის.