Мазмұнға өту
2025 ж. 28 ақп.·7 мин оқу

LLM-ді өндіріске шығармай тұрып тексеруге арналған синтетикалық мысалдар

LLM-ді тексеруге арналған синтетикалық мысалдар шынайы дерек аз кезде тест кейстерін жинауға көмектеседі. Үлгілерді, қателерді және жылдам тексерулерді қарастырамыз.

LLM-ді өндіріске шығармай тұрып тексеруге арналған синтетикалық мысалдар

Неге тестсіз істен шығуды байқамай қалу оңай

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

LLM көбіне қарапайым тіркестерде емес, сирек жағдайларда бұзылады. Пайдаланушы қате тереді, орыс пен ағылшын тілін араластырады, толық емес контекст береді, бұрынғыға ұқсас нәрсе сұрайды, бірақ бір маңызды детальді өзгертеді. Осындай жерлерде модель қадамдарды шатастырады, факт ойлап табады, шектеуді ұмытады немесе нақтылау керек жерде тым сенімді сөйлейді.

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

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

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

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

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

Синтетика нақты қай кезде көмектеседі

Синтетика әсіресе ең басында пайдалы, командаға қарапайым сұраққа тез жауап беру керек кезде: модель шынымен сіздің міндетіңізді шеше ме, әлде тек әдемі қателесе ме. Бұл кезеңде мінсіз датасет керек емес. Іске қосуға дейін әлсіз жерлерді байқауға көмектесетін сұрақтар жиынтығы керек.

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

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

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

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

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

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

Кейстерге сюжеттерді қайдан алу керек

Сюжеттерді функциялар тізімінен емес, пайдаланушының нақты міндеттерінен жинаған дұрыс. Адамдар «тарифті іздеу» немесе «мәртебені тексеру» деп ойламайды. Олар былай жазады: «Неге маған әдеттегіден көп ақша ұсталды?», «Маған шұғыл лимит керек», «Мен елде болмасам, картаны қалай жабамын?» Дәл осындай тұжырымдар LLM үшін қалыпты кейстер береді.

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

Егер сіз Қазақстандағы банк, телеком немесе мемлекеттік қызмет үшін ассистент дайындап жатсаңыз, екітілділікті кейінге қалдыруға болмайды. Жиынтықта орыс тіліндегі, қазақ тіліндегі және аралас нұсқалар болуы керек. Шынайы өмірде адам оңай-ақ былай жазады: «Карта заблокталды, не істеу керек?» немесе «Осы тауарға рассрочка бар ма?» Егер тест тек таза орыс тілінде болса, сурет тым әдемі болып кетеді.

Жиі сұраулар негіз береді, бірақ солармен тоқтауға болмайды. Қате қымбатқа түсетін сирек жағдайларды да қосыңыз: ақшаны қайтару, жеке деректерді ашып жіберу, лимит туралы қате кеңес, құжаттармен шатастыру, сервис мүлде істемейтін нәрсені уәде ету. Мұндай кейстер сирек кездеседі, бірақ дәл солар кейін іске қосуды бұзады.

Ыңғайсыз енгізу нұсқалары да керек. Адамдар қате тереді, бір сөз ғана жібереді, бос хабарлама жібереді, түгел бас әріппен немесе ашумен жазады. Тек ұқыпты сұрауларға ғана сенімді жауап беретін модель продакшенада тез сыр береді.

Пайдалы әдіс қарапайым: әр жиі тапсырмаға 5–7 тұжырым жинаңыз. Бірі — әдеттегі, бірі — қысқа, бірі — қатемен, бірі — ашулы, бірі — тіл араласқан. Сонда жиынтық өмірге ұқсай бастайды және дәл осы кезде іске қосу алдындағы бағалау қай жерде адал, қай жерде тест әлі де тым стерильді екенін көруге болады.

Бірінші жиынтықты қалай құрастыру керек

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

Бірінші өту үшін әдетте 5–7 сценарий жеткілікті. Бұл толық суретті бермейді, бірақ ірі қателерді тез көрсетеді: модель ережені шатастырады, факт ойлап табады немесе маңызды шектеуді өткізіп жібереді.

