Hugging Face თუ Replicate: GPU-ის იაფი საათი ყოველთვის იაფი გაშვება არაა

|ავტორი: QUASA-ს სარედაქციო გუნდი|5 წთ საკითხავი| 1
Hugging Face თუ Replicate: GPU-ის იაფი საათი ყოველთვის იაფი გაშვება არაა

თითქმის უწყვეტი დატვირთვისა და მუდმივად მზად მყოფი მოდელისთვის Hugging Face Inference Endpoints-ის გამოყოფილი ინსტანცია ხშირად უფრო იაფია. იშვიათი, მოკლე მოთხოვნებისას Replicate-ის საჯარო მოდელს შეუძლია ნაკლები დაგიჯდეთ, თუ მისი ფასი მხოლოდ დამუშავების დროს მიჰყვება. Replicate-ის ტარიფები სწორედ ასე აფასებს საჯარო მოდელების უმეტესობას, თუმცა ზოგიერთზე შეყვანა და გამოტანა ცალკე ითვლება; კერძო მოდელების უმეტესობისთვის კი გაშვებისა და უქმი დროის საფასურიც მოქმედებს. ცხრილში მითითებული T4 საათში $0.81 ღირს, L40S — $3.51, A100 — $5.04.

Hugging Face-ის ოფიციალური ტარიფებით, AWS-ზე ერთი GPU-ით აღჭურვილი T4 საათში $0.50 ღირს, L40S — $1.80, A100 — $2.50; ფასები საათობრივადაა გამოქვეყნებული, ხარჯი კი ინიციალიზებისა და მუშაობის წუთებით ითვლება. ამგვარად, მუდმივად ჩართულ ინსტანციაზე ფასიანია მოთხოვნებს შორის შესვენებაც. არჩევანს მხოლოდ GPU-ის საათობრივი ფასი ვერ წყვეტს: ერთსა და იმავე დროის მონაკვეთში უნდა შეადაროთ ჩართული ინსტანციის ყველა წუთი და საჯარო მოდელის ფასიანი შესრულების წამები. განსხვავებული პირობების მქონე კერძო deployment ამ გამოთვლაში ცალკე შემთხვევაა.

დატვირთვის ზღვარი T4, L40S და A100-ზე

გამარტივებული კალკულატორი ერთ მუდმივად ჩართულ Hugging Face ინსტანციას ადარებს Replicate-ის დროით ფასდებულ საჯარო მოდელს, რომელიც შესაბამის GPU-ზე მუშაობს. აქ დატვირთვა საანგარიშო პერიოდის იმ წილია, რომელიც Replicate-ზე ფასიან შესრულებად ითვლება; GPU-ის პროცესორის საშუალო ტექნიკურ დატვირთვას ეს მაჩვენებელი არ უდრის. თუ ეს წილი u-ა, Replicate-ის ხარჯი იმ პერიოდისთვის მისი საათობრივი ტარიფი × u იქნება, Hugging Face-ისა კი სრული საათობრივი ტარიფი. თანაბარი ხარჯის ზღვარი მიიღება უკანასკნელის პირველზე გაყოფით.

  • T4: $0.50 ÷ $0.81 ≈ 61.7%. პირობით საათში 25%-იანი ფასიანი შესრულება Replicate-ზე დაახლოებით $0.20 ღირს, 75%-იანი — $0.61; მუდმივად ჩართული Hugging Face ინსტანცია $0.50 ღირს.
  • L40S: $1.80 ÷ $3.51 ≈ 51.3%. იმავე პირობით საათში Replicate-ის 25%-იანი დატვირთვა დაახლოებით $0.88 გამოდის, 75%-იანი — $2.63; ჩართული endpoint-ის ფასი $1.80 რჩება.
  • A100: $2.50 ÷ $5.04 ≈ 49.6%. Replicate-ის პირობითი ხარჯი 25%-ზე $1.26-ია, 75%-ზე — $3.78; Hugging Face-ის უწყვეტი ინსტანცია $2.50 ჯდება.

