Refresh

This website www.unite.ai/cs/a-deep-dive-into-retrieval-augmented-generation-in-llm/ is currently offline. Cloudflare's Always Online™ shows a snapshot of this web page from the Internet Archive's Wayback Machine. To check for the live version, click Refresh.

Spojte se s námi

Umělá inteligence

Hluboký ponor do generace rozšířené vyhledávání v LLM

Zveřejněno

 on

Představte si, že jste analytik a máte přístup k velkému jazykovému modelu. Jste nadšeni z vyhlídek, které to přináší do vašeho pracovního postupu. Ale pak se ho zeptáte na nejnovější ceny akcií nebo aktuální míru inflace a napadne vás:

"Je mi líto, ale nemohu poskytnout data v reálném čase ani data po uzávěrce." Moje poslední tréninková data pocházejí pouze do ledna 2022.“

Velký jazykový model, přes veškerou svou jazykovou sílu, postrádá schopnost pochopit „teď'. A v rychle se měnícím světě, 'teď' je všechno.

Výzkum ukázal, že velké předtrénované jazykové modely (LLM) jsou také úložištěm faktických znalostí.

Byli vycvičeni na tolika datech, že vstřebali spoustu faktů a čísel. Při jemném vyladění mohou dosáhnout pozoruhodných výsledků v různých úkolech NLP.

Ale tady je háček: jejich schopnost přistupovat k těmto uloženým znalostem a manipulovat s nimi není občas dokonalá. Zejména pokud je úkol náročný na znalosti, mohou tyto modely zaostávat za specializovanějšími architekturami. Je to jako mít knihovnu se všemi knihami světa, ale žádný katalog, kde byste našli to, co potřebujete.

ChatGPT OpenAI získává upgrade procházení

Nedávné oznámení OpenAI o schopnosti procházení ChatGPT je významným skokem směrem k Retrieval-Augmented Generation (RAG). Díky ChatGPT, který je nyní schopen prohledávat internet a hledat aktuální a autoritativní informace, odráží přístup RAG dynamického získávání dat z externích zdrojů za účelem poskytování obohacených odpovědí.

OpenAI, která je v současné době dostupná pro uživatele Plus a Enterprise, plánuje tuto funkci brzy zavést všem uživatelům. Uživatelé to mohou aktivovat výběrem „Procházet pomocí Bing“ pod možností GPT-4.

Chatgpt Nová funkce procházení „Bing“.

 Pohotové inženýrství je účinné, ale nedostatečné

Výzvy slouží jako brána ke znalostem LLM. Řídí model a poskytují směr pro reakci. Vytvoření efektivní výzvy však není plnohodnotným řešením, jak od LLM získat to, co chcete. Přesto si projdeme několik osvědčených postupů, které je třeba vzít v úvahu při psaní výzvy:

  1. Jasnost: Dobře definovaná výzva eliminuje nejednoznačnost. Mělo by to být jednoduché a mělo by zajistit, že model rozumí záměru uživatele. Tato srozumitelnost se často promítá do koherentnějších a relevantnějších odpovědí.
  2. Kontext: Zejména u rozsáhlých vstupů může umístění instrukce ovlivnit výstup. Například přesunutí instrukce na konec dlouhé výzvy může často přinést lepší výsledky.
  3. Přesnost ve výuce: Síla otázky, často přenášená prostřednictvím rámce „kdo, co, kde, kdy, proč, jak“ může vést model k cílenější reakci. Navíc zadání požadovaného výstupního formátu nebo velikosti může dále upřesnit výstup modelu.
  4. Zvládání nejistoty: Je nezbytné vést model, jak reagovat, když si není jistý. Například pokyn modelu, aby odpověděl „nevím“, když si není jistý, může zabránit tomu, aby generoval nepřesné nebo „halucinovaný“odpovědi.
  5. Myšlení krok za krokem: U komplexních instrukcí může vést model k systematickému uvažování nebo rozdělení úkolu do dílčích úkolů vést ke komplexnějším a přesnějším výstupům.

Ve vztahu k důležitosti výzev při vedení ChatGPT lze obsáhlý článek nalézt v článku na adrese Unite.ai.

