Sdílet prostřednictvím


Rozšíření velkých jazykových modelů pomocí generování s podporou načítání nebo doladění.

V řadě článků probereme mechanismy načítání znalostí, které velké jazykové modely (LLM) používají ke generování odpovědí. VE výchozím nastavení má LLM přístup pouze k trénovacím datům. Model ale můžete rozšířit tak, aby zahrnoval data v reálném čase nebo soukromá data.

Prvním mechanismem je načítání rozšířené generace (RAG). RAG je forma předběžného zpracování, která kombinuje sémantické vyhledávání s kontextovýmprimováním. Kontextová aktivace je podrobně popsána v Klíčové koncepty a aspekty budování řešení pro generování umělé inteligence.

Druhý mechanismus je jemné ladění. Při vyladění je LLM dále vytrénován na specifické datové sadě po počátečním širokém tréninku. Cílem je přizpůsobit LLM tak, aby lépe fungoval s úlohami nebo porozumět konceptům, které souvisejí s datovou sadou. Tento proces pomáhá modelu specializovat nebo zlepšit jeho přesnost a efektivitu při zpracování konkrétních typů vstupů nebo domén.

Následující části popisují tyto dva mechanismy podrobněji.

Principy RAG

RAG se často používá k umožnění scénáře "chatování nad mými daty". V tomto scénáři má organizace potenciálně velký korpus textového obsahu, jako jsou dokumenty, dokumentace a další proprietární data. Tento korpus používá jako základ pro odpovědi na výzvy uživatelů.

V zásadě vytvoříte položku databáze pro každý dokument nebo pro část dokumentu označovanou jako blok. Blok je indexován na vložení, což je vektor (pole) čísel, která představují aspekty dokumentu. Když uživatel odešle dotaz, vyhledáte v databázi podobné dokumenty a pak odešlete dotaz a dokumenty do LLM, abyste mohli vytvořit odpověď.

Poznámka:

Termín načítání rozšířené generace (RAG) používáme akomodativně. Proces implementace chatovacího systému založeného na RAG, jak je uvedeno v tomto článku, se dá použít bez ohledu na to, jestli chcete použít externí data v podpůrné kapacitě (RAG) nebo jako střed odpovědi (RCG). Nuanční rozlišení není zmíněno ve většině literatury související s RAG.

Vytvoření indexu vektorizovaných dokumentů

Prvním krokem k vytvoření chatovacího systému založeného na RAG je vytvoření vektorového úložiště dat, které obsahuje vektorové vkládání dokumentu nebo bloku dat. Podívejte se na následující diagram, který popisuje základní kroky vytvoření vektorizovaného indexu dokumentů.

diagram, který znázorňuje různé fáze příjmu dokumentů v chatovacím systému založeném na RAG

Diagram představuje datový tok. Kanál zodpovídá za příjem, zpracování a správu dat, která systém používá. Kanál obsahuje předběžné zpracování dat, která mají být uložena v vektorové databázi, a zajišťuje, aby data, která jsou do LLM předána, byla ve správném formátu.

Celý proces je řízen konceptem vkládání, což je číselná reprezentace dat (obvykle slova, fráze, věty nebo dokonce celé dokumenty), která zachycuje sémantické vlastnosti vstupu způsobem, který lze zpracovávat modely strojového učení.

Pokud chcete vytvořit vkládání, odešlete do rozhraní API azure OpenAI Embeddings blok obsahu (věty, odstavce nebo celé dokumenty). Rozhraní API vrátí vektor. Každá hodnota vektoru představuje charakteristické (dimenze) obsahu. Dimenze můžou zahrnovat téma, sémantický význam, syntaxi a gramatiku, použití slov a frází, kontextové relace, styl nebo tón. Všechny hodnoty vektoru společně představují prostorový prostor obsahu. Pokud si představíte 3D reprezentaci vektoru se třemi hodnotami, je konkrétní vektor v určité oblasti roviny XYZ. Co když máte 1 000 hodnot nebo ještě víc? I když není možné, aby lidé kreslili graf o rozměrech 1 000 na list papíru, aby byl srozumitelnější, počítače nemají žádný problém pochopit tento stupeň rozměrového prostoru.

Další krok diagramu znázorňuje uložení vektoru a obsahu (nebo ukazatele na umístění obsahu) a dalších metadat v vektorové databázi. Vektorová databáze je jako jakýkoli typ databáze, ale se dvěma rozdíly:

  • Vektorové databáze používají vektor jako index k hledání dat.
  • Vektorové databáze implementují algoritmus označovaný jako kosinové podobnostní vyhledávání, také nazývaný nejbližší soused. Algoritmus používá vektory, které nejvíce odpovídají kritériím hledání.

S korpusem dokumentů uložených v vektorové databázi mohou vývojáři vytvořit komponentu retrieveru k načtení dokumentů, které odpovídají dotazu uživatele. Data jsou použita k tomu, aby LLM poskytla, co potřebuje k zodpovězení dotazu uživatele.

