Калі вы калі-небудзь назіралі, як дэманстрацыйная мадэль спраўляецца з невялікай тэставай нагрузкай, а потым завісае ў той момант, калі з'яўляюцца рэальныя карыстальнікі, вы пазнаёміліся са злыднем: маштабаваннем. Штучны інтэлект прагны — да дадзеных, вылічэнняў, памяці, прапускной здольнасці — і, як ні дзіўна, да ўвагі. Дык што ж такое маштабаванасць ШІ на самой справе, і як яе дасягнуць, не перапісваючы ўсё кожны тыдзень?
Артыкулы, якія вам могуць спадабацца пасля гэтага:
🔗 Што такое прадузятасць штучнага інтэлекту, тлумачыцца проста
Даведайцеся, як схаваныя прадузятасці ўплываюць на рашэнні штучнага інтэлекту і мадэлююць вынікі.
🔗 Кіраўніцтва для пачаткоўцаў: што такое штучны інтэлект
Агляд штучнага інтэлекту, асноўныя канцэпцыі, тыпы і паўсядзённыя прымяненні.
🔗 Што такое вытлумачальны штучны інтэлект і чаму ён важны
Даведайцеся, як вытлумачальны штучны інтэлект павышае празрыстасць, давер і адпаведнасць патрабаванням рэгулявання.
🔗 Што такое прагназуючы штучны інтэлект і як ён працуе
Зразумейце прагназуемы штучны інтэлект, распаўсюджаныя выпадкі выкарыстання, перавагі і абмежаванні.
Што такое маштабаванасць штучнага інтэлекту? 📈
Маштабаванасць штучнага інтэлекту — гэта здольнасць сістэмы штучнага інтэлекту апрацоўваць больш дадзеных, запытаў, карыстальнікаў і выпадкаў выкарыстання, захоўваючы пры гэтым прадукцыйнасць, надзейнасць і выдаткі ў дапушчальных межах. Гэта не проста большыя серверы, а больш разумныя архітэктуры, якія падтрымліваюць нізкую затрымку, высокую прапускную здольнасць і стабільную якасць па меры росту крывой. Падумайце пра эластычную інфраструктуру, аптымізаваныя мадэлі і назіральнасць, якая сапраўды паказвае, што не так.

