7 мин

Инференске 48 ГБ әлде екі 24 ГБ GPU керек пе?

Инференске 48 ГБ әлде екі 24 ГБ GPU таңдауды модель жады, KV-кэш, GPU алмасуы, кідіріс, өткізу қабілеті және торап бағасы бойынша салыстырамыз.

Инференске 48 ГБ әлде екі 24 ГБ GPU керек пе?

Мұнда таңдау қорапта жазылған гигабайттардың қосындысына емес, модельдің қалай іске қосылатынына байланысты. 48 ГБ-тық бір карта модельге біртұтас жад қорын береді және үдеткіштер арасында дерек алмасуды қажет етпейді. Екі 24 ГБ карта екі тәуелсіз сервис көшірмесін немесе модельді бөлу мен синхрондауға ресурс жұмсайтын бір таратылған дананы береді.

Бағасы тең болса, бір үлкен модель, ұзын контекст және тұрақты кідіріс үшін әдетте 48 ГБ-ты таңдаймын. Әр жұмыс моделі 24 ГБ-қа сыйып, көбірек тәуелсіз сұрауды өңдеу, әртүрлі модельдерді ұстау немесе істен шығу аймақтарын бөлу керек болса, екі 24 ГБ карта ұтымды. Модель 24 ГБ-қа сыймай, 48 ГБ-қа сыйса, екі карта да жарайды, бірақ енді әр жасалған токен үшін құрылғылар арасындағы алмасуға ресурс кетеді.

Неліктен 24 пен 24 бір жад қорына айналмайды

Әр бейнекартаның өз физикалық VRAM массиві мен мекенжай кеңістігі бар. CUDA peer-to-peer арқылы бір картаға екінші картаның жадына тікелей қатынау бере алады, ал бірыңғай виртуалды мекенжайлау көрсеткіштермен жұмысты жеңілдетеді. Бірақ бұл кез келген модель операторы еркін көлемдегі тензорды орналастыра алатын ортақ 48 ГБ буфер жасамайды.

Айырмашылық модель жүктелген кезде-ақ көрінеді. Бір қабатқа немесе уақытша жұмыс буферіне бір картадағы бос жадтан көбірек орын керек болса, көрші картадағы бос гигабайттар процесті өздігінен құтқармайды. Фреймворк сол қабатты бөлуді, әр қабатты бөлек құрылғыға орналастыруды немесе деректің бір бөлігін жедел жадқа шығаруды білуі керек. Әр тәсілдің өз шектеуі бар.

NVIDIA CUDA Programming Guide құжаты бірнеше GPU-мен жұмысты құрылғыларды, контекстерді, есептеуді таратуды және нәтижелерді алмасуды бөлек басқару деп сипаттайды. Сондай-ақ peer access мүмкіндігі PCIe немесе NVLink топологиясына тәуелді және нақты құрылғылар жұбы үшін тексеріледі. Іс жүзіндегі қорытынды қарапайым: жалпы сыйымдылықты санауға болады, бірақ жоспар ең тығыз шардқа қарай жасалады.

Квантталған салмақтар 38 ГБ орын алады делік. Бір 48 ГБ картаға жүктегеннен кейін, қызметтік жадты есептемегенде, шамамен 10 ГБ қалады. Екі картаға дұрыс бөлінсе, әрқайсысына шамамен 19 ГБ салмақ түсіп, 5 ГБ-тан орын қалады. 22 ГБ және 16 ГБ болып сәтсіз бөлінсе, бірінші картада шамамен 2 ГБ ғана бос қалады. Екінші картада бос жад тұрса да, процесс бірінші картада OOM қатесімен тоқтайды.

Сондықтан «жалпы 48 ГБ» деген сөз таратылған конфигурацияның шегін сипаттайды, бірақ бір 48 ГБ картаның қасиетін бермейді. Шоттағы саны бірдей болғанымен, бұлар екі бөлек ресурс.

Модель салмақтары бюджеттің тек алғашқы бөлігін алады

