თუ Transformers მოდელებს წარმოების გარემოში იყენებთ, რეკომენდებულია მათი ექსპორტირება სერიალიზებულ ფორმატში, რომელიც შეიძლება ჩაიტვირთოს, ოპტიმიზირდეს და შესრულდეს სპეციალიზებულ გაშვების გარემოებსა და აპარატურაზე. ამ სახელმძღვანელოში გაეცნობით ამ პროცესის დეტალებს. მოდით დავიწყოთ! 🚀 თუ დაინტერესებული ხართ თქვენი მოდელების მაქსიმალური ეფექტურობით გაშვებით, აუცილებლად გაეცანით 🤗 Optimum ბიბლიოთეკას. ONNX (Open Neural Network eXchange) არის ღია სტანდარტი და ფორმატი მანქანური სწავლის მოდელების წარმოსადგენად. ONNX განსაზღვრავს ოპერატორების საერთო ნაკრებს და საერთო ფაილის ფორმატს ღრმა სწავლის მოდელების წარმოსადგენად სხვადასხვა ფრეიმვორკში, მათ შორის PyTorch-სა და TensorFlow-ში. როდესაც მოდელი ექსპორტირებულია ONNX ფორმატში, ეს ოპერატორები გამოიყენება გამომთვლელი გრაფის (ხშირად მოიხსენიება როგორც შუალედური წარმოდგენა) შესაქმნელად, რომელიც წარმოადგენს მონაცემთა ნაკადს ნერვულ ქსელში. **მნიშვნელოვანია: ONNX არ არის გაშვების გარემო (Runtime)** ONNX არის მხოლოდ წარმოდგენა, რომელიც შეიძლება გამოყენებულ იქნას გაშვების გარემოებთან, როგორიცაა ONNX Runtime. მხარდაჭერილი აქსელერატორების სია შეგიძლიათ იხილოთ აქ. ➡️ მეტი ONNX-ის შესახებ. Hugging Face Optimum არის ღია კოდის მქონე ბიბლიოთეკა და Hugging Face Transformers-ის გაფართოება, რომელიც უზრუნველყოფს შესრულების ოპტიმიზაციის ხელსაწყოების გაერთიანებულ API-ს, რათა მიღწეული იქნას მაქსიმალური ეფექტურობა მოდელების წვრთნისა და გაშვებისთვის აჩქარებულ აპარატურაზე, მათ შორის ხელსაწყოები Graphcore IPU-სა და Habana Gaudi-ზე ოპტიმიზებული შესრულებისთვის. Optimum შეიძლება გამოყენებულ იქნას კონვერტაციისთვის, კვანტიზაციისთვის, გრაფის ოპტიმიზაციისთვის, აჩქარებული წვრთნისა და ინფერენსისთვის, Transformers-ის „ფაიფლაინების“ მხარდაჭერით. ქვემოთ მოცემულია დეველოპერის ტიპიური მოგზაურობა, თუ როგორ შეგიძლიათ გამოიყენოთ Optimum ONNX-თან ერთად. ➡️ მეტი Optimum-ის შესახებ. ყველა მხარდაჭერილი Transformers არქიტექტურის სია შეგიძლიათ იხილოთ Transformers დოკუმენტაციის ONNX განყოფილებაში. ქვემოთ მოცემულია ყველაზე ხშირად გამოყენებული არქიტექტურების ამონარიდი, რომლებიც შეიძლება გადაკეთდეს ONNX-ად და ოპტიმიზირდეს Hugging Face Optimum-ით. ➡️ ყველა მხარდაჭერილი არქიტექტურა. ამჟამად არსებობს სამი გზა თქვენი Hugging Face Transformers მოდელების ONNX-ად გადასაყვანად. ამ განყოფილებაში გაიგებთ, თუ როგორ უნდა მოახდინოთ `distilbert-base-uncased-finetuned-sst-2-english`-ის ექსპორტი ტექსტის კლასიფიკაციისთვის სამივე მეთოდის გამოყენებით, დაბალდონიანი `torch` API-დან Optimum-ის ყველაზე მოსახერხებელ მაღალდონიან API-მდე. თითოეული მეთოდი ზუსტად იგივეს აკეთებს: * `torch.onnx` საშუალებას გაძლევთ გადაიყვანოთ მოდელის კონტროლის წერტილები (checkpoints) ONNX გრაფად ექსპორტის მეთოდის გამოყენებით. მაგრამ თქვენ უნდა მიუთითოთ მრავალი მნიშვნელობა, როგორიცაა `input_names`, `dynamic_axes` და ა.შ. პირველ რიგში, დაგჭირდებათ ზოგიერთი დამოკიდებულების (dependencies) ინსტალაცია: ჩვენი კონტროლის წერტილის ექსპორტი `export`-ის გამოყენებით. * `transformers.onnx` საშუალებას გაძლევთ გადაიყვანოთ მოდელის კონტროლის წერტილები ONNX გრაფად კონფიგურაციის ობიექტების გამოყენებით. ამ გზით თქვენ არ გჭირდებათ რთული კონფიგურაციის მიწოდება `dynamic_axes`-ისთვის და ა.შ. პირველ რიგში, დაგჭირდებათ ზოგიერთი დამოკიდებულების ინსტალაცია: ჩვენი კონტროლის წერტილის ექსპორტი `transformers.onnx`-ის გამოყენებით. * Optimum Inference მოიცავს მეთოდებს „ვანილის“ (თავდაპირველი) Transformers მოდელების ONNX-ად გადასაყვანად `ORTModelForXxx` კლასების გამოყენებით. თქვენი Transformers მოდელის ONNX-ად გადასაყვანად, უბრალოდ უნდა გადასცეთ `from_transformers=True` `from_pretrained()` მეთოდს და თქვენი მოდელი ჩაიტვირთება და გადაკეთდება ONNX-ად `transformers.onnx` პაკეტის გამოყენებით. პირველ რიგში, დაგჭირდებათ ზოგიერთი დამოკიდებულების ინსტალაცია: ჩვენი კონტროლის წერტილის ექსპორტი `ORTModelForSequenceClassification`-ის გამოყენებით. Optimum-ით კონვერტაციის საუკეთესო ნაწილი ისაა, რომ შეგიძლიათ დაუყოვნებლივ გამოიყენოთ მოდელი პროგნოზების გასაკეთებლად ან მისი „ფაიფლაინში“ ჩასატვირთად. მას შემდეგ, რაც წარმატებით გადაიყვანთ თქვენს Transformers მოდელს ONNX-ად, ოპტიმიზაციისა და კვანტიზაციის ხელსაწყოების მთელი ნაკრები თქვენთვის ხელმისაწვდომი ხდება. პოტენციური შემდეგი ნაბიჯები შეიძლება იყოს: თუ დაინტერესებული ხართ თქვენი მოდელების მაქსიმალური ეფექტურობით გასაშვებად ოპტიმიზაციით, გაეცანით 🤗 Optimum ბიბლიოთეკას. მადლობა წაკითხვისთვის! თუ გაქვთ შეკითხვები, შეგიძლიათ დამიკავშირდეთ Github-ის ან ფორუმის საშუალებით. ასევე შეგიძლიათ დამიკავშირდეთ Twitter-ზე ან LinkedIn-ზე. გაეცანით მეტ სტატიას ჩვენი ბლოგიდან. დასაკომენტარებლად დარეგისტრირდით ან შეხვიდეთ სისტემაში.