Rokasgrāmatas

Kas ir RAG? Retrieval-Augmented Generation vienkārši paskaidrots

RAG (retrieval-augmented generation) ir veids, kā likt MI modelim atbildēt uz jautājumiem, izmantojot jūsu pašu informāciju. Kad kāds uzdod jautājumu, jūsu lietotne vispirms meklē dokumentos visattiecīgākos fragmentus un tad nodod tos modelim kopā ar jautājumu. Modelis raksta atbildi, balstoties uz šo tekstu, nevis paļaujoties tikai uz to, ko tas apmācības laikā nejauši iemācījās.

Kāpēc RAG ir svarīgs, veidojot ar MI

Lielais valodas modelis vispārīgi zina daudz par pasauli, bet neko par jūsu biznesu: jūsu cenām, politikām, produkta rokasgrāmatu, pagājušās nedēļas atbalsta pieteikumiem. Tam ir arī apmācības noslēguma datums, tāpēc tas nezina neko jaunu. Ja to tomēr pajautājat, tas var sniegt pārliecinošu, ticamu un nepareizu atbildi.

Lai to labotu, ir trīs plašas iespējas:

PieejaKo tā daraPiemērota
Ielikt visu promptāKatram jautājumam nosūtīt visus dokumentusNelielam teksta daudzumam — dažām lapām
RAGMeklēt dokumentos un sūtīt tikai attiecīgās daļasLielākām vai mainīgām kolekcijām: palīdzības centriem, rokasgrāmatām, piezīmēm
Fine-tuningPapildus apmācīt modeli ar piemēriemTonim, formātam un atkārtotiem uzdevumiem — nevis mainīgiem faktiem

Mūsdienu modeļi pieņem garus promptus, tāpēc īsam FAQ pirmā iespēja bieži ir pietiekama. RAG kļūst noderīgs, kad teksta ir vairāk, nekā vēlaties sūtīt katru reizi — jo katrs nosūtītais vārds maksā naudu un laiku (skatiet kā tiek maksāts par LLM API).

Ja veidojat funkciju „tērzēt ar mūsu dokumentiem”, atbalsta asistentu vai iekšēju zināšanu rīku, gandrīz noteikti veidojat kaut kādu RAG formu.

Ikdienas salīdzinājums

Iedomājieties eksāmenu ar atļautu grāmatu. Students, kuram jāatbild no atmiņas, var kaut ko sajaukt vai blefot. Students, kuram ļauts vispirms atvērt pareizās lappuses, tās izlasīt un tad atbildēt, ir daudz uzticamāks — ja vien atrod pareizās lappuses.

  • Students ir valodas modelis.
  • Mācību grāmata ir jūsu dokumenti.
  • Pareizo lappušu atvēršana ir meklēšana.
  • Atbildes rakstīšana no šīm lappusēm ir ģenerēšana.

RAG ir atvērtās grāmatas versija. Un, kā eksāmenā, atbildes kvalitāte lielā mērā atkarīga no tā, vai tika atrastas pareizās lappuses.

Kā RAG darbojas soli pa solim

Tipiskai RAG iestatīšanai ir divas fāzes.

Dokumentu sagatavošana (dara iepriekš):

  1. Savāciet avota materiālu — palīdzības rakstus, PDF failus, politikas, produktu datus.
  2. Sadaliet tekstu fragmentos: garus dokumentus sadaliet mazākos gabalos, bieži pa dažiem rindkopām, lai meklēšana varētu atgriezt tikai attiecīgo daļu.
  3. Iegulojiet katru fragmentu (embedding): nosūtiet to embedding modelim, kas pārvērš tekstu embedding — garā skaitļu virknē, kas atspoguļo tā nozīmi. Teksti par līdzīgām lietām iegūst līdzīgus skaitļus.
  4. Saglabājiet fragmentus un to embedding datu bāzē, kas var meklēt pēc līdzības (bieži saukta par vektoru datu bāzi vai vektoru indeksu).

Atbildes uz jautājumu (dara katru reizi):

  1. Iegulojiet jautājumu ar to pašu embedding modeli.
  2. Atgūstiet fragmentus, kuru embedding ir vistuvāk jautājuma embedding — piemēram, pirmos piecus.
  3. Veidojiet promptu: instrukcijas, atgūtos fragmentus un jautājumu.
  4. Ģenerējiet: valodas modelis raksta atbildi, balstoties uz šiem fragmentiem, ideālā gadījumā norādot, kurus izmantoja.

Meklēšana pēc nozīmes ir tas, kas to padara iespējamu: jautājums par „naudas atgriešanu” var atrast fragmentu ar nosaukumu „Atmaksas politika”, pat ja vārdi nesakrīt.

