Artificial intelligence (AI)

Retrieval Augmented Generation (RAG)

Jak vytvořit systém RAG v make.com

Retrieval Augmented Generation (RAG) je často využívaný vzor při vytváření AI automatizací a aplikací. Tento článek vám ukáže, jak si vlastní RAG systém vytvořit.

Co je RAG a proč je užitečný?

  • Definice: RAG (rozšířené generování vyhledáváním) umožňuje velkým jazykovým modelům (LLM) odkazovat na externí informace.
  • Proč jej potřebujeme?
    • Kontextová okna jazykových modelů, jako je chat GPT, mají omezenou kapacitu.
    • Například jedno nebo dvě PDF mohou být zpracovány přímo, ale 100 nebo 200 souborů už ne.
  • Princip fungování:
    • Dokumenty jsou rozděleny na menší části (chunky), které se přemění na vektory (embeddingy).
    • Při dotazu se vyhledají pouze relevantní chunky, které se přidají do vstupu modelu.

Kdy použít RAG?

  1. Otázky a odpovědi:
    • Například u zákaznické podpory, kde se hledají informace ve znalostní bázi.
    • Model na základě nalezených chunků generuje odpovědi.
  2. Chat s PDF:
    • Umožňuje interakci s obsahem PDF bez nutnosti číst celý dokument.
    • Malá PDF mohou být zpracována přímo, ale větší dokumenty vyžadují RAG.
  3. Další výhody:
    • Snižuje náklady (méně tokenů).
    • Zkracuje dobu odezvy modelu (nižší latence).

Postup vytvoření systému RAG v make.com

  1. Příprava znalostní báze

    • Vyberte dokumenty, které chcete zahrnout (např. PDF „AI Automation at Work“ od McKinsey).
    • Použijte nástroj Dumpling AI:
      • Vytvořte novou znalostní bázi (např. „Automation Resources“).
      • Nahrajte PDF, které Dumpling AI rozdělí na chunky a vytvoří embeddingy.
    • Otestujte znalostní bázi dotazem, např. „Jaké je pořadí USA v investicích do AI?“
  2. Vyhledání relevantních chunků v make.com

    • Použijte modul „Search Knowledgebase“:
      • Zadejte ID znalostní báze a vyhledávací dotaz.
      • Nastavte počet výsledků (např. 5).
      • Modul vrátí chunky s hodnocením relevance.
  3. Generování odpovědi pomocí LLM

    • Předejte chunky a otázku do jazykového modelu (např. GPT).
    • Použijte modul pro chat completion:
      • Agregujte chunky do textového řetězce.
      • Vytvořte promyšlený systémový prompt (např. „Odpověz na otázku na základě poskytnutých referencí“).
      • Vstupy propojte s modulem a spusťte generování odpovědi.
  4. Vytvoření interaktivního front-endu (volitelné)

    • Chat s PDF přes e-mail:
      • Nastavte e-mailový háček, který aktivuje automatizaci při přijetí e-mailu.
      • Aktualizujte dotaz a vstupy podle obsahu e-mailu.
      • Odpověď modelu odešlete zpět uživateli.

Další využití RAG

  • Obsahová tvorba:
    • Umožňuje nový obsah navázat na stávající znalosti (např. u blogů).
  • Marketing:
    • Efektivní využití existujícího obsahu pro generování nových kampaní.

Tento přístup nejen usnadňuje práci s velkými objemy dat, ale také optimalizuje náklady a výkon. Máte-li jakékoli dotazy, zanechte je v komentářích.

Obecné jazykové modely lze jemně vyladit k řešení několika běžných úloh, jako je analýza sentimentu a rozpoznávání pojmenovaných entit. Tyto úlohy obecně nevyžadují další znalosti na pozadí.

Pro složitější a znalostně náročnější úlohy je možné vytvořit systém založený na jazykovém modelu, který k dokončení úloh přistupuje k externím zdrojům znalostí. To umožňuje větší věcnou konzistenci, zvyšuje spolehlivost generovaných odpovědí a pomáhá zmírnit problém „halucinací“.

Výzkumníci Meta AI představili metodu nazvanou Retrieval Augmented Generation (RAG), která řeší takovéto znalostně náročné úlohy. RAG kombinuje komponentu vyhledávání informací s modelem generování textu. RAG lze jemně dolaďovat a jeho vnitřní znalosti lze efektivně upravovat bez nutnosti přeškolení celého modelu.

RAG přijímá vstupní data a vyhledává množinu relevantních/podporujících dokumentů zadaných zdrojem (např. Wikipedií).

Dokumenty jsou spojeny jako kontext s původní vstupní výzvou a předány generátoru textu, který vytvoří konečný výstup. Díky tomu je RAG adaptabilní pro situace, kdy se fakta mohou v průběhu času vyvíjet. To je velmi užitečné, protože parametrické znalosti LLM jsou statické. RAG umožňuje jazykovým modelům obejít přeškolení, což umožňuje přístup k nejnovějším informacím pro generování spolehlivých výstupů prostřednictvím generování na základě vyhledávání.