მაგალითში „25%“ ნიშნავს საათის მეოთხედს ფასიან შესრულებაში და არა მოთხოვნების მეოთხედს. თუ ერთმა გამოძახებამ დიდხანს იმუშავა, ის პატარა მოთხოვნაზე მეტად გაზრდის ამ წილს. ასევე, ერთსა და იმავე წამში პარალელურად დამუშავებული გამოძახებები ავტომატურად არ ნიშნავს იმავე რაოდენობის ფასიან GPU-წამს: გადამწყვეტია, რამდენი ინსტანცია ამუშავებს მათ და როგორ აღირიცხება მათი დრო. ამიტომ ზღვრები შესადარებელი ტარიფების არითმეტიკაა და არა რეალურ მოდელზე ჩატარებული ტესტის შედეგი.

ამ შედარებას კიდევ ერთი საზღვარი აქვს: საჯარო მოდელის გამოძახებისას Replicate-ზე აპარატურის ტიპს ყოველთვის მომხმარებელი არ ირჩევს. თუ კონკრეტული მოდელი სხვა GPU-ზეა ან შეყვანა-გამოტანით ფასდება, ჩამოთვლილი T4, L40S და A100 ზღვრები მის ანგარიშს არ აღწერს. იგივე სახელის GPU-ც არ უზრუნველყოფს თანაბარ წარმადობას: მოდელის ვერსია, სერვერის პროგრამა, პაკეტის ზომა და ერთდროული მოთხოვნების რაოდენობა პასუხის დროს ცვლის. ამიტომ პროცენტული ზღვარი ჯერ მხოლოდ ბილინგის წესსა და ერთეულ ფასს აერთიანებს.

უქმი წუთები, მასშტაბირება და ცივი გაშვება

თუ endpoint დატვირთვის გარეშეც მუდმივად მზად უნდა იყოს, Hugging Face-ის ინსტანცია უქმ წუთებზეც აგრძელებს ხარჯის დაგროვებას. Hugging Face-ის ავტომასშტაბირების წესით, scale-to-zero ნაგულისხმევად ერთი საათის უმოქმედობის შემდეგ ამცირებს რეპლიკებს ნულამდე; ხელახალი მოთხოვნისას ინიციალიზაციის დროს პროქსიმ შეიძლება 503 დააბრუნოს, ხოლო ამოქმედებას მოდელის მიხედვით რამდენიმე წუთი დასჭირდეს. დაყოვნების თავიდან ასაცილებლად მოთხოვნაში X-Scale-Up-Timeout-ის მითითებაც შეიძლება, თუმცა ეს მომხმარებლის ლოდინის ხანგრძლივობას ზრდის.

ნულამდე შემცირება ცვლის კალკულატორის დაშვებას: უკვე აღარ არის მთელი პერიოდის განმავლობაში ჩართული ერთი ინსტანცია. ხარჯში შედის ყოველი აქტიური მონაკვეთი და ხელახალი ინიციალიზაცია, ამიტომ რამდენიმე ერთმანეთისგან დაშორებული მოკლე პიკი შეიძლება უფრო მეტი ჩართული წუთით დასრულდეს, ვიდრე მხოლოდ მოთხოვნების შესრულების ხანგრძლივობა მიანიშნებს. თუ პიკებს შორის დაშორება უმოქმედობის ზღვარზე მოკლეა, endpoint ამ ხნის განმავლობაში მაინც ჩართული რჩება. მეორე მხრივ, ხანგრძლივი პაუზის შემდეგ ნულამდე შემცირება უქმი საათების გადახდას ამცირებს, ოღონდ შემდეგი მოთხოვნა მზადყოფნას ელოდება.

Replicate-ის კერძო deployment-ზე იგივე არჩევანი მინიმალური რეპლიკების რაოდენობით გამოიხატება. Replicate-ის განთავსების ინსტრუქცია აღწერს მინიმუმ ერთი მუდმივად მოქმედი ინსტანციით ცივი გაშვების თავიდან აცილებას, მინიმუმის ნულამდე დაწევას და საკუთარი მოდელის Cog-ით შეფუთვას, რომელიც მის კოდს API-სა და განთავსებისთვის ამზადებს. პირველ შემთხვევაში უქმი დროც ფასიანია, რადგან კერძო ინსტანცია ონლაინ რჩება; მეორე შემთხვევაში პირველი მოთხოვნა გაშვებას ელოდება. საჯარო მოდელის აქტიური წამების კალკულატორის კერძო deployment-ზე გადატანა, შესაბამისად, გადასახადს შეამცირებდა მხოლოდ ქაღალდზე.

