Cum Implementăm Ajustările Limitei de Rată a API-urilor Conduse de AI
Modelele de inteligență artificială implementate în medii de producție nu sunt artefacte statice – sunt sisteme dinamice care interacționează cu date din lumea reală în continuă evoluție, comportamente ale utilizatorilor și constrângeri operaționale. Spre deosebire de software-ul tradițional, unde eșecurile sunt adesea deterministe și ușor de urmarit până la anumite linii de cod, modelele AI se pot degrada în tăcere, producând rezultate incorecte fără niciun semn imediat de defecțiune. Acest fenomen, cunoscut sub numele de derivă a modelului (model drift), apare atunci când proprietățile statistice ale datelor de intrare se schimbă în timp (derivă a datelor) sau când relația fundamentală dintre intrări și ieșiri se modifică (derivă conceptuală). La CELSO DATA SCIENCE, unde am implementat peste 15 fluxuri de lucru agentice și am antrenat modele lingvistice mari (LLM) personalizate pentru clienți din sectoare variate, de la administrația publică până la întreținerea industrială, am observat direct cum modelele nemonitorizate pot duce la rezultate catastrofale pentru afaceri. De exemplu, în colaborarea noastră cu TASSID, un furnizor de servicii de întreținere pentru echipamente de refrigerare, un model de diagnostic nemonitorizat a început să clasifice greșit defectele compresoarelor din cauza unei schimbări sezoniere a nivelului de umiditate – o variabilă care nu fusese inițial capturată în datele de antrenare. Rezultatul a fost o creștere cu 23% a falsurilor negative, ducând la reparații costisitoare la fața locului și nemulțumirea clienților. Acest caz subliniază de ce monitorizarea modelului nu este un lux, ci o necesitate pentru orice sistem bazat pe AI care funcționează în producție.
Diferența fundamentală între monitorizarea software-ului tradițional și cea a modelelor AI constă în natura sistemelor observate. Software-ul tradițional operează în baza unui set de reguli predefinite, unde eșecurile sunt de obicei binare: fie codul rulează așa cum este așteptat, fie aruncă o excepție. Monitorizarea în acest context se concentrează pe metrici de sistem precum utilizarea CPU, scurgeri de memorie sau timpii de răspuns ai API-urilor. Modelele AI, însă, sunt sisteme probabilistice care generează ieșiri pe baza unor modele învățate din date. Performanța lor nu este garantată de logică, ci de alinierea statistică cu lumea reală. De exemplu, când am dezvoltat Asistentul Virtual Public Universal (UVPA) pentru Primăria București – un sistem AI multimodal capabil să proceseze cereri ale cetățenilor prin voce, text și imagini – am trebuit să monitorizăm nu doar latența serverului, ci și consistența semantică a răspunsurilor. Un model care răspunde la 99% din întrebări în 200ms este inutil dacă 15% din acele răspunsuri sunt factualmente incorecte din cauza unei schimbări în reglementările municipale subiacente. Această distincție necesită un cadru de monitorizare care urmărește calitatea datelor, distribuția predicțiilor, încrederea modelului și echitatea, pe lângă metricile tradiționale de sistem.
În centrul oricărui sistem robust de monitorizare a modelelor AI se află patru componente interdependente: datele, predicțiile, performanța și metadatele. Monitorizarea datelor asigură că intrările în model rămân statistic consistente cu distribuția de antrenare. Folosim o suită de teste statistice, inclusiv testul Kolmogorov-Smirnov (KS) pentru caracteristicile continue și Indicele de Stabilitate a Populației (PSI) pentru variabilele categorice, pentru a detecta deriva datelor în timp real. De exemplu, în colaborarea noastră cu eDezvoltator.ro, un agregator de peste 40.000 de unități rezidențiale, monitorizăm schimbările în distribuțiile caracteristicilor proprietăților – cum ar fi prețul pe metru pătrat sau popularitatea cartierului – folosind PSI. O valoare PSI peste 0,25 declanșează o alertă, deoarece indică o derivă statistic semnificativă care ar putea degrada acuratețea modelului în predicția potențialului de investiție. Vizualizările, cum ar fi graficele funcției de distribuție cumulativă (CDF) și îmbinările t-SNE, sunt generate automat pentru a ajuta oamenii de știință ai datelor să diagnosticheze cauza principală a derivei. De exemplu, o creștere bruscă a PSI pentru „proximitatea față de stațiile de metrou” în Sectorul 2 al Bucureștiului a fost urmarită până la un nou proiect de dezvoltare urbană, pe care modelul nu fusese antrenat să îl recunoască. Fără monitorizare în timp real, această derivă ar fi trecut neobservată până când reclamațiile utilizatorilor ar fi apărut.
Predicțiile, a doua componentă esențială, trebuie monitorizate atât pentru schimbări de distribuție, cât și pentru ieșiri anormale. Un model care începe brusc să prezică valori extreme – cum ar fi un model de estimare a prețurilor pentru CaseBineFacute.ro care afișează 500.000€ pentru un apartament de 50 de metri pătrați – este un semnal clar de alarmă. Urmărim distribuțiile predicțiilor folosind histograme și grafice cutie, comparându-le cu o linie de bază mobilă derivată din primele 30 de zile de date de producție. Pentru sarcini de clasificare, cum ar fi sistemul de scoruri comportamentale din platforma ASPA, monitorizăm schimbările în dezechilibrul claselor folosind metrici precum impuritatea Gini și entropia. O scădere bruscă a entropiei predicțiilor (de exemplu, de la 0,8 la 0,2) sugerează că modelul devine prea încrezător într-o singură clasă, adesea din cauza derivei conceptuale. Pentru a prinde eșecurile silențioase – unde predicțiile sunt incorecte, dar nu evident anormale – monitorizăm și scorurile de încredere. Pentru sistemul UVPA, folosim Monte Carlo dropout pentru a estima incertitudinea predicțiilor, marcând orice ieșire cu un interval de încredere mai larg de 0,3 ca necesită revizuire umană. Această abordare a redus falsurile pozitive în cererile cetățenilor cu 40%, deoarece predicțiile nesigure sunt escaladate către angajații municipali pentru validare.
Monitorizarea performanței se extinde dincolo de metricile de acuratețe, incluzând KPI-uri de afaceri, latență și echitate. Deși acuratețea, precizia și recall-ul sunt metrici standard, acestea adesea nu capturează impactul real al degradării modelului. De exemplu, în sistemul de diagnostic TASSID, o scădere cu 5% a acurateței ar putea părea minoră, dar s-a tradus într-un supliment de 120 de ore de timp al tehnicienilor pe lună din cauza eșecurilor de diagnosticare a defectelor echipamentelor. Pentru a aborda acest lucru, urmărim KPI-uri specifice domeniului, cum ar fi „rata de reparare din prima” pentru TASSID sau „rata de adopție” pentru ASPA. Monitorizarea latenței este la fel de critică, mai ales pentru sistemele cu acorduri de nivel al serviciului (SLA). De exemplu, sistemul UVPA trebuie să răspundă la întrebările cetățenilor în mai puțin de 5 secunde pentru a îndeplini standardele digitale ale orașului. Folosim monitorizare bazată pe percentile (P50, P90, P99) pentru a urmări latența, deoarece timpii medii de răspuns pot masca valorile aberante. Pentru echitate, folosim analiza impactului disparat și metrici de șanse egalizate pentru a ne asigura că performanța modelului nu variază semnificativ între grupurile demografice. În platforma ASPA, monitorizăm ratele de adopție pe rasă, vârstă și mărime pentru a ne asigura că niciun grup de câini nu este dezavantajat sistematic de algoritmul de scorare. Când am detectat o rată de adopție cu 20% mai mică pentru câinii seniori, am ajustat ponderile caracteristicilor modelului pentru a prioriza trăsăturile comportamentale față de vârstă, rezultând o creștere cu 15% a adopțiilor pentru animalele mai în vârstă.
Detectarea derivei conceptuale – scenariul în care relația dintre intrări și ieșiri se modifică – necesită o abordare mai nuanțată decât detectarea derivei datelor. În timp ce deriva datelor poate fi identificată prin teste statistice asupra caracteristicilor de intrare, deriva conceptuală se manifestă adesea ca o degradare a metricilor de performanță fără modificări evidente în distribuția intrărilor. De exemplu, în platforma Transfăgărășan.Travel, care recomandă atracții turistice pe baza preferințelor utilizatorilor, am observat o scădere cu 12% a ratei de clicuri (CTR) în lunile de iarnă, în ciuda faptului că nu au existat schimbări semnificative în datele de intrare. După investigație, am descoperit că preferințele utilizatorilor se schimbaseră de la activități în aer liber (de exemplu, drumeții) la atracții în interior (de exemplu, muzee) din cauza schimbărilor sezoniere de vreme – un caz clasic de derivă conceptuală. Pentru a detecta astfel de schimbări, folosim detectarea derivei bazată pe performanță, unde monitorizăm metrici precum log loss, AUC-ROC sau scorul F1 pe o fereastră mobilă. O scădere bruscă a acestor metrici, chiar dacă datele de intrare rămân stabile, declanșează o alertă. Folosim și analiza distribuției erorilor, unde comparăm distribuția erorilor de predicție (de exemplu, reziduurile în sarcini de regresie) față de o linie de bază. De exemplu, în platforma eDezvoltator.ro, o schimbare în distribuția erorilor de la o distribuție normală la una bimodală a indicat faptul că modelul subestima sistematic prețurile pentru proprietățile de lux, în timp ce le supraestima pe cele de gamă medie. Această constatare ne-a condus să reantrenăm modelul cu o abordare de eșantionare stratificată pentru a asigura o reprezentare echilibrată pe segmentele de preț.
Atribuirea caracteristicilor joacă un rol pivotal în înțelegerea comportamentului modelului în timp, în special pentru modelele de tip cutie neagră, cum ar fi rețelele neuronale profunde sau LLM-urile. La CELSO, folosim valorile SHAP (SHapley Additive exPlanations) și LIME (Local Interpretable Model-agnostic Explanations) pentru a descompune predicțiile modelului în contribuțiile caracteristicilor individuale. Pentru sistemul UVPA, care procesează cererile cetățenilor folosind Mistral Large, generăm valori SHAP pentru fiecare token de intrare pentru a identifica care părți ale unei întrebări au influențat cel mai mult răspunsul modelului. Acest lucru nu doar ajută la depanare, ci și la detectarea schimbărilor în importanța caracteristicilor. De exemplu, am observat că caracteristica „tipul documentului” (de exemplu, carte de identitate, factură utilități) a devenit cel mai influent factor în determinarea timpului de procesare a cererilor cetățenilor, în timp ce anterior „categoria cererii” (de exemplu, întrebare fiscală, cerere de autorizație) fusese caracteristica dominantă. Această schimbare a indicat faptul că modelul începutuse să prioritzeze birocrația față de conținutul real al cererii, probabil din cauza schimbărilor în fluxurile de lucru municipale. Prin monitorizarea importanței caracteristicilor în timp, putem reantrena proactiv modelele înainte ca performanța să se degradeze. Pentru modelele bazate pe date tabelare, cum ar fi cel folosit în sistemul de diagnostic TASSID, urmărim importanța caracteristicilor prin permutare pentru a detecta când caracteristici anterior irelevante (de exemplu, „temperatura ambientă”) devin critice din cauza schimbărilor în comportamentul echipamentelor.
Alerta automatizată este coloana vertebrală a oricărui sistem eficient de monitorizare a modelelor, deoarece permite un răspuns rapid la anomalii înainte ca acestea să escaladeze în eșecuri. La CELSO, implementăm un sistem de alertare pe mai multe niveluri care categorizează anomaliile în funcție de severitate și urgență. Alertele de Nivel 1, care indică eșecuri critice (de exemplu, o scădere cu 30% a acurateței sau un PSI > 0,5), declanșează notificări imediate prin Slack, e-mail și SMS către echipa de știință a datelor de serviciu. Alertele de Nivel 2, pentru probleme mai puțin severe (de exemplu, o creștere cu 10% a latenței sau un PSI > 0,25), sunt înregistrate într-un panou de control și revizuite în timpul întâlnirilor zilnice. Alertele de Nivel 3, care includ abateri minore (de exemplu, o schimbare de 5% în distribuția predicțiilor), sunt agregate în rapoarte săptămânale pentru analiză de tendințe. De exemplu, în platforma ASPA, o alertă de Nivel 1 a fost declanșată când rata de adopție pentru o anumită rasă a scăzut cu 40% într-o singură săptămână. Investigația a relevat că o nouă reglementare municipală schimbase criteriile de adopție pentru acea rasă, făcând recomandările modelului învechite. Alerta ne-a permis să reantrenăm modelul în 24 de ore, minimizând impactul asupra adopțiilor. Pentru a reduce oboseala cauzată de alerte, folosim praguri adaptive care se ajustează în funcție de modelele istorice. De exemplu, sistemul UVPA înregistrează latențe mai mari în orele de vârf (9 AM–12 PM), așa că ajustăm dinamic pragurile de alertă pentru această perioadă pentru a evita falsurile pozitive.
Implementările în umbră (shadow deployments) sunt o tehnică puternică pentru validarea noilor modele împotriva liniilor de bază de producție fără a expune utilizatorii la modificări netestate. Într-o implementare în umbră, noul model rulează în paralel cu modelul de producție, primind aceleași date de intrare, dar fără a influența ieșirea finală. Predicțiile ambelor modele sunt înregistrate și comparate pentru a identifica discrepanțe. La CELSO, folosim implementări în umbră pe scară largă pentru sisteme cu risc ridicat, cum ar fi UVPA și instrumentele de diagnostic TASSID. De exemplu, când am actualizat LLM-ul subiacent al UVPA de la Mistral 7B la Mistral Large, am rulat o implementare în umbră timp de două săptămâni, în care am comparat răspunsurile noului model cu cele ale modelului de producție folosind scoruri BLEU, similaritate semantică (prin distanță cosinus pe îmbinări) și evaluare umană. Implementarea în umbră a relevat că noul model era cu 18% mai precis în gestionarea întrebărilor complexe, dar avea o latență cu 7% mai mare. Această constatare ne-a permis să optimizăm conducta de inferență a modelului înainte de implementarea completă, asigurându-ne că actualizarea nu încalcă SLA-ul. Pentru sarcini de clasificare, folosim testul McNemar pentru a compara statistic performanța modelului în umbră cu cea a liniei de bază de producție. Dacă valoarea p este sub 0,05, concluzionăm că noul model este semnificativ mai bun (sau mai rău) și procedăm în consecință.
Jurnalizarea este eroul nesărbătorit al monitorizării modelelor, deoarece furnizează datele brute necesare pentru depanare, audit și conformitate. La CELSO, respectăm o strategie de jurnalizare pe trei niveluri: date de intrare, predicții și metadate. Jurnalele datelor de intrare capturează caracteristicile brute alimentate în model, inclusiv marcaje de timp, valori ale caracteristicilor și orice pași de preprocesare aplicați. Pentru platforma eDezvoltator.ro, jurnalizăm peste 50 de caracteristici pe proprietate, cum ar fi locația, mărimea, prețul și dotările, împreună cu HTML-ul brut de pe site-ul sursă (pentru datele obținute prin web scraping). Jurnalele de predicție stochează ieșirea modelului, scorurile de încredere și orice pași de post-procesare. Pentru platforma ASPA, jurnalizăm scorul comportamental atribuit fiecărui câine, împreună cu valorile SHAP pentru primele 10 caracteristici influente. Jurnalele de metadate includ informații contextuale, cum ar fi versiunea modelului, mediul de implementare și detaliile sesiunii utilizatorului. Această jurnalizare granulară a fost esențială în depanarea cazurilor limită. De exemplu, când un utilizator a raportat că sistemul UVPA respingea o factură utilităților valabilă, am urmat problema până la un pas de preprocesare care parsa incorect formatul datei documentului. Fără jurnalele datelor de intrare, diagnosticarea acestei probleme ar fi fost aproape imposibilă. Pentru conformitatea reglementară, cum ar fi GDPR sau Legea UE privind IA, jurnalizăm și informații despre linia datelor, inclusiv sursa fiecărei caracteristici și orice transformări aplicate. Acest lucru ne asigură că putem demonstra transparență și responsabilitate în sistemele noastre AI.
Monitorizarea echității și a bias-ului în modele nu este doar o imperativă etică, ci și o necesitate de afaceri, în special pentru sistemele care interacționează cu grupuri diverse de utilizatori. La CELSO, monitorizăm echitatea folosind o combinație de metrici de echitate de grup (de exemplu, paritate demografică, oportunitate egală) și metrici de echitate individuală (de exemplu, consistență). Pentru platforma ASPA, care atribuie scoruri comportamentale câinilor, urmărim echitatea pe rase, vârste și mărimi pentru a ne asigura că niciun grup nu este dezavantajat sistematic. Când am detectat că câinii seniori primeau scoruri mai mici din cauza caracteristicilor legate de vârstă (de exemplu, „nivel de energie”), am ajustat modelul pentru a prioriza trăsăturile comportamentale față de factorii demografici. Pentru sistemul UVPA, monitorizăm echitatea pe grupuri demografice (de exemplu, vârstă, gen, sector) pentru a ne asigura că calitatea răspunsurilor nu variază în funcție de caracteristicile utilizatorilor. Folosim și testarea echității contrafactuale, unde generăm puncte de date sintetice cu atribute sensibile modificate (de exemplu, schimbarea sectorului utilizatorului) și comparăm predicțiile modelului. Dacă predicțiile diferă semnificativ, acest lucru indică un potențial bias. Pentru a mitiga bias-ul, folosim tehnici precum reponderare, debiasare adversarială și antrenare sensibilă la echitate. De exemplu, în sistemul de diagnostic TASSID, am descoperit că modelul era mai puțin precis pentru unitățile de refrigerare mai vechi din cauza lipsei datelor de antrenare pentru acest segment. Am remediat acest lucru colectând date suplimentare pentru unitățile mai vechi și reantrenând modelul cu o constrângere de echitate pentru a asigura performanță egală pe toate grupele de vârstă.
Monitorizarea latenței și a debitului sunt critice pentru serviciile AI cu SLA-uri stricte, deoarece chiar și întârzieri minore pot degrada experiența utilizatorului și pot încălca obligațiile contractuale. La CELSO, monitorizăm latența la mai multe niveluri: latența inferenței (timpul necesar modelului pentru a genera o predicție), latența end-to-end (timpul de la trimiterea cererii până la livrarea răspunsului) și debitul (numărul de cereri procesate pe secundă). Pentru sistemul UVPA, care trebuie să răspundă la întrebările cetățenilor în mai puțin de 5 secunde, folosim monitorizare bazată pe percentile pentru a urmări latențele P50, P90 și P99. O latență P99 peste 5 secunde declanșează o alertă de Nivel 1, deoarece indică faptul că 1% dintre utilizatori întâmpină întârzieri inacceptabile. Pentru a diagnostica problemele de latență, folosim urmărirea distribuită, unde instrumentăm conducta de inferență a modelului cu identificatori unici pentru a urmări timpul petrecut în fiecare componentă (de exemplu, preprocesare, inferență a modelului, post-procesare). Acest lucru ne-a ajutat să identificăm gâturile de sticlă, cum ar fi un serviciu lent de OCR în sistemul UVPA care adăuga 2 secunde la timpul de procesare pentru cererile bazate pe documente. Monitorizarea debitului este la fel de importantă pentru sistemele cu volume mari de cereri. Pentru platforma Transfăgărășan.Travel, care gestionează peste 1.000 de cereri pe secundă în orele de vârf, monitorizăm debitul folosind cereri pe secundă (RPS) și rate ale erorilor. O scădere bruscă a RPS, împreună cu o creștere a ratelor de eroare, indică adesea o problemă de scalare, cum ar fi resurse GPU insuficiente pentru conducta de inferență a modelului. Pentru a aborda acest lucru, folosim politici de scalare automată care ajustează dinamic numărul de servere de inferență în funcție de cerere.
Integrarea monitorizării modelelor în pipeline-urile CI/CD asigură faptul că modelele sunt validate și îmbunătățite în mod continuu fără a perturba producția. La CELSO, tratăm monitorizarea modelelor ca un cetățean de rang întâi în fluxurile noastre CI/CD, cu verificări automate care rulează la fiecare etapă a pipeline-ului: dezvoltare, staging și producție. În timpul dezvoltării, folosim teste unitare pentru a valida componentele individuale ale sistemului de monitorizare, cum ar fi algoritmii de detectare a derivei sau logica de alertare. În staging, implementăm modelul într-un mediu în umbră și rulam teste de integrare pentru a verifica dacă sistemul de monitorizare capturează corect metrici precum acuratețea, latența și echitatea. De exemplu, când am actualizat modelul de diagnostic TASSID, am rulat o implementare în staging timp de o săptămână, în care am injectat deriva sintetică în datele de intrare pentru a testa capacitatea sistemului de monitorizare de a o detecta. Testele au relevat că pragurile PSI erau prea indulgenți, ceea ce ne-a determinat să le ajustăm înainte de implementarea în producție. În producție, folosim implementări canary pentru a implementa treptat actualizările modelului către un subset de utilizatori, monitorizând performanța noului model în timp real. Dacă implementarea canary îndeplinește criteriile de succes predefinite (de exemplu, acuratețe > 95%, latență < 2 secunde), actualizarea este promovată către întreaga bază de utilizatori. Dacă nu, implementarea este revenită automat la versiunea anterioară. Această abordare ne-a permis să implementăm actualizări pentru sistemul UVPA fără timp de nefuncționare și cu risc minim.
Testarea A/B este o piatră de temelie a strategiei noastre de validare a modelelor, deoarece oferă dovezi empirice privind superioritatea unui nou model față de linia de bază de producție. Spre deosebire de implementările în umbră, care compară modelele în izolare, testarea A/B expune ambele modele utilizatorilor reali și măsoară impactul lor asupra metricilor de afaceri. La CELSO, folosim testarea A/B pentru toate actualizările majore ale modelelor, inclusiv sistemul UVPA, instrumentul de diagnostic TASSID și platforma de adopție ASPA. De exemplu, când am actualizat LLM-ul subiacent al UVPA, am rulat un test A/B timp de patru săptămâni, în care 50% din întrebările utilizatorilor erau direcționate către noul model și 50% către vechiul model. Am măsurat impactul asupra mai multor metrici, inclusiv acuratețea răspunsurilor (prin evaluare umană), satisfacția utilizatorilor (prin scorurile de feedback) și timpul de procesare. Rezultatele au arătat că noul model a îmbunătățit acuratețea cu 18%, dar a crescut timpul de procesare cu 7%. Pe baza acestor constatări, am optimizat conducta de inferență a modelului pentru a reduce latența înainte de implementarea completă. Pentru sarcini de clasificare, folosim testarea ipotezelor statistice (de exemplu, teste t, teste chi-pătrat) pentru a determina dacă diferențele în metricile de performanță sunt semnificative din punct de vedere statistic. Dacă valoarea p este sub 0,05, concluzionăm că noul model este mai bun și procedăm cu implementarea. Pentru a asigura echitatea, monitorizăm și testul A/B pentru dezechilibrul demografic, asigurându-ne că niciun grup de utilizatori nu este atribuit disproporționat unei variante.
Monitorizarea modelelor de tip cutie neagră, cum ar fi rețelele neuronale profunde sau LLM-urile, prezintă provocări unice din cauza lipsei de interpretabilitate. Spre deosebire de modelele liniare sau arbori de decizie, unde importanța caracteristicilor poate fi inspectată direct, modelele de tip cutie neagră necesită tehnici indirecte pentru a înțelege comportamentul lor. La CELSO, abordăm această provocare printr-o combinație de metode de explicabilitate post-hoc, modelare surrogate și testare adversarială. Pentru sistemul UVPA, care utilizează Mistral Large, folosim valorile SHAP și vizualizarea atenției pentru a explica predicțiile modelului. Valorile SHAP descompun fiecare predicție în contribuțiile token-urilor individuale de intrare, în timp ce vizualizarea atenției evidențiază pe ce părți ale intrării s-a concentrat modelul. Acest lucru a fost inestimabil în depanarea cazurilor limită, cum ar fi când modelul a clasificat greșit o cerere a unui cetățean din cauza unei formulări ambigue. Pentru modelele bazate pe date tabelare, cum ar fi cel folosit în sistemul de diagnostic TASSID, antrenăm modele surrogate (de exemplu, arbori de decizie sau modele liniare) pentru a aproxima comportamentul modelului de tip cutie neagră. Importanța caracteristicilor modelului surrogate oferă informații despre care variabile conduc predicțiile. Folosim și testare adversarială, unde generăm intrări sintetice concepute pentru a păcăli modelul (de exemplu, prin perturbarea valorilor caracteristicilor sau introducerea de zgomot). Dacă predicțiile modelului se schimbă semnificativ în răspuns la perturbații minore, acest lucru indică faptul că modelul se bazează pe corelații false în loc de modele robuste. De exemplu, în platforma ASPA, testarea adversarială a relevat că modelul era prea sensibil la caracteristica „rasă”, ceea ce ne-a determinat să îl reantrenăm cu o constrângere de echitate pentru a reduce această dependență.
Explicabilitatea nu este doar o cerință tehnică, ci și una reglementară, în special pentru sistemele supuse Legii UE privind IA sau GDPR. La CELSO, implementăm explicabilitatea în monitorizarea de producție printr-o combinație de explicații în timp real, jurnale de audit și panouri interactive. Pentru sistemul UVPA, generăm explicații în timp real pentru fiecare predicție folosind valorile SHAP, care sunt afișate alături de răspunsul modelului. Acest lucru permite angajaților municipali să înțeleagă de ce a fost dat un anumit răspuns și, dacă este necesar, să îl suprascriă. Pentru audit, jurnalizăm toate explicațiile, împreună cu datele de intrare și versiunea modelului, pentru a asigura trasabilitatea. Panourile interactive, construite folosind unelte precum Grafana și Tableau, permit părților interesate să exploreze comportamentul modelului în timp. De exemplu, panoul ASPA include un grafic de tendință a importanței caracteristicilor care arată cum s-a schimbat influența fiecărei caracteristici (de exemplu, „nivel de energie”, „agresivitate”) în ultimele șase luni. Acest lucru a ajutat personalul adăpostului să identifice schimbări în comportamentul modelului, cum ar fi când „vârsta” a devenit un factor mai influent din cauza schimbărilor în tendințele de adopție. Pentru conformitatea reglementară, oferim și explicații contrafactuale, care arată cum ar schimba predicția modelului modificarea anumitor caracteristici de intrare. De exemplu, în platforma eDezvoltator.ro, utilizatorii pot vedea cum ar afecta creșterea suprafeței proprietății cu 10 metri pătrați prețul estimat, ajutându-i să înțeleagă sensibilitatea modelului la diferite caracteristici.
Monitorizarea schimbărilor în importanța caracteristicilor este o modalitate proactivă de a detecta modificările subiacente ale datelor înainte ca acestea să degradeze performanța modelului. La CELSO, urmărim importanța caracteristicilor folosind importanța prin permutare, valorile SHAP și ponderile atenției, în funcție de tipul modelului. Pentru modelele bazate pe date tabelare, cum ar fi cel folosit în sistemul de diagnostic TASSID, calculăm importanța prin permutare săptămânal și o comparăm cu o linie de bază derivată din datele de antrenare. O schimbare semnificativă în importanță (de exemplu, o caracteristică care trece de pe locul 10 pe locul 2 în topul celor mai importante) declanșează o alertă, deoarece indică adesea că relația caracteristicii cu variabila țintă s-a schimbat. De exemplu, am observat că caracteristica „temperatura ambientă” devenise cel mai important predictor al defectelor compresoarelor în sistemul TASSID, în timp ce anterior „orele de funcționare” fuseseră factorul dominant. Această schimbare a fost urmarită până la o actualizare a firmware-ului unităților de refrigerare, care modificase comportamentul lor termic. Prin monitorizarea importanței caracteristicilor, am putut reantrena modelul cu datele actualizate înainte ca performanța să se degradeze. Pentru LLM-uri, cum ar fi sistemul UVPA, urmărim ponderile atenției pentru a identifica care token-uri de intrare sunt cele mai influente în predicțiile modelului. O creștere bruscă a atenției acordate unui anumit token (de exemplu, „urgent”) poate indica faptul că modelul se supraîncadrează pe un anumit stil de formulare, care s-ar putea să nu se generalizeze la alți utilizatori.
Validarea cu omul în buclă (human-in-the-loop) este esențială pentru sistemele de monitorizare în care metricile automate nu pot captura pe deplin complexitatea comportamentului modelului. La CELSO, integrăm recenzenți umani în fluxurile noastre de monitorizare pentru sisteme cu risc ridicat, cum ar fi platformele UVPA și ASPA. Pentru sistemul UVPA, avem o echipă de angajați municipali care revizuiesc un eșantion aleatoriu de 1% din predicțiile modelului zilnic. Recenzenții evaluează acuratețea, relevanța și tonul răspunsurilor, oferind feedback care este jurnalizat și analizat pentru tendințe. Această validare umană a fost crucială în detectarea problemelor subtile, cum ar fi tendința modelului de a folosi un limbaj prea formal pentru anumite tipuri de întrebări. Pentru platforma ASPA, personalul adăpostului revizuiește scorurile comportamentale atribuite câinilor, marcând orice scor care pare inconsistent cu observațiile lor. Acest feedback este folosit pentru a reantrena modelul și a-i ajusta ponderile caracteristicilor. Pentru a asigura scalabilitatea, folosim învățare activă pentru a prioriza predicțiile pentru revizuire umană. De exemplu, în sistemul UVPA, priorizăm întrebările cu scoruri scăzute de încredere sau valori SHAP mari pentru token-uri ambigue, deoarece acestea sunt cele mai susceptibile de a conține erori. Această abordare a redus sarcina de revizuire umană cu 60%, menținând în același timp o acuratețe ridicată.
Cazurile limită și evenimentele rare reprezintă o provocare unică pentru monitorizarea modelelor, deoarece acestea cad adesea în afara modelelor statistice capturate în timpul antrenamentului. La CELSO, abordăm această provocare printr-o combinație de generare de date sintetice, detectare a anomaliilor și revizuire umană. Pentru sistemul de diagnostic TASSID, care trebuie să gestioneze defecte rare ale echipamentelor (de exemplu, scurgeri de agent frigorific în 0,1% din unități), generăm puncte de date sintetice care simulează aceste cazuri limită. Datele sintetice sunt folosite pentru a testa capacitatea modelului de a detecta defecte rare și pentru a antrena sistemul de monitorizare să le marcheze. Folosim și algoritmi de detectare a anomaliilor, cum ar fi Păduri de Izolare (Isolation Forests) și Autoencodere, pentru a identifica punctele de date de intrare care deviază semnificativ de la distribuția de antrenare. De exemplu, în platforma eDezvoltator.ro, o Pădure de Izolare a detectat o listare de proprietate cu un preț pe metru pătrat neobișnuit de mare, care s-a dovedit a fi o eroare de introducere a datelor. Revizuirea umană este ultima linie de apărare pentru cazurile limită. În sistemul UVPA, direcționăm toate predicțiile cu scoruri de încredere sub 0,7 către recenzenți umani, care le validează sau corectează. Aceasta s-a dovedit deosebit de eficientă în gestionarea întrebărilor rare sau ambigue, cum ar fi cele care implică terminologie juridică complexă.
Panourile de control personalizate sunt fereastra prin care părțile interesate interacționează cu datele de monitorizare a modelelor, iar designul lor poate avea un impact semnificativ asupra eficacității sistemului de monitorizare. La CELSO, construim panouri de control specifice rolurilor, care răspund nevoilor diferitelor părți interesate, de la oamenii de știință ai datelor până la liderii de afaceri. Pentru oamenii de știință ai datelor, oferim panouri tehnice care afișează metrici granulare, cum ar fi PSI, valori SHAP și distribuții de predicții. Aceste panouri includ vizualizări interactive, cum ar fi hărți termice de derivă și grafice de tendință a importanței caracteristicilor, care permit oamenilor de știință ai datelor să diagnosticheze rapid problemele. De exemplu, panoul TASSID include o hartă termică de derivă care arată care caracteristici au înregistrat cele mai semnificative schimbări în ultima lună, ajutând oamenii de știință ai datelor să-și priorizeze investigațiile. Pentru părțile interesate din afaceri, oferim panouri de nivel înalt care se concentrează pe KPI-uri de afaceri, cum ar fi acuratețea, latența și satisfacția utilizatorilor. Panoul ASPA, de exemplu, include un grafic de tendință a ratelor de adopție pe rasă, permițând personalului adăpostului să urmărească impactul modelului asupra operațiunilor lor. Pentru ofițerii de conformitate, oferim panouri de audit care afișează metrici de echitate, rezultate ale detectării bias-ului și informații despre linia datelor. Panoul UVPA include o hartă termică de echitate care arată cum variază calitatea răspunsurilor pe grupuri demografice, asigurându-se că sistemul respectă cerințele Legii UE privind IA în ceea ce privește transparența și nediscriminarea.
Buclele de feedback sunt o sabie cu două tăișuri în sistemele AI: în timp ce pot îmbunătăți performanța modelului prin incorporarea de noi date, pot duce și la degradarea modelului dacă nu sunt monitorizate cu atenție. La CELSO, urmărim buclele de feedback în sisteme precum UVPA și ASPA, unde interacțiunile utilizatorilor (de exemplu, clicuri, corecții sau evaluări) sunt folosite pentru a actualiza modelul. De exemplu, în sistemul UVPA, feedback-ul cetățenilor privind acuratețea răspunsurilor este jurnalizat și folosit pentru a reantrena modelul. Totuși, monitorizăm această buclă de feedback pentru a ne asigura că nu introduce bias sau supraîncadrare. În mod specific, urmărim distribuția scorurilor de feedback pentru a detecta schimbări în comportamentul utilizatorilor. O creștere bruscă a feedback-ului negativ, de exemplu, ar putea indica faptul că modelul întâmpină dificultăți cu un nou tip de întrebare. Monitorizăm și impactul feedback-ului asupra performanței modelului prin compararea acurateței modelului înainte și după reantrenare. Dacă acuratețea scade, acest lucru sugerează că bucla de feedback introduce zgomot în loc de semnal. Pentru a mitiga acest lucru, folosim reantrenare ponderată, unde feedback-ul de la utilizatorii de încredere (de exemplu, angajații municipali) primește o pondere mai mare decât feedback-ul de la cetățeni. Acest lucru asigură faptul că modelul se îmbunătățește fără a fi influențat de valorile aberante sau intrările malitioase.
Versionarea este un aspect critic, dar adesea neglijat, al monitorizării modelelor, deoarece permite trasabilitatea, reproducibilitatea și capacitatea de revenire la versiuni anterioare. La CELSO, versionăm fiecare componentă a sistemelor noastre AI, inclusiv modelele, datele de antrenare, pipeline-urile de preprocesare și configurațiile de monitorizare. Pentru modele, folosim versionare semantică (de exemplu, v1.2.3), unde versiunea majoră indică modificări majore, versiunea minoră indică îmbunătățiri compatibile înapoi, iar versiunea de patch indică corecții de bug-uri. Pentru datele de antrenare, versionăm seturile de date folosind hashing bazat pe conținut, unde fiecare set de date primește un hash unic bazat pe conținutul său. Acest lucru asigură faptul că putem reproduce exact datele de antrenare folosite pentru orice versiune a modelului. Pentru pipeline-urile de preprocesare, versionăm codul și dependințele folosind containere Docker și etichete Git. Acest lucru ne permite să recreăm mediul exact în care a fost antrenat un model, asigurând reproducibilitatea. Pentru configurațiile de monitorizare, versionăm pragurile, regulile de alertare și panourile de control pentru a asigura consistența pe implementări. Versionarea a fost instrumentală în depanarea problemelor și revenirea la versiuni anterioare. De exemplu, când o actualizare recentă a sistemului UVPA a introdus un bug care a făcut ca modelul să clasifice greșit anumite tipuri de întrebări, am putut reveni la versiunea anterioară în câteva minute, minimizând timpul de nefuncționare. Versionarea permite și implementări canary, unde implementăm treptat actualizări către un subset de utilizatori și monitorizăm impactul lor înainte de implementarea completă.
Datele sintetice sunt un instrument puternic pentru testarea sistemelor de monitorizare a modelelor, deoarece ne permit să simulăm cazuri limită, derivă și eșecuri într-un mediu controlat. La CELSO, folosim pe scară largă date sintetice pentru a valida pipeline-urile noastre de monitorizare înainte de a le implementa în producție. De exemplu, când am dezvoltat sistemul de monitorizare pentru instrumentul de diagnostic TASSID, am generat puncte de date sintetice care simulau diferite tipuri de derivă, cum ar fi schimbarea covariatei (modificări în distribuția intrărilor), schimbarea etichetei (modificări în distribuția ieșirilor) și deriva conceptuală (modificări în relația intrare-ieșire). Apoi am testat capacitatea sistemului de monitorizare de a detecta aceste derive folosind teste statistice precum PSI și KS. Testele au relevat că sistemul era prea sensibil la fluctuații minore în datele de intrare, ceea ce ne-a determinat să ajustăm pragurile pentru a reduce falsurile pozitive. Datele sintetice sunt folosite și pentru a testa robustețea modelelor noastre față de intrări adversariale. Pentru sistemul UVPA, am generat întrebări sintetice concepute pentru a păcăli modelul, cum ar fi cele care conțineau formulări ambigue sau terminologie juridică rară. Prin monitorizarea răspunsurilor modelului la aceste întrebări, am putut identifica slăbiciunile în gestionarea cazurilor limită și l-am reantrenat în consecință. Datele sintetice sunt deosebit de valoroase pentru testarea evenimentelor rare, cum ar fi defectele echipamentelor în sistemul TASSID sau cererile complexe ale cetățenilor în sistemul UVPA. Generând puncte de date sintetice care simulează aceste evenimente, ne asigurăm că sistemul de monitorizare este capabil să le detecteze în producție.
Monitorizarea scorurilor de încredere ale modelului este esențială pentru detectarea predicțiilor nesigure care pot necesita intervenție umană. La CELSO, urmărim scorurile de încredere pentru toate modelele noastre, folosind tehnici precum Monte Carlo dropout, rețele neuronale bayesiene și metode de ansamblu pentru a estima incertitudinea. Pentru sistemul UVPA, care utilizează Mistral Large, folosim Monte Carlo dropout pentru a genera multiple predicții pentru fiecare intrare și calculăm varianța acestor predicții ca măsură a incertitudinii. Predicțiile cu o varianță peste un prag predefinit (de exemplu, 0,3) sunt marcate pentru revizuire umană. Această abordare a redus falsurile pozitive în cererile cetățenilor cu 40%, deoarece predicțiile nesigure sunt escaladate către angajații municipali pentru validare. Pentru sarcini de clasificare, cum ar fi sistemul de scoruri comportamentale din platforma ASPA, monitorizăm probabilitățile softmax ale predicțiilor modelului. O probabilitate softmax aproape de 0,5 indică o incertitudine mare, în timp ce o probabilitate aproape de 1,0 indică o încredere mare. Urmărim și calibrarea scorurilor de încredere, asigurându-ne că o predicție cu un scor de încredere de 0,9 este corectă în 90% din cazuri. Modelele slab calibrate pot duce la încredere excesivă în predicții incorecte, ceea ce este deosebit de periculos în sistemele cu risc ridicat, cum ar fi UVPA. Pentru a îmbunătăți calibrarea, folosim tehnici precum scalarea temperaturii și scalarea Platt, care ajustează scorurile de încredere ale modelului pentru a reflecta mai bine acuratețea sa reală.
Declanșatoarele automate de reantrenare sunt ultima piesă a puzzle-ului de monitorizare a modelelor, deoarece permit sistemului să se adapteze la derivă și degradare fără intervenție manuală. La CELSO, implementăm declanșatoare de reantrenare pe baza unei combinații de metrici de performanță, detectare a derivei și KPI-uri de afaceri. De exemplu, în sistemul de diagnostic TASSID, declanșăm reantrenarea dacă oricare dintre următoarele condiții sunt îndeplinite: (1) acuratețea modelului scade cu mai mult de 5%, (2) PSI pentru orice caracteristică depășește 0,25 sau (3) rata de reparare din prima încercare scade cu mai mult de 10%. Aceste declanșatoare sunt concepute pentru a echilibra nevoia de stabilitate a modelului cu cea de adaptabilitate. Când un declanșator este activat, sistemul colectează automat noi date de antrenare, reantrenează modelul și îl implementează într-un mediu în umbră pentru validare. Dacă implementarea în umbră îndeplinește criteriile de succes predefinite (de exemplu, acuratețe > 95%, latență < 2 secunde), noul model este promovat în producție. Pentru a ne asigura că reantrenarea nu introduce noi probleme, monitorizăm și stabilitatea procesului de reantrenare, urmărim metrici precum varianța în performanța modelului pe parcursul rulărilor de reantrenare. Pentru sistemul UVPA, folosim învățare online pentru a actualiza modelul incremental cu noi date, în loc să îl reantrenăm de la zero. Această abordare reduce costul computational al reantrenării și asigură faptul că modelul se adaptează rapid la schimbările în comportamentul utilizatorilor. Totuși, învățarea online necesită monitorizare atentă pentru a preveni uitarea catastrofală, unde modelul își pierde capacitatea de a gestiona tipuri mai vechi de întrebări. Pentru a mitiga acest lucru, folosim consolidarea ponderilor elastice (EWC), o tehnică care penalizează modificările aduse ponderilor importante pentru sarcini mai vechi.
Implementarea monitorizării modelelor bazate pe AI nu este un efort punctual, ci un proces continuu care evoluează împreună cu modelele pe care le supraveghează. La CELSO, experiența noastră cu sisteme precum UVPA, instrumentul de diagnostic TASSID și platforma ASPA ne-a învățat că monitorizarea nu este doar despre detectarea eșecurilor – este despre asigurarea proactivă a faptului că sistemele AI rămân aliniate cu obiectivele de afaceri, așteptările utilizatorilor și standardele etice. Combinând rigurozitatea statistică cu informații specifice domeniului, am construit sisteme de monitorizare care nu doar prind eșecurile silențioase, ci și conduc la îmbunătățiri continue. De exemplu, munca noastră cu sistemul de diagnostic TASSID a redus timpul de detectare și rezolvare a degradării modelului de la săptămâni la ore, în timp ce monitorizarea sistemului UVPA a asigurat faptul că cererile cetățenilor sunt gestionate atât cu rapiditate, cât și cu acuratețe. Pe măsură ce sistemele AI devin din ce în ce mai complexe și integrate în fluxurile de lucru critice, importanța monitorizării robuste a modelelor va crește doar. Tehnicile și strategiile prezentate în acest articol – de la detectarea derivei în timp real până la declanșatoarele automate de reantrenare – oferă un plan pentru construirea unor sisteme de monitorizare la fel de dinamice și adaptive precum modelele pe care le supraveghează. Viitorul AI nu constă doar în construirea de modele mai inteligente, ci și în asigurarea faptului că acestea rămân fiabile, echitabile și eficiente în fața unei lumi în continuă schimbare.