Artificial intelligence (AI)

Template Filling (Vyplňování šablon)

Vyplňování šablon umožňuje snadno vytvářet univerzální a zároveň strukturovaný obsah. Použijete šablonu se zástupci, která umožní rychlé přizpůsobení pro různé situace nebo vstupy při zachování konzistentního formátu.

Přizpůsobení šablon pomocí proměnných a zástupných symbolů

Při vyplňování šablon můžete výstup generativních nástrojů AI dále přizpůsobit definováním několika proměnných pro zástupné symboly. Tuto strategii obvykle používají správci obsahu nebo vývojáři webových stránek, aby pro své webové stránky vytvořili více přizpůsobených fragmentů obsahu generovaných umělou inteligencí.

Předpokládejme, že spravujete webové stránky elektronického obchodu. V takovém případě byste mohli použít standardní šablonu pro popisy produktů a umožnit umělé inteligenci vyplnit pole, jako je název produktu, vlastnosti a cena, a vytvořit tak nový popis s každou odpovědí.

Tato technika je nesmírně výhodná, pokud potřebujete, aby obsah generovaný umělou inteligencí splňoval konkrétní pokyny nebo formáty.

Dalším praktickým případem použití je vytváření automatizovaných, ale personalizovaných e-mailů. Dynamické vyplňování šablon zaručuje, že celková struktura e-mailu je konzistentní, zatímco konkrétní obsah se mění na základě informací o uživateli.

Least-To-Most Prompting (Od nejméně po nejvíce)

V článku Least-to-Most Prompting Enables Complex Reasoning in Large Language Models], který navrhli Zhou a kol. z Google Research, je metoda Least-to-most prompting novou metodou, jejímž cílem je zlepšit schopnost řešení problémů ve velkých jazykových modelech.

Metoda vychází z pedagogické psychologie a spočívá v rozkladu složitých problémů na jednodušší, postupné podproblémy, přičemž využívá odpovědi z předchozích podproblémů k usnadnění řešení následujících.

Implementace metody „least-to-most prompting“ nevyžaduje trénování modelu ani jeho dolaďování

Provádí se výhradně prostřednictvím několika podnětů, což se účinně projevilo v úlohách, jako je symbolická manipulace, kompoziční zobecnění (schopnost naučit se význam slov a následně je asociací aplikovat na jiné pojmy) a matematické uvažování.

Následující obrázek z článku ukazuje řešení matematické slovní úlohy metodou least-to-most ve dvou fázích: (1) dotaz na jazykový model pro rozklad úlohy na dílčí úlohy; (2) dotaz na jazykový model pro postupné řešení dílčích úloh. Odpověď na druhý podproblém je postavena na odpovědi na první podproblém. 

Demonstrační příklady pro výzvu každé fáze jsou v této ilustraci vynechány.

(více…)

Self-Ask Prompting (Sebedotazování)

Z obrázku níže je zřejmé, že sebezpytné podněcování je pokračováním přímého podněcování a podněcování pomocí myšlenkového řetězce.

Zajímavé je, že u self-ask promptingu je explicitně zobrazeno uvažování LLM a LLM také rozkládá otázku na menší navazující otázky.

LLM ví, kdy je dosaženo konečné odpovědi, a může přejít od navazujících mezivýpovědí ke konečné odpovědi.

(více…)

Symbolic Reasoning & PAL (Symbolické uvažování & PAL)

Uvažujme následující otázku:

Mám židli, dvě brambory, květák, hlávku salátu, dva stoly, zelí, dvě cibule a tři lednice. Kolik mám zeleniny?

LLM by měl převést vstup na slovník s entitami a hodnotami podle jejich množství, přičemž by měl odfiltrovat entity, které nejsou zeleninou.

Nakonec je odpovědí součet hodnot slovníku pod výstupem PAL z LLM:

 

# note: I'm not counting the chair, tables, or fridges
vegetables_to_count = {
'potato': 2,
'cauliflower': 1,
'lettuce head': 1,
'cabbage': 1,
'onion': 2
}
answer = sum(vegetables_to_count.values())

Automatic Reasoning (Automatické Uvažování a používání nástrojů ART)

Automatic Reasoning and Tool-use (ART) je rámec, který rovněž využívá zmrazené modely ke generování mezikroků uvažování jako program.

Přístup ART silně připomíná princip agentů, tedy dekompozici problému a využití nástrojů pro každý dekomponovaný krok.

Pomocí ART zmrazený LLM rozkládá instance nové úlohy na více kroků, přičemž využívá externí nástroje, kdykoli je to vhodné.

ART je přístup bez nutnosti jemného dolaďování, který umožňuje automatizovat vícekrokové uvažování a automatický výběr a použití nástrojů.