Инференске арналған жад есебіне салмақтар, KV-кэш, уақытша тензорлар, ядролардың жұмыс аймақтары және рантаймның өз қоры кіруі керек. Қате сатып алу көбіне параметр санын дерек түрінің көлеміне көбейтуден басталып, «модель артығымен сыяды» деген қорытындымен аяқталады. Нақты сұраулар сол артық орынды тез пайдаланып қояды.

Салмақтардың жуық төменгі бағасы мынадай:

BF16 или FP16: параметры × 2 байта
INT8:          параметры × 1 байт + масштабы и метаданные
4 бита:        параметры × 0,5 байта + масштабы, группы и служебные данные

32 миллиард параметрлік модельдің таза салмақтары BF16 форматында шамамен 64 ГБ, 8 биттік сақтауда 32 ГБ, ал 4 биттік сақтауда 16 ГБ алады. Соңғы екі санды толық тұтыну деп қабылдауға болмайды. Кванттау форматы масштабтарды, кейде нөлдік нүктелерді сақтайды, кейбір қабаттар жоғары дәлдікте қалуы мүмкін, ал жүктеуші буферлер жасайды. Чекпойнт файлының көлемі де іске қосу кезіндегі VRAM шыңына тең емес.

Екінші ірі тұтынушы, KV-кэш. Авторегрессиялық модель әр келесі токен үшін бүкіл контексті қайта есептемеу мақсатында бұрын өңделген токендердің attention кілттері мен мәндерін сақтайды. Transformers құжаттамасы ұзын контекст KV-кэшті жадтың елеулі бөлігіне айналдыратынын тікелей ескертеді. Ол бір уақытта орындалатын тізбектердің саны мен ұзындығына қарай өседі. Модель архитектурасы, KV бастарының саны және кэштің дерек түрі бір токеннің бағасын өзгертеді, сондықтан «8K үшін осынша гигабайт» деген әмбебап сан жоқ.

Қысқа уақыттық шыңдар да бар. Attention операторы, декванттау немесе басқа ядроны таңдау монитор картаның толуға жақын екенін көрсеткен сәтте жұмыс аймағын сұрауы мүмкін. Сенімді конфигурация 100 пайызға толып тұрмауы керек. Алғашқы есепте рантайм мен шыңдарға 10-20 пайыз қалдырамын, кейін бұл қорды өлшенген мәнмен ауыстырамын. Бұл физикалық тұрақты емес, инженерлік қор.

vLLM әдепкіде модель жүктелгеннен кейін KV-кэшке арналған жадты өзі анықтап, оның токенмен берілген сыйымдылығын ең жоғары параллельдік бағасымен бірге шығарады. Осы екі жол бір nvidia-smi суретінен пайдалырақ: олар берілген max_model_len кезінде сервер қанша нақты тізбекті ұстай алатынын көрсетеді.

Әр нұсқаға қандай модель кластары сыяды

Бір 48 ГБ карта мен екі 24 ГБ карта салмақтардың ұқсас кластарын ұстай алады, бірақ кэшке әртүрлі орын қалдырып, іске қосуға бөлек талап қояды. Төмендегі кесте нақты чекпойнттың үйлесетініне кепілдік бермейді, ол тек бастапқы іріктеуге арналған.

Модель класыBF16 немесе FP16, тек салмақтарINT8, тек салмақтар4 бит, тек салмақтарІс жүзіндегі қорытынды
7-8B14-16 ГБ7-8 ГБ3,5-4 ГБ24 ГБ-қа еркін сыяды, екі картаны екі реплика ретінде қолданған дұрыс
13-14B26-28 ГБ13-14 ГБ6,5-7 ГБBF16 үшін 48 ГБ немесе бөлу қажет, INT8 бір 24 ГБ картаға сыяды
30-32B60-64 ГБ30-32 ГБ15-16 ГБINT8 48 ГБ-та ыңғайлы, 4 бит 24 ГБ-қа кэш қоры шектеулі күйде сыяды
65-72B130-144 ГБ65-72 ГБ32,5-36 ГБҚосымша шығын тексерілсе, 4 биттік салмақтар 48 ГБ-қа немесе 2 × 24 ГБ-қа сыюы мүмкін

