Vienetas 1 / 11

Kas yra RAG ir kodėl jis reikalingas?

Pelnas:

  • Paaiškinimas, kad RAG įveda kontekstą nekeičiant modelio svarmenų ir veikia pagal „atviros knygos egzamino“ logiką
  • RAG palyginimas su koregavimu ir ilgo konteksto metodais pagal kainą, savalaikiškumą ir naudojimo scenarijų
  • Įprasto RAG dujotiekio, kurį sudaro indeksavimo ir užklausos fazės, veiksmų sąrašas

Kad ir koks galingas būtų kalbos modelis (dirbtinis intelektas, kuris supranta ir kuria tekstą; nuo šiol jį trumpai vadinsime modeliu), jis nežino sutarties, kurią vakar pasirašė jūsų įmonė, jūsų vidinio wiki (vidinės žinių bazės) puslapio ar šį rytą paskelbto laidos pranešimo. Modelis apsiriboja bendromis žiniomis iki jo apmokymo datos; Tai vadinama „išsilavinimo pabaigos data“. RAG (Retrieval-Augmented Generation) užpildo būtent šią spragą: suranda įmonės dokumentus, susijusius su klausimu, pateikia jį modeliui kaip kontekstą (ty papildomą tekstą, kurį jis skaitys pateikdamas atsakymą) ir pagal šį kontekstą pateikia atsakymą.

Šiame skyriuje aiškiai pamatysime, kas yra RAG, kada jam teikiama pirmenybė, o ne kurioms alternatyvoms, ir įprasto RAG dujotiekio žingsnius. Visi tolesni vienetai po vieną gilins šio žemėlapio dalis.

Pagrindinė RAG idėja: atviros knygos egzaminas

Paaiškinkime RAG vienu sakiniu: „Pirmiausia suraskite atitinkamą dokumentą, tada paprašykite modelio perskaityti tą dokumentą ir atitinkamai atspausdinti atsakymą“.

Naudingiausia analogija yra tokia: RAG perkelia modelį iš „uždaros knygos egzamino“ į „atviros knygos egzaminą“. Uždaras knygos egzamine mokinys atsako tik iš atminties; Didelė rizika išgalvoti tai, ko neprisimeni. Atviros knygos egzamine studentas atsako žiūrėdamas į priešais jį padėtą ​​šaltinį. RAG modelis atsako nebe iš savo atminties, o iš esamo ir konkretaus teksto, kurį jam pateikiate.

Kritinis taškas: RAG nekeičia modelio svorių, tai yra milijardų skaitmeninių parametrų, kuriuos modelis išmoko. Jūs nepermokysite modelio. Kiekvienam klausimui į raginimą įterpiate su tuo klausimu susijusius teksto gabalus (modeliui siunčiamas instrukcijos tekstas). Taigi jums nereikia perkvalifikuoti modelio, kai dokumentas atnaujinamas; tiesiog atnaujinate atitinkamą įrašą paieškos duomenų bazėje.

Užuomina: RAG kokybę lemia du klausimai: (1) Ar radote tinkamą dokumentą? (2) Ar modelis teisingai jį perskaitė? Pirmoji – „atkūrimo kokybė“, antroji – „kartos kokybė“. Abu matuojami ir tobulinami atskirai.

RAG, koregavimas ar ilgas kontekstas?

Ieškant organizacinės problemos sprendimo, dažnai painiojami trys keliai. Paaiškinkime jų skirtumus. Tikslus derinimas – tai modelio svorių atnaujinimas jūsų duomenimis ir naujo elgesio / stiliaus mokymas. Ilgas kontekstas reiškia visų dokumentų pildymą tiesiai į raginimą be jokio pasirinkimo.

Prieiga

Kas daro

Kada tai tinkama?

Kaina / rizika

RAG

Įveda atitinkamą dokumentą kaip kontekstą

Dažnai besikeičianti, plati, specifinė informacija

Žemas; lengva atnaujinti, galima nurodyti šaltinį

Tikslus derinimas

Atnaujina svorį naujais duomenimis

Fiksuoto stiliaus/formato/kalbos mokymas

Aukštas; Su kiekvienu atnaujinimu būtinas perkvalifikavimas

Tik ilgas kontekstas

Užpildo visus dokumentus į raginimą

Nedidelis, stacionarus dokumentų rinkinys

Padidėja žetonų kaina ir rizika „prarasti vidurinę dalį“.