Што робіць ШІ добрым: маштабаванасць ✅
Калі маштабаванасць штучнага інтэлекту зроблена добра, вы атрымліваеце:
-
Прадказальная затрымка пры рэзкіх або працяглых нагрузках 🙂
-
Прапускная здольнасць, якая расце прыкладна прапарцыйна дададзенаму абсталяванню або рэплікам
-
Эфектыўнасць выдаткаў , якая не павялічваецца з кожным запытам
-
Стабільнасць якасці па меры дыверсіфікацыі рэсурсаў і павелічэння аб'ёмаў
-
Аперацыйны спакой дзякуючы аўтаматычнаму маштабаванню, трасіроўцы і разумным SLO
Пад капотам гэта звычайна спалучае гарызантальнае маштабаванне, пакетную апрацоўку, кэшаванне, квантаванне, надзейнае абслугоўванне і прадуманыя палітыкі выпуску, звязаныя з бюджэтамі памылак [5].
Маштабаванасць штучнага інтэлекту супраць прадукцыйнасці супраць ёмістасці 🧠
-
Прадукцыйнасць — гэта хуткасць выканання аднаго запыту ў ізаляцыі.
-
Прапускная здольнасць — гэта колькасць запытаў, якія вы можаце апрацаваць адначасова.
-
Маштабаванасць штучнага інтэлекту — гэта тое, ці павялічвае ёмістасць і падтрымлівае стабільную прадукцыйнасць даданне рэсурсаў, ці выкарыстанне больш разумных метадаў, не павялічваючы пры гэтым ваш рахунак ці пейджар.
Маленькае адрозненне, гіганцкія наступствы.
Чаму маштабаванне ўвогуле працуе ў штучным інтэлекце: ідэя законаў маштабавання 📚
Шырока распаўсюджаная ідэя ў сучасным машынным навучанні заключаецца ў тым, што страты паляпшаюцца прадказальным чынам па меры маштабавання памеру мадэлі, дадзеных і вылічэнняў — у разумных межах. Існуе таксама аптымальны для вылічэнняў баланс паміж памерам мадэлі і навучальнымі токенамі; маштабаванне абодвух разам лепшае маштабаванне толькі аднаго. На практыцы гэтыя ідэі ўплываюць на бюджэты на навучанне, планаванне набораў дадзеных і кампрамісы ў абслугоўванні [4].
Кароткі пераклад: большае можа быць лепшым, але толькі калі маштабаваць уваходныя дадзеныя і вылічваць прапарцыйна — інакш гэта як надзець трактарныя шыны на ровар. Выглядае інтэнсіўна, але нікуды не вядзе.
Гарызантальна супраць вертыкальна: два рычагі маштабавання 🔩
-
Вертыкальнае маштабаванне : большыя скрынкі, больш магутныя графічныя працэсары, больш памяці. Проста, часам дорага. Добра падыходзіць для навучання аднаго вузла, вываду з нізкай затрымкай або калі ваша мадэль адмаўляецца правільна шардаваць.
-
Гарызантальнае маштабаванне : больш рэплік. Найлепш працуе з аўтамаштабаваннем , якое дадае або выдаляе пады на аснове паказчыкаў працэсара/графічнага працэсара або карыстальніцкіх праграм. У Kubernetes HorizontalPodAutoscaler маштабуе пады ў адказ на попыт — ваш базавы кантроль натоўпу пры піках трафіку [1].
Анекдот (кампазітны): Падчас гучнага запуску проста ўключэнне пакетнай апрацоўкі на баку сервера і дазвол аўтамаштабаванню рэагаваць на глыбіню чаргі стабілізавалася на p95 без якіх-небудзь змяненняў у кліенце. Непрыкметныя перамогі ёсць перамогі.
Поўны стэк маштабаванасці штучнага інтэлекту 🥞
-
Узровень дадзеных : хуткія сховішчы аб'ектаў, вектарныя індэксы і струменевая перадача, якія не будуць перашкаджаць вашым трэнерам.
-
Навучальны ўзровень : размеркаваныя фрэймворкі і планавальнікі, якія апрацоўваюць паралелізм дадзеных/мадэляў, кантрольныя пункты, паўторныя спробы.
-
Абслугоўваючы ўзровень : аптымізаваныя асяроддзя выканання, дынамічнае пакетнае аб'яднанне , старонкавая ўвага для LLM, кэшаванне, струменевая перадача токенаў. Triton і vLLM часта выступаюць тут у якасці галоўнай аўдыторыі [2][3].
-
Аркестрацыя : Kubernetes для эластычнасці праз HPA або карыстальніцкія аўтамаштабавальнікі [1].
-
Назіральнасць : трасы, метрыкі і журналы, якія адсочваюць шлях карыстальніка і мадэлююць паводзіны ў прадукце; распрацоўвайце іх з улікам вашых SLO [5].
-
Кіраванне і выдаткі : эканоміка кожнага запыту, бюджэты і функцыі адключэння для некантралюемых працоўных нагрузак.
Параўнальная табліца: інструменты і шаблоны для маштабавання штучнага інтэлекту 🧰
Трохі няроўна наўмысна — бо рэальнае жыццё такое.
| Інструмент / Узор | Аўдыторыя | Прыблізная цана | Чаму гэта працуе | Заўвагі |
|---|---|---|---|---|
| Kubernetes + HPA | Каманды платформы | Адкрыты зыходны код + інфраструктура | Маштабуе пады па гарызанталі па меры рэзкага росту паказчыкаў | Карыстальніцкія паказчыкі — гэта золата [1] |
| NVIDIA Трытон | Выснова SRE | Бясплатны сервер; відэакарта $ | Дынамічнае пакетнае аб'яднанне павялічвае прапускную здольнасць | Наладзіць праз config.pbtxt [2] |
| vLLM (PagedAttention) | Каманды магістра права | Адкрыты зыходны код | Высокая прапускная здольнасць дзякуючы эфектыўнаму падключэнню кэша KV | Выдатна падыходзіць для доўгіх падказак [3] |
| Асяроддзе выканання ONNX / TensorRT | Зануды-перфаратары | Бясплатныя / пастаўшчыковыя інструменты | Аптымізацыя на ўзроўні ядра памяншае затрымку | Шляхі экспарту могуць быць складанымі |
| Узор RAG | Каманды праграм | Інфра + індэкс | Пераносіць веды на пошук; маштабуе індэкс | Выдатна падыходзіць для свежасці |
Паглыбленае апусканне 1: хітрасці падачы, якія зрушаць справу з мёртвай кропкі 🚀
-
Дынамічнае пакетнае аб'яднанне групуе невялікія выклікі вываду ў большыя пакеты на серверы, што значна павялічвае выкарыстанне графічнага працэсара без змяненняў з боку кліента [2].
-
Падпампаваная ўвага захоўвае значна больш размоў у памяці шляхам падпампоўкі кэшаў KV, што паляпшае прапускную здольнасць пры паралельнасці [3].
-
Аб'яднанне і кэшаванне запытаў для аднолькавых падказак або ўбудаванняў дазваляе пазбегнуць дубліравання працы.
-
Спекулятыўнае дэкадаванне і струменевая перадача токенаў памяншаюць успрыманую затрымку, нават калі насценны гадзіннік амаль не рухаецца.
Паглыбленае апусканне 2: Эфектыўнасць на ўзроўні мадэлі - квантызацыя, дыстыляцыя, абрэзка 🧪
-
Квантаванне зніжае дакладнасць параметраў (напрыклад, 8 біт/4 біт), каб скараціць аб'ём памяці і паскорыць вывад; заўсёды пераацэньвайце якасць задачы пасля змяненняў.
-
Дыстыляцыя перадае веды ад вялікага настаўніка да меншага вучня, які сапраўды падабаецца вашаму абсталяванню.
-
Структураваная абрэзка прадугледжвае найменшы ўплыў цяжараў/галоў.
Будзем шчырымі, гэта як паменшыць памер чамадана, а потым настойваць на тым, каб увесь абутак усё яшчэ падыходзіў. У нейкім сэнсе гэта так, у асноўным.
Паглыбленае апусканне 3: Маштабаванне дадзеных і навучання без перапынкаў 🧵
-
Выкарыстоўвайце размеркаванае навучанне, якое хавае складаныя часткі паралелізму, каб вы маглі хутчэй запускаць эксперыменты.
-
Памятайце пра законы маштабавання : прадумана размяркоўвайце бюджэт паміж памерам мадэлі і токенамі; маштабаванне абодвух разам эфектыўна з пункту гледжання вылічэнняў [4].
-
Навучальныя праграмы і якасць дадзеных часта ўплываюць на вынікі больш, чым людзі прызнаюць. Лепшыя дадзеныя часам пераўзыходзяць большую колькасць дадзеных — нават калі вы ўжо ўпарадкавалі большы кластар.
Паглыбленае апусканне 4: RAG як стратэгія маштабавання ведаў 🧭
Замест таго, каб перавучваць мадэль, каб яна адпавядала зменлівым фактам, RAG дадае крок пошуку на этапе вываду. Вы можаце падтрымліваць мадэль стабільнай і маштабаваць індэкс і пошукавыя сістэмы па меры росту корпуса. Элегантна — і часта танней, чым поўнае перавучванне для праграм з вялікай колькасцю ведаў.
Назіральнасць, якая акупляецца 🕵️♀️
Нельга маштабаваць тое, чаго не відаць. Дзве важныя рэчы:
-
Метрыкі для планавання магутнасцей і аўтаматычнага маштабавання: працэнтылі затрымкі, глыбіня чаргі, памяць графічнага працэсара, памеры пакетаў, прапускная здольнасць токенаў, частата трапленняў у кэш.
-
Трасы, якія ідуць пасля аднаго запыту праз шлюз → атрыманне → мадэль → пасляапрацоўку. Звяжыце вымярэнні са сваімі SLO, каб панэлі кіравання адказвалі на пытанні менш чым за хвіліну [5].
Калі панэлі кіравання адказваюць на пытанні менш чым за хвіліну, людзі імі карыстаюцца. Калі не, то робяць выгляд, што адказваюць.
Абароны надзейнасці: SLO, бюджэты памылак, разумныя разгортванні 🧯
-
Вызначце SLO для затрымкі, даступнасці і якасці вынікаў, а таксама выкарыстоўвайце бюджэты памылак , каб збалансаваць надзейнасць з хуткасцю выпуску [5].
-
Размяшчайцеся за раздзяляльнікамі руху, рабіце канарэйкі і праводзьце ценявыя тэсты перад глабальнымі пераключэннямі. Ваша будучае «я» будзе дасылаць закускі.
Кантроль выдаткаў без драмы 💸
Маштабаванне — гэта не толькі тэхнічная задача, але і фінансавая. Разглядайце гадзіны працы графічнага працэсара і токены як першакласныя рэсурсы з улікам адзінкавай эканомікі (кошт за 1 тыс. токенаў, за ўбудаванне, за вектарны запыт). Дадавайце бюджэты і абвесткі; святкуйце выдаленне рэчаў.
Простая дарожная карта да маштабаванасці штучнага інтэлекту 🗺️
-
Пачніце з SLO для затрымкі p95, даступнасці і дакладнасці задач; перадавайце метрыкі/трасы ў першы дзень [5].
-
Выберыце стэк абслугоўвання , які падтрымлівае пакетную і бесперапынную пакетную апрацоўку: Triton, vLLM або эквіваленты [2][3].
-
Аптымізуйце мадэль : квантуйце там, дзе гэта дапамагае, уключыце больш хуткія ядра або дыстылюйце для канкрэтных задач; праверце якасць з дапамогай рэальных ацэнак.
-
Архітэктар для эластычнасці : Kubernetes HPA з правільнымі сігналамі, асобнымі шляхамі чытання/запісу і рэплікамі вываду без захавання стану [1].
-
Выкарыстоўвайце пошук, калі важная свежасць, каб маштабаваць свой індэкс замест таго, каб перавучваць яго кожны тыдзень.
-
Замкніце цыкл выдаткаў : усталюйце эканоміку адзінкі і праводзьце штотыднёвыя агляды.
Распаўсюджаныя тыпы паломак і хуткія рашэнні 🧨
-
Загрузка графічнага працэсара на 30%, а затрымка нізкая
-
Уключыце дынамічную пакетную апрацоўку , асцярожна павялічце ліміты пакетаў і пераправерце паралельнасць сервера [2].
-
-
Прапускная здольнасць падае з-за доўгіх запытаў
-
Выкарыстоўвайце абслугоўванне, якое падтрымлівае падключаную ўвагу і наладжвайце максімальную колькасць адначасовых паслядоўнасцей [3].
-
-
Засланкі аўтаматычнага маштабавання
-
Згладжванне паказчыкаў з дапамогай вокнаў; маштабаванне па глыбіні чаргі або карыстальніцкія токены ў секунду замест выкарыстання выключна працэсара [1].
-
-
Кошты рэзка ўзраслі пасля запуску
-
Дадайце паказчыкі кошту на ўзроўні запытаў, уключыце квантызацыю, дзе гэта бяспечна, кэшуйце найбольш частыя запыты і абмяжуйце частату найгоршых парушальнікаў.
-
Кіраўніцтва па маштабаванасці штучнага інтэлекту: кароткі кантрольны спіс ✅
-
SLO і бюджэты памылак існуюць і бачныя
-
Паказчыкі: затрымка, tps, памяць GPU, памер пакета, токен/с, трапленне ў кэш
-
Трасіроўкі ад уваходу да мадэлі і да постпрацэсаў
-
Абслугоўванне: пакетная апрацоўка, наладжванне паралельнасці, цёплыя кэшы
-
Мадэль: квантаваная або дыстыляваная, дзе гэта дапамагае
-
Інфра: HPA настроены з правільнымі сігналамі
-
Шлях пошуку свежасці ведаў
-
Эканоміка адзінкі часта пераглядаецца
Занадта доўга не чытаў і заключныя заўвагі 🧩
Маштабаванасць штучнага інтэлекту — гэта не адна функцыя і не сакрэтны перамыкач. Гэта мова шаблонаў: гарызантальнае маштабаванне з аўтамаштабаваннем, пакетная апрацоўка на баку сервера для больш эфектыўнага выкарыстання, эфектыўнасць на ўзроўні мадэлі, пошук для выгрузкі ведаў і назіральнасць, якая робіць разгортванне сумным. Дадайце SLO і гігіену выдаткаў, каб усе былі ўзгодненыя. Вы не атрымаеце ідэальны вынік з першага разу — ніхто не атрымліваецца — але з правільнымі цыкламі зваротнай сувязі ваша сістэма будзе расці без адчування халоднага поту а 2-й гадзіне ночы 😅
Спасылкі
[1] Дакументацыя Kubernetes - Аўтамаштабаванне гарызантальнага подаў - чытаць далей
[2] NVIDIA Triton - дынамічны пакетавальнік - чытаць далей
[3] Дакументацыя vLLM - старонкавая ўвага - чытаць далей
[4] Хофман і інш. (2022) - Навучанне мадэляў вялікіх моў, аптымальных для вылічэнняў - чытаць далей
[5] Працоўны дапаможнік Google SRE — Укараненне SLO — чытаць далей