Кестеде модель атаулары әдейі көрсетілмеді. Параметр саны бірдей деп жарияланған екі модель grouped-query attention, сөздік көлемі, tied embeddings, жергілікті attention, mixture-of-experts және кванттау іске асырылуына байланысты жадты әртүрлі жұмсайды. MoE моделінің жалпы параметр саны әсіресе жаңылыстырады: әр токен үшін сарапшылардың бір бөлігі ғана белсенді, бірақ орналастырылған барлық сарапшының салмақтарын бәрібір сақтау керек.

4 биттік 70B класы таңдаудың мәнін анық көрсетеді. Таза арифметика салмақтарға шамамен 35 ГБ жеткілікті дейді. Нақты формат көлемді едәуір арттыруы мүмкін, ал контекст пен параллель сұрауларға қалған орын қажет. Бір 48 ГБ карта біртұтас бос қор береді. Екі 24 ГБ картада әр шард KV-кэштің өз бөлігімен және уақытша буферлермен бірге сыюы керек.

4 биттік 32B үшін бір 24 ГБ карта жиі жеткілікті көрінеді, бірақ сервис сыйымдылығы төмен болуы мүмкін: салмақтардан кейін ұзын диалогтарға аз орын қалады. Мұндай жағдайда екі картаны қысқа контексті екі реплика ретінде іске қосуға немесе үлкенірек жалпы кэші бар бір таратылған дана құруға болады. Дұрыс таңдауды модель атауы емес, кезек сипаты анықтайды.

Модельді бөлу тәсілі нәтижені өзгертеді

Бір модель екі картаны пайдалануы үшін рантайм тензорлық параллелизмді, конвейерлік параллелизмді немесе қабаттарды құрылғыларға жай орналастыруды қолдануы керек. Бұл режимдер әртүрлі мәселені шешеді және әртүрлі трафик жасайды.

Тензорлық параллелизмде қабат ішіндегі матрицалар карталар арасында бөлінеді. Екі карта да бір токенді өңдеуге қатысып, кейін ұжымдық операциялар арқылы аралық нәтижелермен алмасады. Салмақ жады мен кэштің бір бөлігі таратылады, бірақ бір өтудің ішінде синхрондау бірнеше рет жүреді. Мұнда жылдам картааралық байланыс айрықша пайдалы.

Конвейерлік параллелизмде бір карта бастапқы қабаттарды, екіншісі кейінгі қабаттарды сақтайды. Активациялар кезеңдер шекарасынан өтеді. Алмасу сирек әрі шағын болуы мүмкін, бірақ қабаттар тең бөлінбесе, бір карта толып, екіншісі бос тұрады. Бір авторегрессиялық сұрау кезінде конвейер екі картаны екі есе есептеу қуатына айналдырмайды, өйткені кезеңдер бір-біріне тәуелді.

Transformers ішіндегі қарапайым device_map="auto" салмақтарды қолжетімді құрылғыларға таратып, орын жетпесе CPU немесе дискіге орналастыруды жалғастыра алады. Бұл модельді тексеру үшін іске қосуға ыңғайлы, бірақ сапалы өндірістік инференсті дәлелдемейді. Қабаттарды жүйелік жад арқылы тасымалдау OOM жоғалғанның өзінде кідірісті қатты өсіруі мүмкін.

vLLM құжаттамасы орынды ереже береді: модель бір GPU-ға сыйса, таратылған инференс көбіне қажет емес; бір картаға сыймай, бірнеше GPU бар бір торапқа сыйса, tensor parallel қолданылады. Сол құжаттама NVLink жоқ және модель тең бөлінбейтін жағдайда pipeline parallel режимін қарастыруды ұсынады, себебі ол байланыс шығынын азайтуы мүмкін. Бағытымен келісемін, бірақ оны сынақтың орнына қабылдамаймын: нақты архитектура мен батч көлемі жеңімпазды оңай өзгертеді.