Жұмыс тәртібі мынадай:

  1. Жоғары тәуекелі бар сценарийлерді таңдаңыз. Қате жауап артық төлемге, құжаттағы қателікке, саясатты бұзуға немесе қолдауға қайта жүгінуге әкелетін жағдайларға қараңыз.
  2. Әр сценарий үшін пайдаланушының мақсатын бір қысқа сөйлеммен жазыңыз. «Кеңес алу» емес, «өтінім мәртебесін білу», «соманы есептеу», «лимитті тексеру».
  3. Бір сұраудың 3–5 нұсқасын жасаңыз. Бір пайдаланушы қысқа жазады, екіншісі оқиғаның жартысын ғана айтады, үшіншісі тұжырымда қателеседі немесе екі сұрақты бір хабарламада араластырады.
  4. Контекст қосыңыз: пайдаланушы рөлі, күн, сома, өнім, жүгіну арнасы және жауапқа әсер ететін барлық шектеу.
  5. Мұның бәрін бір кестеге жинаңыз. Кейстерді жазба мен чатта шашып жібермеңіз, әйтпесе команда нұсқаларда тез шатасады.

Контекст көбіне бәрін шешеді. «Бүгін төлем жүргізуге бола ма?» деген сұрақ детальсыз іс жүзінде пайдасыз. Сол сұрақты 31.12 күні 4 900 000 теңгеге 5 000 000 теңге лимиті бар кассир қойса, оны қалыпты түрде тексеруге болады.

Ыңғайлы үлгі былай көрінуі мүмкін:

СценарийСұрауКонтекстКүтілетін нәтиже
Лимит бойынша төлемБүгін төлем жүргізуге бола ма?Рөл: кассир; күн: 31.12; сома: 4 900 000; лимит: 5 000 000Модель төлем жасауға болатынын растайды және лимитке сүйенеді
Өтінім мәртебесіМенің өтінімім қайда?Рөл: клиент; өтінім кеше берілген; нөмір көрсетілмегенМодель жетіспейтін идентификаторды сұрайды және мәртебені ойдан шығармайды

«Күтілетін нәтиже» бағанында тексерілетін нәтижені жазған дұрыс. «Жақсы жауап беру» деген көмескі емес, нақты мінез-құлық: жетіспейтін деректі сұрау, шарт нөмірін ойдан шығармау, растаусыз әрекет уәде етпеу.

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

Күтілетін нәтижені қалай жазу керек

Деректерді ел ішінде сақтаңыз
Егер жоба үшін маңызды болса, ашық модельдерді өзіңіздің GPU-инфрақұрылымыңызда тексеріңіз.

Күтілетін нәтижені «идеал жауап» ретінде емес, модельдің әрекеті ретінде жазған жақсы. Әйтпесе сіз бір сәтті сөйлемді емес, жалпы мінез-құлықты бағалаудың орнына кетесіз. Тест үшін «егер сұрауда дерек жетіспесе, модель нақтылау сұрайды» деген сияқты жазу пайдалырақ, «ол осы абзацты сөзбе-сөз қайталауы керек» деген дайын мәтіннен гөрі.

Нашар күтілетін нәтиже бұлыңғыр естіледі: «сыпайы әрі дұрыс жауап береді». Жақсысы тексерілетін мінез-құлықты белгілейді: «тек белгілі фактілерді атайды, тапсырыс нөмірін ойдан шығармайды, бір нақтылау сұрағын қояды және үш тармақпен жауап береді». Сонда жиынтық әдемі жауаптар коллекциясы емес, жұмыс істейтін құралға айналады.

Тыйымдарды да кейс карточкасында ашық жазған дұрыс. Егер оларды бекітпесеңіз, тексеруші жолай ережені өзі ойлап таба бастайды. Әдетте 2–4 нақты шектеу жеткілікті: факт ойдан шығармау, рөлден шықпау, рұқсат етілмеген аймаққа кеңес бермеу, жүйе істей алмайтын нәрсені уәде етпеу.

Бағалау үшін қарапайым шкала жарайды:

  • Дұрыс — модель талап етілгенді орындады және тыйымдарды бұзған жоқ.
  • Ішінара — жалпы мағынасы дұрыс, бірақ бір қадамын өткізіп алды, артық нәрсе қосты немесе формадан сәл ауытқыды.
  • Бас тарту — жауап беруге болмайтын жерде модель дұрыс бас тартты.
  • Эскалация — егер ереже соны талап етсе, модель істі адамға немесе басқа арнаға берді.

