Category: Prompt Engineering

Proces strojového učení s učitelem

Učení bez učitele je třída metod strojového učení. Na rozdíl od učení s učitelem trénovací data nemají vstupní data provázaná s cílovými proměnnými (ohodnocením, závisle proměnnou…), tj. schází výrok učitele a učení bez učitele tedy vykazuje samoorganizaci, která zachycuje vzory jako hustotu pravděpodobnosti.[1] 

Učení bez učitele si tedy lze představit jako kompresi vstupních dat, např. například snížení jejich dimense (v analýze hlavních komponent) nebo jejich redukci na diskrétní body (jako je tomu ve shlukové analýze, kde vstupní data reprezentujeme označenými shluky), či jejich vyhlazení (odhad distribučních funkcí).[2] U neuronových sítí se učení bez učitele užívá typicky u kompetičních sítí. (Porovnejte s učením s učitelem).

Machine learning process with a teacher
(více…)

Maieutic Prompting (Maieutické nabádání)

Maieutika je termín používaný samotným Sókratem pro umění vést dialog. Maieutika je součást sokratovské metody. Jejím jádrem je myšlenka, že pravda je latentně přítomna v rozumu každého člověka už od narození, ale musí se „přivést na svět“ skrz správně položené otázky učitele

Technika maieutického nabádání je způsob, jak testovat konzistenci a integritu odpovědí poskytnutých jazykovým modelem na logické nebo faktické otázky. 

Cílem je zajistit, že odpovědi nejen znějí pravděpodobně, ale že jsou také logicky konzistentní.

V příkladu na obrázku, je zadán výrok „Válka nemůže mít remízu“ a model poskytuje odpověď.

Maieutický strom je vytvořen tak, že se rozvíjí možné argumenty pro a proti této odpovědi, které jsou pak systematicky ověřovány. Každá cesta stromu končí, až když narazí na logicky konzistentní závěr.

V podstatě, po počáteční odpovědi modelu se ptáme další otázky, abychom ověřili, zda model může konzistentně odůvodnit svou odpověď. Pokud model poskytne protichůdné zdůvodnění, jeho původní odpověď nemůže být považována za důvěryhodnou.

Vážení návrhů a vztahů a použití Max-SAT řešiče pak pomáhá určit, která cesta v maieutickém stromu je nejvíce pravděpodobná nebo nejsprávnější, a tím poskytuje konečnou predikci pro původní výrok. V tomto příkladu byl konečný závěr, že výrok „Válka nemůže mít remízu“ je nepravdivý.

Je to tedy způsob, jak posoudit, zda jsou odpovědi jazykového modelu nejen relevantní, ale i vzájemně konzistentní a logicky validní.

(více…)

Ask Me Anything (AMA) | Zeptej se mě na cokoli

Technika AMA („Ask Me Anything“) prompt engineeringu je metoda pro vylepšení interakce s jazykovými modely, jako je GPT. Cílem je zlepšit schopnost modelu odpovídat na otázky založené na kontextu a ověřovat tvrzení.  

Zde si vysvětlíme techniku AMA (Ask Me Anything) prompt engineeringu, která je využívána k ověřování tvrzení na základě kontextu pomocí jazykových modelů. Tato technika využívá dvou typů promptů: question() prompt, který převádí tvrzení do formy otázky typu ano/ne, a answer() prompt, který zodpovídá tuto otázku na základě poskytnutého kontextu. Kombinace odpovědí pomocí metody slabého dohledu (weak supervision) pak umožňuje určit, zda je původní tvrzení pravdivé nebo nepravdivé. Tento postup si podrobně popíšeme ve dvou hlavních krocích, jak je znázorněno na obrázku.

(více…)

AI Prompt Chaining (Řetězení výzev)

Co je to řetězení v umělé inteligenci?

Řetězení dopředu je forma uvažování, která začíná s jednoduchými fakty ve znalostní bázi a aplikuje inferenční pravidla směrem dopředu, aby získala další data, dokud není dosaženo cíle. Zpětné řetězení začíná s cílem a postupuje zpětně, přičemž řetězí pravidla, aby našlo známá fakta, která podporují cíl.

Technika, známá jako „AI řetězy“ nebo „AI Chaining“, je přístup v prompt engineeringu, který umožňuje rozložit komplexní úkol na několik menších, jednodušších částí. AI se poté postupně vypořádává s každým menším úkolem a využívá výsledky předchozích úkolů k dalšímu postupu. Tímto způsobem může AI efektivněji zpracovat a reagovat na složitější dotazy nebo úkoly.

