Transformer მოდელების აჩქარება Graphcore IPU-ებზე Hugging Face Optimum-ით
Hugging Face-მა წარმოადგინა Optimum, ღია კოდის ბიბლიოთეკა, რომელიც ამარტივებს Transformer მოდელების პროგნოზირების შეყოვნების შემცირებას სხვადასხვა აპარატურულ პლატფორმაზე. Graphcore-სა და Hugging Face-ის პარტნიორობის ფარგლებში, ახლა წარმოდგენილია BERT, როგორც პირველი IPU-ზე ოპტიმიზებული მოდელი, რომელიც განკუთვნილია Graphcore-ის ინტელექტუალური დამუშავების ერთეულისთვის (IPU). ეს სტატია დეტალურად აღწერს, თუ როგორ გამოიყენოთ Optimum და IPU-ები BERT მოდელების მარტივად გასაწვრთნელად და დასაჩქარებლად, მ
საბედნიეროდ, Hugging Face-მა წარმოადგინა Optimum, ღია კოდის ბიბლიოთეკა, რომელიც მნიშვნელოვნად ამარტივებს Transformer მოდელების პროგნოზირების შეყოვნების შემცირებას სხვადასხვა აპარატურულ პლატფორმაზე. ამ ბლოგ პოსტში თქვენ გაიგებთ, თუ როგორ დააჩქაროთ Transformer მოდელები Graphcore Intelligence Processing Unit (IPU)-სთვის, რომელიც არის მაღალფუნქციური, მარტივი გამოსაყენებელი პარალელური პროცესორი, თავიდანვე შექმნილი AI დატვირთვისთვის. Graphcore-სა და Hugging Face-ს შორის ამ პარტნიორობის მეშვეობით, ჩვენ ახლა წარმოგიდგენთ BERT-ს, როგორც პირველ IPU-ზე ოპტიმიზებულ მოდელს. მომდევნო თვეებში ჩვენ წარმოვადგენთ ამ IPU-ზე ოპტიმიზებული მოდელებიდან კიდევ ბევრს, რომელიც მოიცავს ისეთ აპლიკაციებს, როგორიცაა ხედვა, მეტყველება, თარგმანი და ტექსტის გენერაცია. Graphcore-ის ინჟინრებმა დანერგეს და ოპტიმიზაცია გაუკეთეს BERT-ს ჩვენი IPU სისტემებისთვის Hugging Face transformers-ის გამოყენებით, რათა დაეხმარონ დეველოპერებს მარტივად გაწვრთნან, დააზუსტონ და დააჩქარონ თავიანთი უახლესი მოდელები. მოდით, გამოვიყენოთ BERT, როგორც მაგალითი, რათა დაგეხმაროთ Optimum-ისა და IPU-ების გამოყენების დაწყებაში.
ამ სახელმძღვანელოში ჩვენ გამოვიყენებთ IPU-POD16 სისტემას Graphcloud-ში, Graphcore-ის ღრუბლოვან მანქანური სწავლების პლატფორმაზე, და მივყვებით PyTorch-ის დაყენების ინსტრუქციებს, რომლებიც მოცემულია 'Getting Started with Graphcloud'-ში. Graphcore-ის Poplar SDK უკვე დაინსტალირებულია Graphcloud სერვერზე. თუ თქვენ გაქვთ განსხვავებული დაყენება, შეგიძლიათ იპოვოთ ინსტრუქციები, რომლებიც თქვენს სისტემას ეხება 'PyTorch for the IPU: User Guide'-ში. თქვენ დაგჭირდებათ შემდეგი ბრძანებების გაშვება რამდენიმე გარემოს ცვლადის დასაყენებლად, რომლებიც უზრუნველყოფენ Graphcore-ის ხელსაწყოებისა და Poplar ბიბლიოთეკების მუშაობას. უახლეს სისტემაზე, რომელიც მუშაობს Poplar SDK ვერსია 2.3-ზე Ubuntu 18.04-ზე, შეგიძლიათ იპოვოთ /opt/gc/poplar_sdk-ubuntu_18_04-2.3.0+774-b47c577c2a/ საქაღალდეში. თქვენ დაგჭირდებათ Poplar-ისა და PopART-ის (Poplar Advanced Runtime) ორივე გააქტიურების სკრიპტის გაშვება PyTorch-ის გამოსაყენებლად.
PopTorch Poplar SDK-ის ნაწილია. ის უზრუნველყოფს ფუნქციებს, რომლებიც PyTorch მოდელებს საშუალებას აძლევს იმუშაონ IPU-ზე მინიმალური კოდის ცვლილებებით. შეგიძლიათ შექმნათ და გაააქტიუროთ PopTorch გარემო 'Setting up PyTorch for the IPU' სახელმძღვანელოს მიხედვით. ახლა, როდესაც თქვენს გარემოს აქვს ყველა Graphcore Poplar და PopTorch ბიბლიოთეკა ხელმისაწვდომი, თქვენ უნდა დააინსტალიროთ უახლესი 🤗 Optimum Graphcore პაკეტი ამ გარემოში. ეს იქნება ინტერფეისი 🤗 Transformers ბიბლიოთეკასა და Graphcore IPU-ებს შორის. გთხოვთ, დარწმუნდეთ, რომ წინა ნაბიჯში შექმნილი PopTorch ვირტუალური გარემო გააქტიურებულია. თქვენს ტერმინალს უნდა ჰქონდეს პრეფიქსი, რომელიც აჩვენებს poptorch გარემოს სახელს, როგორც ქვემოთ.
Optimum Graphcore რეპოზიტორიუმი შეიცავს ნიმუშ კოდს Optimum მოდელების IPU-ში გამოსაყენებლად. თქვენ უნდა დააკლონიროთ რეპოზიტორიუმი და შეცვალოთ დირექტორია example/question-answering საქაღალდეში, რომელიც შეიცავს BERT-ის IPU იმპლემენტაციას. ახლა, ჩვენ გამოვიყენებთ run_qa.py-ს BERT-ის IPU იმპლემენტაციის დასაზუსტებლად SQUAD1.1 მონაცემთა ნაკრებზე. run_qa.py სკრიპტი მუშაობს მხოლოდ იმ მოდელებთან, რომლებსაც აქვთ სწრაფი ტოკენიზატორი (რომელსაც მხარს უჭერს 🤗 Tokenizers ბიბლიოთეკა), რადგან ის იყენებს ამ ტოკენიზატორების სპეციალურ ფუნქციებს. ეს ეხება ჩვენს BERT მოდელს, და თქვენ უნდა გადასცეთ მისი სახელი, როგორც შეყვანის არგუმენტი --model_name_or_path-ს. IPU-ს გამოსაყენებლად, Optimum მოძებნის ipu_config.json ფაილს იმ ბილიკიდან, რომელიც გადაეცემა --ipu_config_name არგუმენტს. მონაცემთა ნაკრების მიღების ძალიან მარტივი გზაა Hugging Face Datasets ბიბლიოთეკის გამოყენება, რაც დეველოპერებს უადვილებს მონაცემთა ნაკრების ჩამოტვირთვასა და გაზიარებას Hugging Face ჰაბზე. მას ასევე აქვს წინასწარ შექმნილი მონაცემთა ვერსიონირება git-ისა და git-lfs-ის საფუძველზე, ასე რომ თქვენ შეგიძლიათ იმუშაოთ მონაცემთა განახლებულ ვერსიებზე იგივე რეპოზიტორიუმზე მითითებით. აქ მონაცემთა ნაკრები მოყვება სავარჯიშო და ვალიდაციის ფაილებს, და მონაცემთა ნაკრების კონფიგურაციებს, რათა ხელი შეუწყოს იმის განსაზღვრას, თუ რომელი შეყვანები გამოიყენოს მოდელის თითოეულ შესრულების ფაზაში. არგუმენტი --dataset_name==squad მიუთითებს SQuAD v1.1-ზე Hugging Face Hub-ში. თქვენ ასევე შეგიძლიათ მიაწოდოთ თქვენი საკუთარი CSV/JSON/TXT სავარჯიშო და შეფასების ფაილები, თუ ისინი შეესაბამება SQuAD მონაცემთა ნაკრების ან Datasets ბიბლიოთეკაში არსებული სხვა კითხვა-პასუხის მონაცემთა ნაკრების ფორმატს. სიტყვების ტოკენებად გადაქცევისთვის, ამ სკრიპტს დასჭირდება სწრაფი ტოკენიზატორი. ის აჩვენებს შეცდომას, თუ თქვენ არ გადაეცით ასეთი ტოკენიზატორი. ცნობისთვის, აქ მოცემულია მხარდაჭერილი ტოკენიზატორების სია. არგუმენტი --model_name_or_path==bert-base-uncased ტვირთავს bert-base-uncased მოდელის იმპლემენტაციას, რომელიც ხელმისაწვდომია Hugging Face Hub-ში. Hugging Face Hub-ის აღწერიდან: "BERT საბაზისო მოდელი (uncased): წინასწარ გაწვრთნილი მოდელი ინგლისურ ენაზე ნიღბიანი ენის მოდელირების (MLM) ამოცანის გამოყენებით. ის ამ ნაშრომში იყო წარმოდგენილი და პირველად ამ რეპოზიტორიუმში გამოქვეყნდა. ეს მოდელი არის uncased: ის არ განასხვავებს 'english'-სა და 'English'-ს".
ახლა შეგიძლიათ გამოიყენოთ IPUTrainer კლასი, რომელიც ხელმისაწვდომია Optimum-ში, რათა სრულად გამოიყენოთ Graphcore-ის პროგრამული და აპარატურული სტეკი, და გაწვრთნათ თქვენი მოდელები IPU-ებში მინიმალური კოდის ცვლილებებით. Optimum-ის წყალობით, შეგიძლიათ უახლესი აპარატურის მარტივად ჩართვა-გაშვება თქვენი უახლესი მოდელების გასაწვრთნელად. BERT მოდელის გასაწვრთნელად და ვალიდაციისთვის, შეგიძლიათ გადასცეთ არგუმენტები --do_train და --do_eval run_qa.py სკრიპტს. სკრიპტის ზემოაღნიშნული ჰიპერ-პარამეტრებით გაშვების შემდეგ.
თეგები:
#ai
#მანქანური სწავლება
#ტრანსფორმერები
#მონაცემთა ანალიზი
#hugging face
#pytorch
#ღია კოდი
#bert
#optimum
#graphcore
#ipu
#poplar sdk
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ტექნოლოგიები
Honor Magic V6: უთხელესი დასაკეცი ტელეფონი? პირველი შთაბეჭდილებები
ტექნოლოგიები
Honor Magic V6: ყველაზე თხელი დასაკეცი სმარტფონი და მისი შთამბეჭდავი შესაძლებლობები
ტექნოლოგიები