მოკლედ: ჩვენ გავაერთიანეთ Pivotal Tuning ტექნიკა, რომელიც გამოიყენება Replicate-ის SDXL Cog ტრენერში, Kohya ტრენერში გამოყენებულ Prodigy ოპტიმიზატორთან (პლუს მრავალი სხვა ოპტიმიზაცია), რათა მივაღწიოთ ძალიან კარგ შედეგებს SDXL-ისთვის Dreambooth LoRA-ების გაწვრთნაში. გაეცანით ტრენინგის სკრიპტს diffusers🧨-ზე. სცადეთ Colab-ზე. თუ გსურთ გამოტოვოთ ტექნიკური დეტალები, შეგიძლიათ გამოიყენოთ ამ ბლოგში მოცემული ყველა ტექნიკა და გაწვრთნათ Hugging Face Spaces-ზე მარტივი მომხმარებლის ინტერფეისით და შერჩეული პარამეტრებით (რომლებიც შეგიძლიათ შეცვალოთ). Stable Diffusion XL (SDXL) მოდელები, რომლებიც გაუმჯობესებულია LoRA Dreambooth-ით, აღწევენ წარმოუდგენელ შედეგებს ახალი კონცეფციების დაფიქსირებაში, სულ რამდენიმე სურათის გამოყენებით, თანაც ინარჩუნებენ SDXL-ის ესთეტიკასა და გამოსახულების ხარისხს და მოითხოვენ შედარებით მცირე გამოთვლით რესურსებს. იხილეთ რამდენიმე საოცარი SDXL LoRA აქ. ამ ბლოგში განვიხილავთ რამდენიმე პოპულარულ პრაქტიკასა და ტექნიკას, რათა თქვენი LoRA-ს დახვეწა მაქსიმალურად ეფექტური გახდეს, და გაჩვენებთ, თუ როგორ შეგიძლიათ გაუშვათ ან გაწვრთნათ თქვენი LoRA ახლა diffusers-ის საშუალებით! მოკლე მიმოხილვა: LoRA (Low-Rank Adaptation) არის Stable Diffusion მოდელების დახვეწის ტექნიკა, რომელიც მცირე კორექტირებას ახდენს გადამწყვეტ cross-attention ფენებში, სადაც გამოსახულებები და მოთხოვნები იკვეთება. ის აღწევს ხარისხს, რომელიც სრულად დახვეწილი მოდელების ტოლფასია, ამასთანავე ბევრად უფრო სწრაფია და ნაკლებ გამოთვლით რესურსს მოითხოვს. იმისათვის, რომ მეტი გაიგოთ 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-ისთვის, ჩვეულებრივია, რომ თქვენ მიუთითოთ იშვიათი ტოკენი, რომელიც იქნება თქვენი გამშვები სიტყვა, მაგალითად, „sks ძაღლი“. თუმცა, ამ ტოკენებს, როგორც წესი, აქვთ სხვა სემანტიკური მნიშვნელობა და შეიძლება გავლენა მოახდინონ თქვენს შედეგებზე. 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-ის სწავლის სიჩქარესთან შედარებით) უკეთეს ხარისხის შედეგებამდე მიგვიყვანს – კონკრეტულად უფრო დაბალი სწავლის სიჩქარე