Бәрін бір бағаға араластырмаңыз. Бір жауап мағынасы жағынан дәл, бірақ формасы әлсіз болуы мүмкін. Сондықтан дәлдікке, форматқа және тонға бөлек қараңыз. Дәлдік «бұл рас па?» деген сұраққа жауап береді. Формат құрылымды тексереді: тізім, JSON, қысқа жауап, ұзындық шектеуі. Тон сенім мен тәуекелге әсер ететін жерлерде маңызды, мысалы қолдау қызметінде, банкте немесе медицинада.

Кім бағалайтынын бірінші тексеріске дейін шешіп қойған дұрыс. Егер бір аналитик жауапты «ішінара» десе, екіншісі «дұрыс» қойса, модельдің жақсарғанын не талғамға дауласып отырғаныңызды түсінбейсіз. Әдетте командаға бір бетке сыйған қысқа ережелер және 3–5 талданған мысал жеткілікті. Одан кейін кез келген тексеруші кейсті бірдей белгілер бойынша бағалайды.

Жиынтықты өмірдегідей қалай жасау керек

Модель сирек жағдайда кестедегі ұқыпты промпттарда бұзылады. Ол көбіне адам асығыс жазғанда, ойдан ойға секіргенде және өзіне-өзі қайшы келгенде қателеседі. Сондықтан синтетикалық кейстер «оқулықтағы дұрыс» емес, сәл алқам-салқам болуы керек.

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

Сөйлеу тіліндегі сөздерді, қате теруді, бос орындарды және шуды қосыңыз. Адамдар «қазір», «ашылмай тұр», «бұл кеше болған нәрсе ғой» деп жазады, датаны ұмытады, атауларды шатастырады. Сондай-ақ олар міндетке көмектеспейтін деталь қосады: «мен үш рет қоңырау шалдым», «мен қазір жолдамын», «ресмиліксіз жауап беріңіз». Жақсы тест модельдің қажет нәрсені фоннан ажырата алатынын тексереді.

Бөлек бір пайдалы тексеріс — бір диалог ішінде тақырыпты ауыстыру. Пайдаланушы тауарды қайтарудан бастайды да, екі хабарламадан кейін бұрынғы өтінімдері сақталған-сақталмағанын сұрайды. Егер модель тек соңғы сұрақты ұстап қалса, ол желіні жоғалтады. Егер бүкіл диалогты тұтас сүйретсе, басқа сұраққа жауап беруі мүмкін.

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

Тірі жиынтық үшін ең аз қажет нәрселер мыналар:

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

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

Іске қосу алдындағы банк көмекшісінің мысалы

Бір жиынтықта модельдерді салыстырыңыз
Сол бір кейстерді SDK мен промпттарды өзгертпей-ақ әртүрлі модельдерден өткізіңіз.

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

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

Екінші кейсті ұқыпсыздау етіп жасаған пайдалы. Клиент қате теріп жазады: «срочно скажите почему не уходит денги перевот нужен щас». Мұнда команда тек мағынаға емес, тонға да қарайды. Бот тітіркенбеуі, ақыл айтпауы немесе қате теруден абдырамауы керек. Қалыпты жауап қысқа болады: жеделдікті мойындау, қажетті ең аз деректі сұрау және егер әңгіме бұғатталу қаупі не төлем ақауы туралы болса, адам операторға жылдам жіберу.

Үшінші кейс шекараны тексеруге пайдалы. Клиент даулы операция туралы кеңес сұрайды, мысалы «іліулі» тұрған аударымды тоқтатқан дұрыс па, әлде ұсталған соманы дәл қазір даулауға бола ма. Мұнда модель тым батыл кеңес бере бастағанда қауіпті. Команда төрт нәрсені тексеруі керек: банк ережесі бойынша бот өзі қай жерде жауап бере алады, қай жерде операторды шақыруы тиіс, ол беруді суық бас тартусыз қалай түсіндіреді және жоқ процедураларды ойдан шығармай ма.

Прогоннан кейін әдетте әлсіз жерлер байқалады. Бір промпт модельді нақтылау сұрағын көбірек қоюға мәжбүр етеді. Басқа ереже клиент өнімді, арнаны немесе операция мәртебесін араластырса, болжауға тыйым салады. Мұндай тест абстракт бағалау емес, нақты түзетулер тізімін береді: қай жерде жауапты қысқарту керек, қай жерде эскалация қосу керек, ал қай жерде тым сенімді тонды алып тастау керек.