Zodpovídání dotazů pomocí vašich dokumentů

Systém RAG nejprve používá sémantické vyhledávání k vyhledání článků, které by mohly být užitečné pro LLM při vytváření odpovědi. Dalším krokem je odeslání odpovídajících článků s původní výzvou uživatele k vytvoření odpovědi do LLM.

Představte si následující diagram jako jednoduchou implementaci RAG (někdy označovanou jako naïve RAG):

diagram, který znázorňuje jednoduchý tok RAG

V diagramu uživatel odešle dotaz. Prvním krokem je vytvořit vnoření uživatelského zadání pro získání vektoru. Dalším krokem je prohledání vektorové databáze pro ty dokumenty (nebo části dokumentů), které tvoří nejbližší shodu.

Kosinusová podobnost je mírou, která pomáhá určit, jak podobné dva vektory jsou. Metrika v podstatě posuzuje kosinus úhlu mezi nimi. Kosinus podobnost, která je blízko 1 označuje vysoký stupeň podobnosti (malý úhel). Podobnost blízko -1 indikuje rozdílnost (úhel téměř 180 stupňů). Tato metrika je zásadní pro úkoly, jako je podobnost dokumentu, kde cílem je najít dokumenty, které mají podobný obsah nebo význam.

Algoritmy nejbližšího souseda fungují tak, že vyhledávají nejbližší vektory (sousedy) pro daný bod ve vektorovém prostoru. V algoritmu k-nejbližších sousedů (KNN)se k vztahuje na počet nejbližších sousedů, které je potřeba vzít v úvahu. Tento přístup se běžně používá při klasifikaci a regresi, kdy algoritmus predikuje štítek nového datového bodu na základě většinového štítku k nejbližších sousedů v trénovací sadě. KNN a kosinus podobnost se často používají společně v systémech, jako jsou moduly doporučení, kde cílem je najít položky, které jsou nejvíce podobné předvolbám uživatele, reprezentované jako vektory v prostoru pro vložení.

Z tohoto hledání získáte nejlepší výsledky a odešlete odpovídající obsah spolu s uživatelskou výzvou, abyste vygenerovali odpověď, která (snad) bude založena na odpovídajícím obsahu.

Výzvy a aspekty

Systém RAG má svou sadu výzev k implementaci. Ochrana osobních údajů je nejdůležitější. Systém musí zpracovávat uživatelská data zodpovědně, zejména když načítá a zpracovává informace z externích zdrojů. Výpočetní požadavky mohou být také významné. Proces načítání i procesy generování jsou náročné na prostředky. Zajištění přesnosti a relevance odpovědí při řízení předsudků v datech nebo modelu je dalším kritickým zohledněním. Vývojáři musí tyto výzvy pečlivě procházet a vytvářet efektivní, etické a cenné systémy RAG.

Vytváření pokročilých systémů rozšířené generace načítání poskytuje další informace o vytváření kanálů pro odvozování dat a odvozování, které umožňují systém RAG připravený pro produkční prostředí.

Pokud chcete začít experimentovat s vytvářením řešení generující umělé inteligence okamžitě, doporučujeme se podívat na začínáme s chatem pomocí vlastní ukázky dat pro Python. Tento kurz je také k dispozici pro .NET, Javaa JavaScript.

Vyladění modelu

V kontextu LLM je vyladění proces úprav parametrů modelu tím, že ho trénuje na datovou sadu specifickou pro doménu po počátečním trénování LLM na velké a různorodé datové sadě.

LLM se trénují (předem natrénované) na široké datové sadě, chápou strukturu jazyka, kontext a širokou škálu znalostí. Tato fáze zahrnuje výuku obecných jazykových vzorů. Vyladění přidává do předem natrénovaného modelu další trénování na základě menší konkrétní datové sady. Cílem této sekundární fáze trénování je přizpůsobit model tak, aby lépe fungoval s konkrétními úlohami nebo pochopit konkrétní domény, což zvyšuje jeho přesnost a význam pro tyto specializované aplikace. Při vyladění se váhy modelu upraví tak, aby lépe předpovídaly nebo porozuměly nuancí této menší datové sady.

