Hugging Face-ის ტრანსფორმატორები TensorFlow-ის ინჟინრებისთვის: გზამკვლევი
სტატია განიხილავს PyTorch-ის ინჟინრების მიერ TensorFlow-თან მიდგომის ხშირ შეცდომას, კერძოდ, Keras-ის მაღალი დონის API-ის უგულებელყოფას. ხაზგასმულია, რომ Keras-ის გამოყენება TensorFlow-სთან ოპტიმალურია. შემდეგ წარმოდგენილია Hugging Face-ის ტრანსფორმატორები, როგორც ძლიერი ინსტრუმენტები, რომლებიც TensorFlow-ის ინჟინრებს საშუალებას აძლევს, გამოიყენონ უახლესი მოდელები ნაცნობი Keras API-ის მეშვეობით. დეტალურად არის ახსნილი ტრანსფერული სწავლის (transfer learning) კონცეფცია, როგორც ML პრობლემების გადაჭრ
PyTorch ინჟინრებს შორის (წარმოიდგინეთ, როგორ ვუყურებ მათ უკმაყოფილოდ ღია სამუშაო სივრცეში) არსებობს ტენდენცია, რომ ეს პრობლემად აღიქვან, რომელიც უნდა დაიძლიოს; მათი მიზანია გაარკვიონ, როგორ აიცილონ თავიდან TensorFlow, რათა გამოიყენონ დაბალი დონის სწავლებისა და მონაცემთა ჩატვირთვის კოდი, რომელსაც მიჩვეულნი არიან. ეს TensorFlow-თან მიდგომის სრულიად არასწორი გზაა! Keras შესანიშნავი მაღალი დონის API-ია. თუ მას უგულებელყოფთ ნებისმიერ პროექტში, რომელიც რამდენიმე მოდულზე დიდია, საბოლოოდ აღმოაჩენთ, რომ მისი ფუნქციონალურობის უმეტესი ნაწილის რეპროდუცირება თავად მოგიწევთ, როდესაც მიხვდებით, რომ ის გჭირდებათ. როგორც დახვეწილი, პატივცემული და მაღალკვალიფიციური TensorFlow ინჟინრები, გვსურს გამოვიყენოთ უახლესი მოდელების წარმოუდგენელი ძალა და მოქნილობა, მაგრამ გვსურს მათთან მუშაობა ჩვენთვის ნაცნობი ინსტრუმენტებითა და API-ით.
ეს ბლოგპოსტი იქნება Hugging Face-ში მიღებულ გადაწყვეტილებებზე, რათა ეს შესაძლებელი გახდეს, და იმაზე, თუ რას უნდა ელოდოთ ამ ფრეიმვორკისგან, როგორც TensorFlow-ის პროგრამისტმა. გამოცდილ მომხმარებლებს შეუძლიათ ამ სექციის სწრაფად გადახედვა ან გამოტოვება, მაგრამ თუ ეს თქვენი პირველი შეხებაა Hugging Face-სა და ტრანსფორმატორებთან, დავიწყებ ბიბლიოთეკის ძირითადი იდეის მიმოხილვით: თქვენ უბრალოდ ითხოვთ წინასწარ გაწვრთნილ მოდელს სახელის მიხედვით და მას ერთ სტრიქონ კოდში იღებთ. უმარტივესი გზაა TFAutoModel კლასის გამოყენება: ეს ერთი სტრიქონი მოახდენს მოდელის არქიტექტურის ინსტანცირებას და წონების ჩატვირთვას, რაც მოგცემთ ორიგინალური, ცნობილი BERT მოდელის ზუსტ ასლს.
ეს მოდელი თავისით ბევრს არაფერს გააკეთებს — მას აკლია გამომავალი თავი (output head) ან დანაკარგის ფუნქცია (loss function). ფაქტობრივად, ის ნერვული ქსელის „ღეროა“, რომელიც ბოლო ფარული შრის შემდეგ ჩერდება. მაშ, როგორ დავუმატოთ მას გამომავალი თავი? მარტივად, უბრალოდ გამოიყენეთ სხვა AutoModel კლასი. აქ ჩვენ ვტვირთავთ Vision Transformer (ViT) მოდელს და ვამატებთ გამოსახულების კლასიფიკაციის თავს: ახლა ჩვენს მოდელს აქვს გამომავალი თავი და, სურვილისამებრ, დანაკარგის ფუნქცია, რომელიც შეესაბამება მის ახალ ამოცანას. თუ ახალი გამომავალი თავი განსხვავდება ორიგინალური მოდელისგან, მაშინ მისი წონები შემთხვევით იქნება ინიცირებული. ყველა სხვა წონა დაიტვირთება ორიგინალური მოდელიდან.
მაგრამ რატომ ვაკეთებთ ამას? რატომ გამოვიყენოთ არსებული მოდელის „ღერო“, ნაცვლად იმისა, რომ საჭირო მოდელი ნულიდან შევქმნათ? აღმოჩნდა, რომ დიდი მოდელები, რომლებიც გაწვრთნილია უამრავ მონაცემზე, გაცილებით უკეთესი საწყისი წერტილებია თითქმის ნებისმიერი მანქანური სწავლის (ML) პრობლემისთვის, ვიდრე უბრალოდ წონების შემთხვევითი ინიციალიზაციის სტანდარტული მეთოდი. ამას ტრანსფერული სწავლება (transfer learning) ეწოდება და თუ დაფიქრდებით, ეს ლოგიკურია – ტექსტური ამოცანის კარგად გადასაჭრელად საჭიროა ენის გარკვეული ცოდნა, ხოლო ვიზუალური ამოცანის კარგად გადასაჭრელად საჭიროა გამოსახულებებისა და სივრცის გარკვეული ცოდნა. ML-ის მონაცემებზე დამოკიდებულების მიზეზი ტრანსფერული სწავლის გარეშე უბრალოდ ის არის, რომ ეს საბაზისო დომენის ცოდნა ხელახლა უნდა იქნას შესწავლილი ნულიდან ყოველი პრობლემისთვის, რაც მოითხოვს სასწავლო მაგალითების უზარმაზარ მოცულობას. ტრანსფერული სწავლის გამოყენებით კი, პრობლემა შეიძლება გადაიჭრას ათასი სასწავლო მაგალითით, რასაც მის გარეშე შესაძლოა მილიონი დასჭირვებოდა, და ხშირად უფრო მაღალი საბოლოო სიზუსტით. ამ თემის შესახებ დამატებითი ინფორმაციისთვის იხილეთ Hugging Face Course-ის შესაბამისი სექციები!
ტრანსფერული სწავლის გამოყენებისას, თუმცა, ძალიან მნიშვნელოვანია, რომ მოდელის შეტანილი მონაცემები დამუშავდეს ისე, როგორც ისინი დამუშავდა სწავლების დროს. ეს უზრუნველყოფს, რომ მოდელს რაც შეიძლება ნაკლები რამის ხელახლა სწავლა მოუწიოს, როდესაც მის ცოდნას ახალ პრობლემაზე გადავიტანთ. ტრანსფორმატორებში ეს წინასწარი დამუშავება ხშირად ტოკენიზატორების (tokenizers) საშუალებით ხდება. ტოკენიზატორების ჩატვირთვა შესაძლებელია ისევე, როგორც მოდელების, AutoTokenizer კლასის გამოყენებით. დარწმუნდით, რომ იტვირთავთ იმ ტოკენიზატორს, რომელიც შეესაბამება თქვენს მიერ გამოსაყენებელ მოდელს! ეს, რა თქმა უნდა, ბიბლიოთეკის მხოლოდ მცირე ნაწილია – თუ მეტი გსურთ, შეგიძლიათ იხილოთ ჩვენი ნოუთბუქები ან კოდის მაგალითები. ბიბლიოთეკის მოქმედებაში სხვა მაგალითებიც ხელმისაწვდომია keras.io-ზე!
ამ ეტაპზე, თქვენ უკვე გესმით ტრანსფორმატორების ზოგიერთი ძირითადი კონცეფცია და კლასი. ყველაფერი, რაც ზემოთ დავწერე, ფრეიმვორკისგან დამოუკიდებელია (გარდა „TF“-ისა TFAutoModel-ში), მაგრამ როდესაც თქვენ რეალურად გსურთ თქვენი მოდელის გაწვრთნა და გამოყენება, სწორედ აქ დაიწყება განსხვავებები ფრეიმვორკებს შორის. და ეს მიგვიყვანს ამ სტატიის მთავარ ფოკუსამდე: როგორც TensorFlow-ის ინჟინერს, რას უნდა ელოდოთ ტრანსფორმატორებისგან?
ეს თითქმის თავისთავად იგულისხმება TensorFlow ბიბლიოთეკისთვის, მაგრამ ხაზგასმა მაინც ღირს. მომხმარებლის პერსპექტივიდან, ამ არჩევანის ყველაზე მნიშვნელოვანი ეფექტი ის არის, რომ Keras-ის მეთოდების, როგორიცაა fit(), compile() და predict(), გამოძახება შეგიძლიათ უშუალოდ ჩვენს მოდელებზე. მაგალითად, თუ თქვენი მონაცემები უკვე მომზადებული და ტოკენიზებულია, მაშინ თანმიმდევრობის კლასიფიკაციის მოდელიდან პროგნოზების მიღება TensorFlow-ით ისეთივე მარტივია, როგორც: და თუ ამ მოდელის გაწვრთნა გსურთ, ეს უბრალოდ: თუმცა, ეს მოხერხებულობა არ ნიშნავს, რომ თქვენ შეზღუდული ხართ მხოლოდ იმ ამოცანებით, რომლებსაც ჩვენ მხარს ვუჭერთ „მოწყობილობიდანვე“. Keras მოდელები შეიძლება კომპონირებული იყოს, როგორც შრეები სხვა მოდელებში, ასე რომ, თუ თქვენ გაქვთ გიგანტური „გალაქტიკური ტვინის“ იდეა, რომელიც მოიცავს ხუთი სხვადასხვა მოდელის ერთმანეთთან შერწყმას, მაშინ არაფერი გიშლით ხელს, გარდა შესაძლოა თქვენი შეზღუდული GPU მეხსიერებისა. შესაძლოა გსურთ წინასწარ გაწვრთნილი ენობრივი მოდელის შერწყმა...
თეგები:
#ხელოვნური ინტელექტი
#მანქანური სწავლება
#ღრმა სწავლება
#hugging face
#pytorch
#tensorflow
#ტრანსფორმატორები
#ტრანსფერული სწავლა
#მოდელები
#keras
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ტექნოლოგიები
Honor Magic V6: უთხელესი დასაკეცი ტელეფონი? პირველი შთაბეჭდილებები
ტექნოლოგიები
Honor Magic V6: ყველაზე თხელი დასაკეცი სმარტფონი და მისი შთამბეჭდავი შესაძლებლობები
ტექნოლოგიები