Príručky

Čo je RAG? Retrieval-Augmented Generation jednoducho vysvetlené

RAG (retrieval-augmented generation) je spôsob, ako dať AI modelu odpovedať na otázky s použitím vašich vlastných informácií. Keď sa niekto opýta, vaša aplikácia najprv prehľadá dokumenty kvôli najrelevantnejším pasážam a potom tieto pasáže odovzdá modelu spolu s otázkou. Model napíše odpoveď z tohto textu, namiesto aby sa spoliehal len na to, čo sa náhodou naučil počas tréningu.

Prečo je RAG dôležitý, keď budujete s AI

Veľký jazykový model vie veľa o svete vo všeobecnosti, ale nič o vašom podnikaní: o vašich cenách, zásadách, používateľskej príručke k produktu, minulotýždňových podporných tiketoch. Má tiež dátum ukončenia tréningu, takže nevie nič nedávne. Ak sa ho aj tak opýtate, môže vyprodukovať sebaisté, uveriteľné a nesprávne tvrdenie.

Na riešenie máte tri hlavné možnosti:

PrístupČo robíVhodný pre
Vložiť všetko do promptuPri každej otázke poslať všetky dokumentyMalé množstvo textu — pár strán
RAGPrehľadať dokumenty a poslať len relevantné častiVäčšie alebo meniace sa zbierky: centrá pomoci, príručky, poznámky
Fine-tuningĎalej trénovať model na príkladochTón, formát a opakujúce sa úlohy — nie meniace sa fakty

Moderné modely prijímajú dlhé prompty, takže pri krátkom FAQ je prvá možnosť často v poriadku. RAG sa oplatí, keď máte viac textu, než chcete posielať zakaždým — pretože každé slovo, ktoré pošlete, stojí peniaze a čas (pozrite ako sa účtujú LLM API).

Ak budujete funkciu „chat s našou dokumentáciou“, asistenta podpory alebo interný nástroj na znalosti, takmer určite budujete nejakú formu RAG.

Každodenné prirovnanie

Predstavte si skúšku s otvorenou knihou. Študent, ktorý musí odpovedať spamäti, si môže niečo pomýliť alebo blufovať. Študent, ktorý smie najprv otvoriť správne strany, prečítať ich a až potom odpovedať, je oveľa spoľahlivejší — pokiaľ tie správne strany nájde.

  • Študent je jazykový model.
  • Učebnica sú vaše dokumenty.
  • Otvorenie správnych strán je vyhľadávanie (retrieval).
  • Písanie odpovede z týchto strán je generovanie.

RAG je verzia s otvorenou knihou. A rovnako ako na skúške, kvalita odpovede výrazne závisí od toho, či sa nájdu správne strany.

Ako RAG funguje, krok za krokom

Typické nastavenie RAG má dve fázy.

Príprava dokumentov (robí sa vopred):

  1. Zbierajte zdrojový materiál — články pomoci, PDF, zásady, dáta o produktoch.
  2. Rozdeľte ho na kúsky (chunk): dlhé dokumenty rozdeľte na menšie časti, často po niekoľkých odsekoch, aby vyhľadávanie vrátilo len relevantnú časť.
  3. Vytvorte embedding každého kúska: pošlite ho do embedding modelu, ktorý text premení na embedding — dlhý zoznam čísel, ktorý zachytáva jeho význam. Texty o podobných veciach majú podobné čísla.
  4. Uložte kúsky a ich embeddingy do databázy, ktorá vie vyhľadávať podľa podobnosti (často sa nazýva vektorová databáza alebo vektorový index).

Odpovedanie na otázku (robí sa zakaždým):

  1. Vytvorte embedding otázky tým istým embedding modelom.
  2. Vyhľadajte kúsky, ktorých embeddingy sú najbližšie k otázke — povedzme prvých päť.
  3. Zostavte prompt: pokyny, vyhľadané kúsky a otázku.
  4. Generujte: jazykový model napíše odpoveď na základe týchto kúskov, ideálne s uvedením, ktoré použil.

Vyhľadávanie podľa významu je to, čo to robí funkčným: otázka o „vrátení peňazí“ dokáže nájsť kúsok s nadpisom „Zásady vrátenia“, aj keď nemajú spoločné žiadne slová.