Několik důležitých informací:

  • Specializace: Jemné vyladění modelu přizpůsobí konkrétním úkolům, jako je analýza právních dokumentů, interpretace lékařského textu nebo interakce zákaznických služeb. Díky této specializaci je model v těchto oblastech efektivnější.
  • Efektivita: Je efektivnější doladit předem natrénovaný model pro konkrétní úlohu než vytrénovat model od začátku. Vyladění vyžaduje méně dat a méně výpočetních prostředků.
  • přizpůsobitelnost: Vyladění umožňuje přizpůsobení novým úkolům nebo doménám, které nebyly součástí původních trénovacích dat. Přizpůsobitelnost LLMů dělá z nich všestranné nástroje pro různé aplikace.
  • zlepšení výkonu: U úloh, které se liší od dat, na které byl model původně natrénován, může vyladění vést k lepšímu výkonu. Vyladění upraví model tak, aby porozuměl konkrétnímu jazyku, stylu nebo terminologii používané v nové doméně.
  • Přizpůsobení: V některých aplikacích může vyladění pomoci přizpůsobit odpovědi nebo předpovědi modelu tak, aby vyhovovaly konkrétním potřebám nebo preferencím uživatele nebo organizace. Vyladění má ale specifické nevýhody a omezení. Pochopení těchto faktorů vám může pomoct rozhodnout, kdy se rozhodnout pro jemné ladění a alternativy, jako je RAG.
  • požadavky na data: Jemné ladění vyžaduje dostatečně velkou a vysoce kvalitní datovou sadu, která je specifická pro cílovou úlohu nebo doménu. Shromažďování a kurátorování této datové sady může být náročné a náročné na prostředky.
  • Riziko přeurčení: Přeurčení je riziko, zejména u malé datové sady. Přeurčení umožňuje, aby model dobře fungoval s trénovacími daty, ale špatně na nových, nezoznaných datech. Generalizovatelnost se snižuje, když nastane přetížení.
  • náklady a prostředky: I když méně náročné na prostředky než trénování od začátku, vyladění stále vyžaduje výpočetní prostředky, zejména pro velké modely a datové sady. Náklady můžou být pro některé uživatele nebo projekty příliš vysoké.
  • Údržba a aktualizace: Jemně vyladěné modely můžou potřebovat pravidelné aktualizace, aby zůstaly efektivní, protože se informace specifické pro doménu mění v průběhu času. Tato průběžná údržba vyžaduje další prostředky a data.
  • Drift modelu: Protože je model optimalizovaný pro konkrétní úlohy, může přijít o některé z jeho obecného porozumění jazyku a všestrannosti. Tento jev se nazývá posun modelu.

Přizpůsobení modelu prostřednictvím jemného ladění vysvětluje, jak model vyladit. Na vysoké úrovni poskytnete datovou sadu JSON s potenciálními otázkami a upřednostňovaným odpověďmi. Dokumentace naznačuje, že existují znatelná vylepšení tím, že poskytuje 50 až 100 dvojic otázek a odpovědí, ale správné číslo se výrazně liší v případě použití.

Jemné ladění vs. RAG

Na první pohled se může zdát, že se doladění a RAG významně překrývají. Volba mezi vyladěním a načítáním rozšířené generace závisí na konkrétních požadavcích vaší úlohy, včetně očekávání výkonu, dostupnosti prostředků a potřeby specificity pro doménu a generalizovatelnosti.

Kdy místo RAG použít jemné ladění:

  • výkon specifický pro úlohy: Vyladění je vhodnější v případě, že je kritický vysoký výkon konkrétní úlohy a existuje dostatek dat specifických pro doménu pro efektivní trénování modelu bez významného rizika přeurčení.
  • Kontrola nad daty: Pokud máte proprietární nebo vysoce specializovaná data, která se výrazně liší od dat, na kterých byl základní model natrénován, můžete tyto jedinečné znalosti začlenit do modelu.
  • Omezené potřeby aktualizací v reálném čase: Pokud úloha nevyžaduje, aby se model neustále aktualizoval nejnovějšími informacemi, může být vyladění efektivnější, protože modely RAG obvykle potřebují přístup k up-to-date externích databází nebo internetu k načtení posledních dat.

Kdy preferovat RAG před vyladěním:

  • dynamického obsahu nebo vyvíjejícího se obsahu: RAG je vhodnější pro úlohy, u kterých je nejdůležitější mít nejaktuálnější informace. Vzhledem k tomu, že modely RAG můžou přijímat data z externích zdrojů v reálném čase, jsou vhodnější pro aplikace, jako je generování zpráv nebo odpovídání na otázky týkající se nedávných událostí.
  • Generalizace nad specializacemi: Pokud je cílem zachovat silný výkon v široké škále témat, a ne excelovat v úzké doméně, může být rag vhodnější. Používá externí znalostní báze, což umožňuje generovat odpovědi napříč různými doménami bez rizika přeurčení konkrétní datové sady.
  • omezení prostředků: Pro organizace s omezenými prostředky pro shromažďování dat a trénování modelů může použití přístupu RAG nabídnout nákladově efektivní alternativu k vyladění, zejména pokud základní model již na požadovaných úkolech funguje přiměřeně dobře.

Konečné aspekty návrhu aplikace

Tady je krátký seznam věcí, které je potřeba vzít v úvahu, a další poznatky z tohoto článku, které můžou ovlivnit rozhodnutí o návrhu vaší aplikace:

  • Rozhodněte se mezi vyladěním a RAG na základě konkrétních potřeb vaší aplikace. Vyladění může nabídnout lepší výkon pro specializované úlohy, zatímco RAG může poskytovat flexibilitu a up-to-date obsah pro dynamické aplikace.