Hugging Face: Gemma მოდელების PEFT-ით ოპტიმიზაცია
ამ პოსტში განხილულია, თუ როგორ შეიძლება Gemma მოდელების პარამეტრულად ეფექტური წვრილმანი მორგება (PEFT) Hugging Face Transformers-ისა და PEFT ბიბლიოთეკების გამოყენებით GPU-ებსა და Cloud TPU-ებზე. ეს ტექნიკა განსაკუთრებით გამოსადეგია მეხსიერებისა და გამოთვლითი რესურსების დაზოგვისთვის, რაც საშუალებას აძლევს მომხმარებლებს, მათ შორის მათ, ვინც Colab-სა და Kaggle-ზე მუშაობს, ოპტიმიზაცია გაუკეთონ მოდელებს საკუთარ მონაცემთა ნაკრებებზე დაბალი დანახარჯით. სტატია დეტალურად განიხილავს LoRA-სა და QLoRA-ს გამ
Gemma-ს მოდელების ოჯახი კარგად ერგება პროტოტიპირებასა და ექსპერიმენტებს, კერძოდ, Colab-ის მეშვეობით ხელმისაწვდომი უფასო GPU რესურსის გამოყენებით. ამ პოსტში მოკლედ განვიხილავთ, თუ როგორ შეგიძლიათ განახორციელოთ პარამეტრულად ეფექტური წვრილმანი მორგება (Parameter Efficient FineTuning - PEFT) Gemma მოდელებისთვის Hugging Face Transformers-ისა და PEFT ბიბლიოთეკების გამოყენებით, GPU-ებსა და Cloud TPU-ებზე. ეს სახელმძღვანელო განკუთვნილია ყველასთვის, ვისაც სურს Gemma მოდელების მორგება საკუთარ მონაცემთა ნაკრებზე. ენობრივი მოდელებისთვის ნაგულისხმევი (სრული წონის) ტრენინგი, თუნდაც მოკრძალებული ზომის მოდელებისთვის, როგორც წესი, მოითხოვს დიდ მეხსიერებას და გამოთვლით რესურსებს. ერთის მხრივ, ეს შეიძლება იყოს ხელის შემშლელი მომხმარებლებისთვის, რომლებიც ეყრდნობიან ღიად ხელმისაწვდომ გამოთვლით პლატფორმებს სასწავლო და ექსპერიმენტული მიზნებისთვის, როგორიცაა Colab ან Kaggle. მეორეს მხრივ, კორპორატიული მომხმარებლებისთვისაც კი, ამ მოდელების სხვადასხვა სფეროზე ადაპტაციის ღირებულება მნიშვნელოვანი ოპტიმიზაციის მეტრიკაა.
PEFT, ანუ პარამეტრულად ეფექტური წვრილმანი მორგება, პოპულარული ტექნიკაა ამის დაბალ ფასად განსახორციელებლად. Hugging Face Transformers-ში Gemma მოდელები ოპტიმიზირებულია როგორც PyTorch-ისთვის, ასევე PyTorch/XLA-ისთვის. ეს საშუალებას აძლევს TPU-ს და GPU-ს მომხმარებლებს საჭიროებისამებრ მიიღონ წვდომა და ექსპერიმენტები ჩაატარონ Gemma მოდელებზე. Gemma-ს გამოშვებასთან ერთად, ჩვენ ასევე გავაუმჯობესეთ PyTorch/XLA-ს FSDP გამოცდილება Hugging Face-ში. FSDP SPMD ინტეგრაციის მეშვეობით სხვა Hugging Face მოდელებსაც შეუძლიათ ისარგებლონ TPU აჩქარებით PyTorch/XLA-ის მეშვეობით. ამ პოსტში ჩვენ ყურადღებას გავამახვილებთ PEFT-ზე და უფრო კონკრეტულად, Low-Rank Adaptation (LoRA) ტექნიკაზე Gemma მოდელებისთვის. LoRA ტექნიკის უფრო ყოვლისმომცველი მიმოხილვისთვის, მკითხველებს ვურჩევთ გაეცნონ Lialin et al.-ის ნაშრომს „Scaling Down to Scale Up“ და Belkada et al.-ის ამ შესანიშნავ პოსტს. Low-Rank Adaptation (LoRA) არის ერთ-ერთი პარამეტრულად ეფექტური წვრილმანი მორგების ტექნიკა დიდი ენობრივი მოდელებისთვის (LLM). ის მორგებას უწევს მოდელის პარამეტრების საერთო რაოდენობის მხოლოდ მცირე ნაწილს, ორიგინალური მოდელის გაყინვით და მხოლოდ ადაპტერის ფენების (რომლებიც დაბალი რანგის მატრიცებად არის დაშლილი) ტრენინგით. PEFT ბიბლიოთეკა უზრუნველყოფს მარტივ აბსტრაქციას, რომელიც მომხმარებლებს საშუალებას აძლევს აირჩიონ მოდელის ფენები, სადაც ადაპტერის წონები უნდა იქნას გამოყენებული.
ამ მონაკვეთში, ჩვენ ყველა nn.Linear ფენას მიზნობრივ ფენად მოვიხსენიებთ. შემდეგ მაგალითში, Dettmers et al.-ის QLoRA-ს გამოვიყენებთ, რათა საბაზო მოდელი 4-ბიტიანი სიზუსტით კვანტურიზდეს მეხსიერების თვალსაზრისით უფრო ეფექტური წვრილმანი მორგების პროტოკოლისთვის. მოდელის QLoRA-ით ჩატვირთვა შესაძლებელია თქვენს გარემოში bitsandbytes ბიბლიოთეკის დაინსტალირებით, შემდეგ კი BitsAndBytesConfig ობიექტის გადაცემით from_pretrained ფუნქციაზე მოდელის ჩატვირთვისას. Gemma მოდელის არტეფაქტებზე წვდომისთვის მომხმარებლებმა უნდა მიიღონ თანხმობის ფორმა.
ახლა კი დავიწყოთ იმპლემენტაცია. თუ დავუშვებთ, რომ თქვენ წარადგინეთ თანხმობის ფორმა, შეგიძლიათ მიიღოთ მოდელის არტეფაქტები Hugging Face Hub-დან. ვიწყებთ მოდელისა და ტოკენაიზერის ჩამოტვირთვით. ასევე ვამატებთ BitsAndBytesConfig-ს მხოლოდ წონის კვანტიზაციისთვის. ახლა შევამოწმოთ მოდელი წვრილმანი მორგების დაწყებამდე, ცნობილი ციტატის გამოყენებით: მოდელი აკეთებს გონივრულ დასრულებას რამდენიმე დამატებითი ტოკენით, მაგრამ ეს ზუსტად არ არის ის ფორმატი, რომლითაც პასუხის მიღება გვსურს. ვნახოთ, შეგვიძლია თუ არა წვრილმანი მორგების გამოყენება მოდელისთვის იმის სასწავლებლად, რომ პასუხი სასურველ ფორმატში გამოიმუშავოს.
დასაწყისისთვის, ავირჩიოთ ინგლისური ციტატების მონაცემთა ნაკრები Abirate/english_quotes. ახლა კი მოვარგოთ ეს მოდელი ზემოთ მოცემული LoRA კონფიგურაციის გამოყენებით. და ბოლოს, მზად ვართ ხელახლა შევამოწმოთ მოდელი იმავე მოთხოვნით, რომელიც ადრე გამოვიყენეთ: ამჯერად პასუხს ვიღებთ სასურველ ფორმატში.
როგორც უკვე აღვნიშნეთ, Hugging Face Transformers ახლა მხარს უჭერს PyTorch/XLA-ს უახლეს FSDP იმპლემენტაციას. ამან შეიძლება მნიშვნელოვნად დააჩქაროს წვრილმანი მორგების სიჩქარე. ამის გასააქტიურებლად, საჭიროა მხოლოდ FSDP კონფიგურაციის დამატება transformers.Trainer-ში. ჩვენ განვიხილეთ ეს მარტივი მაგალითი, რომელიც ადაპტირებულია საწყისი ნოუთბუქიდან, რათა ვაჩვენოთ LoRA წვრილმანი მორგების მეთოდი Gemma მოდელებზე. GPU-ს სრული Colab-ის ნოუთბუქი შეგიძლიათ იხილოთ აქ, ხოლო TPU-ს სრული სკრიპტი – აქ. მოხარულნი ვართ კვლევისა და სწავლის უსაზღვრო შესაძლებლობებით, რაც ამ ბოლოდროინელმა დამატებამ მოუტანა ჩვენს ღია კოდის ეკოსისტემას. მომხმარებლებს ვურჩევთ ასევე ეწვიონ Gemma-ს დოკუმენტაციას, ისევე როგორც ჩვენს საწყის ბლოგს Gemma მოდელების ტრენინგის, მორგებისა და განთავსების მეტი მაგალითებისთვის.
თეგები:
#ხელოვნური ინტელექტი
#მანქანური სწავლება
#gpu
#hugging face
#pytorch
#gemma
#lora
#tpu
#ფაინ-ტიუნინგი
#colab
#qlora
#peft
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ხელოვნური ინტელექტი
Anthropic-ის Claude-ის აღზევება Apple App Store-ის რეიტინგებში პენტაგონთან მოლაპარაკებების ფონზე
ხელოვნური ინტელექტი
ტრამპის ადმინისტრაცია Anthropic-ს სანქციებს უწესებს ხელოვნური ინტელექტის გამოყენებაზე უარის გამო: ექსპერტი ინდუსტრიის უსაფრთხოების ხარვეზებზე საუბრობს
ხელოვნური ინტელექტი