Pracovný príklad: asistent pomoci pre posilňovňu

Predstavte si, že posilňovňa má 40 článkov pomoci a chce na svojej webstránke chatovacieho asistenta. Člen sa opýta: „Môžem si počas cesty pozastaviť členstvo?“

Aplikácia vytvorí embedding otázky a vyhľadá tri najbližšie kúsky. Jeden z nich znie:

Zmrazenie členstva: Členovia s mesačnými plánmi si môžu zmraziť
členstvo najviac na 2 mesiace v roku. Požiadajte o to na recepcii
alebo v aplikácii najneskôr 7 dní pred začiatkom zmrazenia.

Prompt odoslaný modelu potom vyzerá asi takto:

Si asistent pomoci pre Northside Gym.
Odpovedaj len z zdrojov nižšie. Ak odpoveď v nich nie je,
povedz, že to nevieš, a navrhni kontaktovať recepciu.
Uveď, ktorý zdroj si použil.

[Zdroj 1: Zmrazenie členstva] Členovia s mesačnými plánmi si môžu zmraziť...
[Zdroj 2: Zrušenie členstva] ...
[Zdroj 3: Hosťovské vstupy] ...

Otázka: Môžem si počas cesty pozastaviť členstvo?

Model odpovie: „Áno — pri mesačnom pláne si môžete členstvo zmraziť najviac na dva mesiace v roku. Požiadajte o to na recepcii alebo v aplikácii najneskôr 7 dní vopred (zdroj: Zmrazenie členstva).“

Posilňovňa nič nepretrénovala. Keď zmení pravidlá zmrazenia, aktualizuje článok, aplikácia znovu vytvorí embedding toho kúska a ďalšia odpoveď to odrazí.

Kľúčové pojmy

PojemVýznam
LLMVeľký jazykový model — AI, ktorá píše odpoveď. Pozrite čo je LLM.
EmbeddingZoznam čísel, ktoré reprezentujú význam kúska textu.
Embedding modelModel, ktorý vytvára embeddingy. Zvyčajne je oddelený od chatovacieho modelu a je výrazne lacnejší.
Kúsok (chunk)Časť dokumentu, dimenzovaná tak, aby sa dala vyhľadať samostatne.
Vektorová databáza / vektorové vyhľadávanieÚložisko, ktoré nachádza položky s podobnými embeddingmi. Niektoré bežné databázy to ponúkajú tiež — napríklad Postgres cez rozšírenie pgvector.
Top-kKoľko kúskov sa vyhľadá na jednu otázku.
Hybridné vyhľadávanieKombinácia vyhľadávania podľa významu s bežným vyhľadávaním kľúčových slov, čo pomáha pri presných výrazoch, ako sú kódy produktov.
Kontextové oknoMaximálne množstvo textu, ktoré model dokáže prijať v jednej požiadavke.
Ukotvenie / citáciePreviazanie odpovede s konkrétnymi vyhľadanými zdrojmi a ich zobrazenie.

Bežné mylné predstavy

  • „RAG trénuje model na mojich dátach.“ Nie. Nič na modeli sa nemení; len v čase otázky číta ďalší text.
  • „RAG znamená žiadne halucinácie.“ Znamená to menej halucinácií. Ak vyhľadávanie minie správny kúsok alebo odpoveď nie je vo vašich dokumentoch, model môže stále hádať. Naučte ho povedať „neviem“ a testujte otázkami, ktorých odpovede poznáte.
  • „Potrebujem špeciálnu vektorovú databázu.“ Často nie. Pri skromnom množstve dát môže stačiť vektorové rozšírenie databázy, ktorú už máte, alebo aj obyčajné vyhľadávanie kľúčových slov.
  • „Väčšie kúsky sú lepšie.“ Príliš veľké kúsky posielajú veľa nerelevantného textu (viac nákladov, viac zmätku); príliš malé strácajú kontext, ktorý ich robil zmysluplnými. Počítajte s úpravami.
  • „Stačí nahrať všetko.“ Zastarané, duplicitné alebo protichodné dokumenty prinášajú protichodné odpovede. Vyčistenie zdrojového materiálu je často najväčšie zlepšenie, aké môžete urobiť.
  • „Každý môže vidieť každý dokument.“ Iba ak to tak postavíte. Ak sú niektoré dokumenty súkromné pre určitých používateľov, samotné vyhľadávanie musí filtrovať podľa toho, kto sa pýta — inak asistent môže citovať dáta jedného zákazníka inému.