Darba piemērs: sporta zāles palīgs

Pieņemsim, ka sporta zālei ir 40 palīdzības raksti un tā vēlas tērzēšanas asistentu savā tīmekļa vietnē. Dalībnieks jautā: „Vai es varu apturēt savu abonementu, kamēr esmu ceļā?”

Lietotne iegulo jautājumu un atgriež trīs tuvākos fragmentus. Viens no tiem nolasa:

Abonementa iesaldēšana: Dalībnieki ar mēneša plāniem var iesaldēt
savu abonementu līdz 2 mēnešiem gadā. Pieprasiet to pie
reģistratūras vai lietotnē vismaz 7 dienas pirms iesaldējuma sākuma.

Modelim nosūtītais prompts izskatās apmēram šādi:

Tu esi Northside Gym palīdzības asistents.
Atbildi tikai no tālāk norādītajiem avotiem. Ja atbildes tajos nav,
pasaki, ka nezini, un iesaki sazināties ar reģistratūru.
Norādi, kuru avotu izmantoji.

[Avots 1: Abonementa iesaldēšana] Dalībnieki ar mēneša plāniem var iesaldēt...
[Avots 2: Abonementa atcelšana] ...
[Avots 3: Viesu biļetes] ...

Jautājums: Vai es varu apturēt savu abonementu, kamēr esmu ceļā?

Modelis atbild: „Jā — ar mēneša plānu jūs varat iesaldēt abonementu līdz diviem mēnešiem gadā. Pieprasiet to pie reģistratūras vai lietotnē vismaz 7 dienas iepriekš (avots: Abonementa iesaldēšana).”

Sporta zāle nekad neko nepārmācīja. Kad tā maina iesaldēšanas politiku, tā atjaunina rakstu, lietotne pārizveido šī fragmenta embedding, un nākamā atbilde to atspoguļo.

Galvenie termini

TerminsNozīme
LLMLielais valodas modelis — MI, kas raksta atbildi. Skatiet kas ir LLM.
EmbeddingSkaitļu saraksts, kas atspoguļo teksta gabala nozīmi.
Embedding modelisModelis, kas rada embedding. Parasti tas ir atsevišķs no tērzēšanas modeļa un daudz lētāks.
Fragments (chunk)Dokumenta daļa, kas izmērīta tā, lai to varētu atgūt atsevišķi.
Vektoru datu bāze / vektoru meklēšanaKrātuve, kas atrod vienumus ar līdzīgiem embedding. Dažas parastas datu bāzes to piedāvā arī — piemēram, Postgres ar pgvector paplašinājumu.
Top-kCik fragmentu tiek atgūts katram jautājumam.
Hibrīda meklēšanaMeklēšanas pēc nozīmes apvienošana ar parasto atslēgvārdu meklēšanu, kas palīdz precīziem terminiem, piemēram, produktu kodiem.
Konteksta logsMaksimālais teksta apjoms, ko modelis var saņemt vienā pieprasījumā.
Pamatošana / citātiAtbildes saistīšana ar konkrētiem atgūtiem avotiem un to parādīšana.

Biežākie nepareizi priekšstati

  • „RAG apmāca modeli ar maniem datiem.” Nē. Modelis nemainās; tas tikai jautājuma brīdī izlasa papildu tekstu.
  • „RAG nozīmē, ka halucināciju vairs nebūs.” Tas nozīmē, ka to ir mazāk. Ja meklēšana palaiž garām pareizo fragmentu vai atbildes nav jūsu dokumentos, modelis joprojām var minēt. Liekiet tam pateikt „Es nezinu” un testējiet ar jautājumiem, kuru atbildes jūs zināt.
  • „Man vajag īpašu vektoru datu bāzi.” Bieži nevajag. Nelielam datu apjomam vektoru paplašinājums jau esošajā datu bāzē vai pat vienkārša atslēgvārdu meklēšana var būt pietiekama.
  • „Lielāki fragmenti ir labāki.” Par lieliem jūs sūtāt daudz nebūtiska teksta (lielākas izmaksas, lielāks sajaukums); par maziem fragments zaudē kontekstu, kas to padarīja jēgpilnu. Gaidiet, ka nāksies pielāgot.
  • „Vienkārši augšupielādējiet visu.” Novecojuši, dublēti vai pretrunīgi dokumenti rada pretrunīgas atbildes. Avota materiāla sakārtošana bieži ir lielākais uzlabojums, ko varat izdarīt.
  • „Ikviens var redzēt jebkuru dokumentu.” Tikai tad, ja tā to izveidojat. Ja daži dokumenti ir privāti noteiktiem lietotājiem, pati meklēšana jāfiltrē pēc tā, kas jautā — citādi asistents var citēt viena klienta datus citam.