Výzvy v generativních modelech umělé inteligence

Rychlé inženýrství zahrnuje jemné doladění direktiv daných vašemu modelu, aby se zvýšil jeho výkon. Je to velmi nákladově efektivní způsob, jak zvýšit přesnost vaší generativní AI aplikace, která vyžaduje pouze drobné úpravy kódu. I když rychlé inženýrství může výrazně zlepšit výstupy, je důležité porozumět přirozeným omezením velkých jazykových modelů (LLM). Dvě hlavní výzvy jsou halucinace a znalostní limity.

  • Halucinace: Týká se případů, kdy model s jistotou vrací nesprávnou nebo vymyšlenou odpověď. Ačkoli pokročilé LLM má vestavěné mechanismy, které takové výstupy rozpozná a zabrání jim.

Halucinace v LLM

  • Hranice znalostí: Každý model LLM má datum ukončení školení, příspěvek, o kterém neví o událostech nebo vývoji. Toto omezení znamená, že znalosti modelu jsou zmrazeny v okamžiku jeho posledního data školení. Například model trénovaný do roku 2022 by neznal události roku 2023.

Znalosti cut-off v LLM

Generování rozšířené o načítání (RAG) nabízí řešení těchto problémů. Umožňuje modelům přístup k externím informacím a zmírňuje problémy s halucinacemi tím, že poskytuje přístup k proprietárním nebo doménově specifickým datům. V případě omezení znalostí má RAG přístup k aktuálním informacím i po datu školení modelu, což zajišťuje aktuálnost výstupu.

Umožňuje také LLM stahovat data z různých externích zdrojů v reálném čase. Mohou to být znalostní báze, databáze nebo dokonce obrovská rozloha internetu.

Úvod do Retrieval-Augmented Generation

Retrieval-augmented generation (RAG) je spíše rámec než specifická technologie, která umožňuje velkým jazykovým modelům využívat data, na kterých nebyly trénovány. Existuje několik způsobů, jak implementovat RAG, a nejvhodnější závisí na vašem konkrétním úkolu a povaze vašich dat.

Rámec RAG funguje strukturovaným způsobem:

Prompt Input

Proces začíná zadáním nebo výzvou uživatele. Může se jednat o otázku nebo prohlášení s cílem získat konkrétní informace.

Získávání z externích zdrojů

Namísto přímého generování odezvy na základě svého trénování model s pomocí komponenty retriever prohledává externí zdroje dat. Tyto zdroje mohou sahat od znalostních bází, databází a úložišť dokumentů až po data dostupná přes internet.

Pochopení Retrieval

Ve své podstatě vyhledávání zrcadlí vyhledávací operaci. Jde o extrakci nejrelevantnějších informací v reakci na vstup uživatele. Tento proces lze rozdělit do dvou fází:

  1. Indexování: Pravděpodobně nejnáročnější částí celé cesty RAG je indexování vaší znalostní báze. Proces indexování lze obecně rozdělit do dvou fází: Načítání a dělení. V nástrojích jako LangChain se tyto procesy nazývají „nakladače"A"rozdělovače“. Zavaděče načítají obsah z různých zdrojů, ať už jde o webové stránky nebo soubory PDF. Po načtení rozdělovače rozdělí tento obsah na malé kousky a optimalizují je pro vkládání a vyhledávání.
  2. Dotaz: Toto je akt extrahování nejrelevantnějších fragmentů znalostí na základě hledaného výrazu.

I když existuje mnoho způsobů, jak přistupovat k vyhledávání, od jednoduchého porovnávání textu po použití vyhledávačů, jako je Google, moderní systémy Retrieval-Augmented Generation (RAG) spoléhají na sémantické vyhledávání. Jádrem sémantického vyhledávání je koncept vložení.

Vkládání je zásadní pro to, jak velké jazykové modely (LLM) rozumí jazyku. Když se lidé snaží formulovat, jak odvozují význam ze slov, vysvětlení se často vrací zpět k přirozenému porozumění. Hluboko v našich kognitivních strukturách uznáváme, že „dítě“ a „dítě“ jsou synonyma, nebo že „červená“ a „zelená“ obě označují barvy.

Rozšíření výzvy