Kaip taisyklė: Tikslus derinimas išmoko modelį kalbėti; RAG nurodo modeliui, ką reikia žinoti. Daugumoje įmonių scenarijų pirmiausia išbandoma RAG, nes ji yra pigi, atnaujinama ir gali parodyti atsakymo šaltinį. Ilgas kontekstas yra pagrįstas, jei dokumentų rinkinys tikrai mažas ir fiksuotas (pvz., vienas 20 puslapių vadovas); Tačiau dėl tūkstančių puslapių tai brangu, o modelis gali praleisti informaciją viduryje ilgo teksto.

Įprastas RAG vamzdynas

RAG susideda iš dviejų pagrindinių etapų: indeksavimo (paruošimas, atliekamas vieną kartą arba periodiškai) ir užklausų (vykdomas kiekvienam vartotojo klausimui).

Žingsnis po žingsnio indeksavimas (neprisijungus, vartotojui nelaukiant):

  1. Surinkite: ištraukite dokumentus iš šaltinių (PDF, wiki, bilietų sistemos, duomenų bazės, el. pašto).
  2. Suskaidymas į gabalus: suskaidykite ilgą tekstą į mažesnius tvarkomus gabalus.
  3. Įterpti: konvertuokite kiekvieną dalį į įterpimą (skaičių vektorių, nurodantį teksto reikšmę).
  4. Išsaugoti: į vektorių duomenų bazę įrašykite vektorius kartu su tekstu ir metaduomenimis (šaltinis, data, autorizacijos informacija).

Žingsnis po žingsnio užklausa (internete, kol vartotojas laukia):

  1. Konvertuoti vartotojo klausimą į įterpimą.
  2. Iš vektorinės duomenų bazės paimkite panašiiausias dalis.
  3. Įdėkite šias dalis + klausimą į raginimo šabloną.
  4. Gaukite kontekstinį atsakymą ir jo šaltinius iš modelio.

# Užklausos etapo koncepcija (nepriklausoma nuo kalbos)question = "Kiek dienų kasmetinių atostogų?"question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # panašiausios partsprompt = f"""Atsakykite į KLAUSIMĄ naudodami toliau pateiktą KONTEKSTĄ, jei šio atsakymo nėra informacijos. Fitting.CONTEXT:{parts}KLAUSIMAS: {klausimas}"""atsakymas = model.uret(prompt) # pvz. modelis: claude-opus-4-8

Šis srautas yra kiekvieno etapo žemėlapis, kurį mes išpakuosime po vieną kituose vienetuose.

Silpnas raginimas / stiprus raginimas

Net esant tokiam pačiam RAG kontekstui, raginimo kokybė keičia atsakymą.

Silpna raginimas (atvira modelio pritaikymui, nereikalauja išteklių):

Pasinaudokite šia informacija ir pasakykite kasmetines atostogas: {parts}. Klausimas: {question}

Galingas raginimas (įžeminimas + „Nežinau“ leidimas + išteklių užklausa):

Atsakykite tik remdamiesi toliau pateiktu KONTEKSTU. Jei kontekste nėra aiškaus atsakymo, parašykite „Dokumentacijoje neradau informacijos apie tai“; Nespėk. Atsakymo pabaigoje pridėkite kūrinio, kuriuo pasitikite, žymą [Šaltinis: failo_pavadinimas]. KONTEKSTAS: {gabalai} KLAUSIMAS: {klausimas}

Trys mini dėklai

1 atvejis – HR padėjėjas (žmogiškieji ištekliai). Įmonė turi 340 puslapių personalo vadovą, o darbuotojai per dieną užduoda vidutiniškai 90 klausimų. Buvo bandoma koreguoti, bet kadangi vadovas buvo atnaujinamas kas mėnesį, kiekvieną kartą reikėjo persikvalifikuoti; Kaina siekė tūkstančius dolerių per mėnesį. Perėjus prie RAG, atnaujinimas buvo sumažintas iki „dokumento pakartotinio indeksavimo“ žingsnio (minutėmis), o teisingų atsakymų rodiklis padidėjo nuo 71% iki 93% atliekant rankinį matavimą.

2 atvejis – klientų aptarnavimas. Palaikymo komanda turi 12 000 išspręstų bilietų ir 800 pagalbos straipsnių. Atstovas rankiniu būdu suranda atsakymą vidutiniškai 4 minutes. Kai RAG padėjėjas atnešė 5 svarbiausius įrašus ir parengė atsakymo juodraštį, laikas sutrumpėjo iki 40 sekundžių; Tačiau komanda suprato, kad kyla pavojus, kad „pateikę netinkamą straipsnį gali atrodyti netikri“, todėl šaltinio nuoroda buvo privaloma.