Kombinace podnětů a nástrojů CoT ve vzájemné návaznosti se ukázala jako silný a robustní přístup k řešení mnoha úloh s LLM. Tyto přístupy obvykle vyžadují ruční tvorbu demonstrací specifických pro danou úlohu a pečlivě skriptované prokládání generování modelů s používáním nástrojů. Paranjape a další, (2023) navrhují nový rámec, který využívá zmrazený LLM k automatickému generování mezikroků uvažování jako program.

ART funguje následujícím způsobem:

  • Při zadání nové úlohy vybere z knihovny úloh ukázky vícekrokového uvažování a použití nástrojů.
  • v době testování pozastaví generování, kdykoli jsou zavolány externí nástroje, a integruje jejich výstupy, než pokračuje v generování.

ART vybízí model k tomu, aby na základě demonstrací zobecnil novou úlohu a použil nástroje na vhodných místech, a to nulovým způsobem. Kromě toho je systém ART rozšiřitelný, protože také umožňuje lidem opravovat chyby v krocích uvažování nebo přidávat nové nástroje jednoduchou aktualizací knihoven úloh a nástrojů. Postup je demonstrován níže (zdroj):

Iterative Prompting (Iterativní promptování)

V poslední době se pozornost přesunula od dolaďování LLM k vylepšenému promptnímu inženýrství. Zajištění kontextových výzev, které obsahují několik tréninkových příkladů a historii konverzace.

Zajištění, aby výzva obsahovala kontextové informace prostřednictvím iterativního procesu.

Iterativní výzvy by měly vytvořit kontextuální řetězec myšlenek, který neguje generování irelevantních faktů a halucinací. Interaktivní kontextová a kontextová výzva.

(více…)

Sequential Prompting (Sekvenční promptování)

Sekvenční promtování zvažuje možnost sestavení schopného doporučovatele s LLM. Obvykle se doporučovací systémy vyvíjejí v pipeline architektuře, která se skládá z vícestupňových procedur generování kandidátů (vyhledávání relevantnějších položek) a řazení (řazení relevantních položek na vyšší pozice).

„Sequential Prompting“ se zaměřuje na fázi řazení doporučovacích systémů, protože LLM jsou dražší pro běh na rozsáhlém souboru kandidátů.

Výkonnost řazení je citlivá na načtené kandidátní položky na nejvyšších místech, což je vhodnější pro zkoumání jemných rozdílů v doporučovacích schopnostech LLM.

(více…)

Pochopení aplikačního programovacího rozhraní ChatGPT API

ChatGPT API je aplikační programovací rozhraní poskytované firmou OpenAI, které umožňuje vývojářům a podnikům integrovat schopnosti modelu jazykového generování GPT (Generative Pre-trained Transformer), jako je ChatGPT, do svých vlastních aplikací, webových služeb nebo produktů. API poskytuje přístup k pokročilým funkcím strojového učení a umělé inteligence pro generování textu, odpovídání na otázky, sumarizaci textů, generování kódu, jazykové překlady a mnoho dalších úkolů zpracování přirozeného jazyka (NLP).

(více…)

Základní Datové Typy

Primitivní datové typy

Primitivní datové typy: Jsou to nejjednodušší typy dat, které přímo reprezentují základní hodnoty. Zahrnují:

  • Číselné typy: Celá čísla (int v mnoha jazycích), desetinná čísla (float nebo double), a v některých případech speciální formáty jako jsou komplexní čísla.
  • Logický typ: Pravdivostní hodnoty (boolean), které mohou nabývat pouze hodnot true (pravda) nebo false (nepravda).
  • Znakový typ: Jednotlivé znaky (char), obvykle reprezentují písmena, číslice nebo jiné symboly.

Složené (nebo strukturované) datové typy

Tyto typy umožňují skládání primitivních datových typů a tvorbu složitějších struktur. Patří sem:

  • Pole (Arrays): Seznamy prvků stejného datového typu.
  • Struktury (Structs v C/C++ nebo Records v Pascalu): Umožňují kombinovat prvky různých datových typů.
  • Třídy (Classes): Základ objektově orientovaného programování, kde každá třída definuje strukturu a chování svých objektů.

Referenční datové typy

Tyto typy odkazují na místo v paměti, kde jsou skutečná data uložena. Zahrnují:

  • Řetězce (Strings): Sekvence znaků reprezentující text.
  • Objekty: Instance tříd v objektově orientovaných jazycích.
  • Pole a Kolekce: Například seznamy (lists), slovníky (dictionaries) v Pythonu, nebo množiny (sets).

Speciální datové typy

Některé jazyky nabízí speciální datové typy pro určité účely, jako jsou:

  • Enumy (Enumerated types): Umožňují definovat proměnnou s pevně stanoveným seznamem možných hodnot.
  • Void: Typicky používán v definicích funkcí pro označení absence návratové hodnoty.