Продакшендегі LLM мониторингі: метрикалар мен алерттер сюрпризсіз
LLM-ды продакшнде бақылау: кезектер, токендер, қателер және сапа үшін қандай метрикалар жинау керек және пайдаланушылардан бұрын ақауды қалай хабарлау үшін алерттерді қалай баптау қажет.

LLM-ды продакшнде пайдаланғанда шағымдардан бұрын қандай мәселелерді ұстап алу маңызды
LLM продакшнде сыртынан қарағанда кәдімгі API секілді, бірақ ішінде үш ерекшелік бар: шығындар токендерге байланысты, жауаптар әрқашан болжамды емес және сапа мен қолжетімділік жиі сыртқы провайдерден және оның лимиттерінен тәуелді. Сондықтан мониторинг тек «қызмет жұмыс істеп тұр ма?» деген сұраққа жауап бермей, бірден бірнеше нәрсені көрсетуі тиіс: жүйе нашарлауда ма, қымбаттады ма, әлде қауіпті жағдай бар ма.
Пайдаланушылардың шағымдары әдетте кеш келеді. Бастапқыда кезек өседі, кейін кешігу көбейеді, кейін таймауттар пайда болады, және тек содан соң адам қолдауға жазады: "бот ілініп қалды". Сапада да осындай сценарий: модель баяу жүреді, фактілерді шатастырады немесе тым жалпылама жауап береді — бұл жиі ондаған диалогтан кейін көрінеді.
Бастапқыда «жұмыс істейді» дегеннің не екенін алдын ала келісіп алу пайдалы. Әдетте бұл бірнеше критерийдің комбинациясы: жылдамдық (ауыр жүктеме кезінде жауаптар уақытында келеді), тұрақтылық (қателер мен үзілімдер spike-терсіз), сапа (жауап тапсырманы шешеді, тек сенімді көрінбейді), шығын (токендер мен шығындар болжамды) және қауіпсіздік (журналдарда жеке мәліметтер мен қауіпті инъекциялар жоқ).
Тағы бір жиі кездесетін тосындық: проблема сізде болмауы мүмкін. Провайдер модельді өзгертеді, жаңа лимиттер енгізеді, желі бөлігінде жоғалулар артады — және сізде релизсіз деградация пайда болады.
Шағымдардан бұрын ұстап алу үшін рөлдер мен реакцияларды алдын ала бөлген дұрыс. Өнім командасы сапа мен конверсияға жауапты. Қолдау қызметі қайталанатын сұраныстар мен «түсініксіз» диалогтарды көреді. Қауіпсіздік жеке деректер мен промпт-инъекцияларды бақылайды. Инфрақұрылым кезектер, кешігулер мен қателер үшін жауап береді. Үлкен ұйымдарда (банк немесе мемлекеттік орган сияқты) дәл осы рөлдердің үйлесімділігі алерттердің пайдалы болуын қамтамасыз етеді, шудан гөрі.
Сигнал картасы: не өлшеу және қалай деректерді байланыстыру
Мониторинг өздігінен шашыраңқы графиктер жиынынан айналмасын десеңіз, бақыланатындықты қабаттарға бөліңіз. Әр мәселенің ізі бірнеше жерде көрінеді: темір мен желі кешігулерді береді, қосымша — қателер мен таймауттарды, модель — күтпеген мәтін мен токендердің өсуін, ал бизнес — конверсияның төмендеуі немесе қолдауға сұраныстың өсуі.
Осы іздерді байланыстырудың кілті — бірегей request_id. Ол кіріс деңгейінде (фронт, API-шлюз, бот-платформа) пайда болып, модельден жауапқа дейін өтуі керек. Сонда бір сұрауды қолданып, ол кезекте болды ма, провайдерге қанша уақыт кеткенін, қай модель жауап бергенін және нақты не қайтарылғанын тез анықтайсыз.
Әр сұрау үшін кем дегенде мына ақпаратты тіркеу керек: request_id және уақыт белгілері (кіріс, LLM-шақырудың басталуы/аяқталуы, шығу), session_id және канал (веб, мессенджер, ішкі жүйе), модель/нұсқа және параметрлер (temperature, max_tokens, құралдар), нәтиже (сәтті/қате, себеп, ретрайлер, жауаптың қиылғаны). Промпт пен жауаптың мәтіндері де пайдалы, бірақ оларды жеке деректерден маскировка жасай отырып сақтаңыз.
Осы деректерді әдетте үш жерде сақтау ыңғайлы: метрикалар — сандар мен алерттер үшін (латенттілік, қателер, токендер), логтар — егжей-тегжейлер үшін (мәтіндер, себептер, контекст), трассировкалар — шақыру тізбегі үшін (фронт -> бэкенд -> LLM -> сыртқы сервистер). Барлығында бір request_id болуы маңызды.
Простой мысал: пайдаланушылар «бот әлсіздеді» деп шағымданады. request_id арқылы сіз сапа модельден нашарламағанын, мәселе таймауттарда екенін көре аласыз: жауаптардың бір бөлігі қиылуда, себебі кезек өскен және қосымша уақыт шегінде max_tokens-ті қысқартады.
Кезектер және кешігулер: шамадан тыс жүктелуді көрсететін метрикалар
Шамадан тыс жүктелу әдетте бірдей көрінеді: жауаптардың баяулауы, таймауттар және «ауыспалы» жауап уақыттары. Шағымдарды күткенше өрт сөндіру емес. Сондықтан бірінші кезекте кезек пен кешігулер метрикаларын ұстаңыз — олар жүйенің үлгермейтінін ертерек көрсетеді.
Кезіден бастаңыз: ұзындығы, орташа және p95 күту уақыты, өңдеу жылдамдығы (секундына қанша сұрау шын мәнінде өңделеді). Тек «қай уақытта күту» емес, «неге» екенін де қараңыз: кезек трафиктің шарықтауынан, модельдің өткізу қабілетінің төмендеуінен немесе провайдердің шектеулерінен өседі.
Түзу тармақты жылдам табу үшін латенттілікті кезеңдерге бөліп, әр кезең үшін p50/p95/p99 есептеңіз: pre-processing (валидация, контекст дайындау, RAG), модель шақыруы (жауапқа дейінгі уақыт және генерация уақыты), post-processing (фильтрлер, форматтау, дерекқорға жазу), желілік кешігулер. Таймауттар мен ретрайлерді бөлек оқиға ретінде қарастырған дұрыс.
Егер инфрақұрылым өзіңізде (мысалы, on-prem), concurrency және ресурстарды пайдалану қосыңыз: CPU/GPU, жад, диск, желі. Жиі кездесетін сценарий: p50 қалыпты, ал p99 өсіп барады — себебі GPU жадқа тіреліп, сұраулардың бір бөлігі «қорда» қалып қалады.
Провайдердің лимиттерін ұмытпаңыз: rate limit, throttling, квота қалдығы. Оларды бөлек қате ретінде санау жақсы, әйтпесе олар «жәй ғана кездейсоқ таймауттар» сияқты көрінеді.
Стриминг үшін бөлек сигналдар керек: бірінші токенге дейінгі уақыт және секундтағы токендер жылдамдығы. Қолданушы әдетте бірінші токен тез келсе және ағын біркелкі жүрсе күтуге дайын болады.
Токендер және шығындар: шығындардың өсуін қалай жіберіп алмасқа
Егер сервис тұрақты болса да шот өсіп жатса, себеп көбінесе токендерде көрінеді. Сондықтан мониторинг тек «қанша сұрау» емес, «қай мәтінді модельге төсегеніңізді» де көрсетуі тиіс — пайдаланушылар, сценарийлер және уақыт бойынша.
Токендер бойынша қандай метрикалар жиналу керек
Әр сұрау үшін input_tokens, output_tokens және tokens_per_request тіркелсін. Содан кейін таратылымдарға қараңыз: медиана, 90-шы және 99-шы перцентильдер. Орташа көрсеткіш жиі алдайды: шығындардың өсуін әдетте сирек, бірақ өте ұзын сұраулар береді.
Пайдалы қиыстырулар: сценарийлер (қолдау, құжаттар бойынша іздеу, хат генерациясы), пайдаланушылар типтері (ішкі қызметкерлер, сыртқы клиенттер), контекст көзі (чат тарихы, құжаттар, жүйелік промпт), модель/нұсқа (ауыстырғаннан кейін жауап ұзақтығы жиі өзгереді).
Келесі деңгей — ақша. Егер тарификация токендерге байланысты болса, әр сұрауға арналған болжамды шығынды (estimated cost) және сценарий бойынша сағат/күн бойынша жиынтық шығынды есептеңіз. Осылай 10% трафиктің 60% бюджетті «жеп жатқанын» тез көру мүмкін.
Токендерді көбейтетін нәрселер
Ең көп себеп — ұзын контекст және чат тарихының өсіп кетуі. Токендердің өсуінің себебін бөлек өлшеп отырыңыз: апталық 90-шы перцентильден асатын ұзын промпттар үлесі және себептері: көп құжат қосылды ма, логтар түгел жіберілуде ме, немесе тарихты қысқарту іске аспай ма.
Қанша сұрау max_context-ке тиіп тұрғанын (немесе оған жақын) есептеңіз. Бұл да шығын мен сапа мәселесі: модель пайдалы контексттің бір бөлігін жоғалтады немесе сіз мәліметтерді соқыр кесуге мәжбүр боласыз.
Кэштеу (жауаптардың, эмбеддингтердің, алынған құжаттардың) болса, cache hit rate және «сақталған токендердің» шамасын көрсетіңіз. Қолдау чатында қайталанатын сұрақтар тез үнем әкеледі: бірдей сұраныстарда tokens_per_request төмендейді, трафик саны өзгермей тұрса да.
Қателер және сенімділік: не логтау және не санау қажет
LLM-сервисінің сенімділігі дашбордтан емес, лог тәртібінен басталады. Негізгі сұраққа жауап бере алу маңызды: нақты не істен шықты — модель ме, сіздің кодыңыз ба, әлде тәуелділік па.
Қателерді екі топқа бөліп жинаңыз: провайдер жауаптары (мысалы, 4xx және 5xx) және қосымша қателері (кіріспені валидациялау, парсинг сәтсіздігі, промпт құрау қатесі). Таймауттарды бөлек есептеңіз — олар жиі «түсініксіз» құлдырау сияқты көрінеді, бірақ негізінде шамадан тыс жүктелу немесе ілініп қалған тәуелділік болады.
Әр сұрау үшін пайдалы минимум: request_id, user_id/tenant (бар болса), сценарий (чат, іздеу, суммаризация), нәтиже коды (ok, provider_4xx, provider_5xx, timeout, app_error), стриминг статусы (completed/aborted/partial), ретрайлер саны және қайталану себебі, шақырылған тәуелділіктер (іздеу, вектор базасы, құжат сақтау, авторизация) және олардың статустары.
Ретрайлерді бөлек метрика ретінде қарастырыңыз, оларды «қайталанып, бәрі дұрыс болды» деп санамаңыз. Қайталанған сұраулар үлесін, орташа ретрайлер санын және кешігуге қосқан қосындысын бақылаңыз — ретрайлердің өсуі жиі 5xx-терден бұрын көрінеді.
Тыныш ақаулар бар: бос жауаптар, стримнің ортасында үзілуі, финалдық бөлігі жоқ жартылай жауаптар. Оларды тек HTTP-кодтарға қарап өткізіп жіберуге болады. Сондықтан empty_output және stream_aborted есептегіштерін қосыңыз.
Егер circuit breaker және fallback (мысалы, RAG-сыз, ықшамдалған промптпен немесе резерв провайдермен) қолдансаңыз, қай сұраулар резервтік режимге өткенін есептеңіз. Осы арқылы тәуелділіктің деградациясын шағымдарға дейін байқауға болады: векторлық іздеу таймаут бере бастады — жүйе жиі fallback қосады, пайдаланушылар жалпы жауап алады.
Жауап сапасы: күрделі ғылымсыз метрикалар
Сапаны өлшеуді «ақылдылықтан» бастамай, түсінікті нәтижелерден бастаңыз. Жауап түрлері бойынша есептегіштер қосыңыз: сәтті (помог және тапсырманы шешті), бас тарту (модель жауап бермеді немесе саясатқа сілтеді), ескерту (жауап түсініксіз, толық емес немесе қосымша ақпарат сұрайды). Бұл пайдаланушылар қай жерде тасымалданатынын көрсетеді.
Одан кейін логтардан оңай есептелетін автоматты сигналдарды қосыңыз, олар жиі мәселелермен корреляцияланады: жауап ұзындығы (өте қысқа немесе керісінше «қабырға»), қайталанушылық (циклдар, бірдей фразалар), форматтың сақталмауы (3 қадам немесе JSON сұралды, қарапайым мәтін келіп жатыр), тіл сәйкессіздігі (пайдаланушы қазақша/орысша сұраса, модель кенеттен басқа тілде жауап береді), токсичность және дөрекілік.
Бизнес сигналдарын да қараңыз. ІШКІ IT көмекшісі үшін қауіпті көрсеткіштер: бір сағат ішінде бір сұрауға қайта-қайта сұрау, қолдауға эскалациялардың көбеюі, операция басталып, бірақ қолданушының оны жалғастырмауы, сессия ішінде шешілген сұрақтар үлесінің төмендеуі.
Автоматика адамды алмастырмайды, сондықтан таңдаулы аудит қажет. Аптасына 20–50 диалог таңдап, 3–5 қарапайым критерий бойынша бағалаңыз: «маңыздыны жауаптады», «фактілерді ойдан шығармады», «алдағы әрекетті көрсетті», «тон қалыпты». Критерийлер барлық тексерушілерде бірдей болуы тиіс.
Жаңартулардан кейін регрессияларды байқау үшін шағын тесттік жиынтық (golden set) сақтаңыз. Оны тұрақты түрде іске қосып, сол критерийлер мен автоматты сигналдар бойынша базалық нұсқамен салыстырыңыз.
Деградациялар мен дрейф: нашарлауды уақтылы қалай байқау
LLM-дегі деградация көбіне «бәрі істен шықты» сияқты болмайды. Көбінесе бұл қателердің баяу өсуі, пайдалы жауаптардың төмендеуі немесе галлюцинациялардың көбеюі. Осы кезде латенттілік пен қателер графиктері жасыл болып қала береді, бірақ пайдаланушылар қанағаттанбайды. Сондықтан мониторингке сапа сигналдары мен кіріс деректер өзгерістерін қосу керек.
Дрейфты не деп санауға және оны қалай өлшеуге
«Бүгін»-ді жақсы жұмыс істеген базалық аптамен салыстырыңыз. Дрейф сұраулардың қалай өзгергенінен көрінеді: тақырыптар мен ниеттер (сатып алу, техникалық қолдау, қауіпсіздік), тілдер мен аралас тіл үлесі, промпт пен жауап ұзындығы, күрделі жағдайлардың үлесі (файлдар, кестелер, арнайы терминология), ережелерді айналып өтуға бағытталған сұраулар мен сезімтал тақырыптар.
Күрделі кейстердің үлесі өссе, модель өзгермесе де сапа төмендеуі мүмкін. Бұл қалыпты, бірақ бұл жағдайда басқа режим қосу керек: көбірек контекст, басқа промпт немесе адамға маршрутизация.
Канарейкалық релиздер және нұсқаларды салыстыру
Кез келген өзгеріс (жаңа модель нұсқасы, промпттың түзетілімі, жаңа контент көзі, жаңа аудитория) канарейкамен шығарылуы керек: бірінші 1–5% трафик жаңа нұсқаға, сосын кеңейту.
Алерттерді «жаңа нұсқа ескіге қарағанда нашар» деп құру ыңғайлы — 30–60 минуттық терезеде. Мысалы: бас тартулар (policy/refusal) X% өсті, пайдаланушылардың төмен баға беру үлесі X пунктке артты, модель базаға сәйкес келмей «ойдан қоса бастаған» жауаптар үлесі өсті, қауіпсіздік инциденттері (PII, сезімтал деректер, алдау әрекеттері) көбейді.
Мысал: ішкі қолдау чатботының промптын өзгерткеннен кейін «ережеден шығын жасау» сұрауларының үлесі өсіп, пайдалы жауаптар азайды. Бұл «температураны азайту» емес — бұл инструкцияларды әлсірету немесе тонды өзгерту мәселені туғызғанын тексеруді қажет етеді.
Мониторингті кезең-кезеңімен баптау: нөлден сапа бақылауына дейін
Мониторинг шын мәнінде көмектесуі үшін графиктен емес, командамен келісілген қарапайым ережіден бастаңыз: норма не және қашан дежурный шақырылады.
1) "Бәрін" емес, нақты SLO орнатыңыз
Пайдаланушы тәжірибесін көрсететін 2–3 көрсеткіш таңдаңыз. Мысалы: p95 жауап уақыты, қателер/таймауттар үлесі және бір сапа көрсеткіші (кемінде «оператордың түзетусіз қабылдау» немесе оператор бағасы).
Сосын қабат-қабат қосыңыз:
- Сұраудың жолын толық сипаттап, кезеңдерге таймингті қойыңыз: кезек, препроцессинг, модель шақыру, постобработка, дерекқорға жазу.
- Логтарды бір форматқа келтіріңіз: модель атауы, промпт нұсқасы, параметрлер (temperature, max_tokens), кіріс пен шығыс токендер, статус, қате себебі.
- Әр сценарийге арналған дашбордтар жасаңыз, жалпы емес: чат қолдау, құжаттар бойынша іздеу (RAG), есептер генерациясы.
- Тесттік жиынтықты үнемі жүргізіп, сапа бойынша қысқа есеп шығаруды қосыңыз (кемінде күніне бір рет).
- Әр метриканы әрекетке байлаңыз: шекті асқанда дежурный не істейді.
2) Сапаны күрделі ғылымсыз өлшеуді мүмкін етіңіз
Қарапайым тәсіл: бірдей 50–200 типтік сұрау және күтілетін жауап белгілері (керекті құжат тауып беру, фактілерді ойдан шығармау, формат сақтау). Егер тек бір сценарий «бұзылса», жиі нақты себепті көрсетеді: жаңа промпт, индекс өзгерісі, модель ауысуы.
Мысал: пайдаланушылар «ұзын жауаптар» деп шағымдана бастады. Егер сізде кезеңдер және токендер логында болса, өсудің қай жерде екенін тез көресіз: кезекте уақыт өсті ме немесе модель 30% көп токен шығарды ма. Бұл әртүрлі шешімдерді талап етеді: worker-ларды масштабтау немесе max_tokens-ті шектеу және промптты түзету.
Іс жүзінде жұмыс істейтін алерттер: шектер, терезелер және нақты әрекеттер
Жақсы алерт екі сұраққа жауап береді: не бұзылды және кейін не істеу керек. Егер пейджерден кейін жарты сағат тергеуге кететін болса, алерт еленбейді немесе команда қажып кетеді.
Алерттерді үш топқа бөлу ыңғайлы. Біріншілері симптомдарды ұстайды — пайдаланушыға көрінетін нәрселер: p95 кешігулер, кезек өсімі, 5xx spike, ретрайлердің өсуі. Екіншілері әлі көрінбейтін себептерді ұстайды: провайдердегі rate limit, квотаға жақындау немесе тәуелділіктердің деградациясы (векторлық сақтау, дерекқор, желі). Үшіншілері сапаға қарайды: golden set-тегі төмендеу, бас тартулардың көбеюі, операторға эскалациялардың көбеюі.
Алерттерді шудан сақтаудың тәсілі — тек шек қою емес, терезе орнату. Мысалы, «p95 > 4 сек 10 минут» көбіне «p95 > 4 сек 1 минут»-тан жақсы. Қосымша екі қадамды ережелер де көмектеседі: жұмсақ шектеу — ескерту, қатты шектеу — критикалық; дедупликация да бір инциденттен көп хабарлама тудырмауға көмектеседі.
Мысал: қолдау чатботында кезек өсіп, p95 көтеріле бастады. Бірінші алерт (симптом) «шамадан тыс жүктеу» дейді, екіншісі (себеп) «рұқсаттар шегіне жеттік» көрсетеді, үшіншісі (сапа) әлі тыныш. Әрекет: уақытша жүктемені азайту (параллелизмді шектеу немесе деградация қосу), кейін лимиттер мен сыйымдылықты талдау.
Әр алерт үшін қысқа runbook қажет — әйтпесе команда кездейсоқ әрекет етеді. 5 тармақ жеткілікті:
- Қайдан растау керек: графиктер, логтар, трассировкалар.
- Бірінші минутта не тексеру: кезектер, 5xx, лимиттер, тәуелділіктердің денсаулығы.
- Зиянды тез азайту жолы: feature-flag, temperature-ды төмендету, ауыр құралдарды сөндіру, кэшке қайтару.
- Қалпына келтіру немесе резервке көшу процедурасы.
- Қашан және кімге эскалация жасау керек (нақты уақыт пен критерийлер).
Бұл әсіресе LLM-сервис 24/7 жұмыс істейтін және инфрақұрылыммен, қолдаумен тығыз байланысқан ірі интеграциялық жобаларда маңызды.
LLM мониторингінде жиі жіберілетін қателер және оларды қалай болдырмау
Бірінші қателік — бір әдемі санға қарап бәрі бақылауда деп ойлау. Көбіне бұл орташа жауап уақыты. Орташа сирек құбылыстардың «құйрығын» жасырады: пайдаланушы үшін маңыздысы «орташа 2 секунд» емес, «кейде 30 секунд». Сондықтан ортамен қатар p95 пен p99-ды, сондай-ақ кезекте тұрған уақыт пен модель орындау уақытын қадағалаңыз.
Екінші қате — әртүрлі сценарийлерді бір метрикаға араластыру. Қолдау, құжаттар бойынша іздеу және хат генерациясы әртүрлі ережеде жұмыс істейді: промпттар, токен лимиттері, кешігуге төзімділік айырмашылығы бар. Метрикаларды міндетті түрде сценарий түрі, канал (чат, API), тіл және маңызды клиенттер бойынша бөліңіз — осылай локальды ақауларды байқайсыз.
Үшінші қате — не орналастырылғаны жазылмауы. Модель нұсқасы, промпт нұсқасы, параметрлер (temperature, max_tokens) және контекст сақталмаса, before/after-ды шынайы салыстыруға және тез кері қайтуға болмайды.
Тағы бір типтік сәтсіздік — иесіз және нақты іс-шарасы жоқ алерттер. Егер хабарлама «алғашқы 10 минутта кім не істейді?» деген сұраққа жауап бермесе, оны елемейді.
Құтқаратын әдеттер жиынтығы:
- Дашбордтар мен алерттерді сценарийлер мен сегменттер бойынша бөлу.
- Версиялылықты сақтау: модель, промпт, параметрлер, фичалар және релиз күні.
- Алерттерге қысқа тексеру қадамдары мен жауапты тағайындау.
- Қателермен бірге әр сұраудағы токендерді бақылау.
- Орташа емес, p95/p99-ды тексеру.
Шығын туралы бөлек: токендердің өсуі «шағын нәрсе» сияқты көрінеді, шот екі есеге өтерден бұрын. Токен/сұрау және токен/пайдаланушы бойынша лимиттер мен алерттер орнатыңыз, және әр сценарий үшін «1k сұрауға шаққандағы» шығынды бөлек бақылаңыз.
Тез чеклист және келесі қадамдар
Егер мониторинг бар болса, аптасына бір рет шындықты сұраңыз: мәселені алерт арқылы білеміз бе, әлде шағым арқылы ма?
Күнделікті қолдауға жарайтын минималды сигналдар:
- Кезек пен кешігулер: кезек ұзындығы, p95 (және p99), генерация басталуға дейінгі күту уақыты.
- Қателер және ретрайлер: 5xx үлесі, таймауттар, жоюлар, ретрайлер пайызы, провайдер лимиттері қателері.
- Токендер және шығын: кіріс пен шығыс токендер сұрауға шаққандағы, 1k сұрау үшін шығын, ең қымбат промпттар тізімі.
- Таңдамалы сапа бағасы: апта сайын 50–100 нақты диалогтың қарапайым "ок/не ок" бағасы және себептер.
Дашбордтарды қарапайым ұстаған дұрыс: біреуі — "қызмет денсаулығы" (трафик, p95, қателер), екіншісі — "қаржы" (токендер, шығын, ең қымбат сценарийлер), үшіншісі — "сапа" (таңдамадан шыққан нашар жауаптар және негізгі себептер).
Алерт іске қосылғанда басты мақсат — қызметті тез тұрақтандыру және релиз арқылы жағдайды ушықтырмау:
- Релиздерді тоқтатыңыз және соңғы өзгерістер сәйкес келсе, кері қайтаруды іске қосыңыз.
- Фолбэк қосыңыз (шаблонды жауаптар, дерекқордан іздеу, қарапайым модель) маңызды сценарийлер үшін.
- Контекстті шектеңіз: диалог тарихын, тіркемелер мен тым ұзын промпттарды қысқартыңыз.
- Жүктемені азайтыңыз: rate limit енгізу, кезектерді басқару, уақытша қосымша функцияларды өшіру.
Содан кейін апта сайын ең қымбат сұраулар мен типтік сапа ақауларын талдап, әрекет жоспарын және күтілетін әсерді құрыңыз.
Егер LLM-ды өз инфрақұрылымыңызға (соның ішінде on-prem және дата-орталықтарда) енгізсеңіз, бақылауды, SLO мен инцидентке реакция процестерін бастапқыдан енгізген жөн. Мұндай жобаларда GSE.kz (gse.kz) көбіне жүйелік интегратор ретінде тартылады: темірден және серверлерден бастап AI инфрақұрылымына және 24/7 қолдауға дейін — эксплуатация интуитивті болжамдарға негізделмес үшін.
FAQ
LLM-сервисінде қандай метрикалар әдетте бірінші болып мәселені көрсетеді?
Бастапқыда кезек және перцентиль бойынша латенттілік (p95/p99), таймауттар мен 5xx үлесі, сондай-ақ ретрайлерді бақылаудан бастаңыз. Бұл сигналдар әдетте пайдаланушылар шағымданардан бұрын өсіп, жүйенің шамадан тыс жүктелгенін немесе провайдердің проблемаларын көрсетеді.
Неліктен бірегей request_id керек және ол практикада не береді?
Бірегей `request_id` метрикалар, логтар және трассировкаларды бір сұраумен байланыстыруға мүмкіндік береді: сұрақ қанша уақыт кезекте тұрды, модель қанша уақыт жауап берді, промпт пен модель нұсқасы қандай болды, қай жерде таймаут болды және жауап қиылған ба. Осысыз сіз тек «орташа жағдайды» көресіз, ал нақты ақаудың себебін анықтай алмайсыз.
SLO-ды қалай таңдау керек, метрикалардан бойымызды ауырлатпай?
2–3 SLO анықтаңыз, олар пайдаланушы тәжірибесін көрсетсін: мысалы, p95 жауап уақыты, қателер/таймауттар үлесі және бір қарапайым сапа көрсеткіші. Қалған метрикаларды диагностикаға қосыңыз, әйтпесе дашбордтар «бәрі туралы бәрін» көрсетіп, инцидент кезінде көмектеспейді.
Токендерге шығындардың өсуін қалай тез байқауға және себебін табуға болады?
Әр сұрау үшін `input_tokens`, `output_tokens` және `tokens_per_request` тіркелсін және таратылымдарға қараңыз — медиана, 90-перцентиль, 99-перцентиль. Сондай-ақ сұрауға бөлінген орташа шығынды есептеп, сценарийлер бойынша жинақтаңыз — қай тип сұраулар бюджетті «жеп жатқанын» жылдам көруге болады.
LLM провайдері мәселесін өз қосымшаңыздың ақауынан қалай ажыратуға болады?
Лимит қатесі, throttling, квота таусылуы және провайдердің күту уақыты сияқты провайдер қатесін бөлек есептеңіз. Оларды әдеттегі таймауттармен араластырсаңыз, бәрі «желінің жай-қалпы жүзіп кетуі» сияқты көрінеді және мәселені дұрыс жерден іздемейсіз.
Егер жауаптар стриминг арқылы берілсе, қандай метрикалар қажет?
Стриминг үшін екі негізгі метрика маңызды: бірінші токеннің келу уақыты және токендер жылдамдығы (token/sec). Қолданушы көп күтсе де, бірінші токен тез келсе және ағын біркелкі жүрсе, ол «бот ілініп қалды» деген сезімді сирек алады.
Қиын бағалағыш модельдерсіз жауаптардың сапасын қалай өлшеуге болады?
Қарапайым нәтижеден бастаңыз: көмектесті/көмектеспеді, бас тарту, нақтылау сұрауы. Техникалық сигналдар да қосыңыз: өте қысқа жауап, қайталанулар, формат сақталмауы. Сонан соң апта сайын 20–50 диалогты бірдей критерийлермен қолмен тексеріп отырыңыз — бұл латентті регрессияларды табуға көмектеседі.
Golden set деген не және ол жаңартудан кейін деградацияны қалай табуға көмектеседі?
Golden set — типтік сұраулардан құралған шағын жиын. Оны тұрақты түрде жіберіп, ағымдағы нұсқаны базалық нұсқамен салыстырыңыз. Канарейка релизін 1–5% трафикпен жүргізіп, қысқа терезеде тәуекелдерді байқасаңыз, регрессияларды кең көлемге шықпай тұрып ұстайсыз.
Алерттерді қалай баптау керек, олар пайдалы әрі шудан ада болсын?
Жақсы алерт не нашарлағанын, қандай кезеңде және алғашқы минутта нені тексеру керектігін көрсетеді. Терезелерді (мысалы, 10 минут) қолданыңыз, симптомдарды (p95, кезек, 5xx) және себептерді (лимиттер, квоталар, тәуелділіктердің деградациясы) бөліп алыңыз, және қысқа runbook ұсыныңыз — бұлайша алерт мәнді әрі аз шуды болады.
Персоналды деректер қаупін туғызбай промпттар мен жауаптарды қалай логтау керек?
Промпттар мен жауаптарды тек тергеулер үшін нақты қажет болса ғана сақтаңыз және дерге қатысты персоналды мәліметтерді жасырып қойыңыз. Логтарда идентификаторлар, промпт нұсқалары, генерация параметрлері және сапа техникалық белгілері жеткілікті — осылай инцидентті тексеруге болады, ал деректердің ағуы қаупі төмендейді.