Contrastive Chain-of-Thought (CCoT) Prompting

Contrastive Chain-of-Thought (CCoT) je metoda pro zvýšení argumentačních schopností velkých jazykových modelů (LLM).

Tato metoda zahrnuje poskytování ukázek správného i nesprávného uvažování, inspirovaných způsobem, jakým se lidé učí na základě správných i nesprávných metod.

Koncepce CCoT vychází z myšlenky, že přidání kontrastních příkladů, zahrnujících jak platné, tak neplatné uvažování, může výrazně zlepšit výkon LLM v úlohách uvažování.

Proces použití CCoT zahrnuje přípravu výzvy, poskytnutí platného vysvětlení myšlenkového řetězce (CoT), generování kontrastních neplatných vysvětlení CoT z platného a následné zavedení nové výzvy uživatele.

Následující obrázek ukazuje přehled kontrastního řetězce myšlenek (vpravo) s porovnáním s běžnými metodami promptingu.

(více…)

Structured Chain-of-Thought (SCoT) Prompting

Strukturované CoT (SCoT) spočívá v tom, že zdrojový kód obsahuje bohaté strukturální informace a každý kód se může skládat ze tří programových struktur: struktur sekvence, větvení a smyčky.

Strukturované mezikroky uvažování intuitivně vytvářejí strukturovaný zdrojový kód. Žádají tedy LLM, aby používaly programové struktury k sestavení CoT, čímž získají SCoT. Poté LLM generují konečný kód na základě SCoT.

Ve srovnání s výzvami CoT výzvami SCoT explicitně omezují LLM, aby přemýšlely o tom, jak řešit požadavky z pohledu zdrojového kódu, a dále zvyšují výkonnost LLM při generování kódu.

Následující obrázek z článku ukazuje srovnání řetězce myšlenek (CoT) a našeho strukturovaného řetězce myšlenek (SCoT).

(více…)

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…)