Data parallel басқа мәселені шешеді. Әр карта модельдің толық көшірмесін сақтап, сұрауларды тәуелсіз өңдейді. Жад мүлде қосылмайды, бірақ кезекте жұмыс жеткілікті болса, жалпы өткізу қабілеті екі репликаның қосындысына жақындайды. 24 ГБ-қа еркін сыятын модель үшін екінші картаны осылай қолдану көбіне дұрыс.

Байланыс екі картаның үстеме шығынын анықтайды

Алмасуы ескерілген екі GPU
Топология мен параллелизм режимі көп карталы жүйені таңдауға кіреді.
Жүйе таңдау

Карталар арасындағы алмасу жылдамдығы тікелей peer-to-peer қатынауына, жолдағы PCIe көпірлеріне және нақты жұптың NVLink қолдауына байланысты. Бірдей екі GPU атауы дайын сервердің топологиясы туралы ештеңе айтпайды. Слоттар әртүрлі CPU сокеттеріне жалғануы, BIOS баптаулары режимді өзгертуі, ал виртуалдандыру тікелей қатынауды жабуы мүмкін.

Тексеруді жиналған машинада орындау керек:

nvidia-smi topo -m
nvidia-smi topo -p2p r
nvidia-smi topo -p2p w

topo -m матрицасы жолдар мен бағандарда GPU0, GPU1 мәндерін және олардың арасындағы жол түрін көрсетеді. NVIDIA құжаттамасында PIX ең көбі бір PCIe көпірі арқылы өтетін жолды білдіреді, PHB PCIe host bridge арқылы өтеді, SYS сокеттер арасындағы байланысты да кесіп өтеді, ал NV# бірнеше NVLink жиынын көрсетеді. topo -p2p командалары тікелей оқу мен жазу мүмкіндігін бөлек көрсетеді.

        GPU0  GPU1  CPU Affinity
GPU0     X    PHB   0-15
GPU1    PHB    X    0-15

Мұндай нәтиже нақты өткізу жолағын өлшемейді, тек маршрутты сипаттайды. Одан кейін өндірісте қолданылатын операциялық жүйеде, драйверде, контейнерде және IOMMU баптауларында NCCL немесе nvbandwidth сынағын өткізу керек. NVIDIA DCGM құрамында P2P, қателер мен қайталауларды тексеріп, GPU мен GPU және host арасындағы алмасуды өлшейтін PCIe сынағы да бар.

PCIe арқылы тензорлық параллелизм есептеу алмасудың бір бөлігін жауып тұратын үлкен батчтарда жеткілікті жақсы жұмыс істей алады. Шағын батчпен интерактивті генерация кезінде әр токендегі синхрондау кідірістен анық көрінеді. NVLink шығынды азайтады, бірақ таратылған іске қосуды тегін етпейді. Карталарда тікелей P2P мүлде болмаса, дерек CPU жады арқылы өтуі мүмкін, мұндайда бір 48 ГБ карта одан да тартымды.

Кідіріс пен өткізу қабілетіне әртүрлі сатып алу қажет

Салыстырылатын үдеткіштердің есептеу өнімділігі мен өз жадының өткізу жолағы ұқсас болса, бір 48 ГБ карта бір сұрауға әдетте төменірек кідіріс береді. Модельдің бүкіл өтуі бір құрылғыда қалады, ұжымдық операциялар болмайды, ал жоспарлаушы бос VRAM қорын еркінірек пайдаланады.

Екі 24 ГБ карта секундына көбірек сұрауды екі жолмен өңдей алады. Модель әр картаға сыйса, екі реплика картааралық трафиксіз әртүрлі сұрауды орындайды. Модель бөлінсе, жалпы есептеу көлемі жоғары, бірақ өсім батчқа және алмасу жылдамдығына тәуелді. Бір пайдаланушы үшін tensor parallel кейде үлкен модельді жылдамдатады, кейде жылдамдықты өзгерпейді, ал әлсіз топологияда баяулатуы мүмкін.