Získané informace jsou poté zkombinovány s původní výzvou a vytvoří se rozšířená nebo rozšířená výzva. Tato rozšířená výzva poskytuje modelu další kontext, který je zvláště cenný, pokud jsou data doménově specifická nebo nejsou součástí původního trénovacího korpusu modelu.

Generování Dokončení

S rozšířenou výzvou v ruce pak model vygeneruje dokončení nebo odpověď. Tato odezva není založena pouze na trénování modelu, ale také na základě získaných dat v reálném čase.

Generování rozšířeného vyhledávání

Architektura prvního RAG LLM

Výzkumná studie Meta publikovaná v roce 2020 “Generování rozšířeného vyhledávání pro úkoly NLP náročné na znalosti“ poskytuje hloubkový pohled na tuto techniku. Model Retrieval-Augmented Generation rozšiřuje tradiční proces generování o externí mechanismus vyhledávání nebo vyhledávání. To modelu umožňuje čerpat relevantní informace z rozsáhlých datových korpusů, čímž se zvyšuje jeho schopnost generovat kontextově přesné odpovědi.

Jak to funguje:

  1. Parametrická paměť: Toto je váš tradiční jazykový model, jako model seq2seq. Byl trénován na obrovském množství dat a ví hodně.
  2. Neparametrická paměť: Představte si to jako vyhledávač. Je to hustý vektorový index, řekněme Wikipedie, ke kterému lze přistupovat pomocí neurálního retrívra.

Když se tyto dva spojí, vytvoří přesný model. Model RAG nejprve získá relevantní informace ze své neparametrické paměti a poté použije své parametrické znalosti k poskytnutí koherentní odpovědi.

Originální model RAG od Meta

1. Dvoustupňový proces:

RAG LLM funguje ve dvou krocích:

  • Načítání: Model nejprve vyhledává relevantní dokumenty nebo pasáže z velkého souboru dat. To se provádí pomocí mechanismu hustého vyhledávání, který využívá vložení k reprezentaci dotazu i dokumentů. Vložení se pak použijí k výpočtu skóre podobnosti a získají se dokumenty s nejvyšším hodnocením.
  • Generace: S top-k relevantními dokumenty v ruce jsou pak směřovány do generátoru sekvencí k sekvencím spolu s počátečním dotazem. Tento generátor poté vytvoří konečný výstup a vykreslí kontext jak z dotazu, tak z načtených dokumentů.

2. Husté vyhledávání:

Tradiční vyhledávací systémy často spoléhají na řídké reprezentace, jako je TF-IDF. RAG LLM však využívá husté reprezentace, kde jsou jak dotaz, tak dokumenty vloženy do souvislých vektorových prostorů. To umožňuje podrobnější srovnání podobností a zachycuje sémantické vztahy nad rámec pouhé shody klíčových slov.

3. Generování sekvence-to-sekvence:

Získané dokumenty fungují jako rozšířený kontext pro model generování. Tento model, často založený na architekturách, jako jsou Transformers, pak generuje konečný výstup a zajišťuje, že je koherentní a kontextově relevantní.

Hledání dokumentů

Indexování a načítání dokumentů

Pro efektivní vyhledávání informací, zejména z velkých dokumentů, jsou data často uložena ve vektorové databázi. Každý kus dat nebo dokumentu je indexován na základě vektoru vkládání, který zachycuje sémantickou podstatu obsahu. Efektivní indexování zajišťuje rychlé vyhledání relevantních informací na základě vstupní výzvy.

Vektorové databáze

Vektorové databáze, někdy nazývané vektorové úložiště, jsou přizpůsobené databáze schopné ukládat a načítat vektorová data. V oblasti umělé inteligence a informatiky jsou vektory v podstatě seznamy čísel symbolizujících body ve vícerozměrném prostoru. Na rozdíl od tradičních databází, které jsou více sladěny s tabulkovými daty, vektorové databáze vynikají ve správě dat, která přirozeně odpovídají vektorovému formátu, jako jsou vložení z modelů AI.