Recursive Prompting (Rekurzivní výzvy)

Rekurzivní podněty se týkají metody řešení problémů, která spočívá v rozdělení složitého problému na menší, lépe zvládnutelné dílčí problémy, které se pak řeší rekurzivně pomocí řady podnětů.

Tento přístup může být užitečný zejména u úloh, které vyžadují kompoziční zobecnění, kdy se jazykový model musí naučit kombinovat různé informace, aby vyřešil problém.

V kontextu zpracování přirozeného jazyka může rekurzivní podněcování zahrnovat použití přístupu několika podnětů k rozkladu složitého problému na dílčí problémy a následné postupné řešení extrahovaných dílčích problémů s využitím řešení předchozích dílčích problémů k zodpovězení dalšího problému.

Tento přístup lze použít pro úlohy, jako jsou matematické problémy nebo odpovědi na otázky, kde je třeba, aby jazykový model dokázal rozložit složité problémy na menší, lépe zvládnutelné části a dospěl k řešení.

Jazykový model pak může řešit každý dílčí problém samostatně nebo postupně, přičemž řešení předchozího dílčího problému použije k zodpovězení dalšího. 

(více…)

Multimodal Chain-of-Thought Prompting

Velké jazykové modely (LLM) vykazují působivý výkon při komplexním uvažování, protože využívají podněty myšlenkového řetězce (CoT) ke generování mezilehlých řetězců uvažování jako zdůvodnění pro odvození odpovědi. Dosavadní studie CoT se však zaměřovaly na modalitu jazyka.

Multimodal Chain-of-Thought Reasoning řeší omezení současných studií CoT v LLM tím, že zahrnuje jak jazykovou (text), tak zrakovou (obrázky) modalitu.

Multimodal-CoT je nový dvoustupňový rámec, který zlepšuje komplexní uvažování v LLM. Tento přístup nejprve generuje zdůvodnění pomocí textu i obrazů a poté tato vylepšená zdůvodnění využívá pro přesnější odvozování odpovědí. Tato metoda představuje významný odklon od dosavadních studií CoT, které se zaměřují pouze na jazykovou modalitu.

Následující obrázek z článku ukazuje příklad multimodální úlohy CoT.

(více…)

Chain-of-Verification (CoVe)

Generování věrohodných, ale nesprávných faktických informací, tzv. halucinace, je ve velkých jazykových modelech nevyřešeným problémem.

Chain-of-Verification Reduces Hallucination snižuje halucinace ve velkých jazykových modelech

Metoda Chain-of-Verification (CoVe) nejprve

(i) navrhne počáteční odpověď; poté

(ii) naplánuje ověřovací otázky k ověření svého návrhu;

(iii) odpoví na tyto otázky nezávisle, aby odpovědi nebyly zkresleny jinými odpověďmi; a

(iv) vygeneruje svou konečnou ověřenou odpověď.

Následující obrázek ilustruje metodu řetězového ověřování (CoVe).

(více…)

Jaký je rozdíl mezi „Chain of Thought“ a „Tree of Thought“?