Čo to stojí

Funkcia RAG má zvyčajne tri priebežné náklady: embedding vašich dokumentov (malý a väčšinou jednorazový), embedding každej otázky (zanedbateľný) a volanie jazykového modelu (hlavný náklad, ktorý rastie s počtom odoslaných kúskov). Plus úložisko vo vašej databáze. Váš poskytovateľ AI účtuje tieto náklady na váš účet, takže tam nastavte limit výdavkov.

Čo požiadať od svojho AI nástroja na tvorbu

  • „Pred stavbou RAG skontroluj: je náš obsah dostatočne malý na to, aby sa jednoducho vložil do promptu?“
  • „Rozdeľ články pomoci na kúsky po niekoľkých odsekoch, ponechaj pri každom kúsku nadpis a odkaz na zdroj a embeddingy ukladaj do našej databázy.“
  • „Použi hybridné vyhľadávanie — podľa významu plus kľúčových slov — aby sa kódy produktov stále zhodovali.“
  • „Povedz modelu, aby odpovedal len z vyhľadaných zdrojov, povedal, keď niečo nevie, a pod každou odpoveďou ukázal zdroje.“
  • „Vyhľadávaj len v dokumentoch, ktoré môže prihlásený používateľ vidieť.“
  • „Pri každej úprave dokumentu ho automaticky znovu vytvor embedding.“
  • „Nechaj kľúč k poskytovateľovi AI na serveri v tajomstve, nikdy v prehliadači.“
  • „Zaznamenávaj každú otázku, vyhľadané kúsky a odpoveď, aby som mohol preskúmať zlé odpovede.“

RAG v Mythex

Mythex neobsahuje hotový produkt na znalostnú databázu ani RAG. Robí to, že do vašej aplikácie napíše kód pre takýto systém: vy prinesiete svoje dokumenty a svoj vlastný kľúč k poskytovateľovi AI, uložený ako tajomstvo projektu, a agent vytvorí časti pre vyhľadávanie a chat s použitím databázy Postgres projektu na ukladanie. Používanie poskytovateľa sa účtuje na váš účet u poskytovateľa, nie v kreditoch Mythex. Dokumentácia odporúča začať s jednou jednoduchou funkciou AI a pridať RAG, keď bude fungovať — pozrite tvorbu AI aplikácie a naše návody na tvorbu chatbota s AI a pridanie funkcií AI do aplikácie.

Otázky

Čo je RAG jednoducho povedané?

RAG (retrieval-augmented generation) je spôsob, ako dať AI modelu odpovedať z vašich vlastných informácií. Predtým, než model odpovie, vaša aplikácia prehľadá dokumenty kvôli pasážam, ktoré sú k otázke najrelevantnejšie, a vloží ich do promptu. Odpoveď je tak založená na tomto texte, a nie len na tom, čo sa model naučil počas tréningu.

Trénuje RAG AI na mojich dátach?

Nie. RAG vôbec nemení model. V okamihu, keď sa položí otázka, vyhľadá relevantný text a odovzdá ho modelu spolu s otázkou. Ak aktualizujete dokument, ďalšia odpoveď môže použiť novú verziu hneď.

Je RAG to isté ako fine-tuning?

Nie. Fine-tuning mení správanie modelu tým, že ho ďalej trénuje na príkladoch, čo je pomalšie a lepšie na štýl alebo formát. RAG dáva modelu fakty, ktoré má prečítať v čase otázky, čo je lepšie pre znalosti, ktoré sa menia, alebo ktoré treba citovať presne.

Zastaví RAG halucinácie AI?

Znižuje ich, ale neodstraňuje úplne. Ak vyhľadávanie nájde nesprávne pasáže alebo odpoveď nie je vo vašich dokumentoch, model stále môže hádať. Dobré RAG aplikácie hovoria modelu, aby povedal, keď niečo nevie, a ukazujú zdroje, ktoré použili.

Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s 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ų Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)