Některé významné vektorové databáze zahrnují Annoy, Faiss od Meta, Milvus, a Borová šiška. Tyto databáze jsou stěžejní v aplikacích umělé inteligence a pomáhají v úlohách od systémů doporučení až po vyhledávání obrázků. Platformy jako AWS také nabízejí služby přizpůsobené potřebám vektorových databází, jako je Amazon OpenSearch Service a Amazon RDS pro PostgreSQL. Tyto služby jsou optimalizovány pro konkrétní případy použití a zajišťují efektivní indexování a dotazování.

Chunking pro relevanci

Vzhledem k tomu, že mnoho dokumentů může být rozsáhlých, často se používá technika známá jako „chunking“. To zahrnuje rozdělení velkých dokumentů na menší, sémanticky koherentní části. Tyto bloky jsou pak indexovány a načteny podle potřeby, což zajišťuje, že nejrelevantnější části dokumentu jsou použity k rychlému rozšíření.

Úvahy o kontextovém okně

Každý LLM pracuje v rámci kontextového okna, což je v podstatě maximální množství informací, které může vzít v úvahu najednou. Pokud externí zdroje dat poskytují informace přesahující toto okno, je třeba je rozdělit na menší části, které se vejdou do kontextového okna modelu.

Výhody využití generování rozšířeného vyhledávání

  1. Vylepšená přesnost: Využitím externích datových zdrojů může RAG LLM generovat odpovědi, které nejsou založeny pouze na jeho trénovacích datech, ale jsou také informovány o nejrelevantnějších a nejaktuálnějších informacích dostupných v korpusu vyhledávání.
  2. Překonávání znalostních mezer: RAG účinně řeší inherentní znalostní omezení LLM, ať už je to způsobeno přerušením tréninku modelu nebo absencí doménově specifických dat v jeho tréninkovém korpusu.
  3. Všestrannost: RAG lze integrovat s různými externími datovými zdroji, od proprietárních databází v rámci organizace až po veřejně přístupná internetová data. Díky tomu je přizpůsobitelný široké škále aplikací a průmyslových odvětví.
  4. Snížení halucinací: Jednou z výzev LLM je potenciál pro „halucinace“ nebo generování fakticky nesprávných nebo smyšlených informací. Poskytnutím kontextu dat v reálném čase může RAG výrazně snížit šance na takové výstupy.
  5. Škálovatelnost: Jednou z hlavních výhod RAG LLM je její schopnost škálování. Oddělením procesů získávání a generování může model efektivně zpracovávat rozsáhlé datové sady, díky čemuž je vhodný pro aplikace v reálném světě, kde je dat dostatek.

Výzvy a úvahy

  • Výpočetní režie: Dvoustupňový proces může být výpočetně náročný, zejména při práci s velkými datovými sadami.
  • Závislost na datech: Kvalita načtených dokumentů přímo ovlivňuje kvalitu generování. Proto je velmi důležité mít komplexní a dobře zpracovaný korpus vyhledávání.

Proč investovat do čističky vzduchu?

Díky integraci procesů vyhledávání a generování nabízí Retrieval-Augmented Generation robustní řešení pro úkoly náročné na znalosti a zajišťuje výstupy, které jsou informované a kontextově relevantní.

Skutečný příslib RAG spočívá v jeho potenciálních aplikacích v reálném světě. Pro sektory, jako je zdravotnictví, kde mohou být klíčové včasné a přesné informace, nabízí RAG možnost bezproblémově extrahovat a generovat poznatky z rozsáhlé lékařské literatury. V oblasti financí, kde se trhy vyvíjejí každou minutu, může RAG poskytnout informace v reálném čase založené na datech, což pomáhá při informovaném rozhodování. Kromě toho v akademické sféře a ve výzkumu mohou učenci využít RAG ke skenování rozsáhlých úložišť informací, což zefektivní recenze literatury a analýzu dat.

Posledních pět let jsem strávil ponořením se do fascinujícího světa strojového učení a hlubokého učení. Moje vášeň a odborné znalosti mě vedly k tomu, abych se podílel na více než 50 různých projektech softwarového inženýrství se zvláštním zaměřením na AI/ML. Moje neustálá zvědavost mě také přivedla ke zpracování přirozeného jazyka, což je obor, který bych rád dále prozkoumal.