Үш көрсеткішті араластырмаңыз:

  • TTFT, бірінші токенге дейінгі уақыт, кіріс ұзындығы мен prefill кезеңіне қатты тәуелді;
  • TPOT, әр келесі токенге кететін уақыт, интерактивті декодтау жылдамдығын көрсетеді;
  • мақсатты параллельдік кезіндегі секундтық токен немесе сұрау санымен өлшенетін жалпы өткізу қабілеті.

Кідіріс шегі қатаң чатқа алынатын жабдық пен түнгі пакеттік өңдеуге алынатын жабдық сирек бірдей болады. Чат үшін нақты кезектегі p95 TTFT пен TPOT маңызды. Пакеттік жұмыс бір тапсырманың жоғары кідірісін көтере алады, егер екі карта үлкен батчты ұстап, бүкіл жинақты ертерек аяқтаса.

Істен шығу тәртібі де маңызды. Тензорлық параллель жұптағы бір карта істен шықса, модельдің бүкіл данасы тоқтайды. 24 ГБ-тық екі тәуелсіз реплика біреуін қызметтен шығарып, қуаттың бір бөлігін сақтауға мүмкіндік береді. Бір 48 ГБ карта қарапайым, бірақ ол бір үдеткіш пен бір дана. Екі карта бір процесте тұрса болды, резерв пайда болды деп есептемей, бұл тәуекелді тораптар деңгейінде жабыңыз.

Бір 48 ГБ карта күрделі жұптан ұтымды

Контекске арналған жад қоры
Конфигурация VRAM көлемімен бірге салмақтарды, KV-кэшті және жүктемені ескереді.
Серверді есептеу

Жұмыс чекпойнты қажет контекстімен бірге 48 ГБ-қа сыйып, 24 ГБ-қа сыймаса, 48 ГБ таңдаңыз. Бұл ең таза жағдай: шардтарға бөлуден, картааралық алмасудан және таратылған рантайм қателерінің бөлек тобынан құтыласыз.

Бір карта мына жағдайларда да орынды:

  • интерактивті сервис batch size 1 немесе аз параллельдікпен жұмыс істейді;
  • ұзын контекст және KV-кэшке арналған үлкен біртұтас қор қажет;
  • таңдалған архитектура не кванттау үшін фреймворк multi-GPU режимін нашар қолдайды;
  • сервердің PCIe топологиясы әлсіз немесе тікелей P2P қолжетімсіз;
  • команда модельді оңай жаңартып, OOM жағдайын талдап, ортаны қайталағысы келеді.

Соңғы тармақ жиі төмен бағаланады. Таратылған ақау NCCL нұсқасына, құрылғылар ретіне, контейнер құқықтарына, үйлеспейтін ядроға, тензор пішініне немесе жад теңсіздігіне тәуелді болуы мүмкін. Бір картада іздеу аумағы тар. Шағын команда үшін бұл иелену құнына өнімділіктің бірнеше пайызы сияқты әсер етеді.

48 ГБ сапа үшін кванттауды өзгертуге де мүмкіндік береді. Агрессивті 4 битте 24 ГБ-қа әрең сыятын модель 48 ГБ-қа 8 битпен немесе BF16 форматында көбірек қабатпен сыюы мүмкін. Кез келген модель мен тапсырмада сапа өсетініне кепілдік жоқ, сондықтан оны өз бағалау жинағыңызда тексеріңіз, бірақ аппараттық қор мұндай сынаққа жол ашады.

