Hugging Face Optimum და Graphcore IPU: Transformer მოდელების აჩქარება
Hugging Face-მა წარმოადგინა Optimum, ღია კოდის ბიბლიოთეკა, რომელიც ამარტივებს Transformer მოდელების პროგნოზირების შეყოვნების შემცირებას სხვადასხვა აპარატურულ პლატფორმაზე. ეს ბლოგპოსტი გვიჩვენებს, თუ როგორ შეიძლება Transformer მოდელების დაჩქარება Graphcore Intelligence Processing Unit (IPU)-სთვის, რომელიც ხელოვნური ინტელექტის დატვირთვებისთვის შექმნილი მოქნილი პროცესორია. Graphcore-სა და Hugging Face-ს შორის პარტნიორობის ფარგლებში, BERT პირველი IPU-სთვის ოპტიმიზებული მოდელია. სტატია დეტალურად აღწე
საბედნიეროდ, Hugging Face-მა წარმოადგინა Optimum, ღია კოდის ბიბლიოთეკა, რომელიც მნიშვნელოვნად ამარტივებს Transformer მოდელების პროგნოზირების შეყოვნების შემცირებას სხვადასხვა აპარატურულ პლატფორმაზე. ამ ბლოგპოსტში გაიგებთ, თუ როგორ უნდა დააჩქაროთ Transformer მოდელები Graphcore Intelligence Processing Unit (IPU)-სთვის, რომელიც არის მაღალფუნქციური, მარტივი გამოსაყენებელი პარალელური პროცესორი, ხელოვნური ინტელექტის დატვირთვებისთვის თავიდანვე შექმნილი. 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-ზე, SDK-ს ნახვა შესაძლებელია საქაღალდეში /opt/gc/poplar_sdk-ubuntu_18_04-2.3.0+774-b47c577c2a/. PyTorch-ის გამოსაყენებლად დაგჭირდებათ Poplar-ისა და PopART-ის (Poplar Advanced Runtime) ორივე „enable“ სკრიპტის გაშვება: 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 hub-ზე. მას ასევე აქვს წინასწარ შექმნილი მონაცემთა ვერსიონირება 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-ის წყალობით, შეგიძლიათ უახლესი აპარატურა plug-and-play რეჟიმში გამოიყენოთ თქვენი უახლესი მოდელების გასავარჯიშებლად. BERT მოდელის გასავარჯიშებლად და ვალიდაციისთვის, შეგიძლიათ გადასცეთ არგუმენტები --do_train და --do_eval run_qa.py სკრიპტს. სკრიპტის ზემოთ მოცემული ჰიპერ-პარამეტრებით შესრულების შემდეგ...
თეგები:
#ხელოვნური ინტელექტი
#hugging face
#pytorch
#transformer
#bert
#მოდელის აჩქარება
#optimum
#graphcore
#ipu
#poplar sdk
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ტექნოლოგიები
Honor Magic V6: უთხელესი დასაკეცი ტელეფონი? პირველი შთაბეჭდილებები
ტექნოლოგიები
Honor Magic V6: ყველაზე თხელი დასაკეცი სმარტფონი და მისი შთამბეჭდავი შესაძლებლობები
ტექნოლოგიები