Sistemele RAG (Retrieval Augmented Generation) s-au bucurat de o adopție explozivă sub promisiunea reducerii deficiențelor modelelor de limbaj prin conectarea lor la surse de date customizate. În loc să se bazeze exclusiv pe cunoștințele acumulate în timpul antrenării, arhitectura RAG își propune reducerea riscului de halucinații prin ancorarea modelelor de limbaj în fapte și date relevante.
Totuși, realitatea este mai complexă. Aplicațiile de tip RAG vin cu provocări specifice, de la asigurarea calității datelor, la securitatea documentelor indexate și a proprietății intelectuale, și până la costuri ce pot crește repede în lipsa unei planificări adecvate.
În articolul de față analizez unele dintre cele mai relevante riscuri ale sistemelor RAG, în general și ale unui asistent IA tehnic, în particular: degradarea calității atunci când sursa de informații conține date contradictorii sau învechite, vulnerabilități de securitate care pot expune informații sensibile și provocările pe care le ridică optimizarea performanței și a costurilor. Înțelegerea acestor provocări este esențială pentru oricine plănuiește să implementeze RAG în mod responsabil și eficient.
Sistemul asupra căruia ne îndreptăm atenția este din sfera suportului tehnic și are la bază arhitectura RAG. Strategia companiilor de a adopta inteligența artificială în acest domeniu nu vine ca o surpriză. Conform articolului "Life is too short to RTFM", doar 25% dintre oameni citesc manualul de instrucțiuni, ceea ce se transformă rapid în apeluri către serviciul de suport sau produse defecte. Oferirea unei experiențe interactive cu un asistent tehnic, accesibil la orice oră este motivată de reducerea defectelor evitabile, reducerea costurilor și îmbunătățirea percepției asupra calității serviciilor oferite.
Un client poate adresa întrebări asistentului tehnic virtual și primi răspunsuri punctuale din trei sfere de interes:
specificații tehnice ale produselor companiei;
funcționarea necorespunzătoare a produselor și pași de depanare;
Astfel, sistemul integrează trei surse de date: manuale de utilizator, sistemul intern de tichetare al problemelor tehnice și conținut colectat de pe site-urile competitorilor. Conectarea cu sistemul intern de tichetare asigură actualitatea metodelor de depanare prin aceea că permite personalului tehnic să identifice probleme nou survenite, să creeze remedieri și să le facă accesibile utilizatorilor în cel mai scurt timp.
Datele astfel colectate urmează pașii clasici de procesare: documentele sunt parsate, textele lungi sunt fragmentate în bucăți mai mici numite chunks și apoi transformate în reprezentări numerice, sau vectori printr-un proces de embedding. Aceștia sunt stocați într-o bază de date vectorială (vector store) pentru a permite căutări bazate pe similaritate.
Atunci când un utilizator adresează o întrebare asistentului tehnic, ea este convertită la rândul ei într-o reprezentare numerică. Acesta devine elementul de referință cu care sistemul compară toți ceilalți vectori din baza de date (generați din manuale tehnice, conținut web și tichete de suport), cu scopul identificării informațiilor relevante întrebării adresate. Acestea vor fi ulterior furnizate împreună cu întrebarea unui model de limbaj (LLM) pentru a formula răspunsul final pentru utilizator.
În 2026, discuția despre risc în legătură cu sistemele de inteligență artificială capătă nuanțe multiple prin prisma reglementărilor legislative, a securității, a performanței, precum și al impactului pe care sistemul îl are asupra utilizatorilor.
Conform Actului privind Inteligența Artificială (EU AI Act), acest sistem este clasificat ca având grad limitat de risc. Pentru a fi în legalitate, trebuie respectată obligația de transparență, adică informarea utilizatorului privind interacțiunea lui cu un asistent bazat pe inteligență artificială.
Din punctul de vedere al contextului în care este utilizat, ca asistent de depanare pentru clienți, sistemul poate expune utilizatorul la riscuri de accidentare sau poate sugera acțiuni care duc la defectarea produsului. Pentru companie, asta se traduce în riscuri de natură legală, reputațională și potențial financiară. Gestionarea riscurilor constă în afișarea unui disclaimer (în scop de informare), posibilitatea escaladării către un agent uman, constrângerea modelului IA direct în instrucțiuni, implementarea unui filtru la output (înainte de a afișa răspunsul). Suplimentar, este imperativ ca istoricul conversației să fie stocat în situații de dispută legală.
Identificarea punctelor vulnerabile ale unui sistem IA presupune două condiții de bază. În primul rând, este necesară cunoașterea arhitecturii sistemului și flow-ul datelor în sistem. În al doilea rând, se impune a fi la curent cu principalii vectori de atac, cu factorii de risc specifici domeniului și a urmări constant surse relevante de informare, precum OWASP Top 10 for LLM Applications, rapoartele de red teaming de la Anthropic sau frameworkuri precum MITRE ATLAS. În continuare, sunt prezentate unele dintre cele mai frecvente riscuri la care sunt expuse sistemele RAG care accesează modele de limbaj ca serviciu plătit, prin API.
R01: Costuri nejustificate
Discuțiile utilizatorului cu asistentul virtual, în afara sferei de interes a companiei pot genera costuri suplimentare nejustificate pentru companie. De exemplu, solicitări de depanare pentru produse competitoare, solicitări de informații tehnice pentru produse competitoare în afara unui context de comparare cu produsele companiei sunt generatoare de costuri fără a servi companiei care oferă serviciul de asistență virtuală.
M01: Filtru la input și blocarea întrebărilor identificate ca fiind în afara contextului.
R02: Refuzul serviciului (Model Denial of Service)
Fiecare model de limbaj are, ceea ce se numește "context window", o fereastră de context, adică o limită maximă de conținut pe care o poate procesa, simultan și la un nivel superior de calitate. La epuizarea acestei limite contribuie multiple elemente: instrucțiunile date modelului (promptul), conținutul relevant extras din baza de date, mesajele anterioare din conversație și întrebarea curentă a utilizatorului. Unitatea de măsură a conținutului o reprezintă "tokenul", iar atunci când se atinge limita maximă, modelul de limbaj începe să facă compromisuri asupra calității răspunsului.
Epuizarea resurselor prin context window constituie un risc real de refuz al serviciului, identificat de OWASP în top 10 vulnerabilităților aplicațiilor bazate pe LLM-uri. Dincolo de generarea de costuri, influențează negativ experiența pe care alți utilizatori o au cu serviciul prin indisponibilitatea resurselor sau calitatea îndoielnică a răspunsurilor.
Atacul poate lua mai multe forme. Un atacator poate epuiza contextul cu mesaje lungi și repetitive, poate trimite un flux constant de cereri cu lungimi apropiate limitei maxime la intervale foarte scurte sau poate crea mesaje deliberat dificil de procesat prin erori de ortografie sau structuri confuze. Sistemele RAG trebuie să anticipeze și să se apere împotriva acestor scenarii pentru a menține stabilitatea serviciului.
M02: Limitarea resurselor alocate unui singur utilizator, setarea limitelor pentru folosirea API-ului, monitorizarea utilizării resurselor și setarea alertelor care indică un atac DoS.
R03: Ex-filtrarea informațiilor privind funcționarea sistemului
Promptul care ghidează sistemul privind modul său de funcționare este susceptibil la atacuri și poate fi accesat ușor în lipsa unor măsuri externe de securitate. Conform recomandărilor OWASP prompturile de sistem nu ar trebui considerate secrete ale sistemului.
M03: Este interzis ca promptul de sistem să conțină informații sensibile, de arhitectură (de exemplu, criterii de filtrare), drepturi de acces, detalii confidențiale, care cad sub incidența proprietății intelectuale sau proceduri interne care ghidează procesele decizionale.
R04: Injectarea indirectă a promptului (Indirect Prompt Injection)
Orice sistem RAG care implică colectarea datelor din surse online este expus la acest risc. Sisteme IA bazate pe LLMs mizează pe utilizarea unui limbaj comun dintre sursele de date, instrucțiunile creatorilor sistemului, solicitările venite de la utilizator. Acest detaliu crește suprafața de atac a sistemelor și permite, practic oricui, să încerce să compromită modul de funcționare al sistemului prin suprascrierea sau alterarea instrucțiunilor inițiale. În cazul sistemelor de tip RAG riscul de injectare indirectă a promptului este major. Instrucțiunile pot fi ascunse în documente accesibile din mediul online, pe pagini web, în forumuri, în imagini, adesea invizibile ochiului uman. Dacă aceste instrucțiuni malițioase ajung printre chunkurile utilizate în generarea răspunsului, pot duce la manipularea utilizatorului (prin afișarea unui link malițios) sau dezvăluirea de date confidențiale.
M04: Validarea tuturor informațiilor care sunt ingerate în baza de date (implementarea unor filtre cu scopul identificării textelor riscante, izolarea fragmentelor care au un scor ridicat out-of-distribution, modelarea topicului pentru identificarea fragmentelor cu ton urgent/imperativ/ instructiv), implementarea unor filtre la generarea răspunsului sau calcularea unor metrici și folosirea lor ca filtru (nivelul de ancorare al răspunsului în informațiile extrase sau groundedness)
R05: Otrăvirea datelor (Data Poisoning)
Datele sunt fundamentul sistemelor de IA, iar rezultatele sistemelor de IA oglindesc calitatea datelor pe care se bazează. Coruperea datelor poate să apară în stadii diferite, de la alterarea datelor de antrenare, a documentelor dintr-un sistem RAG, a exemplelor de referință din promptul sistemului, dacă acestea există. Atacurile de "data poisoning" au ca scop influențarea negativă a rezultatelor și a deciziilor, producerea de output biasat, a răspunsurilor false, neactualizate sau conflictuale.
M05: Pentru reducerea riscului se recomandă validarea sursei de date prin implementarea de mecanisme ce verifică integritatea și autenticitatea documentelor anterior ingestiei în baza de date, păstrarea unui istoric al modificărilor conținutului din documentația internă, alegerea unor metrici care să estimeze gradul de aliniere al informațiilor din context și identificarea informațiilor conflictuale.
Performanța sistemului IA se referă la capacitatea acestuia de a-i servi utilizatorului. Pentru un sistem RAG, asta se traduce în trei dimensiuni concrete: răspunsuri corecte și concise la întrebările adresate, menținerea unui ton profesional și consistent și respectarea surselor de date disponibile. Riscurile pe care le-am discutat în articol, halucinațiile, epuizarea resurselor, vulnerabilități de securitate, marchează direct performanța sistemului din perspectiva utilizatorului, motiv pentru care este necesară o imagine holistică asupra întregului sistem, care să stea la baza strategiilor de evaluare și metricilor monitorizate.
Chiar dacă sistemele de tip RAG există de câțiva ani, dinamica ce caracterizează sfera inteligenței artificiale, de la progres tehnic, la legislație și securitate impune adaptarea perspectivei din care ne raportăm la, și dezvoltăm tehnologie.
AI for Programmers
Miercuri, 29 aprilie, ora 18:00
BMW TechWorks Romania
LinkedIn Meetup StreamEvent YouTubede Joelle Danciu , Edward Vlad
de Gelu Vac