Командалар қай жерде жиі қателеседі

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

Синтетикалық кейстерде бұл жиі болады. Адамдар еріксіз өздері өте алатын мысалдарды ойлап табады. Егер сұрау тым тегіс оқылса, бұл сақтануға себеп. Жақсы тест көбіне сәл ашуландырады: ішінде шу, анық еместік немесе шарттардың қайшылығы болады.

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

Көбіне жиынтық ұзарады, бірақ кеңеймейді. Команда бір сюжет алып, оны он түрлі түрде қайта жазады. Ресми түрде кейстер көбейді, бірақ тексеріс айтарлықтай өзгермеді. Егер сізде құпиясөзді қалпына келтіру туралы 40 мысал, ал бас тарту, эскалация және жеке деректермен жұмыс туралы тек 2 мысал болса, жиынтық қисайып кеткен.

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

Тағы бір жиі қателік — өзгерістерден кейін жиынтықты жаңартпау. Команда жүйелік промптты ауыстырады, жаңа модель роутингісін қосады немесе трафиктің бір бөлігін басқа конфигурацияға өткізеді, ал тесттерді сол күйі қалдырады. Содан кейін ескі баға көп нәрсе айтпайды. Жиынтық жүйемен бірге өзгеруі керек, әйтпесе ол қазіргі нұсқаны емес, өткен нұсқаны тексереді.

Жиынтықты жылдам тексеру

Бір провайдерге байланып қалмаңыз
Біртұтас шлюз арқылы сценарийіңізге сай модельді таңдау оңайырақ.

Жақсы тест жиынтығын 15–20 минутта тексеруге болады. Егер бұған жарты күн кетсе, жиынтық әдетте шамадан тыс жүктелген: тым көп ұқсас кейс, бұлыңғыр күту немесе ыңғайсыз формат. Іске қосу алдындағы бірінші баға үшін команда бір көзқараспен түсінетін ықшам жиынтық болғаны дұрыс.

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

Синтетикалық кейстер үшін қарапайым ереже жұмыс істейді: әр мысал бір қысқа жазбаға сыюы керек. Онда үш өріс жеткілікті — пайдаланушы сұрауы, контекст және модельдің күтілетін әрекеті. Күтілетін әрекетті әсер ретінде емес, тексерілетін ереже ретінде жазған дұрыс. «Жауап сенімді естіледі» емес, «нақтылау сұрайды», «тарифті ойдан шығармайды», «өтінімді операторға береді».

Қысқа чек-лист былай көрінеді:

  • жиынтықта базалық, сирек және шеткі жағдайлар бар;
  • әр кейсте сұрау, контекст және күтілетін әрекет жазылған;
  • екі тексеруші бірдей ережелер бойынша бірдей баға қояды;
  • бүкіл жиынтық бір файлда, мысалы CSV немесе JSONL форматында сақталған;
  • осы бір файлды бірнеше модельден қолмен түзетусіз өткізуге болады.

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

Бірінші тексерістен кейін не істеу керек

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

Дау тудырған барлық жауапты бірден сақтаңыз. Тек анық құлауларды емес, команданың өзі дауласып қалған жағдайларды да: «бұл енді қате ме, әлде әлі де жарай ма?» Мұндай мысалдар кейін он шақты айқын тесттен де пайдалырақ болады.

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

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

Көбіне 20–30% шынайы кейс-ақ айырмашылықты көруге жеткілікті. Мысалы, банктік көмекшіде карта лимиті туралы синтетикалық сұрақ әдетте ұқыпты және толық болады, ал шынайы пайдаланушы «неге тағы өтпей тұр» деп жазады. Осындай қысқа әрі жүйкеге тиетін сұрауларда әлсіз жерлер бірден көрінеді.

Тағы бір пайдалы қадам — бірдей жиынтықты екі-үш модельде өткізу. Промптты, temperature мәнін және бағалау ережелерін өзгертпеңіз, әйтпесе салыстыру шуға айналады. Тек орташа балға емес, қателер профиліне де қараңыз: бір модель форматты жақсы ұстайды, екіншісі факті ойдан шығармайды, үшіншісі сондай сапаны арзанырақ береді.