Na obrázku je tato technika ilustrována při zpracování zpětné vazby na prezentaci. Místo přímého přeformulování (jak je ukázáno v části A bez řetězení), se úkol rozdělí do tří dílčích úkolů (B): (1) identifikace problémů v prezentaci, (2) brainstorming návrhů na zlepšení pro každý problém, a (3) sestavení nové zpětné vazby s těmito návrhy na zlepšení. Každý krok využívá výstupy z předchozích kroků, což vede k detailnější a cílenější zpětné vazbě.

(více…)

Rozlišovací agenti s povoleným dialogem (DERA)

DERA, kterou vyvinul můj bývalý tým ve společnosti Curai Health pro svůj specifický přístup ke zdravotní péči, definuje různé činitele, kteří v rámci dialogu zastávají různé role. V případě situací s vysokou sázkou, jako je lékařský rozhovor, se vyplatí definovat sadu „výzkumníků“ a „rozhodovatele“. Hlavní rozdíl zde spočívá v tom, že Výzkumníci pracují paralelně oproti Aktérům reflexe, kteří pracují postupně pouze v případě, že Rozhodovatel rozhoduje.

Optimalizace výzev

Promptování založené na gradientu

Kromě technik, které hledají lepší textové výzvy, existuje řada užitečných inženýrských prací, které prozkoumávají průběžné aktualizace pro rychlé vkládání. Nejprve bychom si měli připomenout, jaká okamžitá vložení jsou v rámci jazykového modelu. Vzhledem k textové výzvě obvykle tuto výzvu tokenizujeme (tj. rozdělíme ji na slova nebo podslova) a poté vyhledáme vložení každého výsledného tokenu. Tento proces nám poskytne seznam vložení tokenů (tj. rychlé vložení!), které předáme jako vstup do jazykového modelu;

„Promptování založené na gradientu“ je technika, která upravuje embeddingy výzvy (tj. reprezentace vstupního textu) namísto změny samotného textu výzvy. Tento přístup využívá metody jako gradientní sestup k iterativnímu zlepšení embeddingů výzvy a tím i výkonu modelu při plnění daného úkolu. Pojďme si přiblížit hlavní metody v této oblasti:

    • AutoPrompt – Tato metoda přidává k původnímu vstupu sadu „spouštěcích tokenů“, které jsou stejné pro všechna vstupní data. Tyto tokeny jsou vybírány pomocí gradientního vyhledávání za účelem zlepšení výkonu modelu.
    • Prefix Tuning – Přidává několik „prefixových“ tokenů ke vstupnímu promptu a do skrytých vrstev modelu. Parametry těchto prefixů jsou trénovány pomocí gradientního sestupu, zatímco parametry samotného modelu zůstávají fixní. Tento přístup umožňuje efektivní doladění modelu bez nutnosti modifikace jeho parametrů.
    • Prompt Tuning – Podobné jako prefix tuning, ale prefixové tokeny se přidávají pouze do vstupní vrstvy modelu. Tyto tokeny jsou dolaďovány specificky pro každou úlohu, což umožňuje modelu lépe se přizpůsobit danému úkolu.
    • P-Tuning – Tato metoda přidává specifické kotevní tokeny pro danou úlohu do vstupní vrstvy modelu. Tyto tokeny mohou být umístěny kdekoliv v promptu, například uprostřed, což poskytuje větší flexibilitu než prefix tuning.

(více…)

Použijte oddělovače k ​​jasnému označení částí výzvy

Pokud pracujete s obsahem, který vyžaduje specifické vstupy, nebo pokud poskytujete příklady jako v předchozí části, může být velmi užitečné jasně označit konkrétní části výzvy. Mějte na paměti, že vše, co napíšete, přichází do LLM jako jediná výzva – dlouhá sekvence tokenů.

Výstup můžete zlepšit použitím oddělovačů k ohraničení a označení konkrétních částí výzvy. 

(více…)

Tipy a rady, jak komunikovat s jazykovým modelem

  • Používejte příkazy, které modelu potvrzují správné kroky.
    Například „pokračuj takto“, místo negativních výrazů, jako „to je špatně“.

  • Začněte s úvodními slovy, která modelu naznačují, že má postupovat krok za krokem.
    Například: „mysli krok za krokem„.

  • Pokládejte modelu otázky, které mu pomohou získat přesné podrobnosti a požadavky, než poskytne odpověď.
    Například: „Od této chvíle bych chtěl, abyste mi kladli otázky pro upřesnění každého kroku“.

  • Používejte oddělovače, aby byly jednotlivé části výzvy jasně odděleny. 

  • Poskytujte konkrétní a jasné informace, aby model měl dostatek kontextu k pochopení vašich požadavků.

  • Povzbuďte model, aby si problém promyslel předtím, než poskytne odpověď.
    Například: „Uvažujte krok za krokem, abyste dospěli k přesnému a logickému závěru.“

  • Vyzvěte model, aby citoval své zdroje.
    Například: „Odkud si čerpal informace?“, „Uveď zdroje.“