Бір үлкен картаға қарсы уәж, бос қуаттың бағасы. Сервис түнде дерлік бос болса, екінші тәуелсіз 24 ГБ карта басқа модельді, эмбеддингтерді, тануды немесе пакеттік тапсырманы орындай алады. Мұны 48 ГБ-та да қатар жүргізуге болады, бірақ бәсекелес процестер бір үдеткішті бөлісіп, негізгі сервистің кідірісіне әсер етуі мүмкін.

Дұрыс кезекте екі 24 ГБ карта тиімді

Әр модель бір картаға сыятын болса, екі 24 ГБ карта ұтымды. Жадты қосудың қажеті жоқ: екі реплика іске қосылып, жүктеме теңгергіші оларға тәуелсіз сұрауларды жібереді. BF16 форматындағы 7-8B, INT8 форматындағы 13-14B және 4 биттік көптеген 30-32B модель үшін бұл кэш қоры тексерілгеннен кейін ыңғайлы нұсқа.

Екі карта бірнеше модельге де қолайлы. Мысалы, біреуі генерацияны орындаса, екіншісі эмбеддинг моделін немесе бөлек маманданған LLM-ді ұстайды. Әр сұрау түрінің алдында ондаған гигабайт салмақты түсіріп, қайта жүктеу керек болмайды. Жадты оқшаулау жұмысты түсініктірек етеді, бірақ ортақ CPU, RAM және PCIe әлі де тар орынға айналуы мүмкін.

Қаржылық ескерту бар. Сатып алу бағасының тең болуы торап бағасының теңдігін білдірмейді. Екі карта көбірек PCIe слотын алады, жеткілікті PCIe желісін, кейде қуаттырақ CPU, көбірек қуат кабелі мен салқындатуды қажет етеді. Қуат көзі екі картаның орташа шығынын емес, шыңын көтеруі керек. Корпус қатар тұрған үдеткіштерді қыздырмайтындай ауа өткізуге тиіс.

Лицензиялар мен қолдау да GPU, сокет немесе дана санымен есептелуі мүмкін. Мұндай шығынды жад көлеміне қарап болжамаймын, оны таңдалған стек үшін нақтылау керек. Екінші жағынан, кең таралған екі 24 ГБ картаны жеке ауыстыру кейде бір маманданған 48 ГБ картаны ауыстырудан оңай. Бұл нақты қолжетімділік пен жеткізу шартына байланысты, сондықтан мерзімі жоқ баға тізімі аз нәрсе шешеді.

Бір 48 ГБ нұсқа қолжетімсіз болса немесе екі карта сіздің батчыңызда анық жылдамырақ болса, 4 биттік таратылған 70B екі 24 ГБ карта алуға орынды себеп болып қалады. Бірақ мұндай жұпты бір картаға тең деуге болмайды. Алдымен рангтар арасындағы жад теңдігін, кейін TTFT, TPOT, throughput, тораптың энергия тұтынуын және ұзын контекстегі жұмысты тексеріңіз.

Сынақ іске қосуы өндірістік ортаны қайталауы керек

48 ГБ-ты дерекпен таңдау
Бір үлкен GPU мен екі картаны мақсатты сервер құрамында салыстырамыз.
Конфигурацияны талқылау

Сатып алу туралы шешімді екі конфигурацияда да бір чекпойнтпен, қозғалтқышпен, кванттау түрімен және сұраулар жинағымен қабылдаңыз. Қысқа prompt негізінде 20 токен шығаратын жасанды сынақ KV-кэшті, кезекті және жылу режимін жасырады.

Мен мына тексеру ретін қолданамын:

  1. Модельдің дәл құрастырылымын жүктеп, драйвер, CUDA, қозғалтқыш және кванттаушы нұсқаларын тіркеу.
  2. Мақсатты параллельдікте қысқа, медианалық және шекті контексті жүргізіп, TTFT пен TPOT үшін p50 және p95 мәндерін жазу.
  3. Әр картадағы KV-кэш сыйымдылығын, preemption және OOM жағдайын бөлек бақылай отырып, бір мезгілдегі сұраулар санын мақсатты деңгейге дейін арттыру.
  4. Троттлингті, торап тұтынуын және кезек тұрақтылығын көру үшін ұзақ сынақты қайталау.
  5. Екі картада қолдануға болатын жерлерде tensor parallel, pipeline parallel және екі реплика режимдерін бөлек тексеру.