Егер командаға интеграцияны қайта жазбай-ақ бірнеше модельді тез тексеру керек болса, AI Router жұмысты жеңілдете алады. Бұл Қазақстан мен Орталық Азия бизнесі үшін OpenAI-үйлесімді API-шлюз: модельдерді бір endpoint api.airouter.kz арқылы ауыстырып, сол SDK, код және промпттармен бірдей жиынтықты іске қосуға болады.

Осыдан кейін тесттерді ретсіз кеңейтпеңіз. Тек нақты қателікті тапқан немесе жаңа тәуекелді жапқан кейстерді ғана қосыңыз. Мұндай жиынтық баяу өседі, бірақ әлдеқайда адал.

Жиі қойылатын сұрақтар

Нақты логтар аз болса да, неге синтетикалық мысалдар керек?

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

Синтетика бастапқы тексеріс береді: модель қадамдарды шатастыратын, факт ойдан табатын немесе нақтылау сұрамайтын жерлерді алдын ала көруге болады.

Синтетика қай кезде ең көп пайда береді?

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

Егер нақты деректер ережелермен шектелсе немесе жеке ақпаратты қамтыса, синтетика тесті тәуекелсіз бастауға мүмкіндік береді.

Тест кейстеріне сюжеттерді қайдан алған дұрыс?

Функциялар тізімін емес, нақты тапсырма тұжырымдарын алыңыз. Ол үшін қолдау хаттары, оператор чаттары, шағымдар, эскалациялар, колл-орталық сценарийлері және білім базасы бойынша іздеу сұраулары жарайды.

Адамдар бір сұрақты әртүрлі сөзбен қалай қоятынына қараңыз. Дәл сондай нұсқалар ниетті түсінуді жақсы тексереді.

Қазақша және аралас сұрауларды қосу керек пе?

Иә, әсіресе өнім Қазақстанда жұмыс істесе. Пайдаланушылар бір хабарламада орыс, қазақ және ағылшын тілдерін еркін араластыра береді, ал модель оны көтере алуы керек.

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

Бірінші жиынтыққа қанша кейс қажет?

Бірінші өту үшін әдетте 5–7 тәуекелі жоғары сценарий және әрқайсысына 3–5 тұжырым жеткілікті. Бұл ірі қателерді тез табуға көмектеседі де, кестеге батып кетпейсіз.

Көлемге ұмтылмаңыз. Аз, бірақ адал жиынтық жүздеген ұқсас мысалдан пайдалырақ.

Күтілетін нәтижені қалай дұрыс жазуға болады?

Идеал жауапты емес, модельдің мінез-құлқын жазыңыз. Мысалы: ол жетіспейтін деректі сұрайды, өтінім нөмірін ойдан шығармайды, растаусыз әрекет уәде етпейді және керекті форматта жауап береді.

Сонда тексеруші әдемі сөйлемді емес, модельдің тапсырмадағы әрекетін бағалайды.

Жиынтықты шынайы сұрауларға қалай ұқсатуға болады?

Кейстерді сәл алқам-салқам етіңіз. Қысқа, контекстсіз хабарламаларды, артық детальдары бар ұзын сұрауларды, диалог ішіндегі тақырып ауысуын, қайшылықтарды және қате теруді қосыңыз.

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

Командалар қай жерде жиі қателеседі?

Көбіне командалар өздері өтіп кеткісі келетін ыңғайлы сұрақтар жазады. Тағы бір жиі қате — әдепті стильге қарап, фактілік қатені өткізіп жіберу немесе бір-біріне ұқсас кейстерді көбейтіп, жиынтықты қолдан үрлеп жіберу.

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

Тест жиынтығы қалыпты жасалғанын қалай тез түсінуге болады?

Жиынтықта әдеттегі, сирек және шеткі жағдайлар барын тексеріңіз, ал әр кейсте сұрау, контекст және күтілетін әрекет жазылған болсын. Содан кейін екі адамға бірдей ережелер бойынша бірнеше мысалды бағалатыңыз.

Егер олар ұқсас баға қойып, бүкіл жиынтық бір файлға сыйса, оны жұмыста қолдану ыңғайлы болады.

Бірінші прогоннан кейін не істеу керек?

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

Егер бірнеше модельді салыстырсаңыз, бірдей файлды промпт пен бағалау ережелерін өзгертпей өткізіңіз. OpenAI-үйлесімді шлюз арқылы, мысалы AI Router-де, модельді ауыстыру ерекше ыңғайлы: интеграцияны қайта жазбайсыз.