3 atvejis – teisė. Sutarčių sudarytojų komanda paklausė „kuriose sutartyse galioja 5 metų konfidencialumo sąlyga? jis užduoda klausimą. Per ilgą kontekstinį bandymą 60 sutarčių buvo užpildyta vienu raginimu; modelis praleido dvi vidurines sutartis. Kai su RAG buvo pristatyti tik atitinkami elementai, žetonų kaina sumažėjo 80%, o trūkstamas praleidimas buvo nustatytas iš naujo.

Kodėl reikalingas RAG?

  • Aktualumas: informaciją galite pasiekti pasibaigus mokymų pabaigos datai.
  • Speciali informacija: Jūsų vidiniai dokumentai neįtraukiami į jokio modelio mokymus; Tik tu gali duoti.
  • Patikrinamumas: galite nurodyti atsakymo šaltinį (citatą) – tai būtina norint atlikti auditą ir pasitikėjimą.
  • Haliucinacijų kontrolė: ji remiasi tekstu, esančiu prieš jį, o ne modeliu.
  • Kaina: pradėti eksploatuoti yra daug pigiau ir greičiau nei koreguoti.
Atsargiai: RAG nėra magija. Jei atnešite ne tą gaminį, modelis pateiks neteisingą atsakymą, atrodydamas „pasitikintas“. Nepamirškite frazės „Gavimo kokybė = RAG kokybė“.

Dažnos klaidos

  • Klaida RAG koreguojant: RAG nekeičia svorių; Tai tik prideda konteksto. Supainiojus šiuos du, bus pasirinkta netinkama architektūra.
  • Neleisti „Nežinau“: jei raginimas palieka modeliui teisę užpildyti tuščią lauką, jis bus kompensuotas.
  • Šaltinių nenurodymas: atsakymas be šaltinio negali būti patikrintas; Vartotojas negali pastebėti klaidos.
  • Viską sudėti į vieną raginimą: ilgas kontekstas atrodo pigus, bet brangus ir praleidžia vidurinę informaciją.
  • Įstrigimas generuojant nematuojant paieškos: jei atsakymas blogas, pirmiausia paklauskite „Ar atkeliavo tinkama dalis? reikėtų paklausti.

Apibendrinant

  • RAG – tai metodas, įterpiantis su klausimu susijusius dokumentus į modelį kaip kontekstą; nekeičia svorių ("atviros knygos egzaminas").
  • Tikslus derinimas moko stiliaus/formato, RAG suteikia aktualią ir specifinę informaciją; ilgas kontekstas puikiai tinka mažiems fiksuotiems rinkiniams. Daugumoje scenarijų pirmiausia išbandoma RAG.
  • Dujotiekis turi dvi fazes: indeksavimą neprisijungus (gabalas + įterpimas + išsaugojimas) ir internetinis užklausų teikimas (gavimas + raginimas + generavimas).
  • RAG suteikia savalaikiškumą, konkrečią informaciją, patikrinamumą, haliucinacijų kontrolę ir mažą kainą.
  • Sistemos kokybė tiesiogiai priklauso nuo paieškos kokybės: neteisinga dalis reiškia neteisingą atsakymą.

Taikymo užduotis

Pasirinkite tikrą informacijos šaltinį iš savo komandos (pvz., procedūros dokumentą arba DUK puslapį). (1) Parašykite 5 faktinius klausimus apie šį šaltinį. (2) Atkreipkite dėmesį, kurioje dokumento dalyje yra teisingas atsakymas į kiekvieną klausimą – tai tampa jūsų „auksinių atsakymų“ sąrašu. (3) Naudodami anksčiau pateiktą „stiprios raginimo“ šabloną rankiniu būdu įklijuokite atitinkamą skyrių kaip kontekstą ir paprašykite modelio. (4) Palyginkite modelio pateiktą atsakymą su auksiniu ir pažymėkite kaip teisingą / klaidingą. Tai pirmoji neautomatinė vertinimo versija, kurią automatizuosite būsimuose įrenginiuose.

kontrolinis sąrašas

  • [ ] Galiu vienu sakiniu paaiškinti, kad RAG nekeičia svorių, tik prideda konteksto.
  • [ ] Galiu atskirti RAG, koregavimą ir ilgąjį kontekstą ir kada tinka.
  • [ ] Galiu skaičiuoti indeksavimo (rinkti-susmulkinti-įterpti-išsaugoti) ir užklausos (įterpti-paimti-pagaminti-generuoti) fazes iš eilės.
  • [ ] Žinau, kodėl prie raginimo pridėjau instrukcijas „jei ne kontekste, pasakykite, kad nežinau“ ir „cituoti šaltinį“.
  • [ ] Principą „Gavimo kokybė = RAG kokybė“ galiu pritaikyti savo atvejui.