Introducere
Ai un model AI local care rulează pe calculatorul tău. Îi pui o întrebare despre un document intern al companiei tale. Răspunsul? Complet inventat. Nu pentru că modelul e prost — ci pentru că pur și simplu nu a văzut niciodată documentul tău. Nu a fost antrenat pe datele tale.
Aceasta este limitarea fundamentală a oricărui model de limbaj: știe doar ce a învățat în timpul antrenamentului. Dacă informația nu era în datele de training, modelul ori inventează (halucinează), ori recunoaște sincer că nu știe.
RAG (Retrieval-Augmented Generation) rezolvă exact această problemă. Este tehnica prin care dai modelului acces la documentele tale — fără să-l reantrenezi, fără cloud, fără costuri suplimentare. Și în LM Studio, poți face asta direct pe calculatorul tău.
În acest articol îți explic ce este RAG, cum funcționează la nivel tehnic (dar pe înțelesul tuturor), și cum îl configurezi practic în LM Studio.
Ce este RAG?
RAG vine de la Retrieval-Augmented Generation — în traducere liberă, „generare augmentată prin regăsire". Sună complicat, dar principiul e simplu.
Analogia cu manualul de la examen
Imaginează-ți două scenarii la un examen:
Fără RAG: Studentul trebuie să răspundă din memorie. Dacă a învățat capitolul respectiv, răspunde bine. Dacă nu, inventează ceva care sună plauzibil — exact cum fac modelele AI când halucinează.
Cu RAG: Studentul primește voie să consulte manualul. Înainte de a răspunde, caută în carte pasajele relevante, le citește, și apoi formulează răspunsul bazându-se pe informații concrete.
RAG face exact asta pentru un model AI: înainte de a genera un răspuns, caută în documentele tale cele mai relevante pasaje, le „lipește" la întrebarea ta, și apoi modelul răspunde având contextul real în față.
Cum funcționează RAG tehnic?
RAG are trei faze distincte: pregătirea datelor, regăsirea (retrieval) și generarea (generation). Să le luăm pe rând.
Faza 1: Pregătirea datelor (se face o singură dată)
Această fază transformă documentele tale într-un format pe care AI-ul îl poate căuta rapid.
Pasul 1 — Chunking (fragmentare)
Documentele tale (PDF-uri, Word, text) sunt tăiate în bucăți mici numite „chunks". De ce? Pentru că un model AI are o fereastră de context limitată — nu poți baga 500 de pagini deodată. Chunks-urile tipice au între 200 și 1000 de caractere, cu puțin overlap între ele ca să nu se piardă contextul la granițele dintre fragmente.
De exemplu, un manual tehnic de 100 de pagini devine câteva sute de fragmente scurte, fiecare conținând o idee sau un paragraf coerent.
Pasul 2 — Embedding (vectorizare)
Fiecare chunk este transformat într-un vector — o listă de numere care captează semnificația semantică a textului. Acest proces se numește „embedding" și e realizat de un model specializat (nu de modelul principal de conversație).
Ce înseamnă asta concret? Două propoziții cu sens similar vor avea vectori apropiați, chiar dacă folosesc cuvinte diferite. De exemplu:
- „Angajatul are dreptul la 25 de zile de concediu" → vector [0.23, 0.87, 0.11, ...]
- „Fiecare salariat beneficiază de 25 de zile libere" → vector [0.24, 0.85, 0.13, ...]
Acești vectori sunt apropiați în spațiul matematic, pentru că sensul e similar. Această proprietate e esențială pentru căutare.
Pasul 3 — Stocarea în baza de date vectorială
Toți vectorii sunt stocați într-o bază de date vectorială (vector database) — o structură de date optimizată pentru căutări bazate pe similaritate. Baze de date vectoriale populare includ FAISS, ChromaDB, sau Milvus. În cazul LM Studio, această componentă e gestionată intern de plugin-ul de RAG.
Faza 2: Regăsirea (la fiecare întrebare)
Când pui o întrebare:
- Întrebarea ta este și ea transformată într-un vector, folosind același model de embedding.
- Vectorul întrebării este comparat cu toți vectorii din baza de date.
- Se returnează cele mai similare chunks — adică fragmentele din documentele tale care au cel mai apropriat sens de întrebarea ta.
Acest proces se numește căutare semantică (semantic search) și e fundamental diferit de o căutare clasică pe cuvinte cheie. Căutarea semantică înțelege sensul, nu doar potrivirea exactă a cuvintelor.
De exemplu, dacă întrebi „câte zile libere am?", căutarea semantică va găsi fragmentul despre „concediu de odihnă" — chiar dacă cuvintele „zile libere" nu apar exact în text.
Faza 3: Generarea
Acum vine partea de „augmented generation":
- Chunks-urile relevante găsite în faza anterioară sunt inserate în prompt-ul trimis către model.
- Modelul primește instrucțiunea: „Folosind contextul de mai jos, răspunde la întrebarea utilizatorului."
- Modelul generează un răspuns bazat pe informațiile reale din documentele tale.
Prompt-ul intern arată aproximativ astfel:
CONTEXT:
[Fragment 1 din documentul tău]
[Fragment 2 din documentul tău]
[Fragment 3 din documentul tău]
ÎNTREBARE: Câte zile de concediu am dreptul?
Folosind CONTEXTUL de mai sus, răspunde la ÎNTREBARE.
Dacă CONTEXTUL nu conține răspunsul, spune că nu știi.
Acest ultim punct e crucial: un RAG bine configurat instruiește modelul să nu inventeze — dacă informația nu se găsește în documentele furnizate, modelul trebuie să recunoască asta în loc să halucineze.
De ce RAG și nu fine-tuning?
O întrebare naturală: de ce să nu antrenăm direct modelul pe datele noastre? Iată un tabel comparativ:
| Criteriu | RAG | Fine-tuning | |----------|-----|-------------| | Cost | Minimal (rulează local) | Ridicat (ore de GPU, date curate) | | Timp de setup | Minute | Ore până la zile | | Actualizare date | Instant (schimbi documentele) | Reantrenare completă | | Precizie pe date specifice | Excelentă (citează direct) | Variabilă (poate halucia) | | Hardware necesar | Normal (orice PC cu LM Studio) | GPU puternic pentru antrenament | | Confidențialitate | Totul local, zero cloud | Depinde de metoda de fine-tuning |
RAG câștigă clar pentru scenariile în care ai documente care se schimbă frecvent, ai nevoie de răspunsuri ancorate în surse concrete, și nu vrei să investești resurse în reantrenare.
RAG în LM Studio: trei variante practice
LM Studio oferă mai multe modalități de a folosi RAG, de la cea mai simplă la cea mai avansată.
Varianta 1: Chat cu documente (built-in, zero configurare)
LM Studio are funcționalitate RAG integrată direct în interfața de chat. Este cel mai simplu mod de a începe.
Cum funcționează:
- Deschide un chat nou în LM Studio cu modelul tău preferat încărcat.
- Atașează documente direct în mesajul de chat (drag & drop sau click pe iconița de atașare).
- Pune întrebarea și trimite.
Formate suportate: PDF, DOCX, TXT, CSV.
Ce se întâmplă în spate:
- Dacă documentul este scurt și încape în fereastra de context a modelului, LM Studio include tot conținutul în conversație. Acesta e scenariul ideal — modelul vede totul.
- Dacă documentul este lung, LM Studio activează automat RAG: fragmentează documentul, caută pasajele relevante, și le furnizează modelului.
Limitări: Maximum 5 fișiere, dimensiune combinată de maxim 30MB. Cache-ul se șterge odată cu chat-ul.
Când să folosești: Când ai un document sau două și vrei un răspuns rapid, fără setup. Perfect pentru „citește acest PDF și răspunde-mi la câteva întrebări".
Varianta 2: Plugin-ul RAG v2 (persistent, configurabil)
Pentru un setup mai serios, LM Studio suportă plugin-uri dedicate de RAG. Plugin-ul rag-v2 (de la dirty-data) sau rag-v1 nativ oferă funcționalitate mai avansată.
Ce adaugă față de varianta built-in:
- Detecție automată a modelului de embedding — plugin-ul găsește automat un model de embedding compatibil deja descărcat în LM Studio
- Injectare conținut complet — pentru documente mici, include tot; pentru cele mari, face retrieval selectiv
- Configurabil — poți ajusta numărul de chunks returnate, modelul de embedding folosit, și alți parametri
Configurare:
- În LM Studio, mergi la secțiunea de Plugin-uri.
- Caută și instalează
rag-v2sau verifică dacărag-v1(built-in) e deja activ. - Configurează din UI:
- Embedding Model — lasă pe „Auto-Detect" sau selectează manual un model (ex:
nomic-embed-text) - Retrieval Limit — câte chunks să returneze (implicit 5, crește pentru documente complexe)
- Auto-Unload Model — dacă vrei ca modelul de embedding să fie descărcat din memorie după retrieval
- Embedding Model — lasă pe „Auto-Detect" sau selectează manual un model (ex:
Varianta 3: Big RAG Plugin (pentru colecții mari de documente)
Dacă ai GB de documente — de exemplu, o bază completă de documentație tehnică, manuale, sau contracte — plugin-ul Big RAG (de la mindstudio) este soluția.
Capabilități:
- Scanare recursivă a directoarelor — pune toate documentele într-un folder și plugin-ul indexează totul
- Formate multiple — HTML, PDF, EPUB, TXT, Markdown, și chiar imagini cu OCR
- Indexare incrementală — la adăugarea de documente noi, nu re-indexează totul
- Stocare vectorială sharded — suportă colecții de dimensiuni mari fără probleme de performanță
Setup:
-
Instalează plugin-ul Big RAG din LM Studio.
-
Configurează directorul de documente (ex:
~/Documents/knowledge-base). -
Configurează directorul pentru vector store (ex:
~/.lmstudio/rag-db). -
Opțional, ajustează:
- Chunk Size — 512 pentru documente generale, 1024 pentru conținut tehnic
- Retrieval Limit — câte rezultate returnează (10 pentru precizie mai mare)
- Affinity Threshold — pragul de similaritate (0.6 pentru precizie ridicată, 0.4 pentru rezultate mai largi)
-
Pornește plugin-ul. Prima indexare durează câteva minute, în funcție de volumul de documente.
Varianta 4: AnythingLLM — interfață dedicată de RAG
Pentru cel mai mare control și cea mai bună experiență, poți folosi AnythingLLM ca intermediar. AnythingLLM este o aplicație separată care gestionează RAG-ul complet, folosind LM Studio ca backend pentru model.
Cum se leagă piesele:
Tu → AnythingLLM (interfață + RAG engine) → LM Studio (servește modelul LLM)
Setup:
- LM Studio: Încarcă modelul tău (ex: Qwen3-8B) și pornește serverul local (tab-ul Server, click Start).
- AnythingLLM: Descarcă de pe anythingllm.com și instalează.
- În AnythingLLM, configurează:
- LLM Provider: selectează „LM Studio" și adaugă URL-ul local (
http://localhost:1234/v1) - Embedding Model: poți folosi modelul din LM Studio sau built-in-ul AnythingLLM
- LLM Provider: selectează „LM Studio" și adaugă URL-ul local (
- Creează un workspace și încarcă documentele.
- AnythingLLM procesează automat: chunking → embedding → stocare vectorială.
- Începe să pui întrebări. AnythingLLM face retrieval și trimite contextul la LM Studio pentru generare.
Avantaje AnythingLLM:
- Interfață dedicată pentru managementul documentelor
- Workspace-uri separate pentru proiecte diferite
- Nu există limită la numărul de documente
- Suport pentru PDF, TXT, DOCX, și multe altele
- Două moduri: Chat (conversațional, cu context din training + RAG) și Query (strict din documentele tale, zero halucinare)
Alegerea modelului de embedding
Un aspect adesea neglijat, dar critic: modelul de embedding e la fel de important ca modelul principal de conversație. El determină calitatea căutării semantice.
Recomandări pentru LM Studio:
| Model | Dimensiune | Recomandat pentru |
|-------|-----------|-------------------|
| nomic-embed-text | ~270MB | Utilizare generală, bun raport calitate/dimensiune |
| all-MiniLM-L6-v2 | ~80MB | Rapid, ideal pentru hardware limitat |
| bge-small-en-v1.5 | ~130MB | Precizie bună pe texte în engleză |
| multilingual-e5-large | ~1.2GB | Documente multilingve (inclusiv română) |
Dacă lucrezi predominant cu documente în limba română, alege un model multilingual. Modelele antrenate doar pe engleză vor face embedding-uri mai slabe pentru textul românesc, ceea ce reduce calitatea retrieval-ului.
Sfaturi pentru un RAG eficient
1. Calitatea documentelor contează enorm
Principiul „gunoi la intrare, gunoi la ieșire" se aplică dublu la RAG. Documente bine structurate, cu headings clare și paragrafe coerente, produc chunks mai bune și retrieval mai precis. Un PDF scanat ca imagine fără OCR nu va produce nimic util.
2. Chunk size-ul influențează calitatea
- Chunks prea mari → vectorii devin prea generali, retrieval-ul ratează detalii specifice
- Chunks prea mici → se pierde contextul semantic, fragmentele nu mai au sens individual
- Regulă generală: 500-1000 de caractere per chunk, cu 10-20% overlap
3. Formularea întrebărilor face diferența
Cu RAG, întrebările specifice bat întrebările vagi:
- ❌ „Ce spune contractul?" — prea general, retrieval-ul nu știe ce să caute
- ✅ „Care este termenul de plată din contractul cu furnizorul X?" — retrieval-ul poate identifica exact fragmentul relevant
Menționează termeni, concepte și cuvinte pe care te aștepți să le găsești în document. Asta ajută enorm căutarea semantică.
4. Verifică sursele
Un avantaj mare al RAG: poți cere modelului să citeze sursa. LM Studio afișează citările la sfârșitul răspunsului, iar AnythingLLM poate arăta exact din ce document și din ce fragment a luat informația. Verifică întotdeauna — RAG reduce halucinațiile, dar nu le elimină complet.
5. Experimentează cu parametrii
Nu există setări universale perfecte. Testează:
- Mărește retrieval limit dacă răspunsurile par incomplete
- Scade affinity threshold dacă nu se găsesc rezultate
- Încearcă alt model de embedding dacă precizia e scăzută
- Ajustează chunk size în funcție de tipul documentelor
Cazuri de utilizare practice
RAG nu e doar o tehnologie interesantă — are aplicații concrete și imediate:
Documentație internă: Încarcă manualele de proceduri ale companiei. Angajații pun întrebări în limbaj natural și primesc răspunsuri bazate pe procedurile reale.
Analiză contractuală: Încarcă contractele și întreabă despre clauze specifice, termene, obligații. Mai rapid decât căutarea manuală.
Suport tehnic: Încarcă documentația tehnică a produselor tale. Creează un asistent care răspunde la întrebări tehnice bazându-se pe documentația reală.
Cercetare: Încarcă paper-uri academice sau rapoarte de industrie. Pune întrebări transversale care sintetizează informații din mai multe surse.
Onboarding: Nou angajat? Dă-i acces la un chatbot cu RAG care conține tot ce trebuie să știe: politici interne, proceduri, instrumente, contacte.
Concluzie
RAG este, probabil, cea mai practică și accesibilă modalitate de a face un model AI util pentru datele tale specifice. Nu necesită antrenament costisitor, funcționează local cu LM Studio, și se configurează în minute.
Principiul e simplu: în loc să ceri modelului să știe totul din memorie, îi dai voie să „consulte manualul". Rezultatul? Răspunsuri ancorate în documente reale, reducere dramatică a halucinațiilor, și un asistent AI care chiar cunoaște afacerea ta.
Începe cu varianta simplă — drag & drop un PDF în chat-ul LM Studio. Testează câteva întrebări. Apoi, pe măsură ce nevoile cresc, treci la plugin-uri sau AnythingLLM pentru un setup complet. Curba de învățare e blândă, iar beneficiile sunt imediate.
Acest articol a fost scris ca parte a seriei de publicații tehnice de pe blogul TEN INVENT. Dacă vrei să implementezi un sistem RAG pentru compania ta sau ai întrebări despre AI local, contactează-ne.