vLLM іске қосылғанда мына түрдегі бастапқы жолдарды сақтаған дұрыс:

GPU KV cache size: 643,232 tokens
Maximum concurrency for 40,960 tokens per request: 15.70x

Бұл сіздің машинаңызға берілген уәде емес, vLLM құжаттамасындағы шығыс пішінінің мысалы. Есептелген параллельдікті нақты мәнмен салыстырыңыз: ұзын және қысқа сұраулар араласады, ал scheduler кэш блоктарын мінсіз біркелкі сынақтағыдай жұмсамайды. Статикалық кэш қолдансаңыз, Transformers ең жоғары көлемді алдын ала бөліп, маскаланған позицияларға жад жұмсауы мүмкін екенін ескеріңіз. Кэшті CPU-ға шығарсаңыз, құжаттама тасымалдау салдарынан өткізу қабілеті төмендейтінін ескертеді.

Орташа мәнді емес, әр рангтың жадын тіркеңіз. Таратылған іске қосуда бір картадағы OOM сұраудың немесе бүкіл процестің тоқтауына жеткілікті. Суық жүктеуді де тексеріңіз: форматты түрлендіру, CUDA Graphs түсіру және ядроларды компиляциялау тұрақты жұмыс графигінде көрінбейтін шың жасай алады.

GSE.kz вендорға бейтарап тәсілмен AI және дата-орталық инфрақұрылымын жобалап, біріктіреді, сондықтан конфигурацияны бір үдеткіш брендіне емес, модельге, кезекке және жеткізу талабына байланыстыруға болады. Бұл жұмысқа әр үміткерде бірдей сынақтың нәтижесі керек, әйтпесе интегратор да номиналды гигабайтқа қарап таңдайды.

Баға тең болса, пайдалану режимі шешеді

Модельдің бір данасына 24 ГБ-тан көп жад керек болып, кэшімен бірге 48 ГБ-қа сенімді түрде сыйса, бір 48 ГБ карта алыңыз. Ол байланыс шығынын алып тастап, біртұтас жад қорын қалдырады. Интерактивті инференс үшін бұл менің әдепкі таңдауым.

Модель 24 ГБ-қа сыйып, кезек жеткілікті үлкен болса, екі картаны екі реплика ретінде іске қосқан тиімді. Tensor parallel қолданбай-ақ қосымша өткізу қабілетін аласыз және бір реплика тоқтағанда трафиктің бір бөлігін өңдеуді жалғастырасыз. Бір уақытта әртүрлі модельдер қажет болса, жұптың артықшылығы күшейеді.

4 биттік 70B жалпы 48 ГБ-ты қажет етсе, жауапты спецификациядан таба алмайсыз. Бір картада KV-кэшке нақты қанша орын қалғанын тексеріңіз. Екі картада шардтардың теңдігін және топологияны қарап, кейін p95 кідіріс пен throughput мәндерін салыстырыңыз. Ең үлкен контекст пен кезекті OOM, троттлинг және CPU арқылы тасымалдаусыз ұстайтын конфигурация жеңеді.

Шешімді қайта қарауға болатын пайдалы шек бар. Салмақтар жүктелгеннен кейін кэшке қалған орын мақсатты кезекке жетпесе, бір сұраулық сынақ өтсе де, жадтың келесі класына өтіңіз. Көрсетілімнен өту үшін max_model_len немесе сұрау санын азайту ресурс жетіспеуін жасырады. Сервер ең ыңғайлы prompt үшін емес, өндірістегі ең жоғары жүктеме үшін алынады. Екі карта міндетті түрде жылдамдатады деп те ойламаңыз: GPU уақытының көбін ұжымдық операцияны күтуге жұмсаса, қосымша есептеу қуаты пайдалы токенге айналмайды.

