Dreambooth-ის ოპტიმიზაცია: ექსპერიმენტები და რჩევები Stable Diffusion-ის შედეგების გასაუმჯობესებლად
ეს სტატია წარმოგიდგენთ Dreambooth-ის გამოყენებით Stable Diffusion-ის მოდელების ფაინ-ტიუნინგის შესახებ ჩატარებული ექსპერიმენტების შედეგებსა და რეკომენდაციებს. განხილულია სწავლის სიჩქარის, საწვრთნელი ნაბიჯების, წინასწარი შენარჩუნების ტექნიკის, სხვადასხვა განრიგის (schedulers) და ტექსტის კოდირების მოდულის ფაინ-ტიუნინგის გავლენა შედეგებზე. განსაკუთრებული ყურადღება ეთმობა ეთიკურ გაფრთხილებებს მოდელის არასწორი გამოყენების თავიდან ასაცილებლად.
ჩვენ ჩავატარეთ მრავალი ექსპერიმენტი Dreambooth-ში სხვადასხვა პარამეტრის ეფექტის გასაანალიზებლად. ეს სტატია წარმოგიდგენთ ჩვენს მიგნებებს და რამდენიმე რჩევას, თუ როგორ გააუმჯობესოთ თქვენი შედეგები Stable Diffusion-ის Dreambooth-ით ფაინ-ტიუნინგისას. სანამ დავიწყებთ, გთხოვთ გაითვალისწინოთ, რომ ეს მეთოდი არასოდეს უნდა იქნას გამოყენებული მავნე მიზნებისთვის, რაიმე სახის ზიანის მისაღწევად, ან ადამიანების მათი ნებართვის გარეშე განსახიერებისთვის. მისით გაწვრთნილი მოდელები კვლავ ექვემდებარება CreativeML Open RAIL-M ლიცენზიას, რომელიც არეგულირებს Stable Diffusion მოდელების გავრცელებას. შენიშვნა: ამ სტატიის წინა ვერსია გამოქვეყნდა W&B მოხსენების სახით.
Dreambooth ძალიან სწრაფად განიცდის გადაჭარბებულ მორგებას (overfitting). კარგი შედეგების მისაღებად, დაარეგულირეთ სწავლის სიჩქარე (learning rate) და საწვრთნელი ნაბიჯების რაოდენობა (number of training steps) თქვენი მონაცემთა ნაკრებისთვის შესაბამისად. ჩვენს ექსპერიმენტებში (დეტალურად ქვემოთ), ჩვენ მოვახდინეთ ფაინ-ტიუნინგი ოთხ სხვადასხვა მონაცემთა ნაკრებზე მაღალი და დაბალი სწავლის სიჩქარეებით. ყველა შემთხვევაში, უკეთესი შედეგები მივიღეთ დაბალი სწავლის სიჩქარით. ყველა ჩვენი ექსპერიმენტი ჩატარდა train_dreambooth.py სკრიპტის გამოყენებით AdamW ოპტიმიზატორით ორ 40GB A100 GPU-ზე. ჩვენ გამოვიყენეთ იგივე seed და შევინარჩუნეთ ყველა ჰიპერპარამეტრი თანაბარი გაშვებებს შორის, გარდა სწავლის სიჩქარისა (LR), საწვრთნელი ნაბიჯების რაოდენობისა და წინასწარი შენარჩუნების (prior preservation) გამოყენებისა.
პირველი 3 მაგალითისთვის (სხვადასხვა ობიექტი), ჩვენ მოვახდინეთ მოდელის ფაინ-ტიუნინგი 4 ჯგუფის ზომით (batch size) (2 თითო GPU-ზე) 400 ნაბიჯისთვის. ჩვენ გამოვიყენეთ მაღალი სწავლის სიჩქარე 5e-6 და დაბალი სწავლის სიჩქარე 2e-6. წინასწარი შენარჩუნება არ გამოგვიყენებია. ბოლო ექსპერიმენტი ცდილობს მოდელში ადამიანის სუბიექტის დამატებას. ამ შემთხვევაში გამოვიყენეთ წინასწარი შენარჩუნება 2 ჯგუფის ზომით (1 თითო GPU-ზე), 800 და 1200 ნაბიჯით. ჩვენ გამოვიყენეთ მაღალი სწავლის სიჩქარე 5e-6 და დაბალი სწავლის სიჩქარე 2e-6. გაითვალისწინეთ, რომ მეხსიერების მოთხოვნების შესამცირებლად და მსგავსი ექსპერიმენტების 16 GB მეხსიერების მქონე GPU-ებზე გასაშვებად შეგიძლიათ გამოიყენოთ 8-ბიტიანი Adam, fp16 წვრთნა ან გრადიენტის აკუმულაცია.
მაღალი სწავლის სიჩქარე (5e-6).
დაბალი სწავლის სიჩქარე (2e-6).
მაღალი სწავლის სიჩქარე (5e-6). გაითვალისწინეთ, რომ ფერადი არტეფაქტები ხმაურის ნარჩენებია – მეტი ინფერენციის ნაბიჯის გამოყენება ხელს შეუწყობს ამ დეტალების მოგვარებას.
დაბალი სწავლის სიჩქარე (2e-6).
მაღალი სწავლის სიჩქარე (5e-6). გაითვალისწინეთ, რომ ფერადი არტეფაქტები ხმაურის ნარჩენებია – მეტი ინფერენციის ნაბიჯის გამოყენება ხელს შეუწყობს ამ დეტალების მოგვარებას.
დაბალი სწავლის სიჩქარე (2e-6).
ჩვენ ვცადეთ სეინფელდის პერსონაჟი კრამერი (Kramer) Stable Diffusion-ში შეგვეტანა. როგორც უკვე აღვნიშნეთ, ჩვენ მოდელი ვწვრთნეთ მეტი ნაბიჯით უფრო მცირე ჯგუფის ზომით. მიუხედავად ამისა, შედეგები არ იყო გამორჩეული. მოკლედ რომ ვთქვათ, ჩვენ გამოვტოვეთ ეს ნიმუში სურათები და მკითხველს გადავამისამართებთ შემდეგ სექციებზე, სადაც სახეების წვრთნა გახდა ჩვენი ძალისხმევის ფოკუსი. Dreambooth-ის გამოყენებით Stable Diffusion-ის წვრთნისას კარგი შედეგების მისაღწევად, მნიშვნელოვანია სწავლის სიჩქარისა და საწვრთნელი ნაბიჯების დარეგულირება თქვენი მონაცემთა ნაკრებისთვის. სახეების წვრთნა უფრო რთულია. ჩვენს ექსპერიმენტებში, სწავლის სიჩქარე 2e-6 400 საწვრთნელი ნაბიჯით კარგად მუშაობს ობიექტებისთვის, მაგრამ სახეებს დასჭირდა 1e-6 (ან 2e-6) დაახლოებით 1200 ნაბიჯით. გამოსახულების ხარისხი დიდად უარესდება, თუ მოდელი განიცდის გადაჭარბებულ მორგებას (overfitting).
წინასწარი შენარჩუნება (Prior preservation) არის ტექნიკა, რომელიც იყენებს დამატებით სურათებს იმავე კლასის, რომლის წვრთნასაც ვცდილობთ, როგორც ფაინ-ტიუნინგის პროცესის ნაწილი. მაგალითად, თუ ვცდილობთ მოდელში ახალი ადამიანის შეყვანას, კლასი, რომლის შენარჩუნებაც გვსურს, შეიძლება იყოს ადამიანი. წინასწარი შენარჩუნება ცდილობს შეამციროს გადაჭარბებული მორგება (overfitting) ახალი ადამიანის ფოტოების სხვა ადამიანების ფოტოებთან კომბინაციით. კარგი ის არის, რომ ჩვენ შეგვიძლია ეს დამატებითი კლასის სურათები თავად Stable Diffusion მოდელის გამოყენებით გენერირება! საწვრთნელი სკრიპტი ამას ავტომატურად ახორციელებს, თუ გსურთ, მაგრამ ასევე შეგიძლიათ მიაწოდოთ საქაღალდე თქვენი საკუთარი წინასწარი შენარჩუნების სურათებით.
წინასწარი შენარჩუნებით, 1200 ნაბიჯი, სწავლის სიჩქარე=2e-6.
წინასწარი შენარჩუნების გარეშე, 1200 ნაბიჯი, სწავლის სიჩქარე=2e-6.
როგორც ხედავთ, შედეგები უკეთესია, როდესაც გამოიყენება წინასწარი შენარჩუნება, მაგრამ მაინც არის ხმაურიანი ლაქები. დროა დამატებითი ხრიკებისთვის! წინა მაგალითებში, ჩვენ ვიყენებდით PNDM განრიგს (scheduler) გამოსახულებების სემპლირებისთვის ინფერენციის პროცესში. ჩვენ დავაკვირდით, რომ როდესაც მოდელი განიცდის გადაჭარბებულ მორგებას, DDIM ჩვეულებრივ ბევრად უკეთ მუშაობს, ვიდრე PNDM და LMSDiscrete. გარდა ამისა, ხარისხის გაუმჯობესება შესაძლებელია მეტი ინფერენციის ნაბიჯის გაშვებით: 100 ნაბიჯი კარგ არჩევნად გამოიყურება. დამატებითი ნაბიჯები ხელს უწყობს ხმაურის ლაქების გამოსახულების დეტალებად გადაქცევას.
PNDM, კრამერის სახე.
LMSDiscrete, კრამერის სახე. შედეგები საშინელია!
DDIM, კრამერის სახე. ბევრად უკეთესია.
მსგავსი ქცევა შეიძლება შეინიშნოს სხვა სუბიექტებისთვისაც, თუმცა ნაკლები ხარისხით.
PNDM, კარტოფილის თავი.
LMSDiscrete, კარტოფილის თავი.
DDIM, კარტოფილის თავი.
ორიგინალური Dreambooth სტატია აღწერს მოდელის UNet კომპონენტის ფაინ-ტიუნინგის მეთოდს, მაგრამ ტექსტის კოდირებულს (text encoder) გაყინულ მდგომარეობაში ტოვებს. თუმცა, ჩვენ დავაკვირდით, რომ კოდირებლის ფაინ-ტიუნინგი უკეთეს შედეგებს იძლევა. ჩვენ ამ მიდგომით ექსპერიმენტი მას შემდეგ ჩავატარეთ, რაც ის სხვა Dreambooth იმპლემენტაციებში ვნახეთ, და შედეგები შთამბეჭდავია! გაყინული ტექსტის კოდირებელი.
ფაინ-ტიუნინგირებული ტექსტის კოდირებელი.
ტექსტის კოდირებლის ფაინ-ტიუნინგი იძლევა საუკეთესო შედეგებს, განსაკუთრებით სახეებთან. ის აგენერირებს უფრო რეალისტურ გამოსახულებებს, ნაკლებად მიდრეკილია გადაჭარბებული მორგებისკენ (overfitting) და ასევე აღწევს მოთხოვნის უკეთეს ინტერპრეტაციას (prompt interpretability).
თეგები:
#ხელოვნური ინტელექტი
#მანქანური სწავლება
#მოდელების წვრთნა
#ai მოდელები
#stable diffusion
#dreambooth
#ფაინ-ტიუნინგი
#გენერაციული ხელოვნება
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ხელოვნური ინტელექტი
Anthropic-ის Claude-ის აღზევება Apple App Store-ის რეიტინგებში პენტაგონთან მოლაპარაკებების ფონზე
ხელოვნური ინტელექტი
ტრამპის ადმინისტრაცია Anthropic-ს სანქციებს უწესებს ხელოვნური ინტელექტის გამოყენებაზე უარის გამო: ექსპერტი ინდუსტრიის უსაფრთხოების ხარვეზებზე საუბრობს
ხელოვნური ინტელექტი