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

რა განაპირობებს ხელოვნური ინტელექტის მასშტაბირებას ✅
როდესაც ხელოვნური ინტელექტის მასშტაბირება კარგად არის შესრულებული, თქვენ მიიღებთ:
-
პროგნოზირებადი შეყოვნება მკვეთრი ან მდგრადი დატვირთვის ქვეშ 🙂
-
გამტარუნარიანობა, რომელიც დაახლოებით პროპორციულად იზრდება დამატებული აპარატურის ან რეპლიკების პროპორციულად
-
ხარჯების ეფექტურობა , რომელიც არ იზრდება მოთხოვნის მიხედვით
-
ხარისხის სტაბილურობა , რადგან მასალები დივერსიფიცირდება და მოცულობები იზრდება
-
ოპერაციული სიმშვიდე ავტომატური მასშტაბირების, ტრასირებისა და გონივრული SLO-ების წყალობით
როგორც წესი, ეს აერთიანებს ჰორიზონტალურ მასშტაბირებას, პაკეტურ შენახვას, ქეშირებას, კვანტიზაციას, საიმედო მომსახურებას და შეცდომების ბიუჯეტებთან დაკავშირებულ გააზრებულ გამოშვების პოლიტიკას [5].
ხელოვნური ინტელექტის მასშტაბირება vs შესრულება vs სიმძლავრე 🧠
-
შესრულება არის ის, თუ რამდენად სწრაფად სრულდება ერთი მოთხოვნა იზოლირებულად.
-
ტევადობა არის რამდენი ამ მოთხოვნის დამუშავება შეგიძლიათ ერთდროულად.
-
ხელოვნური ინტელექტის მასშტაბირება გულისხმობს იმას, თუ როგორ ზრდის რესურსების დამატება თუ უფრო ჭკვიანი ტექნიკის გამოყენება ტევადობას და ინარჩუნებს სტაბილურ მუშაობას - თქვენი ანგარიშის ან პეიჯერის გაზრდის გარეშე.
პატარა განსხვავება, გიგანტური შედეგები.
რატომ მუშაობს საერთოდ მასშტაბირება ხელოვნურ ინტელექტში: მასშტაბირების კანონების იდეა 📚
მოდელის ზომის, მონაცემებისა და გამოთვლების მასშტაბირებისას - გონივრულ ფარგლებში. ასევე არსებობს გამოთვლითი ოპტიმალური ბალანსი მოდელის ზომასა და სასწავლო ტოკენებს შორის; ორივეს ერთად მასშტაბირება ჯობია მხოლოდ ერთის მასშტაბირებას. პრაქტიკაში, ეს იდეები განსაზღვრავს სასწავლო ბიუჯეტებს, მონაცემთა ნაკრების დაგეგმვას და მომსახურების კომპრომისებს [4].
სწრაფი თარგმანი: უფრო დიდი შეიძლება უკეთესი იყოს, მაგრამ მხოლოდ მაშინ, როდესაც შეყვანის მონაცემებს მასშტაბირებთ და პროპორციულად გამოთვლით - წინააღმდეგ შემთხვევაში, ეს ველოსიპედზე ტრაქტორის საბურავების დადებას ჰგავს. ის ინტენსიურად გამოიყურება, არსად მიდის.
ჰორიზონტალური vs ვერტიკალური: ორი მასშტაბირების ბერკეტი 🔩
-
ვერტიკალური მასშტაბირება : უფრო დიდი ზომის მოწყობილობები, უფრო ძლიერი გრაფიკული პროცესორები, მეტი მეხსიერება. მარტივი, ზოგჯერ ძვირი. კარგია ერთკვანძიანი ტრენინგისთვის, დაბალი შეყოვნების მქონე ინფერენციისთვის ან როდესაც თქვენი მოდელი უარს ამბობს კარგად დაშლაზე.
-
ჰორიზონტალური მასშტაბირება : მეტი რეპლიკა. საუკეთესოდ მუშაობს ავტომასკალერებთან , რომლებიც ამატებენ ან აშორებენ პოდებს CPU/GPU-ს ან მორგებული აპლიკაციის მეტრიკის მიხედვით. Kubernetes-ში HorizontalPodAutoscaler აფასებს პოდებს მოთხოვნის საპასუხოდ - თქვენი ძირითადი ბრბოს კონტროლი ტრაფიკის პიკებისთვის [1].
ანეკდოტი (კომპოზიტური): მაღალი დონის გაშვების დროს, უბრალოდ ჩართეთ სერვერის მხარეს პაკეტური დამუშავება და ავტომატურმა რეაგირება მოახდინეთ რიგის სიღრმეზე სტაბილიზებული p95-ით, კლიენტის ცვლილებების გარეშე. უნაკლო მოგებები მაინც მოგებად რჩება.
ხელოვნური ინტელექტის მასშტაბირების სრული პაკეტი 🥞
-
მონაცემთა ფენა : სწრაფი ობიექტების მაღაზიები, ვექტორული ინდექსები და სტრიმინგის მიღება, რომელიც არ დააჩქარებს თქვენს ტრენაჟორებს.
-
ტრენინგის ფენა : განაწილებული ჩარჩოები და დამგეგმავები, რომლებიც ამუშავებენ მონაცემების/მოდელის პარალელიზმს, საკონტროლო პუნქტებს, ხელახალ მცდელობებს.
-
მომსახურების ფენა : ოპტიმიზებული გაშვების დრო, დინამიური პაკეტირება , LLM-ებისთვის გვერდებზე ორიენტირებული ყურადღება
-
ორკესტრაცია : Kubernetes ელასტიურობისთვის HPA-ს ან მორგებული ავტოსკალერების საშუალებით [1].
-
დაკვირვებადობა : კვალი, მეტრიკა და ჟურნალები, რომლებიც აკვირდებიან მომხმარებლის მოგზაურობებს და ქცევის მოდელირებას ახდენენ პროდუქტში; შექმენით ისინი თქვენი SLO-ების მიხედვით [5].
-
მმართველობა და ხარჯები : მოთხოვნის მიხედვით ეკონომიკა, ბიუჯეტი და გამორთვის პარამეტრები გადაჭარბებული სამუშაო დატვირთვებისთვის.
შედარების ცხრილი: ინსტრუმენტები და ნიმუშები ხელოვნური ინტელექტის მასშტაბირებისთვის 🧰
განზრახ ცოტა არათანაბარი - რადგან რეალური ცხოვრება ასეთია.
| ინსტრუმენტი / ნიმუში | აუდიტორია | ფასის მსგავსი | რატომ მუშაობს | შენიშვნები |
|---|---|---|---|---|
| კუბერნეტესი + HPA | პლატფორმის გუნდები | ღია კოდი + ინფრასტრუქტურა | პოდების ჰორიზონტალურად მასშტაბირება მეტრიკის ზრდასთან ერთად | მორგებული მეტრიკა ოქროსფერია [1] |
| NVIDIA Triton | დასკვნა SRE | უფასო სერვერი; GPU $ | დინამიური პარტირება ზრდის გამტარუნარიანობას | config.pbtxt-ის მეშვეობით [2] |
| vLLM (PagedAttention) | LLM გუნდები | ღია კოდი | მაღალი გამტარუნარიანობა ეფექტური KV-ქეშის საშუალებით | შესანიშნავია გრძელი მინიშნებებისთვის [3] |
| ONNX-ის გაშვების დრო / TensorRT | პერფორმანსის მოყვარულები | უფასო / გამყიდველის ინსტრუმენტები | ბირთვის დონის ოპტიმიზაცია ამცირებს შეყოვნებას | ექსპორტის გზები შეიძლება რთული იყოს |
| RAG ნიმუში | აპლიკაციების გუნდები | ინფრა + ინდექსი | ცოდნის აღდგენას უწყობს ხელს; ინდექსის მასშტაბირებას ახდენს | შესანიშნავია სიახლისთვის |
ღრმა ანალიზი 1: სერვირების ხრიკები, რომლებიც ნემსს ამოძრავებს 🚀
-
დინამიური პაკეტირება სერვერზე მცირე ინფერენციული გამოძახებების უფრო დიდ პაკეტებად აჯგუფებს, რაც მკვეთრად ზრდის გრაფიკული პროცესორის გამოყენებას კლიენტის ცვლილებების გარეშე [2].
-
გვერდიანი ყურადღება KV ქეშების გვერდიანი ვერსიით მეხსიერებაში გაცილებით მეტ საუბარს ინახავს, რაც აუმჯობესებს გამტარუნარიანობას პარალელური რეჟიმის პირობებში [3].
-
იდენტური მოთხოვნების ან ჩაშენებების გაერთიანებისა და ქეშირების მოთხოვნა
-
სპეკულაციური დეკოდირება და ტოკენების სტრიმინგი ამცირებს აღქმულ შეყოვნებას, მაშინაც კი, თუ კედლის საათი ძლივს მოძრაობს.
ღრმა ანალიზი 2: მოდელის დონის ეფექტურობა - კვანტიზაცია, დისტილაცია, გასხვლა 🧪
-
კვანტიზაცია ამცირებს პარამეტრის სიზუსტეს (მაგ., 8-ბიტიანი/4-ბიტიანი) მეხსიერების შესამცირებლად და დასკვნის დასმის დასაჩქარებლად; ცვლილებების შემდეგ ყოველთვის ხელახლა შეაფასეთ დავალების ხარისხი.
-
დისტილაცია ცოდნას დიდი მასწავლებლიდან პატარა სტუდენტზე გადასცემს, რომელიც თქვენს აპარატურას რეალურად მოსწონს.
-
სტრუქტურირებული გასხვლა აშორებს იმ წონას/თავებს, რომლებიც ყველაზე ნაკლებად უწყობენ ხელს.
მოდით, ვიყოთ გულახდილები, ეს ცოტათი ჰგავს ჩემოდნის ზომის შემცირებას და შემდეგ იმის მოთხოვნას, რომ ყველა ფეხსაცმელი მაინც მოგიხდება. რატომღაც, ძირითადად, ასეც ხდება.
ღრმა ანალიზი 3: მონაცემებისა და ტრენინგის მასშტაბირება ცრემლების გარეშე 🧵
-
გამოიყენეთ განაწილებული ტრენინგი, რომელიც მალავს პარალელიზმის უმნიშვნელო ნაწილებს, რათა ექსპერიმენტები უფრო სწრაფად ჩაატაროთ.
-
გახსოვდეთ მასშტაბირების ეს კანონები : ბიუჯეტი გააზრებულად გაანაწილეთ მოდელის ზომასა და ტოკენებზე; ორივეს ერთად მასშტაბირება გამოთვლით ეფექტურია [4].
-
სასწავლო გეგმა და მონაცემთა ხარისხი ხშირად შედეგებზე უფრო მეტად ცვლის, ვიდრე ადამიანები აღიარებენ. უკეთესი მონაცემები ზოგჯერ უფრო მეტ მონაცემებს ჯობნის - მაშინაც კი, თუ უკვე შეკვეთილი გაქვთ უფრო დიდი კლასტერი.
ღრმა ანალიზი 4: RAG, როგორც ცოდნის მასშტაბირების სტრატეგია 🧭
მოდელის ცვალებად ფაქტებთან ადაპტაციის ნაცვლად, RAG ინფერენციაში ამატებს აღდგენის ეტაპს. თქვენ შეგიძლიათ შეინარჩუნოთ მოდელი სტაბილური და მასშტაბირება გაუკეთოთ ინდექსს და აღდგენის ბმულებს თქვენი კორპუსის ზრდასთან ერთად. ელეგანტური და ხშირად უფრო იაფია, ვიდრე სრული გადამზადება ცოდნაზე დაფუძნებული აპლიკაციებისთვის.
დაკვირვებადობა, რომელიც თავის თავს ამართლებს 🕵️♀️
შეუძლებელია იმის მასშტაბირება, რასაც ვერ ხედავ. ორი აუცილებელი რამ:
-
სიმძლავრის დაგეგმვისა და ავტომატური მასშტაბირების მეტრიკები
-
კვალი , რომელიც მოჰყვება ერთ მოთხოვნას კარიბჭის → მოძიების → მოდელის → შემდგომი დამუშავების მეშვეობით. დააკავშირეთ თქვენი გაზომვები თქვენს SLO-ებთან, რათა დაფებმა უპასუხონ კითხვებს ერთ წუთზე ნაკლებ დროში [5].
როდესაც დაფები კითხვებს ერთ წუთზე ნაკლებ დროში პასუხობენ, ადამიანები მათ იყენებენ. როდესაც ამას არ აკეთებენ, ისინი თავს იჩენენ.
საიმედოობის დამცავი ბარიერები: SLO-ები, შეცდომების ბიუჯეტი, გონივრული დანერგვა 🧯
-
განსაზღვრეთ SLO-ები შეყოვნების, ხელმისაწვდომობისა და შედეგის ხარისხისთვის და გამოიყენეთ შეცდომების ბიუჯეტები საიმედოობისა და გამოშვების სიჩქარის დაბალანსებისთვის [5].
-
განლაგდით საგზაო მოძრაობის გამყოფების უკან, გააკეთეთ კანარის ფრინველები და ჩაატარეთ ჩრდილის ტესტები გლობალური გადასვლების წინ. თქვენი მომავალი მე გამოგიგზავნით საჭმელს.
ხარჯების კონტროლი დრამის გარეშე 💸
მასშტაბირება მხოლოდ ტექნიკური არ არის; ის ფინანსურიცაა. GPU-ს საათები და ტოკენები პირველი კლასის რესურსებად მიიჩნიეთ ერთეულების ეკონომიკით (ღირებულება 1 ათას ტოკენზე, თითო ჩასმაზე, თითო ვექტორულ მოთხოვნაზე). დაამატეთ ბიუჯეტები და შეტყობინებები; აღნიშნეთ ნივთების წაშლა.
ხელოვნური ინტელექტის მასშტაბირების მარტივი გზამკვლევი 🗺️
-
დაიწყეთ SLO-ებით p95 ლატენტობის, ხელმისაწვდომობისა და დავალების სიზუსტისთვის; პირველივე დღეს გადააგზავნეთ მეტრიკა/კვალი [5].
-
აირჩიეთ ისეთი სერვირების დასტა , რომელიც მხარს უჭერს როგორც პარტიებად დაყოფის, ასევე უწყვეტ პარტიებად დაყოფის პროცესს: Triton, vLLM ან მათი ეკვივალენტები [2][3].
-
მოდელის ოპტიმიზაცია : საჭიროების შემთხვევაში, კვანტიზაცია, უფრო სწრაფი ბირთვების ჩართვა ან დისტილაცია კონკრეტული ამოცანებისთვის; ხარისხის დადასტურება რეალური შეფასებებით.
-
ელასტიურობის არქიტექტორი : Kubernetes HPA სწორი სიგნალებით, ცალკეული წაკითხვის/ჩაწერის გზებით და უმდგომარეო ინფერენციული რეპლიკებით [1].
-
, გამოიყენეთ აღდგენა , რათა თქვენი ინდექსი ყოველკვირეული გადამზადების ნაცვლად მასშტაბირდეთ.
-
დახურეთ ხარჯებთან დაკავშირებული ციკლი : შეადგინეთ ერთეულის ეკონომიკა და ყოველკვირეული მიმოხილვები.
ხშირი წარუმატებლობის რეჟიმები და სწრაფი გამოსწორებები 🧨
-
GPU-ს დატვირთვა 30%-ია, ხოლო ლატენტობა დაბალია
-
ჩართეთ დინამიური პაკეტირება , ფრთხილად გაზარდეთ პაკეტების ლიმიტი და ხელახლა შეამოწმეთ სერვერის ერთდროულობა [2].
-
-
გამტარუნარიანობა იშლება გრძელი მოთხოვნებით
-
გამოიყენეთ ისეთი სერვისები, რომლებიც მხარს უჭერენ გვერდის ფოკუსირებულ ყურადღებას და მაქსიმალურად დაარეგულირეთ ერთდროული თანმიმდევრობები [3].
-
-
ავტომასკალერის ფლაპები
-
ფანჯრების გამოყენებით მეტრიკის გამარტივება; რიგის სიღრმის მასშტაბირება ან წამში მორგებული ტოკენების გამოყენება სუფთა CPU-ს ნაცვლად [1].
-
-
ხარჯები მკვეთრად იზრდება გაშვების შემდეგ
-
დაამატეთ მოთხოვნის დონის ღირებულების მეტრიკა, ჩართეთ კვანტიზაცია უსაფრთხო ადგილას, შეინახეთ ყველაზე ხშირად გამოყენებული მოთხოვნები ქეშში და შეზღუდეთ ყველაზე ცუდი დამრღვევების სიჩქარე.
-
ხელოვნური ინტელექტის მასშტაბირების სახელმძღვანელო: სწრაფი საკონტროლო სია ✅
-
SLO-ები და შეცდომების ბიუჯეტები არსებობს და ხილულია
-
მეტრიკები: შეყოვნება, TPS, GPU მეხსიერება, პარტიის ზომა, ტოკენები, ქეშის დაფიქსირება
-
კვალი შეღწევიდან მოდელამდე და შემდგომ დამუშავებამდე
-
სერვირება: პარტიების ჩართვა, პარალელური მორგება, თბილი ქეშები
-
მოდელი: კვანტიზებული ან დისტილირებული, სადაც ეს ხელს უწყობს
-
ინფრასტრუქტურა: HPA კონფიგურირებულია სწორი სიგნალებით
-
ცოდნის სიახლის აღდგენის გზა
-
ერთეულის ეკონომიკა ხშირად განიხილება
დიდი ხანია არ წამიკითხავს და საბოლოო შენიშვნები 🧩
ხელოვნური ინტელექტის მასშტაბირება არ არის ერთი ფუნქცია ან საიდუმლო გადამრთველი. ეს არის შაბლონის ენა: ჰორიზონტალური მასშტაბირება ავტომასკალერებით, სერვერის მხარეს პაკეტური დამუშავება გამოყენებისთვის, მოდელის დონის ეფექტურობა, ცოდნის გადასატანად მოძიება და დაკვირვებადობა, რაც დანერგვას მოსაწყენს ხდის. დაამატეთ SLO-ები და ხარჯების ჰიგიენა, რათა ყველა ერთსულოვანი იყოს. პირველივე ცდაზე სრულყოფილებას ვერ მიაღწევთ - ვერავინ მიაღწევს - მაგრამ სწორი უკუკავშირის მარყუჟებით, თქვენი სისტემა განვითარდება დილის 2 საათზე ცივი ოფლის შეგრძნების გარეშე 😅
ცნობები
[1] Kubernetes Docs - ჰორიზონტალური პოდის ავტომატური მასშტაბირება - მეტის წაკითხვა
[2] NVIDIA Triton - დინამიური ბაჩერი - მეტის წაკითხვა
[3] vLLM დოკუმენტაცია - გვერდებიანი ყურადღება - მეტის წაკითხვა
[4] ჰოფმანი და სხვ. (2022) - გამოთვლითი ოპტიმიზაციის მქონე დიდი ენობრივი მოდელების სწავლება - მეტის წაკითხვა
[5] Google SRE სამუშაო წიგნი - SLO-ების იმპლემენტაცია - მეტის წაკითხვა