Жадты салмақтар файлына дәл келетіндей сатып алмаңыз. Алдымен рұқсат етілетін кванттау түрін, контекст ұзындығын, қатар орындалатын сұраулар санын және кідіріс шегін бекітіп, содан кейін VRAM көлемін тағайындаңыз. Екі картадағы жад таңдалған қозғалтқыш іске асыра алатын деңгейде ғана қосылады. Бір 48 ГБ карта бұл сыйымдылықты ешбір шартсыз береді.

FAQ

Инференс кезінде екі бейнекартаның жады қосыла ма?

Қозғалтқыш модель мен кэшті құрылғылар арасында бөле алса ғана жалпы сыйымдылық пайдаланылады. Физикалық тұрғыда бұл екі бөлек жад, сондықтан әр шард, буфер және операция өз картасына сыюы керек.

70B модель екі 24 ГБ GPU-ға сыя ма?

4 биттік форматта көптеген тығыз модель үшін бұл мүмкін, бірақ таза 35 ГБ салмаққа кванттау масштабтары, KV-кэш және уақытша буферлер кірмейді. Нақты чекпойнтты және әр рангтың жадын қажетті контекст ұзындығында тексеріңіз.

LLM үшін бір GPU жылдам ба, әлде екі GPU ма?

Модель сыйса, бір сұрау үшін бір карта әдетте тұрақтырақ кідіріс береді. Екі карта тәуелсіз реплика болып жұмыс істегенде немесе үлкен батч алмасу шығынын өтегенде жалпы өткізу қабілетін арттырады.

Екі бейнекартаға NVLink міндетті ме?

Міндетті емес, бірақ GPU арасында жиі алмасатын режимдерге жақсы көмектеседі. NVLink болмаса, P2P мен PCIe жолын тексеріп, модельде tensor parallel және pipeline parallel режимдерін салыстырыңыз.

Инференс үшін қанша VRAM бос қалуы керек?

Алғашқы есепте рантайм мен қысқа уақыттық шыңдарға 10-20 пайыз қалдырыңыз. Кейін бұл болжамды ең үлкен контекст пен мақсатты сұраулар саны кезіндегі өлшеммен ауыстырыңыз.

Жадты көбірек не жұмсайды, салмақтар ма әлде KV-кэш пе?

Бір қысқа сұрауда көбіне салмақтар басым. Ұзын контекст пен жоғары параллельдікте KV-кэш қалған орынды түгел алып, бір мезгілдегі сұраулар санын шектей алады.

Екі GPU-да device_map auto қолдануға бола ма?

Модельді іске қосып, тексеру үшін болады. Өндірісте кідірісті өлшеп, қабаттардың CPU немесе дискіге шығарылмағанын тексеріңіз, өйткені мұндай тасымалдау сыйымдылық мәселесін жылдамдық есебінен жасырады.

Екі 24 ГБ картаны қашан екі реплика ретінде қолданған дұрыс?

Толық модель мен қажетті кэш әр картаға еркін сыйғанда қолданыңыз. Репликалар генерация кезінде тензорлармен алмаспайды және ортақ кезектегі тәуелсіз сұрауларды тиімді өңдейді.

Екінші GPU-да бос жад тұрғанда OOM неге болады?

Қате берген операция жадты ортақ қордан емес, нақты бір құрылғыдан бөледі. Бірінші шард шамадан тыс жүктелсе немесе үлкен тұтас буфер сұраса, көрші картаның бос VRAM-ы оны автоматты түрде жаппайды.

LLM үшін GPU сатып аларда қандай көрсеткіштерді салыстыру керек?

Мақсатты кезекте бірінші токенге дейінгі уақыттың, келесі токен уақытының және жалпы өткізу қабілетінің p50 және p95 мәндерін салыстырыңыз. Әр картаның ең жоғары жадын, торап тұтынуын, троттлингті және ұзақ сынақ нәтижесін де қосыңыз.