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

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

Základní funkce a schopnosti ChatGPT

# Shrnutí

Sumarizace textů je jednou z běžných prací při tvorbě přirozeného jazyka. Souhrn textu přichází v široké škále forem a aplikací. Schopnost rychle a jednoduše shrnout články a koncepty je jedním z nejzajímavějších potenciálních využití jazykových modelů. Zkusme jednoduché shrnující cvičení založené na pohotovosti.

# Extrakce

Jazykové modely jsou zvláště schopné dokončovat klasifikaci a řadu dalších úkolů zpracování přirozeného jazyka (NLP), přestože se učí vytvářet přirozený jazyk a související úkoly.

# Odpověď na otázku

Zlepšení formátu výzvy je jednou z nejlepších strategií, jak povzbudit model, aby reagoval na konkrétní odpovědi. Jak již bylo zmíněno, výzva může integrovat instrukce, kontext, vstupní a výstupní znaky, aby bylo dosaženo lepších výsledků . I když tyto komponenty nejsou potřeba, jsou dobrou praxí, protože čím jasnější jsou pokyny, tím lepší jsou výsledky. Zde je příklad toho, jak to může vypadat po strukturovanější výzvě.

# Klasifikace

Doposud jsme postupovali podle přímých pokynů k dokončení úkolu. Jako rychlý inženýr budete muset zlepšit svou schopnost poskytovat lepší pokyny. Ale počkat, je toho víc! Zjistíte také, že pro složitější případy použití nebude stačit pouhé poskytnutí pokynů. Tehdy byste měli více přemýšlet o kontextu a různých výzvách. Vstupní data a příklady jsou dva další aspekty, které můžete dodat.

# Konverzace

Jednou z nejzajímavějších věcí, kterých můžete dosáhnout pomocí rychlého inženýrství, je vyškolit systém LLM o tom, jak se chovat, o jeho cílech a identitě. To je zvláště užitečné při vývoji konverzačních systémů, jako jsou chatboti pro péči o zákazníky .

# Generování kódu

Generování kódu je jedna aplikace, ve které LLM excelují. Copilot je skvělý příklad. S důmyslnými návrhy můžete provádět nepřeberné množství činností při generování kódu.

Jak vidíte, ani jsme nepotřebovali identifikovat jazyk. Vezmeme to trochu nahoru. Rád bych ukázal, jak efektivní mohou být LLM s trochou více práce při navrhování výzev.

# Uvažování

Jedna z nejobtížnějších věcí pro LLM dnes může vyžadovat určitou úroveň uvažování. Vzhledem k typům komplikovaných aplikací, které mohou vycházet z LLM, je uvažování jednou z oblastí, které mě nejvíce zajímají.

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