სიჩქარისა და პარალელური მოთხოვნების ფასი

დაყოვნება ორი ნაწილისგან შედგება: მზადყოფნის ლოდინი და თავად მოდელის შესრულება. თბილი ინსტანცია პირველს ამცირებს, მაგრამ ფასიან უქმ დროს ზრდის; ნულიდან გაშვება საპირისპირო ხარჯობრივ არჩევანს ქმნის. პიკური ტრაფიკისას ერთმა ინსტანციამ შეიძლება რიგი წარმოქმნას, ხოლო დამატებითმა რეპლიკამ რიგი შეამციროს და ხარჯი გაზარდოს. ამიტომ მაღალი დატვირთვის შემთხვევაშიც ერთსაათიანი ტარიფი საბოლოო ბიუჯეტი არ არის: გასათვალისწინებელია, რამდენი ერთდროული მოთხოვნა უნდა დამუშავდეს მისაღებ დროში.

გამოქვეყნებული ტარიფებიდან ვერ გამოითვლება, რომელი პლატფორმა იმავე მოდელს უფრო სწრაფად უპასუხებს. ამისთვის საჭიროა ერთნაირი მოდელის ვერსია, მსგავსი GPU და მეხსიერება, თანაბარი შეყვანა-გამოტანა, იგივე პარალელური დატვირთვა და ცივი თუ თბილი გაშვების ცალკე გაზომვა. საათობრივი ღირებულების სხვაობა შესრულების წამებსაც შეიძლება გადაფაროს: უფრო იაფი ინსტანცია თითო მოთხოვნაზე მეტხანს თუ მუშაობს, შესაბამისი გამტარუნარიანობის მისაღებად მეტი რეპლიკა გახდება საჭირო. ეს შედეგი წინასწარ არც ერთ მხარეს არ მიეწერება.

საკუთარი მოდელი და მიგრაციის შრომა

საკუთარი მოდელის შემთხვევაში შეფუთვის გზა ფასის ნაწილად იქცევა. Hugging Face-ის custom container-ის ინსტრუქცია აღწერს საკუთარი Docker image-ის რეესტრში ატვირთვასა და Inference Endpoint-ზე გაშვებას; მის მაგალითში სერვერის კოდი და დამოკიდებულებები კონტეინერშია, არჩეული მოდელის ფაილები კი მასში ცალკე მონტაჟდება. ეს გზა მნიშვნელოვანია მაშინ, როცა არსებული ინფერენციის სერვერის ან არასტანდარტული წინასწარი დამუშავების შენარჩუნებაა საჭირო. ამ ორი გზის განსხვავება განსაკუთრებით ჩანს, როცა მოდელს საკუთარი ინფერენციის სერვერი ან უჩვეულო დამოკიდებულებები აქვს.

თუ გუნდის მოდელი უკვე Cog ფორმატშია, Replicate-ზე დარჩენა შეიძლება ნაკლებ გადაკეთებას მოითხოვდეს. თუ არსებული Docker სერვერი Hugging Face-ის მოთხოვნებს ერგება, მისი გადატანა Cog-ის განსაზღვრულ შესატან და გამოსატან ფორმატზე დამატებითი სამუშაოა. ორივე შეფასება კონკრეტულ კოდზეა დამოკიდებული: უნდა გამოითვალოს დამოკიდებულებების, API კონტრაქტის, მოდელის ჩატვირთვისა და ხარისხის შემოწმების დრო. GPU-ის თვიური დაზოგვა ამ ერთჯერად შრომას მხოლოდ მაშინ ანაზღაურებს, როცა დატვირთვის მოსალოდნელი პროფილი საკმარისად ხანგრძლივად შენარჩუნდება.

ასევე წაიკითხეთ:

გაზიარება:

გამოიწერეთ ჩვენი ბიულეტენი

მიიღეთ უახლესი ამბები Web3-ის, AI-სა და კრიპტოს შესახებ პირდაპირ თქვენს ელფოსტაზე.

0