ოფლაინ გადაწყვეტილების ტრანსფორმატორის მოდელის გაწვრთნა: ნახევრად-გეპარდის სიმულაციის მიღწევა
ეს სტატია დეტალურად აღწერს, თუ როგორ უნდა გაწვრთნათ ოფლაინ გადაწყვეტილების ტრანსფორმატორის (Decision Transformer) მოდელი ნულიდან, რათა სიმულაციურ გარემოში ნახევრად-გეპარდმა შეძლოს მოძრაობა. განხილულია მოდელის ფუნდამენტური პრინციპები, რომელიც განმტკიცებით სწავლებას მიმდევრობის მოდელირების პრობლემად აღიქვამს და წარსული მონაცემებისა და სასურველი შედეგების საფუძველზე სამომავლო მოქმედებებს აგენერირებს. პრაქტიკული გაკვეთილი, რომელიც Google Colab-ზე სრულდება, ხსნის მონაცემთა დამუშავებასა და Hugging Fac
დღეს ჩვენ ვისწავლით, თუ როგორ უნდა გაწვრთნათ თქვენი პირველი ოფლაინ გადაწყვეტილების ტრანსფორმატორის მოდელი (Offline Decision Transformer) ნულიდან, რათა ნახევრად-გეპარდმა შეძლოს სირბილი. მოდელის გაწვრთნა პირდაპირ Google Colab-ზე მოხდება, რომლის ბმულიც აქ არის მოცემული: 👉 https://github.com/huggingface/blog/blob/main/notebooks/101_train-decision-transformers.ipynb საინტერესოდ ჟღერს? მოდით, დავიწყოთ!
გადაწყვეტილების ტრანსფორმატორის მოდელი (Decision Transformer) პირველად წარმოდგენილ იქნა ჩენ ლ.-სა და სხვების მიერ ნაშრომში „Decision Transformer: Reinforcement Learning via Sequence Modeling“. ის განმტკიცებით სწავლებას (Reinforcement Learning - RL) აბსტრაგირებს, როგორც პირობით-მიმდევრობის მოდელირების პრობლემას. ძირითადი იდეა მდგომარეობს იმაში, რომ RL მეთოდების გამოყენებით პოლიტიკის გაწვრთნის ნაცვლად, მაგალითად, ღირებულების ფუნქციის მორგება, რომელიც გვეტყვის, თუ რა მოქმედება უნდა განვახორციელოთ მაქსიმალური შემოსავლის (კუმულაციური ჯილდოს) მისაღებად, ჩვენ ვიყენებთ მიმდევრობის მოდელირების ალგორითმს (ტრანსფორმატორი), რომელიც, მოცემული სასურველი შემოსავლის, წარსული მდგომარეობებისა და მოქმედებების გათვალისწინებით, წარმოქმნის სამომავლო მოქმედებებს ამ სასურველი შემოსავლის მისაღწევად. ეს არის ავტორეგრესიული მოდელი, რომელიც ეფუძნება სასურველ შემოსავალს, წარსულ მდგომარეობებსა და მოქმედებებს, რათა წარმოქმნას სამომავლო მოქმედებები, რომლებიც მიაღწევენ სასურველ შემოსავალს.
ეს არის სრული ცვლილება განმტკიცებითი სწავლების პარადიგმაში, რადგან ჩვენ ვიყენებთ გენერაციულ ტრაექტორიის მოდელირებას (მდგომარეობების, მოქმედებებისა და ჯილდოების მიმდევრობის ერთობლივი განაწილების მოდელირება) ტრადიციული RL ალგორითმების ჩასანაცვლებლად. ეს ნიშნავს, რომ გადაწყვეტილების ტრანსფორმატორებში ჩვენ არ ვახდენთ შემოსავლის მაქსიმიზაციას, არამედ ვაგენერირებთ სამომავლო მოქმედებების სერიას, რომლებიც მიაღწევენ სასურველ შემოსავალს. პროცესი მიმდინარეობს შემდეგნაირად: გადაწყვეტილების ტრანსფორმატორის არქიტექტურა. მდგომარეობები, მოქმედებები და შემოსავლები გადაეცემა მოდალობის სპეციფიკურ ხაზოვან ჩაშენებებს (linear embeddings), რასაც ემატება პოზიციური ეპიზოდური დროის ნაბიჯის ენკოდირება. ტოკენები გადაეცემა GPT არქიტექტურას, რომელიც ავტორეგრესიულად ითვალისწინებს მოქმედებებს მიზეზობრივი თვითყურადღების ნიღბის (causal self-attention mask) გამოყენებით. სურათი [1]-დან.
გადაწყვეტილების ტრანსფორმატორების სხვადასხვა ტიპი არსებობს, თუმცა დღეს ჩვენ ოფლაინ გადაწყვეტილების ტრანსფორმატორს გავწვრთნით, რაც იმას ნიშნავს, რომ მხოლოდ სხვა აგენტების ან ადამიანის დემონსტრაციებიდან შეგროვებულ მონაცემებს გამოვიყენებთ. აგენტი არ ურთიერთქმედებს გარემოსთან. თუ გსურთ მეტი გაიგოთ ოფლაინ და ონლაინ განმტკიცებით სწავლებას შორის განსხვავების შესახებ, იხილეთ ეს სტატია.
მას შემდეგ, რაც გავიგეთ ოფლაინ გადაწყვეტილების ტრანსფორმატორების თეორია, მოდით, ვნახოთ, როგორ გავწვრთნათ ის პრაქტიკაში. წინა პოსტში ჩვენ ვაჩვენეთ, როგორ გამოვიყენოთ ტრანსფორმატორების Decision Transformer მოდელი და ჩავტვირთოთ წინასწარ გაწვრთნილი წონები 🤗 hub-დან. ამ ნაწილში ჩვენ გამოვიყენებთ 🤗 Trainer-ს და სპეციალურ მონაცემთა კოლატორს (Custom Data Collator) გადაწყვეტილების ტრანსფორმატორის მოდელის ნულიდან გასაწვრთნელად, 🤗 hub-ზე განთავსებული ოფლაინ RL მონაცემთა ნაკრების (Offline RL Dataset) გამოყენებით. ამ გაკვეთილის კოდი შეგიძლიათ იხილოთ ამ Colab ნოუთბუქში.
ჩვენ შევასრულებთ ოფლაინ RL-ს, რათა ვისწავლოთ შემდეგი ქცევა Mujoco-ს ნახევრად-გეპარდის გარემოში. 🤗 hub-ზე განთავსებულია ოფლაინ RL მონაცემთა ნაკრებების არაერთი ვარიანტი. დღეს ჩვენ გავწვრთნით მოდელს ნახევრად-გეპარდის „ექსპერტულ“ მონაცემთა ნაკრებზე, რომელიც ასევე ხელმისაწვდომია hub-ზე. პირველ რიგში, საჭიროა, რომ იმპორტი გავუკეთოთ load_dataset ფუნქციას 🤗 datasets პაკეტიდან და გადმოვწეროთ მონაცემთა ნაკრები ჩვენს მანქანაზე. მიუხედავად იმისა, რომ hub-ზე არსებული მონაცემთა ნაკრებების უმეტესობა მზადაა გამოსაყენებლად, ზოგჯერ გვსურს მონაცემთა ნაკრების დამატებითი დამუშავება ან მოდიფიკაცია. ამ შემთხვევაში, ჩვენ გვინდა დავემთხვათ ავტორის იმპლემენტაციას, ანუ გვჭირდება: ამ მონაცემთა ნაკრების წინასწარი დამუშავების (preprocessing) შესასრულებლად, ჩვენ გამოვიყენებთ სპეციალურ 🤗 Data Collator-ს.
ახლა კი დავიწყოთ სპეციალური მონაცემთა კოლატორის (Custom Data Collator) შექმნა ოფლაინ განმტკიცებითი სწავლებისთვის. ეს იყო ბევრი კოდი, შეჯამება კი ის არის, რომ ჩვენ განვსაზღვრეთ კლასი, რომელიც იღებს ჩვენს მონაცემთა ნაკრებს, ასრულებს საჭირო წინასწარ დამუშავებას და დაგვიბრუნებს მდგომარეობების, მოქმედებების, ჯილდოების, შემოსავლების, დროის ნაბიჯებისა და ნიღბების ბატჩებს (batches). ეს ბატჩები პირდაპირ შეიძლება გამოყენებულ იქნას გადაწყვეტილების ტრანსფორმატორის მოდელის გასაწვრთნელად 🤗 transformers Trainer-ის საშუალებით.
მოდელის 🤗 Trainer კლასით გასაწვრთნელად, პირველ რიგში, უნდა დავრწმუნდეთ, რომ მის მიერ დაბრუნებული ლექსიკონი შეიცავს დანაკარგს (loss), ამ შემთხვევაში, L-2 ნორმას მოდელის მოქმედების პროგნოზებსა და სამიზნეებს შორის. ამას მივაღწევთ TrainableDT კლასის შექმნით, რომელიც მემკვიდრეობით იღებს Decision Transformer მოდელს.
transformers Trainer კლასს ესაჭიროება არაერთი არგუმენტი, რომლებიც განსაზღვრულია TrainingArguments კლასში. ჩვენ ვიყენებთ იმავე ჰიპერპარამეტრებს, რაც ავტორების ორიგინალურ იმპლემენტაციაშია, თუმცა ვწვრთნით ნაკლები იტერაციის განმავლობაში. ამას დაახლოებით 40 წუთი სჭირდება Colab ნოუთბუქში, ასე რომ, შეგიძლიათ ყავა მიირთვათ ან წაიკითხოთ 🤗 Annotated Diffusion ბლოგპოსტი მოცდისას. ავტორები დაახლოებით 3 საათის განმავლობაში ვარჯიშობენ, ამიტომ ჩვენი შედეგები არ იქნება ისეთივე კარგი, როგორც მათი.
მას შემდეგ, რაც ავხსენით გადაწყვეტილების ტრანსფორმატორის, ტრეინერის თეორია და მისი გაწვრთნის მეთოდები, თქვენ მზად ხართ, გაწვრთნათ თქვენი პირველი ოფლაინ გადაწყვეტილების ტრანსფორმატორის მოდელი ნულიდან, რათა ნახევრად-გეპარდმა ირბინოს: 👉 https://github.com/huggingface/blog/blob/main/notebooks/101_train-decision-transformers.ipynb Colab მოიცავს გაწვრთნილი მოდელის ვიზუალიზაციას, ასევე ინსტრუქციას, თუ როგორ შეინახოთ თქვენი მოდელი 🤗 hub-ზე. ამ პოსტმა აჩვენა, თუ როგორ უნდა გაწვრთნათ გადაწყვეტილების ტრანსფორმატორი ოფლაინ RL მონაცემთა ნაკრებზე, რომელიც განთავსებულია 🤗 datasets-ზე. ჩვენ გამოვიყენეთ 🤗 transformers Trainer და სპეციალური მონაცემთა კოლატორი. გარდა ამისა...
თეგები:
#რობოტიკა
#ღრმა სწავლება
#hugging face
#ტრანსფორმატორები
#გენერაციული მოდელები
#ოფლაინ გადაწყვეტილების ტრანსფორმატორი
#განმტკიცებითი სწავლება
#მიმდევრობის მოდელირება
#google colab
#ai გაწვრთნა
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
მანქანური სწავლება
მოწინავე ჰიპერპარამეტრების ოპტიმიზაცია Hugging Face Transformers-თან და Ray Tune-თან ერთად
მანქანური სწავლება
Gradio 3.0 და Gradio Blocks: მანქანური სწავლების დემოების შექმნის რევოლუცია
მანქანური სწავლება