Қанша видеокарта керегін нақты жүктеме анықтайды
200 қызметкерге арналған ЖИ-ассистентке қанша видеокарта керегін қатар сұрау, модель жады, KV-кеш және жауап уақыты арқылы есептейміз.

200 қызметкерге 200 видеокарта қажет емес. Кеңседегі көп жағдайда 48 ГБ жады бар екі серверлік видеокартадан бастаған орынды, бірақ жұмыс тапсырмаларында тексерілген 14B класындағы модель 4 биттік немесе 8 биттік форматта жұмыс істеуі керек. Мұндай бір карта пилотқа жетеді, ал екеуі жүктеме мен техникалық қызметке бөлек репликалар береді. Қажетті сапа үшін BF16 форматындағы 32B класындағы модель керек болса, есеп бір репликаға 80 ГБ-тан екі картаға, ал ақауға төзімді жұпқа төрт картаға дейін тез өседі.
Бұл кез келген сатып алуға жарайтын әмбебап сипаттама емес. Төрт көрсеткішсіз қызметкер саны жүктеме туралы ештеңе дерлік айтпайды: бір мезетте қанша сұрау түседі, модель қанша токен оқып жазады, нақты жинақ қанша жад алады және қолданушы қанша күте алады. Қымбат үдеткіш құжаттан іздеу нашар болғандықтан бос тұрған жобаларды да, модель жадқа сыйғанымен, кезек қарапайым сұрақтың жауабын бір минут күттірген жобаларды да көрдім. Паспорттағы жад көлемі де, параметр саны да жеке өзі карта санын анықтамайды.
Екі жүз есептік жазба екі жүз қатар сұрау туғызбайды
Берілген есептік жазбаларды емес, ең жоғары жүктеме кезіндегі жұмыс істеп тұрған тізбектер мен токен ағынын есептеу керек. Қызметкер ассистентті күніне екі рет ашуы мүмкін немесе шарт дайындағанда онымен ұзақ сөйлесуі мүмкін. Екі режимде де қолданушы саны бірдей, ал сервер жүктемесі мүлдем бөлек.
Алдымен бар пилоттың сұрау журналын қараңыз. Әр сұрау үшін түскен уақыт, кіріс токендер саны, шығыс токендер саны, алғашқы токенге дейінгі уақыт, толық генерация уақыты және аяқталу коды керек. Есеп үшін сұрау мәтінін сақтау міндетті емес. Пилот әлі болмаса, әр рөлді таныстыратын 15-20 адаммен жұмыс сессиясын өткізіп, сценарийлерді жазыңыз: ішкі құжаттан іздеу, хаттың нобайын дайындау, кестені талдау, хаттаманы қысқарту, қолдау қызметінің жауабын жазу. Он сөзден тұратын жасанды сөйлемдер әдемі тест береді, бірақ сатып алу шешімін бұзады.
Алғашқы жуықтау үшін Литтл формуласы қолайлы:
среднее число занятых запросов = запросов в секунду × среднее время обслуживания
Ең қарқынды бес минутта 200 қызметкердің 30-ы белсенді делік. Әрқайсысы орта есеппен 90 секундта бір сұрау жібереді, ал сервер жауапты 12 секунд жасайды. Орташа жұмыспен қамту 30 / 90 × 12 = 4 тізбек болады. Орташа мән кенет өсуді қамтымайды, сондықтан тестке қатар орындалатын сегіз тізбекті жоспарлап, бірнеше адам ұзын құжатты бір мезетте салған сәтті бөлек қайталар едім.
Тағы бір қолайсыз жайт бар: интерфейс қосымша шақыру жасай алады. Диалог атауын шығару, сұрауды жіктеу, іздеуге бейімдеп қайта жазу және негізгі жауап бір модельге төрт бөлек шақыруға айналуы мүмкін. Қолданушы бір рет басады, ал сервер төрт тапсырма көреді. Есептемес бұрын бір әрекеттің толық тізбегін сызып, қате болғаннан кейінгі қайталауды қоса барлық шақыруды санаңыз.
Жабдықты таңдамай тұрып сұрау профилін бекітіңіз
Модель сипаттамасындағы контекст терезесінің көлемі әдеттегі сұрау ұзындығына тең емес. Модель 32 мың токенді қолдауы мүмкін, бірақ әр диалогқа сонша жад сақтап немесе сонша мәтін жіберу қажет емес. Кеңсе ассистенті үшін төрт жұмыс профилін және олардың ең жоғары жүктемедегі үлесін анықтаған пайдалы.
Бірінші профиль - іздеуі бар қысқа сұрақ: жүйелік нұсқаулық пен табылған үзінділер қосылғаннан кейін шамамен 1 500 кіріс токені және 250-ге дейін шығыс токені. Екіншісі - құжатты қысқарту: кірісте 6 000-10 000 токен, шығыста 500 токен. Үшіншісі - тарихы біртіндеп өсетін ұзақ диалогтың жалғасы. Төртіншісі - бірнеше ережені салыстыру сияқты сирек ауыр сұрау. Бұл сандар ұйымыңызға арналған норма емес, өлшеу үлгісі.
Әр профиль үшін мынаны жазыңыз:
- кіріс токендерінің медианасы мен 95-процентилі;
- шығыс токендерінің медианасы мен 95-процентилі;
- ең қарқынды аралықтағы минутына сұрау саны;
- алғашқы токенге дейінгі рұқсат етілген уақыт;
- жауап басталғаннан кейінгі ең төмен шығару жылдамдығы.
Алғашқы токенге дейінгі уақыт пен толық жауап уақытын араластырмаңыз. Алғашқы сөздер екі секундтан кейін көрінсе, ұзын мәтіннің 20 секунд бойы жазылуы қалыпты сезіледі. Он секунд үнсіз тұрып, кейін бірден шыққан қысқа жауап нашар қабылданады. Мен әдетте бөлек мақсат қоямын: мысалы, алғашқы токенге дейінгі p95 үш секундтан аспасын, ал токендер арасындағы p95 кідіріс 80 миллисекундтан көп болмасын. Бұл нақты үдеткішке берілген уәде емес, қызмет деңгейі туралы келісімнің мысалы.
Диалог тарихын қысқарту кейде келесі картаға көшкеннен көп үнемдейді. Ассистентке бүкіл әңгіме әрдайым керек емес. Ескі репликаларды қысқаша мазмұндау, табылған үзінді санын шектеу және файлдарды бақылаусыз тіркеуге тыйым салу кіріс көлемін, KV-кешті және алдын ала өңдеу уақытын азайтады. Бірақ бәрін 2 000 токенге дейін жай ғана кесуге болмайды: заңдық және техникалық жауаптар негізін жоғалтады. Шекті нақты тапсырмалардағы сапа тексерісімен таңдаңыз.
Жадты салмақтар, KV-кеш және жұмыс қоры алады
Үдеткіш жадына әрең жүктелген модель қолданушыларға қызмет көрсетуге әлі дайын емес. Видеожадты салмақтар, белсенді тізбектердің KV-кеші, уақытша тензорлар, орындау графтары және инференс серверінің өзі бөліседі. Қорды жай сақтық үшін қалдырмайды: шарықтау операциясы немесе ұзағырақ пакет процесті жад жетіспеу қатесімен тоқтатуы мүмкін.
Салмақтарды жуықтап есептеу оңай:
память весов ≈ число параметров × бит на вес / 8
14B моделі үшін салмақтардың теориялық ең аз көлемі BF16 форматында шамамен 28 ГБ, 8 битте 14 ГБ және 4 битте 7 ГБ. Нақты файл мен алынған жад кванттау коэффициенттері, қызметтік деректер, жоғары дәлдікте қалған бөлек қабаттар және орындау ортасының буферлері салдарынан көбірек болады. 32B үшін қосымша шығынға дейін шамамен 64, 32 және 16 ГБ шығады. Сондықтан «INT4 форматындағы 32B моделі 24 ГБ-қа сыяды» деген сөз бір форматта рас, басқа форматта қате болуы мүмкін.
KV-кеш әр белсенді тізбекте өңделген токендердің назар кілттері мен мәндерін сақтайды. Қалыпты трансформер моделінде оны былай бағалауға болады:
KV на токен = 2 × слои × KV-головы × размер головы × байт на элемент
общий KV = KV на токен × активные токены всех последовательностей
Мұндағы 2 көбейткіші кілт пен мәнді білдіреді. Параметрлерді ұқсас модельден емес, дәл таңдалған модельдің config.json файлынан алыңыз. Мысалы, Qwen2.5-14B-Instruct конфигурациясында 48 қабат, 8 KV басы және 40 назар басына бөлінген 5120 жасырын өлшем көрсетілген. Бір бастың өлшемі 128 болады. BF16 кезінде бір токеннің кеші 2 × 48 × 8 × 128 × 2 = 196 608 байт, шамамен 0,1875 МиБ шығады. Әрқайсысында 4 000 токен бар сегіз тізбекке шамамен 5,9 ГиБ KV-кеш қажет. Qwen2.5-32B-Instruct моделінде басқа аталған өлшемдер сақталып, 64 қабат бар. Нәтижесінде бір токенге шамамен 0,25 МиБ, сол пакетке шамамен 7,8 ГиБ керек.
Бұл тексеріс кванттау туралы әңгімеде жиі жоғалатын айырманы көрсетеді. Квантталған салмақтар KV-кеш те дәл сондай ықшам болады деген кепіл бермейді. Салмақ форматына қарамастан, сервер кешті FP16, BF16 немесе қолдау бар FP8 форматында сақтауы мүмкін. Алдымен kv_cache_dtype мәнін және таңдалған үдеткіштің қолдауын анықтап, содан кейін есептеңіз. FP8 кешті азайта алады, бірақ оның сапа мен үйлесімділікке әсерін болжамай, тексеру керек.
vLLM құжаттамасы gpu_memory_utilization параметрін салмақтарға, активацияларға және KV-кешке қолданылатын жад үлесі деп нақты түсіндіреді. Сұраулар ығыстырыла бастаса, тізбек санын немесе пакеттегі токендерді азайтуды, не тензорлық параллельді көбейтіп жад қосуды ұсынады. Бұл жарнамалық үйлесімділік кестесінен пайдалырақ: сервер қанша кеш блогын құрғанын және ығыстыру басталғанын өзі хабарлайды. Қатесіз жүктелу тек процестің іске қосылғанын көрсетеді.
Модель көлемі сапаны да, топологияны да өзгертеді
7B, 14B немесе 32B моделін сатып алынған жадты толтыру үшін емес, жұмыс мысалдарындағы сапа бойынша таңдаңыз. Мұқият дайындалған білім қорынан факт іздегенде шағын модель нашар үзінді берілген үлкен модельден жақсы жауап беруі мүмкін. Күрделі редакциялау, көптілді құжат және ұзын нұсқаулықты орындау кезінде кластар айырмасы анық сезілуі мүмкін. Оны процесс иелері жазған өлшемдермен жауаптарды жасырын салыстыру арқылы бағалаңыз.
Іс жүзінде кластар былай көрінеді:
| Модель класы | Пилоттағы әдеттегі орналастыру | Алғашқы ықтимал шектеу |
|---|---|---|
| 7B-8B, 4 бит | 24 ГБ-тық 1 карта | күрделі жауап сапасы немесе токен ағыны |
| 14B, 4-8 бит | 24-48 ГБ-тық 1 карта | ұзын контекст және қатар жұмыс |
| 14B, BF16 | орташа кешпен 48 ГБ-тық 1 карта | жад қоры және сұраулар пакеті |
| 32B, 4 бит | жинақты тексергеннен кейін 48 ГБ-тық 1 карта | ұзын сұраудағы жылдамдық пен кеш |
| 32B, BF16 | қоры аз 80 ГБ-тық 1 карта немесе 2 карта | KV-кеш және ақауға төзімділік |
| 70B, 4 бит | әдетте 48 ГБ-тан 2 карта немесе одан көп | карталар арасындағы алмасу және реплика құны |
Кесте тексерісті алмастырмайды. NVIDIA NIM қолдау матрицасында H100 және A100 үшін 80 ГБ, L40S үшін 48 ГБ, A10G үшін 24 ГБ көрсетіп, тексерілмеген үйлесімдерді кепілдік емес, бағалау деп атайды. Бұл ескертумен келісемін. Жад көлемі бірдей болғанымен, карталардың жад өткізу қабілеті, төмен дәлдіктегі есебі, салқындатуы және тәулік бойы жұмыс істеу режимі бірдей болмайды.
Бір модельді екі картаға бөлу тензорлық параллельдік деп аталады. Ол салмақтарды сыйғызуға көмектесіп, қолжетімді кешті үлкейтеді, бірақ екі картаны сервистің екі тәуелсіз көшірмесіне айналдырмайды. Бір карта істен шықса, бүкіл реплика тоқтайды. Шағын модельдің екі бөлек репликасы жалпы өнімділікпен бірге бір түйінге қызмет көрсету мүмкіндігін береді, ал бір үлкен модельге арналған екі карта бір ғана қызмет нүктесін қалдырады. Бұл айырманы сызбада бекітпесеңіз, «екі» сөзі сатып алу тобын шатастырады.
Кванттау да тегін ұтыс емес. 4 биттік модель жадты үнемдеп, кейде жылдамырақ жауап береді, бірақ нақты әдіс сандардағы дәлдікті, пішімдеуді немесе нұсқаулықты орындауды нашарлатуы мүмкін. Өндірісте қолданылатын салмақ файлын, чат үлгісін және орындау ортасын бірге тексеріңіз. Бастапқы BF16 моделінің сынағы кездейсоқ 4 биттік жинақ туралы ештеңе дәлелдемейді.
Рұқсат етілген жауап уақыты токен ағынына айналады
Жадты тексергеннен кейін конфигурацияның ең жоғары ағынды өңдей алатынын дәлелдеу керек. Генерацияда екі бөлек жүктеме бар: көбіне prefill деп аталатын кірісті алдын ала өңдеу және жаңа токендерді бірінен соң бірін шығаратын decode. Ұзын құжат prefill кезеңін, ал қатар жазылып жатқан көп жауап decode кезеңін қатты жүктейді.
Орташа шығару қажетін былай есептеуге болады:
выходных токенов в секунду =
запросов в секунду × среднее число выходных токенов
Ең жоғары жүктемеде минутына 20 сұраудың әрқайсысы 250 токен қайтарса, орташа қажеттілік секундына шамамен 83 шығыс токені болады. Зертханада секундына 85 токен көрсеткен конфигурацияны сатып алуға болмайды. Сұраулар біркелкі түспейді, ұзын кірістер есеп ресурсына таласады, қызметтік шақырулар жұмыс қосады. Алғашқы тестте байқалған шарықтауды кемінде 1,5-ке көбейтіп, бөлек кенет өсуді тексеремін. Бұл мысалда стенд мақсаты кезек шектелмеген кездегі ең үлкен сан емес, кідіріс талабы орындалғанда секундына кемінде 125 токен болады.
Жалпы өнімділік пен бір жауаптың жылдамдығы бір-біріне әсер етеді. Үздіксіз пакеттейтін сервер жаңа сұрауларды жүріп жатқан жұмысқа қосып, жалпы ағынды өсіреді. Тым үлкен пакет жеке қолданушыны ұзақ күттіреді. TensorRT-LLM және vLLM тығыз қызмет көрсету үшін беттелген KV-кеш пен орындау кезіндегі сұрау пакеттеуін қолданады, дегенмен ең үлкен пакет параметрін кідіріс келісіміне сай өзіңіз баптайсыз.
Үдеткіш сипаттамасындағы tokens/s нәтижесін шарттарын білмей есепке көшірмеңіз. Модельді, дәлдікті, кіріс пен шығыс ұзындығын, қатар тізбек санын, сервер нұсқасын және карталарға бөлу тәсілін білу керек. Бір қысқа сұраудың нәтижесі интерактив жылдамдықты көрсетеді, бірақ сервис сыйымдылығын көрсетпейді. Жүздеген пакет сұраудың нәтижесі ағын шегін көрсетеді, бірақ алғашқы токенге дейінгі қолайсыз күтуді жасыруы мүмкін.
Дауыс немесе автотолтыруға қойылатын талап құжатпен чаттан қатаң. Дауыстық диалогтағы үзіліс бірден байқалады. Қысқаша мазмұн дайындағанда жауап кейін бірқалыпты шықса, қызметкер басталуын бірнеше секунд күте алады. Бір кластер екі режимге бірдей қызмет көрсетуге міндетті емес: бағыттау мен қысқа жауапқа шағын әрі жылдам модельдің бөлек репликасын беру арзанырақ болуы мүмкін.
200 қызметкерге арналған есеп бір сан емес, аралық береді
Ассистент ішкі құжаттан іздеп, нобай дайындайтын 200 қызметкері бар ұйымды алайық. Ең қарқынды бес минутта 30 адам белсенді. Жүйе минутына қолданушыға көрінетін 20 сұрау алады, ал іздеу сұрауын қайта жазуды есептегенде бір көрінетін сұрауға орта есеппен 1,2 модель шақыруы келеді. Барлығы минутына 24 шақыру немесе секундына 0,4 шақыру.
Өлшенген профильде бір шақыруға орта есеппен 2 500 кіріс токені, p95 кезінде 6 000 және 250 шығыс токені болсын. Белсенді генерацияның орташа уақыты 12 секунд. Литтл формуласы 0,4 × 12 = 4,8 қатар жұмыс істейтін тізбек береді. Стенд кенет өсу кезінде сегізді, ал артық жүктеме тексерісі он екіні көтеруі керек. Сегіз тізбекте және 3 000 токендік орташа контексте алдыңғы мысалдағы 14B модельге BF16 форматында шамамен 4,4 ГиБ KV-кеш керек.
Сапа бағасы тексерілген 4 биттік форматтағы 14B модельдің 100 бақылау тапсырмасының 92-сін орындағанын, қалған сегізі адамға берілуі керегін көрсетті делік. Бұл нарық статистикасы емес, қабылдау шегінің мысалы. Нақты форматтың қосымша деректерімен салмақтар шамамен 8-10 ГБ алуы мүмкін. 48 ГБ картада кешке, уақытша буферлерге және контекстің орташа өсуіне жеткілікті орын қалады. Бұл жерде негізгі қауіп жад емес, есептеу ағыны.
Қажетті орташа шығару 0,4 × 250 = 100 токен/с болады. 1,5 коэффициентімен тест мақсаты секундына 150 токенге тең, ал алғашқы токенге дейінгі p95 қабылданған шектен шықпауы керек. Бір карта аралас профильде осыны берсе, екі тәуелсіз картаны екі реплика етіп орналастырыңыз. Жүктеме теңгергіші сұрауларды бөледі, ал бір реплика екіншісіне қызмет көрсетілгенде төмендетілген режимде жұмыс істейді. Екі карта керек болады, бірақ қызметкер саны 200 болғандықтан емес.
Бір карта қажетті кідірісте секундына 95 токен ғана берсе, екі реплика жалпы сыйымдылықты қамтамасыз етуі мүмкін. Сонда ұзын сұраулардың біркелкі бөлінбеуін тексеріңіз. Екеуі де өтпесе, алдымен бағыттау, контекст ұзындығы және пакеттеуді зерттеңіз. Үшінші картаны кез келген қызыл графиктің емі деп емес, тар орын өлшенгеннен кейін сатып алады.
Енді модельді 32B BF16 нұсқасына ауыстырайық. Тек салмақтарға қосымша шығынға дейін шамамен 64 ГБ керек. 80 ГБ-тық бір карта жинақты жүктеуі мүмкін, бірақ 6-8 ГиБ кешке, буферге және шарықтауға қалатын қор аз болады. Тензорлық параллельдіктегі 80 ГБ-тан екі карта қоры бар жұмыс репликасын береді, ал өндірістегі мұндай екі репликаға төрт карта қажет. Сондықтан модель сапасы туралы шешім сервер сипаттамасынан бұрын қабылдануы керек.
Орынды бастау нүктесі қате бағасына байланысты
Кәдімгі ішкі көмекші үшін 48 ГБ-тан екі карта мен тексерілген квантталған форматтағы 14B модельден бастар едім. Бұл жұмыс істейтін ең шағын стенд емес, бірақ бір және екі репликаны салыстыруға, қызмет көрсетуді тоқтаусыз өткізуге және шарықтау туралы шынайы дерек алуға мүмкіндік береді. Пилот бюджеті шектеулі болса, 48 ГБ-тық бір карта жарайды, бірақ оны дайын өндірістік сызба деп көрсетуге болмайды.
Қысқа жауап беретін анықтамалық ассистентке әр репликаға бірден 24 ГБ-тық екі карта жетуі мүмкін, егер 7B-8B модель сапа тексерісінен өтіп, әр карта шарықтаудың жартысын көтерсе. 32B күрделі құжат талдауында расталған артықшылық берсе, екі басқа бастау жолын қараңыз: тексерілген 4 биттік модельмен 48 ГБ-тан екі тәуелсіз реплика немесе әрқайсысы екі карта қолданатын екі BF16 репликасына 80 ГБ-тан төрт карта. Бір картаның бағасын емес, толық сервистің құнын салыстырыңыз.
«Қоры болсын» деп ең қуатты бір үдеткіш сатып алу туралы кеңес жиі айтылады. Ол сатып алу кестесіне ыңғайлы, бірақ пайдалануға қолайсыз. Драйверді, модельді немесе микробағдарламаны жаңарту үшін серверді бәрібір тоқтатасыз. Бүкіл қор бір репликада болса, жоспарлы қызмет көрсету толық тоқтауға тең. Таңдалған модель сыйып, сапа мақсатын орындаса, екі шағын тәуелсіз реплика бір үлкен репликадан жиі пайдалырақ.
Кері шектен шығу - әр белсенді қолданушыға бір үдеткіш беру. Қазіргі инференс сервері тізбектерді пакеттейді, сондықтан бір карта бірнеше диалогқа қызмет көрсетеді. Бір қолданушыға жеке карта оқшаулау немесе ерекше ауыр тапсырма үшін керек болуы мүмкін, бірақ қарапайым мәтіндік чатқа қажет емес. Бөлімдерді әр есептік жазбаға физикалық карта беріп емес, кезек, лимит және бөлек пул арқылы оқшаулаған дұрыс.
Қате жауаптың бағасы жоғары болса, есептеу қоры бақылауды алмастырмайды. Медицинада, қаржыда немесе кадр жұмысында қолданылатын ассистент дереккөзді көрсетіп, әрекеттерді шектеп, күмәнді жағдайды маманға беруі керек. Үлкен модель сенімді көрінетін қате жасай алады. Эмбеддинг моделі, қайта ранжирлеу, құжат тану және бақылау құралдары сол үдеткіштерде жұмыс істесе, олардың жүктемесін де жабдық есебіне қосыңыз.
Стенд бір әдемі сұрауды емес, кезекті қайталауы керек
Стендті өндірісте жоспарланған драйвер нұсқасымен, инференс серверімен, модель файлымен және чат үлгісімен іске қосыңыз. Осы элементтердің біреуін ауыстыру нәтиже өзгертеді. Жұмыс станциясындағы сынақ танысуға пайдалы, бірақ салқындатуы, қуат шегі және карталар байланысы басқа серверді дәлелдемейді.
Ең аз сынақ жоспары бес жүгірістен тұрады:
- Бір қысқа сұрау ең жақсы интерактив жылдамдықты өлшеп, үлгі қателерін табады.
- Есептелген тұрақты жүктемені 30 минут беру тұрақты ағын мен қызуды көрсетеді.
- Қысқа және ұзын кірістердің аралас жинағы кеңсе профилін қайталайды.
- Екі есе кенет өсу кезекті, тайм-аутты және шарықтаудан кейін қалпына келуді тексереді.
- Бір репликаны өшіру қалған жүйенің сұрауды шынымен қабылдайтынын көрсетеді.
Әр жүгірісте алғашқы токенге дейінгі уақыттың, токендер арасындағы кідірістің және толық уақыттың p50, p95 және p99 мәндерін жинаңыз. Кезек ұзындығы, қате үлесі, KV-кеш ығыстырулары, алынған видеожад, қуат және троттлинг те керек. Орташа уақыт сирек іркілісті жасырады, ал қызметкерлер оны жылдам жауаптан жақсы есте сақтайды.
Жүктеме генераторы бір мәтінді қайта-қайта жібермей, ұзындық үлестірімін қайталауы керек. Токенге бөлінген кіріс көлемдері мен күтілетін жауап ұзындықтарының жасырындандырылған жинағын дайындаңыз. Құпиялық сұрауды стендке шығаруға тыйым салса, мәтінді дәл сондай көлемдегі қауіпсіз мысалмен ауыстыруға болады. Жеткізуші мен өз тобыңыз бір тестті қайталауы үшін кездейсоқ тұқым мен іске қосу конфигурациясын сақтаңыз.
Қабылдау өлшемін жүгіріске дейін жазыңыз. Мысалы: аралас профильде минутына 24 шақыру түскенде алғашқы токеннің p95 уақыты үш секундтан аспайды, p95 шығару жылдамдығы секундына кемінде 12,5 токен, қателер келісілген шектен төмен, ал бір реплика өшкенде сервис алдын ала сипатталған төмендетілген режимде қолжетімді қалады. Мұндай өлшем болмаса, кез келген графикті жақсы деуге болады.
Тек ең жоғары ағынды оңтайландырмаңыз. Сервер секундына 250 токен бергенімен, бір ұзын сұрау қысқаларын 15 секунд бөгесе, қызметкерлер батырманы қайта басып, жүктемені өсіреді. Пакеттегі токен санын шектеу, қысқа сұрауға басымдық беру немесе құжатқа бөлек кезек ашу ең жоғары саны төмен болса да жақсырақ қызмет береді.
Өндірістік конфигурация GPU санынан кең
Үдеткіштер модель сақтайтын баяу қойманы, жедел жадтың жетіспеуін, әлсіз желіні немесе резервсіз электр қуатын түземейді. Сервер салмақтарды жүктеп, қайта іске қосылудан өтіп, тұрақты жүктемеде жылуды шығаруы керек. RAM көлемін, жергілікті жинақтауыш жылдамдығын, PCIe желілерін, карта мен корпустың үйлесімін, қуат блоктарының мүмкіндігін және сөредегі нақты жылу режимін тексеріңіз.
Екі репликаға процестің іске қосылғанын ғана емес, дайын екенін тексеретін жүктеме теңгергіші қажет. Реплика желілік портқа жауап беріп, бірақ моделі әлі жүктелмеген болуы мүмкін. Жаңартқанда алдымен жаңа репликаны көтеріп, бақылау сұрауымен қыздырыңыз, пулға қосыңыз, содан кейін ғана ескісін шығарыңыз. Бұл тәртіпке уақытша бос сыйымдылық керек.
Қолданушы лимиті мен есептеу лимитін бөліңіз. Қолданушы лимиті жүздеген сұрау жіберген қате скрипттен қорғайды. Сервер жоспарлаушысы белсенді тізбек пен пакеттегі токен санын шектейді. Кезектің шекті көлемі және артық жүктемеде түсінікті жауабы болуы керек. Шексіз кезек жұмысты сақтамайды, ол ақауды бір минутқа кейін жылжытады.
Бақылау деректерін қолданушы сұрауымен байланыстырыңыз. Инженер уақыттың қайда кеткенін көруі үшін бір идентификатор іздеу, қайта ранжирлеу, генерация және сүзгілер арқылы өтуі керек. Саясатқа сай мазмұнды жасыруға немесе хештеуге болады, бірақ жоспарлауға көлем, ұзақтық және мәртебе қажет. Бір айдан кейін нақты үлестірім бастапқы болжамның орнын басып, карта есебін дәлірек етеді.
Инфрақұрылым Қазақстанда жергілікті өндіріс, қолдау және жеткізу ашықтығы талаптарымен сатып алынса, GSE.kz өлшенген профильге сай серверлік және интеграциялық бөлікті, соның ішінде ЖИ мен деректер орталығы инфрақұрылымын жинай алады. Үдеткіштің нақты моделін және карта санын қайталанатын стенд бәрібір растауы керек: жүйелік интегратор кезек физикасын өзгерте алмайды.
Сатып алу шешімі бір есеп парағына сыяды
Соңғы парақ бизнес жүктемесін сипаттаманың әр жолымен байланыстыруы керек. Онда қызметкер саны, шарықтаудағы белсенді қолданушылар, бір әрекетке модель шақырулары, кіріс пен шығыс токендерінің процентильдері, таңдалған модель мен дәлдік, салмақ көлемі, бір токенге KV, мақсатты қатар жұмыс, қажетті ағын, бір карта нәтижесі және ақауға төзімділік сызбасы болсын.
Есептеу тәртібі мынадай:
1. вызовы/с = активные пользователи × действий/с × вызовов на действие
2. занятые последовательности = вызовы/с × длительность генерации
3. требуемый decode = вызовы/с × выходные токены
4. память = веса + KV активных токенов + измеренные буферы + запас
5. карты на реплику = максимум требования по памяти и теста производительности
6. всего карт = карты на реплику × число независимых реплик
5-жол теориялық шарықтау өнімділігінен шықпайды. Оған стенд нәтижесін жазыңыз. 6-жол рұқсат етілетін тоқтауға байланысты: пилот үшін көбейткіш бірге тең болуы мүмкін, ал жұмыс сервисіне әдетте кемінде екі тәуелсіз реплика керек. Модель екі картаға жайылса, репликалар жұбы төрт карта береді.
Келтірілген профильде жауап қарапайым: 48 ГБ-тық бір карта 14B модельдің жұмысын дәлелдейді, ал әр реплика аралас тесттен өтсе, 48 ГБ-тан екі карта өндірістік орынды бастау болады. 32B BF16 үшін орынды бастау 80 ГБ-тан төрт карта болуы мүмкін, себебі бір реплика екеуін алады. Осы нүктелердің арасында 4 биттік 32B, басқа кластағы карталар және екі модельді бағыттау нұсқалары бар.
Үш артефакт қолыңызға тимей сипаттаманы бекітпеңіз: сапаның бақылау жинағы, жүктеме профилінің журналы және қайталанатын стенд есебі. Оларсыз видеокарта саны пікір болып қалады. Олар болса, сатып алуды бір кесте түсіндіреді, ал бір ай жұмыс істегеннен кейін оны нақты дерекпен қайта есептейсіз.
FAQ
200 адам қолданатын ЖИ-ассистентке бір видеокарта жете ме?
Таңдалған модель жадқа сыйып, жүктеме тестінен өтсе, пилотқа бір карта жиі жетеді. Жұмыс сервисінде бір карта жаңарту немесе ақау кезінде толық тоқтау туғызады, сондықтан әдетте екі тәуелсіз реплика керек.
Неге GPU санын тек қызметкер саны бойынша есептеуге болмайды?
Қызметкерлер ассистентке әртүрлі жиілікпен кіріп, ұзындығы әртүрлі сұрау жібереді. Есепті секундтағы шақыру, белсенді тізбек, токен және рұқсат етілген кідіріс анықтайды, ал есептік жазба саны аудиторияның жоғарғы шегін ғана береді.
14B моделіне қанша видеожад қажет?
Теория бойынша салмақтар BF16 форматында шамамен 28 ГБ, 8 битте 14 ГБ және 4 битте 7 ГБ алады. Форматтың қосымша деректерін, KV-кешті, уақытша буферлерді және қорды қосыңыз, сондықтан картаны нақты жинақты өлшеп таңдаңыз.
32B моделі 48 ГБ картаға сыя ма?
Тексерілген 4 биттік жинақ әдетте сыя алады, ал BF16 тек салмақтың өзіне шамамен 64 ГБ сұрайды. Модель жүктелген күннің өзінде KV-кешке қалған орынды және қатар сұраулардағы жылдамдықты тексеру керек.
KV-кешке қолданушы саны ма, әлде контекст ұзындығы ма көбірек әсер етеді?
Белсенді тізбек саны мен әр тізбектегі токен санының көбейтіндісі әсер етеді. Тіркелген 200 қолданушы сұрау жібермейінше кеш алмайды, ал бірнеше өте ұзын диалог бірнеше гигабайт алуы мүмкін.
Кванттау видеокарта санын азайта ала ма?
Кванттау салмақ жадын едәуір азайтып, екі карта қажет модельді бір картада ұстауға мүмкіндік беруі мүмкін. Ол KV-кешті дәл сондай азайтуға кепілдік бермейді және сапаны өзгертуі мүмкін, сондықтан нақты модель файлын тексеріңіз.
LLM жүктеме тестінде қандай көрсеткіштерді қарау керек?
Алғашқы токенге дейінгі уақыттың, токендер арасындағы кідірістің және толық уақыттың p50, p95, p99 мәндерін, сонымен бірге кезек, қате, кеш ығыстыруы және видеожадты қараңыз. Кідіріс шегі жоқ ең жоғары ағын кеңсе чаты үшін аз нәрсе дәлелдейді.
Бір қуатты карта жақсы ма, әлде екі шағын карта ма?
Модель шағын картаға сыйып, әр реплика шарықтаудағы өз үлесін көтерсе, екі карта толық тоқтаусыз қызмет көрсетуге мүмкіндік береді. Модель немесе қажетті кеш шағын картаға физикалық сыймаса, бір үлкен карта қажет.
Эмбеддинг пен іздеуге бөлек видеокарта керек пе?
Әрдайым емес: шағын эмбеддинг моделі CPU-да жұмыс істеуі немесе өлшеуден кейін үдеткішті бөлісуі мүмкін. Құжат тану, қайта ранжирлеу және генерация шарықтауда бір картаға таласса, оларды бөлек пулдарға бөлген дұрыс.
Тағы бір видеокарта қосатын уақытты қалай білеміз?
Нақты p95 мақсаттан шықса, тұрақты шарықтауда кезек өссе және контекст пен пакеттеу баптауы тексерілсе, сыйымдылық қосыңыз. Кідіріс, қате және ақау қоры мақсат шегінде болса, GPU жүктемесінің жоғары болуы жеке өзі мәселе емес.