Monitorizarea model drift și a schimbărilor de comportament în LLMOps, Evaluare & Securitate AI

Cum observi când calitatea unei aplicații LLM se schimbă în timp: modele fixate, evaluări periodice pe un set de control și urmărirea distribuțiilor din producție.

Configurare & comandă
# Surse de drift într-o aplicație LLM
1. Schimbare de model -> alias mutat pe alt snapshot, migrare după retragerea modelului
2. Data / input drift -> utilizatorii pun alt tip de întrebări decât cele din teste
3. Concept drift      -> realitatea s-a schimbat (o procedură nouă, o lege nouă)
4. Schimbări proprii  -> prompt, date RAG, versiuni de biblioteci

Comportamentul unei aplicații LLM se poate schimba chiar dacă nu modifici codul. Cauzele tipice sunt schimbarea modelului (un alias care trece pe o versiune nouă, migrarea forțată când un model este retras), schimbarea întrebărilor puse de utilizatori (data drift) și schimbarea realității descrise de documente (concept drift).

Furnizorii publică datele de retragere a modelelor. La Anthropic, fiecare ID de model este un snapshot fixat (inclusiv ID-urile fără dată, de la generația 4.6 încolo), iar retragerea se anunță cu cel puțin 60 de zile înainte pentru modelele lansate public. De exemplu claude-3-7-sonnet-20250219 a fost retras pe 19 februarie 2026; cererile către un model retras eșuează. OpenAI publică și el termene minime de notificare pe pagina de deprecieri.

Detectarea se face prin evaluări periodice pe un set de control (aceleași întrebări, aceiași evaluatori, rulate programat sau la fiecare schimbare de model) și prin urmărirea distribuțiilor din producție: lungimea răspunsurilor, rata de refuz, rata de JSON invalid, scorurile automate, apelurile de unelte.

Concepte cheie și caracteristici

Concept / Parametru Descriere practică
ID de model fixat Folosește ID-ul exact al modelului, nu un alias care se poate muta. Verifică pe pagina furnizorului dacă ID-ul ales este un snapshot fixat.
Set de control Un set mic și stabil de întrebări cu rezultate așteptate, rulat periodic și la fiecare schimbare de model.
Metrici de distribuție Lungimea răspunsurilor, rata de refuz, JSON invalid, scoruri de evaluare, frecvența apelurilor de unelte.
Teste statistice Testul Kolmogorov–Smirnov sau PSI (Population Stability Index) compară distribuția curentă cu una de referință.
Calendar de retrageri Paginile de deprecieri ale furnizorilor (Anthropic, OpenAI) cu datele de retragere și modelele recomandate în loc.

Exemple practice și scenarii reale

Exemplul 1: Model fixat în cod

MODEL = "claude-sonnet-5-5"   # ID fixat; retragere nu mai devreme de 28 septembrie 2027
response = client.messages.create(model=MODEL, max_tokens=1024, messages=mesaje)

Exemplul 2: Evaluare de control programată

Același fișier de teste, rulat zilnic; un rezultat sub prag declanșează alerta din CI.

# crontab: în fiecare zi la 06:00
0 6 * * * cd /srv/asistent && deepeval test run teste_control.py

Exemplul 3: Comparația distribuției lungimii răspunsurilor

from scipy.stats import ks_2samp

stat, p = ks_2samp(lungimi_saptamana_trecuta, lungimi_azi)
if p < 0.01:
    trimite_alerta("Distribuția lungimii răspunsurilor s-a schimbat")

Greșeli frecvente și capcane

  • Afli de retragerea unui model din erorile din producție. Urmărește pagina de deprecieri a furnizorului și testează înlocuitorul înainte de data retragerii.
  • Schimbi modelul fără să rulezi setul de control. Orice schimbare de model este o lansare nouă și trebuie evaluată la fel ca o schimbare de cod.
  • Monitorizezi doar erorile HTTP. Un model poate răspunde corect tehnic, dar mai scurt, cu alt format sau cu mai multe refuzuri.

Noțiuni și module înrudite