მოკლედ რომ ვთქვათ: ჩვენ გავაერთიანეთ Pivotal Tuning ტექნიკა, რომელიც გამოიყენება Replicate-ის SDXL Cog ტრენერში, Kohya ტრენერის Prodigy ოპტიმიზატორთან (პლუს მრავალი სხვა ოპტიმიზაცია), რათა მიგვეღო ძალიან კარგი შედეგები Dreambooth LoRA-ების SDXL-ისთვის ტრენინგში. შეამოწმეთ სავარჯიშო სკრიპტი diffusers🧨-ზე. სცადეთ Colab-ზე. თუ არ გსურთ ტექნიკურ დეტალებში ჩაღრმავება, შეგიძლიათ გამოიყენოთ ამ ბლოგში მოცემული ყველა ტექნიკა და გაავარჯიშოთ Hugging Face Spaces-ზე მარტივი მომხმარებლის ინტერფეისითა და შერჩეული პარამეტრებით (რომლებითაც შეგიძლიათ ექსპერიმენტები ჩაატაროთ). Stable Diffusion XL (SDXL) მოდელები, რომლებიც LoRA Dreambooth-ის გამოყენებით არის დაწვრილებით ოპტიმიზებული, წარმოუდგენელ შედეგებს აღწევენ ახალი კონცეფციების აღბეჭდვაში მხოლოდ რამდენიმე გამოსახულების გამოყენებით, ამასთანავე ინარჩუნებენ SDXL-ის ესთეტიკასა და გამოსახულების ხარისხს და მოითხოვენ შედარებით მცირე გამოთვლით სიმძლავრესა და რესურსებს. იხილეთ რამდენიმე შესანიშნავი SDXL LoRA აქ. ამ ბლოგში განვიხილავთ პოპულარულ პრაქტიკებსა და ტექნიკებს, რომლებიც თქვენს LoRA-ს დაწვრილებით ოპტიმიზაციის პროცესს დააჩქარებს, და გაჩვენებთ, თუ როგორ შეგიძლიათ გაუშვათ ან გაავარჯიშოთ თქვენი ახლავე diffusers-ის გამოყენებით! მოკლე მიმოხილვა: LoRA (Low-Rank Adaptation) არის Stable Diffusion მოდელების დაწვრილებითი ოპტიმიზაციის ტექნიკა, რომელიც მცირე კორექტირებებს ახდენს გადამწყვეტ ჯვარედინი ყურადღების შრეებში, სადაც გამოსახულებები და პრომპტები იკვეთება. ის აღწევს ხარისხს, რომელიც არ ჩამოუვარდება სრულად ოპტიმიზებულ მოდელებს, მაგრამ გაცილებით სწრაფია და ნაკლებ გამოთვლით რესურსს მოითხოვს. იმისათვის, რომ მეტი გაიგოთ, თუ როგორ მუშაობს LoRA-ები, იხილეთ ჩვენი წინა პოსტი - LoRA-ს გამოყენება Stable Diffusion-ის ეფექტური დაწვრილებითი ოპტიმიზაციისთვის. შინაარსი: მადლიერება ❤️: ამ სახელმძღვანელოში წარმოდგენილი ტექნიკა – ალგორითმები, სავარჯიშო სკრიპტები, ექსპერიმენტები და კვლევები – შთაგონებულია და ეფუძნება ნათანიელ რუისის (Dreambooth), რინონ გალის (Textual Inversion), რონ მოკადის (Pivotal Tuning), სიმო რიუს (cog-sdxl), Kohya-ს (sd-scripts), The Last Ben-ის (fast-stable-diffusion) წვლილს. ჩვენი უღრმესი მადლიერება მათ და მთელ საზოგადოებას! 🙌 Pivotal Tuning არის მეთოდი, რომელიც აერთიანებს Textual Inversion-ს რეგულარულ დიფუზიურ დაწვრილებით ოპტიმიზაციასთან. Dreambooth-ისთვის მიღებულია, რომ მიაწოდოთ იშვიათი ტოკენი, რომელიც იქნება თქვენი გამშვები სიტყვა, მაგალითად "an sks dog". თუმცა, ამ ტოკენებს, როგორც წესი, სხვა სემანტიკური მნიშვნელობა აქვთ დაკავშირებული და შეუძლიათ გავლენა მოახდინონ თქვენს შედეგებზე. sks მაგალითი, რომელიც პოპულარულია საზოგადოებაში, რეალურად იარაღის ბრენდთან ასოცირდება. ამ პრობლემის მოსაგვარებლად, ჩვენ მოდელის ტექსტის ენკოდერებში ვსვამთ ახალ ტოკენებს, არსებულის ხელახლა გამოყენების ნაცვლად. შემდეგ ვახდენთ ახლად ჩასმული ტოკენის ემბედინგების ოპტიმიზაციას ახალი კონცეფციის წარმოსადგენად: ეს არის Textual Inversion – ჩვენ ვსწავლობთ კონცეფციის წარმოდგენას ახალი "სიტყვების" მეშვეობით ემბედინგის სივრცეში. როგორც კი მივიღებთ ახალ ტოკენს და მის ემბედინგებს მის წარმოსადგენად, შეგვიძლია Dreambooth LoRA-ს ავარჯიშოთ ამ ტოკენის ემბედინგებით, რათა მივიღოთ ორივე მიდგომის საუკეთესო მხარე. ტრენინგი: ჩვენს ახალ სავარჯიშო სკრიპტში, შეგიძლიათ განახორციელოთ ტექსტური ინვერსიის ტრენინგი შემდეგი არგუმენტების მიწოდებით. დიფუზიური მოდელის (ან ნებისმიერი მანქანური სწავლის მოდელის) ტრენინგის/დაწვრილებითი ოპტიმიზაციისას, ჩვენ ვიყენებთ ოპტიმიზატორებს, რათა მიგვიყვანონ ოპტიმალური გზისკენ, რომელიც იწვევს ჩვენი სავარჯიშო მიზნის კონვერგენციას – ჩვენი არჩეული დანაკარგის ფუნქციის მინიმალურ წერტილს, რომელიც წარმოადგენს მდგომარეობას, როდესაც მოდელმა ისწავლა ის, რასაც ჩვენ ვცდილობთ ვასწავლოთ. სტანდარტული (და უახლესი) არჩევანი ღრმა სწავლის ამოცანებისთვის არის Adam და AdamW ოპტიმიზატორები. თუმცა, ისინი მომხმარებლისგან მოითხოვენ ჰიპერპარამეტრებთან (როგორიცაა სწავლის ტემპი, წონის დაშლა და ა.შ.) ბევრ ჩარევას, რომლებიც კონვერგენციისკენ მიმავალ გზას აყალიბებენ. ამან შეიძლება გამოიწვიოს დროის შრომატევადი ექსპერიმენტები, რომლებიც იწვევს არაოპტიმალურ შედეგებს, და მაშინაც კი, თუ იდეალურ სწავლის ტემპს დაადგენთ, მას მაინც შეუძლია გამოიწვიოს კონვერგენციის პრობლემები, თუ სწავლის ტემპი მუდმივია ტრენინგის დროს. ზოგიერთ პარამეტრს შეიძლება სარგებელი მოუტანოს უფრო ხშირმა განახლებებმა კონვერგენციის დასაჩქარებლად, ზოგი კი შეიძლება მოითხოვდეს მცირე კორექტირებას ოპტიმალური მნიშვნელობის გადაჭარბების თავიდან ასაცილებლად. ამ გამოწვევის მოსაგვარებლად დაინერგა ალგორითმები ადაპტირებადი სწავლის ტემპებით, როგორიცაა Adafactor და Prodigy. ეს მეთოდები ოპტიმიზაციას უკეთებენ ალგორითმის მოძრაობას ოპტიმიზაციის ლანდშაფტზე თითოეული პარამეტრისთვის სწავლის ტემპის დინამიური რეგულირებით, მათი წინა გრადიენტების საფუძველზე. ჩვენ გადავწყვიტეთ, რომ უფრო მეტად ფოკუსირება მოვახდინოთ Prodigy-ზე, რადგან ვფიქრობთ, რომ ის განსაკუთრებით სასარგებლო შეიძლება იყოს Dreambooth LoRA-ს ტრენინგისთვის! ტრენინგი: Prodigy-ის გამოყენებისას ზოგადად კარგი პრაქტიკაა დაყენება – დამატებითი პარამეტრები, რომლებიც სასარგებლოდ ითვლება დიფუზიური მოდელებისთვის და კონკრეტულად LoRA-ს ტრენინგისთვის, არის: არსებობს დამატებითი ჰიპერპარამეტრები, რომელთა რეგულირებაც შეგიძლიათ Prodigy-სთან ტრენინგისას (როგორიცაა --prodigy_beta3, prodigy_decouple, prodigy_safeguard_warmup), ჩვენ მათ ამ პოსტში არ ჩავუღრმავდებით, მაგრამ შეგიძლიათ მეტი გაიგოთ მათ შესახებ აქ. Pivotal Tuning-ისა და ადაპტირებადი ოპტიმიზატორების გარდა, აქ მოცემულია რამდენიმე დამატებითი ტექნიკა, რომლებმაც შეიძლება გავლენა მოახდინონ თქვენი დატრენინგებული LoRA-ს ხარისხზე, და ყველა მათგანი ჩართულია ახალ diffusers სავარჯიშო სკრიპტში. ტექსტის ენკოდერის ოპტიმიზაციისას, საზოგადოებაში აღქმულია, რომ მისთვის განსხვავებული სწავლის ტემპების დაყენება (UNet-ის სწავლის ტემპთან შედარებით) უკეთეს ხარისხის შედეგებს იწვევს - კონკრეტულად კი უფრო დაბალი სწავლის ტემპი.