Cik tas maksā

RAG funkcijai parasti ir trīs pastāvīgas izmaksas: jūsu dokumentu embedding (neliela un galvenokārt vienreizēja), katra jautājuma embedding (ļoti maza) un valodas modeļa izsaukums (galvenā izmaksa, kas pieaug līdz ar nosūtīto fragmentu skaitu). Papildus uzglabāšana jūsu datu bāzē. Jūsu MI pakalpojumu sniedzējs šīs izmaksas izrēķina jūsu kontam, tāpēc tur uzstādiet tēriņu limitu.

Ko prasīt no sava MI veidotāja

  • „Pirms RAG veidošanas pārbaudi: vai mūsu saturs ir pietiekami mazs, lai to vienkārši iekļautu promptā?”
  • „Sadali palīdzības rakstus fragmentos pa dažiem rindkopām, saglabā katra fragmenta nosaukumu un avota saiti un glabā embedding mūsu datu bāzē.”
  • „Izmanto hibrīdo meklēšanu — pēc nozīmes un atslēgvārdiem —, lai produktu kodi joprojām sakristu.”
  • „Liec modelim atbildēt tikai no atgūtajiem avotiem, pateikt, kad tas nezina, un zem katras atbildes parādīt avotus.”
  • „Meklē tikai tajos dokumentos, ko pieteiktais lietotājs drīkst redzēt.”
  • „Automātiski pārizveido dokumenta embedding ikreiz, kad to rediģē.”
  • „Glabā MI pakalpojumu sniedzēja atslēgu serverī kā noslēpumu, nekad pārlūkprogrammā.”
  • „Reģistrē katru jautājumu, atgūtos fragmentus un atbildi, lai es varētu pārskatīt sliktās atbildes.”

RAG Mythex

Mythex nepiedāvā gatavu zināšanu bāzes vai RAG produktu. Tas raksta kodu tādam risinājumam jūsu lietotnē: jūs pievienojat savus dokumentus un savu MI pakalpojumu sniedzēja atslēgu, kas glabājas kā projekta noslēpums, un aģents veido meklēšanas un tērzēšanas daļas, izmantojot projekta Postgres datu bāzi glabāšanai. Pakalpojumu sniedzēja izmantošana tiek izrakstīta jūsu pakalpojumu sniedzēja kontam, nevis Mythex kredītiem. Dokumentācija iesaka sākt ar vienu vienkāršu MI funkciju un pievienot RAG, kad tā darbojas — skatiet MI lietotnes veidošanu, kā arī mūsu ceļvežus par MI tērzēšanas robota lietotnes veidošanu un MI funkciju pievienošanu.

Jautājumi

Kas ir RAG vienkāršos vārdos?

RAG (retrieval-augmented generation) ir veids, kā padarīt MI modeli par atbildētāju, kas balstās uz jūsu pašu informāciju. Pirms modelis atbild, jūsu lietotne meklē dokumentos fragmentus, kas visvairāk attiecas uz jautājumu, un iekļauj tos promptā, tāpēc atbilde balstās uz šo tekstu, nevis tikai uz to, ko modelis iemācījās apmācības laikā.

Vai RAG apmāca MI ar maniem datiem?

Nē. RAG vispār nemaina modeli. Tas meklē attiecīgo tekstu brīdī, kad tiek uzdots jautājums, un nodod to modelim kopā ar jautājumu. Ja dokumentu atjaunināt, nākamā atbilde var izmantot jauno versiju tieši tūlīt.

Vai RAG ir tas pats, kas fine-tuning?

Nē. Fine-tuning maina modeļa uzvedību, papildus apmācot to ar piemēriem; tas ir lēnāks un labāk piemērots stilam vai formātam. RAG modelim dod faktus, ko izlasīt jautājuma brīdī, un tas ir labāk piemērots zināšanām, kas mainās vai kas jācitē precīzi.

Vai RAG novērš MI halucinācijas?

Tas tās samazina, bet neizslēdz pavisam. Ja meklēšana atrod nepareizus fragmentus vai atbildes nav jūsu dokumentos, modelis joprojām var minēt. Labas RAG lietotnes liek modelim pateikt, kad tas nezina, un parāda izmantotos avotus.

Mythex · Pricing · Veidojiet jebko ar AI · Tīmekļa vietņu un lietotņu veidnes · Mythex salīdzinājumā · AI lietotņu veidošanas glosārijs · Bezmaksas rīki lietotņu veidošanai ar AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)