Srovnání a účinnost

    • Složitost: Tree of Thought je ze své podstaty složitější, protože zahrnuje zvažování více linií uvažování současně. Je to komplexnější, ale také náročnější na efektivní strukturu.
    • Použitelnost: Řetězec myšlení je obecně přímočařejší a lze jej aplikovat na širokou škálu problémů, zejména tam, kde je výhodný lineární postup krok za krokem. Tree of Thought je vhodnější pro scénáře s možnostmi větvení, kde je třeba vzít v úvahu více faktorů nebo výsledků.
    • Efektivita: Pro jednodušší problémy je Chain of Thought obvykle efektivnější, protože je přímější. U složitějších, mnohostranných problémů může Tree of Thought poskytnout důkladnější průzkum problémového prostoru.
    • Co je lepší?: Výběr mezi nimi závisí na povaze úkolu. Pro většinu přímočarých úkolů při řešení problémů stačí Chain of Thought a snáze se ovládá. Tree of Thought se lépe hodí pro složité, vícerozměrné problémy, kde je třeba vyhodnotit různé hypotézy nebo scénáře.

    Stručně řečeno, obě metody mají za cíl zlepšit schopnosti uvažování jazykových modelů tím, že je vedou strukturovanějším myšlenkovým procesem. Volba toho, který se použije, by měla být založena na konkrétních požadavcích daného problému.

    Podněcování k řetězci myšlenek

      • Princip: Ve výzvě Chain of Thought uživatel zapíše mezikroky nebo proces uvažování, které by mohly vést k odpovědi. Tento přístup pomáhá modelu „myslet nahlas“ nebo následovat logický postup kroků k dosažení závěru.
      • Použití: Je zvláště užitečné pro složité problémy, jako jsou matematické slovní úlohy, kde pouhé uvedení problému neposkytuje dostatečné vodítko pro model. Zahrnutím řetězce uvažování je model povzbuzen k tomu, aby se řídil podobným přístupem krok za krokem.
      • Příklad: U matematického problému by výzva obsahovala jak problém, tak sekvenční podrobné vysvětlení, jak jej vyřešit, a provázet model procesem uvažování.

      Strom myšlenek podněcování

        • Princip: Nabádání Tree of Thought je sofistikovanější přístup, kde se paralelně zvažuje více linií uvažování. Je to jako vytvořit rozhodovací strom, kde každá větev představuje jinou cestu myšlení nebo jiný aspekt problému.
        • Použití: Tato metoda je užitečná pro problémy, kde může existovat více platných přístupů nebo když doména problému zahrnuje řešení možností a výsledků větvení.
        • Příklad: Ve složitém scénáři s více proměnnými nebo možnými výsledky by výzva zahrnovala prozkoumání těchto různých cest, jako je zvažování různých možných příčin jevu ve vědeckém problému.

        Srovnání a účinnost

        • Složitost: Tree of Thought je ze své podstaty složitější, protože zahrnuje zvažování více linií uvažování současně. Je to komplexnější, ale také náročnější na efektivní strukturu.
        • Použitelnost: Řetězec myšlení je obecně přímočařejší a lze jej aplikovat na širokou škálu problémů, zejména tam, kde je výhodný lineární postup krok za krokem. Tree of Thought je vhodnější pro scénáře s možnostmi větvení, kde je třeba vzít v úvahu více faktorů nebo výsledků.
        • Efektivita: Pro jednodušší problémy je Chain of Thought obvykle efektivnější, protože je přímější. U složitějších, mnohostranných problémů může Tree of Thought poskytnout důkladnější průzkum problémového prostoru.
        • Co je lepší?: Výběr mezi nimi závisí na povaze úkolu. Pro většinu přímočarých úkolů při řešení problémů stačí Chain of Thought a snáze se ovládá. Tree of Thought se lépe hodí pro složité, vícerozměrné problémy, kde je třeba vyhodnotit různé hypotézy nebo scénáře.

        Stručně řečeno, obě metody mají za cíl zlepšit schopnosti uvažování jazykových modelů tím, že je vedou strukturovanějším myšlenkovým procesem. Volba toho, který se použije, by měla být založena na konkrétních požadavcích daného problému.

        Výzvy „Chain of Thought“ a „Tree of Thought“ jsou metody používané ke zvýšení výkonu velkých jazykových modelů, jako je GPT-3 nebo GPT-4, zejména u složitých úloh, které vyžadují vícekrokové uvažování nebo řešení problémů.

        (více…)

        Co je vůbec AI? | Mustafa Suleyman | TED

        Souhrn videa

        GPT-4o:

        Chci vám říct, co vidím, že přijde. Měl jsem to štěstí, že jsem na AI pracoval téměř 15 let. Když jsem začínal, popsat to jako okrajovou záležitost by bylo slabé slovo. V roce 2010 by zmínka o „AGI“ (umělé obecné inteligenci) vyvolala zvláštní pohledy a chladné reakce. Lidé si mysleli, že to je 50 nebo 100 let daleko, pokud je to vůbec možné.

        Brzy AI začala porážet lidi v úkolech, které byly dříve považovány za nedosažitelné. Lidé si začali uvědomovat, že AI bude mít obrovský dopad, a kladli technikům těžké otázky. Můj šestiletý synovec Caspian se mě jednou zeptal: „Ale Mustafo, co je to vlastně AI?“ Řekl jsem, že je to chytrý software, který přečetl většinu textů na internetu a může s tebou mluvit o čemkoli.

        Začal jsem si uvědomovat, že AI je třeba chápat jako nový digitální druh. Brzy budou AI všudypřítomné a budou představovat nové partnery v našich životech. Budou to digitální společníci, nové partnery na cestě našimi životy. Tato technologie má potenciál být transformativní a umožní nám vytvořit lepší budoucnost.

        Musíme se zaměřit na to, jaké AI chceme vytvořit, a přijmout výzvu 21. století: odrážet to nejlepší z lidstva v našich AI systémech.

        (více…)

        Skeleton-of-Thought (Podněcování k zamyšlení)

        Překlad

        Běžné dekódování

        Otázka: „Jaké jsou nejúčinnější strategie pro řešení konfliktů v pracovním prostředí?

        Odpověď (Sekvenční generování):

          1. Aktivní naslouchání zahrnuje plné soustředění na…
          2. Identifikace problémů. Podívejte se na kořenové příčiny…
          3. Kompromis. Hledejte střední cestu…

        Dekódování Skeleton-of-Thought:

        (1) Proces začíná vytvořením kostry odpovědi:

          1. Aktivní naslouchání
          2. Identifikace problémů
          3. Kompromis

        (2) Následuje fáze rozšiřování bodů, kde se každý bod kostry detailněji rozpracuje paralelně.

        (více…)