Câștiguri:
- Explicarea faptului că RAG injectează context fără a modifica ponderile modelului și funcționează cu o logică de „examen de carte deschisă”
- Compararea RAG cu abordările de reglare fină și de context lung în funcție de cost, promptitudine și scenariu de utilizare
- Enumerarea pașilor unei conducte RAG tipice constând din faze de indexare și interogare
Oricât de puternic este un model de limbă (inteligență artificială care înțelege și produce text; de acum înainte îl vom numi model pe scurt), acesta nu cunoaște contractul pe care compania ta l-a semnat ieri, pagina internă de wiki (bază internă de cunoștințe) sau nota de lansare publicată în această dimineață. Modelul este limitat la cunoștințe generale până la data la care a fost instruit; Aceasta se numește „data limită pentru educație”. RAG (Retrieval-Augmented Generation) umple exact acest gol: găsește documentele companiei legate de întrebare, îl dă modelului ca context (adică textul suplimentar pe care îl va citi în timp ce produce răspunsul) și are răspunsul produs pe baza acestui context.
În această unitate, vom vedea clar ce este RAG, când este preferat față de ce alternative și pașii unei conducte tipice RAG. Toate unitățile ulterioare vor aprofunda părțile acestei hărți una câte una.
Ideea de bază a RAG: Open Book Exam
Să explicăm RAG într-o singură propoziție: „Găsiți mai întâi documentul relevant, apoi cereți modelului să citească acel document și tipăriți răspunsul în consecință.”
Cea mai utilă analogie este următoarea: RAG mută modelul de la un „examen de carte închisă” la un „examen de carte deschisă”. La examenul cu carte închisă, elevul răspunde doar din memorie; Există un risc mare de a inventa ceea ce nu-ți amintești. La examenul de carte deschisă, elevul răspunde uitându-se la sursa plasată în fața lui. În RAG, modelul nu mai răspunde din propria memorie, ci din textul curent și specific pe care i-l dați.
Punct critic: RAG nu modifică ponderile modelului, adică miliardele de parametri numerici pe care modelul i-a învățat. Nu reeducați modelul. Pentru fiecare întrebare, injectați bucăți de text relevante pentru întrebarea respectivă în prompt (textul de instrucțiuni trimis modelului). Deci nu trebuie să reantrenați modelul atunci când un document este actualizat; pur și simplu reîmprospătați înregistrarea relevantă din baza de date de căutare.
Sugestie: Două întrebări determină calitatea RAG: (1) Ați găsit documentul potrivit? (2) Modelul a citit-o corect? Prima este „calitatea regăsirii”, a doua este „calitatea generației”. Cele două sunt măsurate și îmbunătățite separat.
RAG, reglaj fin sau context lung?
Trei căi sunt adesea confundate atunci când se caută o soluție la o problemă organizațională. Să clarificăm diferențele dintre ele. Reglarea fină înseamnă actualizarea greutăților modelului cu datele dvs. și predarea acestuia un nou comportament/stil. Contextul lung înseamnă completarea tuturor documentelor direct în prompt fără nicio selecție.
Abordare
Ce face
Când este potrivit?
Cost/Risc
RAG
Injectează documentul relevant ca context
Informații extinse, specifice, care se schimbă frecvent
Scăzut; usor de actualizat, sursa poate fi citata
Reglaj fin
Actualizează ponderile cu date noi
Stilul/formatul/predarea limbilor fixe
Înalt; Recalificarea este necesară la fiecare actualizare
Numai context lung
Completează toate documentele în prompt
Set de documente mic, staționar
Costul simbolului și riscul de a „pierde partea de mijloc” crește
De regulă: reglarea fină învață modelul cum să vorbească; RAG îi spune modelului ce să știe. În majoritatea scenariilor de întreprindere, RAG este încercat mai întâi deoarece este ieftin, poate fi actualizat și poate afișa sursa răspunsului. Contextul lung este rezonabil dacă setul de documente este într-adevăr mic și fix (de exemplu, un singur manual de 20 de pagini); Dar cu mii de pagini, este scump și modelul poate pierde informații în mijlocul unui text lung.
O conductă tipică RAG
RAG constă din două faze principale: indexare (pregătire, făcută o dată sau periodic) și interogare (se rulează la fiecare întrebare utilizator).
Indexare pas cu pas (offline, fără așteptarea utilizatorului):
- Colectați: extrageți documente din surse (PDF, wiki, sistem de bilete, bază de date, e-mail).
- Împărțire în bucăți: Împărțiți textul lung în bucăți mai mici, ușor de gestionat.
- Încorporare: convertiți fiecare parte în încorporare (vectorul numeric care poartă semnificația textului).
- Salvare: scrieți vectorii împreună cu textul și metadatele (sursă, dată, informații de autorizare) în baza de date vectorială.
Interogare pas cu pas (online, în timp ce utilizatorul așteaptă):
- Convertiți întrebarea utilizatorului în încorporare.
- Preluați cele mai asemănătoare părți din baza de date vectorială.
- Așezați aceste piese + întrebare într-un șablon prompt.
- Obțineți răspunsul contextual și sursele acestuia din model.
# Structura conceptuală a fazei de anchetă (nu depinde de limbă) întrebare = „Câte zile de concediu anual?”question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # cele mai similare părțiprompt = f"""Răspundeți la ÎNTREBARE folosind CONTEXTUL de mai jos. Dacă răspunsul nu este în context, spuneți „nu am informații despre acest lucru.” Fitting.CONTEXT:{parts}INTREBARE: {intrebare}"""answer = model.uret(prompt) # de ex. model: claude-opus-4-8
Acest flux este o hartă a fiecărei etape, pe care o vom despacheta una câte una în unitățile ulterioare.
Solicitare slabă / Solicitare puternică
Chiar și în același context RAG, calitatea promptului schimbă răspunsul.
Prompt slab (deschis pentru adaptarea modelului, nu necesită resurse):
Folosiți aceste informații și spuneți concediul anual: {parts}. Întrebare: {întrebare}
Solicitare puternică (împământare + permisiunea „Nu știu” + solicitare de resurse):
Răspundeți numai pe baza CONTEXTULUI de mai jos. Dacă nu există un răspuns clar în context, scrieți „Nu am găsit informații despre asta în documentație”; Nu ghici. Adăugați eticheta [Source: file_name] a piesei pe care vă bazați la sfârșitul răspunsului. CONTEXT: {bucăți} ÎNTREBARE: {întrebare}
Trei mini carcase
Cazul 1 — Asistent HR (Resurse umane). O companie are un manual de HR de 340 de pagini, iar angajații pun în medie 90 de întrebări pe zi. S-a încercat reglarea fină, dar deoarece manualul era actualizat lunar, a fost necesară reinstruire de fiecare dată; Costul a ajuns la mii de dolari pe lună. După trecerea la RAG, actualizarea a fost redusă la pasul de „reindexare a documentului” (minute), iar rata de răspuns corect a crescut de la 71% la 93% în măsurarea manuală.
Cazul 2 — Asistență pentru clienți. Echipa de asistență are 12.000 de bilete rezolvate și 800 de articole de ajutor. Este nevoie de o medie de 4 minute pentru ca un reprezentant să găsească manual un răspuns. Când asistentul RAG a adus cele mai relevante 5 înregistrări și a produs o schiță de răspuns, timpul a fost redus la 40 de secunde; Însă echipa și-a dat seama de riscul de a „părea nesigur dacă aduc articolul greșit” și a făcut obligatorie citarea sursei.
Cazul 3 – Drept. O echipă de contractare a întrebat „în ce contracte durează clauza de confidențialitate 5 ani?” el pune intrebarea. În procesul de lungă durată, 60 de contracte au fost completate într-un singur prompt; modelul a sărit peste cele două contracte din mijloc. Când numai articolele relevante au fost introduse cu RAG, costul jetonului a scăzut cu 80% și ignorarea lipsă a fost resetată.
De ce este nevoie de RAG?
- Actualitate: Accesați informații după data limită a antrenamentului.
- Informații speciale: documentele dumneavoastră interne nu sunt incluse în instruirea niciunui model; Numai tu poți da.
- Verificabilitate: puteți cita sursa răspunsului (citare) - esențială pentru audit și încredere.
- Controlul halucinațiilor: se bazează pe textul plasat în fața lui, mai degrabă decât pe alcătuirea unui model.
- Cost: este mult mai ieftin și mai rapid de pus în funcțiune decât reglajul fin.
Atenție: RAG nu este magie. Dacă aduci piesa greșită, modelul ajunge la răspunsul greșit arătând „încrezător”. Țineți cont de expresia „Calitate de recuperare = calitate RAG”.
Greșeli comune
- Confundarea RAG cu reglajul fin: RAG nu modifică greutățile; Doar adaugă context. Confuzia acestor două va duce la alegerea unei arhitecturi greșite.
- Nepermiterea „Nu știu”: dacă solicitarea lasă modelul liber să completeze spațiul liber, acesta va compensa.
- Fără citarea surselor: un răspuns fără sursă nu poate fi verificat; Utilizatorul nu poate observa greșeala.
- Îngrădirea totul într-un singur prompt: contextul lung pare ieftin, dar este scump și lipsește informațiile din mijloc.
- A rămâne blocat în generație fără a măsura recuperarea: dacă răspunsul este rău, mai întâi întreabă „A sosit partea potrivită?” ar trebui intrebat.
Pe scurt
- RAG este o abordare care injectează documente relevante pentru întrebare în model ca context; nu modifică greutățile („examen de carte deschisă”).
- Reglajul fin învață stilul/formatul, RAG oferă informații actuale și specifice; contextul lung funcționează bine pentru seturi fixe mici. În majoritatea scenariilor, RAG este încercat primul.
- Conducta are două faze: indexare offline (bucătură + încorporare + salvare) și interogare online (recuperare + promptare + generare).
- RAG oferă promptitudine, informații specifice, verificabilitate, control al halucinațiilor și costuri reduse.
- Calitatea sistemului depinde direct de calitatea recuperării: piesa greșită înseamnă răspuns greșit.
Sarcina de aplicare
Alegeți o sursă autentică de informații din propria echipă (de exemplu, un document de procedură sau o pagină de întrebări frecvente). (1) Scrieți 5 întrebări concrete despre această sursă. (2) Rețineți care parte a documentului conține răspunsul corect pentru fiecare întrebare - aceasta devine lista dvs. de „răspunsuri de aur”. (3) Folosind șablonul „prompt puternic” de mai sus, inserați manual secțiunea relevantă ca context și întrebați un model. (4) Comparați răspunsul dat de model cu răspunsul de aur și notați drept adevărat/fals. Aceasta este prima versiune manuală a evaluării pe care o veți automatiza în unitățile viitoare.
lista de verificare
- [ ] Pot explica într-o singură propoziție că RAG nu schimbă ponderile, ci doar adaugă context.
- [ ] Pot distinge între RAG, reglaj fin și context lung și când este potrivit.
- [ ] Pot număra fazele de indexare (collect-shred-embed-save) și de interogare (embed-fetch-prompt-generate) în ordine.
- [ ] Știu de ce am adăugat instrucțiunile „dacă nu este în context, spuneți că nu știu” și „citați sursa” la prompt.
- [ ] Pot adapta principiul „Calitatea recuperării = calitatea RAG” la propriul meu caz.