Úvod do techniky výzev

Modely GPT-3, GPT-3.5 a GPT-4 od OpenAI jsou založené na dotazech. S modely založenými na dotazech uživatel komunikuje zadáním textového dotazu, na který model reaguje doplněním textu. Toto dokončení je pokračováním modelu vstupního textu.

I když jsou tyto modely mimořádně výkonné, jejich chování je také velmi citlivé na konkrétní dotazy. Proto je konstrukce dotazů důležitou dovedností, kterou je potřeba rozvíjet.

Konstrukce výzvy může být obtížná. V praxi se výzva chová ke konfiguraci hmotností modelu tak, aby dokončila požadovaný úkol, ale je to spíše umění než věda, která často vyžaduje zkušenosti a instinkt k vytvoření úspěšné výzvy. Cílem tohoto článku je pomoct vám začít s tímto procesem učení. Pokouší se zachytit obecné koncepty a vzory, které platí pro všechny modely GPT. Je ale důležité pochopit, že se každý model chová odlišně, takže učení nemusí platit stejně pro všechny modely.

Základy

Tato část popisuje základní koncepty a prvky výzev GPT.

Textové výzvy jsou způsob interakce uživatelů s modely GPT. Stejně jako u všech generativních jazykových modelů se modely GPT pokoušejí vytvořit další řadu slov, která budou pravděpodobně následovat z předchozího textu. Je to, jako bychom říkali , co je první věc, která přijde na vaši mysl, když říkám <prompt>?. Níže uvedené příklady ukazují toto chování. Vzhledem k prvním slovům slavného obsahu je model schopen přesně pokračovat v textu.

Instrukce Dokončení
Čtyři skóre a sedm let před naším na tomto kontinentu, nový národ, pojatý v Liberty, a věnuje se návrhu, že všichni muži jsou rovni. [...]
"Zavolej mi Ishmael." "Před několika lety , nevadí, jak dlouho přesně - mít malé o žádné peníze v mé kabelce, a nic zvláštního, co by mě zajímalo na břehu, myslel jsem, že budu plavat o něco málo a vidět vodní část světa." [...]

Při vývoji složitějších výzev je užitečné mít na paměti toto základní chování. Bez ohledu na poskytnutou výzvu model jednoduše reaguje na to, co určuje, je s největší pravděpodobností (vzhledem k trénovacím datům a cílům trénování). Pokud ve výzvě položíte otázku, model neslouží k samostatné cestě kódu Q&A, ale zdá se, že odpovídá na otázku, protože odpověď je nejpravděpodobnějším druhem odpovědi pro danou otázku jako vstup.

Zobrazení výzvy ke komponentám

Pokud používáte rozhraní API pro dokončování, zatímco mezi různými částmi výzvy není žádné rozlišení, může být stále užitečné, když se naučíte a prodiskutujte základní komponenty výzvy. Rozhraní API pro dokončování chatu obsahuje různé části výzvy, které se odesílají do rozhraní API ve formě pole slovníků s přidruženými rolemi: systém, uživatel a asistent. Tyto pokyny se obecněji zaměřují na to, jak se zamyslet nad vytvářením výzev, a ne na poskytování preskriptivních pokynů specifických pro jedno rozhraní API.

Je také důležité pochopit, že i když mohou existovat další platné způsoby, jak rozptýlit výzvy, cílem tohoto rozpisu je poskytnout relativně jednoduchý způsob, jak uvažovat o výzev ke konstrukci. S rozhraním API pro dokončování jsou všechny komponenty volitelné, ale alespoň jedna musí být k dispozici a většina výzev obsahuje více než jednu komponentu. Mezi součástmi může být také šedá oblast. Pořadí uvedené níže přibližně odpovídá tomu, jak často se jednotlivé komponenty používají, od většiny po nejnižší.

Pokyny

Pokyny jsou pravděpodobně nejčastěji používanou komponentou výzvy. Pokyny jsou jednoduše následující: pokyny k modelu o tom, co dělat. I když jsou v konceptu jednoduché, můžou být v praxi složité. Následující tabulka to ilustruje zobrazením jednoduchých i složitějších instrukcí ve dvou různých formách.

Typ instrukce Instrukce Dokončení
Jednoduché pokyny Napište úvod do týdenního bulletinu. Vítejte v našem týdenním bulletinu. Tento týden se zaměřujeme na produktivitu. Budeme sdílet tipy a triky o tom, jak být produktivní ve všech oblastech vašeho života. Doufáme, že se vám líbí a rádi se podělíte se svými přáteli!
Složité pokyny Napište úvod do týdenního bulletinu společnosti Contoso. Měl by zmínit skvělé všechny ruce setkání, které jsme měli minulý týden a poděkovat týmu za veškerou jejich tvrdou práci v posledních několika měsících. Vítejte v týdenním bulletinu společnosti Contoso! Měli jsme skvělé všechny ruce setkání minulý týden a chci poděkovat týmu za veškerou jejich tvrdou práci za posledních pár měsíců. Těšíme se na jasnou budoucnost a jsem si jistá, že s odhodláním a závazkem našeho týmu dosáhneme skvělých věcí. Děkujeme, že jste součástí našeho týmu a těším se na spolupráci se všemi v nadcházejících týdnech a měsících. Upřímně, [Vaše jméno].
Složité pokyny Napište úvod do týdenního bulletinu, včetně následujících:
– Moje společnost má název contoso
- Nechutný pozdrav
- Děkujeme týmu za jejich tvrdou práci za pár náročných měsíců
- Pozitivní výhled na nadcházející čtvrtletí
- Podepsáno SLT
Dobrý den, tým Společnosti Contoso! Chtěl jsem chvilku poděkovat za vaši tvrdou práci za posledních pár měsíců. Bylo to těžké pár měsíců, ale všichni jste se spojili a udělali úžasnou práci. Jsem na tebe opravdu hrdá. Při pohledu na další čtvrtinu cítím opravdu pozitivní. Myslím, že dosáhneme některých skvělých věcí. Děkujeme znovu, vedoucí tým.

Primární obsah

Primární obsah odkazuje na nějaký druh textu, který model zpracovává nebo transformuje. Primární obsah se obvykle používá ve spojení s pokyny. Jednoduchým příkladem by byl překlad jazyka. V následujícím příkladu by byl anglický text považován za primární obsah, zatímco "Translate to French:" je instrukce.

Instrukce Dokončení
Můžeš mi prosím říct, jak se dostat do muzea?
Přeložit do francouzštiny:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

Primární obsah může být také mnohem delší. V následujícím příkladu je primárním obsahem úvodní část z příspěvku na Wikipedii o časové složitosti, což je téměř 300 slov dlouhých. Tento obsah byl zkrácen v naší tabulce pro usnadnění zobrazení.

Instrukce Dokončení
V počítačových vědách je složitost času výpočetní složitost, která popisuje dobu potřebnou ke spuštění algoritmu. Časová složitost se běžně odhaduje [...]
Shrnutí předchozího textu v několika větách:
Složitost času je míra, jak dlouho trvá spuštění algoritmu. Obvykle se vyjadřuje jako funkce velikosti vstupu. Nejběžnějším měřítkem je složitost v nejhorším případě, což je maximální doba potřebná pro vstupy dané velikosti.
V počítačových vědách je složitost času výpočetní složitost, která popisuje dobu potřebnou ke spuštění algoritmu. Časová složitost se běžně odhaduje [...]
TL;DR (Příliš dlouho se nečetlo)
Časová složitost algoritmu je doba, kterou trvá spuštění algoritmu. Složitost času se obvykle odhaduje počítáním počtu základních operací provedených algoritmem a předpokládá se, že provedení každé základní operace trvá pevně stanovenou dobu. Složitost času je obecně vyjádřena jako funkce velikosti vstupu.

Modely GPT můžou také zpracovávat primární obsah, který je strukturovaný. V následujícím příkladu se jako součást výzvy předá modelu TSV o pivech v Belgii (zkráceně pro zobrazení v tomto článku). Dokáže správně interpretovat obsah a odpovídat na otázky týkající se dat.

Instrukce Dokončení
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[...]
Odkazujete na výše uvedenou tabulku, kolik piv je menší než 6 % ABV?
V tabulce je 10 piv, které jsou menší než 6 % ABV.

Příklady

Úspěšné výzvy se často spoléhají na praxi učení "jeden snímek" nebo "pár snímků". To se týká zahrnutí jednoho nebo více příkladů požadovaného chování modelu, obvykle zahrnutím vstupních a výstupních párů. To se nenaučí v tom smyslu, že se model trvale změní, ale spíše že příklady lépe podmíní, aby model reagoval podle potřeby pouze pro aktuální odvozování. Použití výzev bez příkladů se někdy označuje jako učení s nulovým snímkem. Všimněte si, že s několika příklady učení rozhraní API pro dokončování chatu se obvykle přidávají do pole zpráv ve formě ukázkových interakcí uživatele/asistenta za počáteční systémovou zprávou.

typ Učení Instrukce Dokončení
Nulový snímek Nadpis: Trenér sebevědomé zranění nezmáže Bojovníky
Téma:
Trenér si je jistý, že zranění nezmáže sezónu Warriors. Tým se stále zaměřuje na své cíle a že bude i nadále tvrdě pracovat na jejich dosažení.
Několik snímků Nadpis: Twins' Correa k použití opt-out, test zdarma agentury
Téma: Baseball
Nadpis: Katar World Cup mít zóny pro střídání
Téma: Fotbal
Nadpis: Yates: Fantasy fotbal intel pro týden 6
Téma: Fotbal
Nadpis: Trenér sebevědomé zranění nezmáže Bojovníky
Téma:
Basketbal

Výše uvedený příklad znázorňuje nástroj učení s několika snímky. Bez příkladů se zdá, že model odhaduje požadované chování, zatímco příklady čistě ukazují, jak pracovat s modelem. To také ukazuje sílu modelu, může odvodit kategorii popisku, která je chtěná, i bez "basketbalového" popisku v příkladech.

Startovací

Upozornění fungují jako "jumpstart" pro výstup modelu a pomáhají směrovat model na požadovaný výstup. Často se jedná o předponu, na kterou může model sestavit. V následujícím příkladu si ukážeme upozornění, které nasměruje příběh tak, aby zahrnoval klíčové prvky. Upozornění se často používají spolu s pokyny, ale ne vždy. V následujících příkladech se model používá ke shrnutí dlouhého e-mailu s oznámením. V jednom případě se používá upozornění, které vám pomůže zaměřit výstup modelu a navrhnout konkrétní výstupní formát (odrážkové body) v druhém.

V kontextu pokynů rozhraní API pro dokončování chatu mají podobu systémové zprávy a několik příkladů je označeno poskytnutím řady ukázkových interakcí uživatele/asistenta, které pomůžou model předvést.

Počet upozornění Instrukce Dokončení
0 Hodnocení výkonu jsou základní součástí našeho přístupu k výkonu a vývoje ve společnosti Contoso. [...]
Shrnutí výše uvedené e-mailové zprávy:
Účelem tohoto e-mailu je informovat zaměstnance o nedávných změnách prostředí kontroly výkonu, což je součástí přístupu Společnosti Contoso k výkonu a vývoji. Změny zahrnují vylepšenou strukturu, upgradované uživatelské prostředí v nástroji a prioritní výzvy. Kromě toho je teď k dispozici volitelná část Úvodní konverzace pro zaměstnance, kteří chtějí označovat témata, která chtějí probrat se svými manažery.
0 Hodnocení výkonu jsou základní součástí našeho přístupu k výkonu a vývoje ve společnosti Contoso. [...]
Shrnutí výše uvedené e-mailové zprávy:
Klíčovým aspektem zprávy je
společnost Contoso vylepšuje možnosti kontroly výkonu tím, že se více zaměřuje na hlavní priority, očekávání a dopad. Kromě toho upgradují uživatelské prostředí v nástroji pomocí tipů, zdrojů a doprovodných materiálů. Nakonec přidávají pokyny k aktivaci základních priorit celé společnosti.
2 Hodnocení výkonu jsou základní součástí našeho přístupu k výkonu a vývoje ve společnosti Contoso. [...]
Shrnutí výše uvedené e-mailové zprávy:
Klíčové body:
Společnost Contoso zavádí změny prostředí pro kontrolu výkonu na základě zpětné vazby od zaměstnanců.
• Změny zahrnují nové zaměření na základní priority, očekávání a dopad; upgradované uživatelské prostředí; a nové pokyny k základním prioritám celé společnosti.
• Kontroly výkonu jsou čas odrážet minulý výkon a učení a také plánovat budoucí priority a příležitosti růstu.
• Zaměstnanci a manažeři by měli předem napsat komentáře ke schůzce kontroly výkonu.
• Za rok by měly existovat alespoň dvě kontroly výkonu.
• Časová investice pro každou recenzi by měla zůstat přibližně stejná.

Podpůrný obsah

Podpůrný obsah je informace, které model může nějakým způsobem ovlivnit výstup. Liší se od primárního obsahu v tom, že není hlavním cílem úkolu, ale obvykle se používá společně s primárním obsahem. Mezi běžné příklady patří kontextové informace, jako je aktuální datum, jméno uživatele, uživatelské předvolby atd. Následující příklad používá podpůrný obsah, který pomáhá uspořádat sadu plánovaných workshopů pro uživatele. Bez podpory (důležitých témat) model jednoduše vypíše workshopy (zkrácené pro zobrazení), když je informován o mých důležitých tématech, model dokáže přesně seskupit schůzky.

Podpůrný obsah Instrukce Dokončení
Bez Seznam workshopů:
Popis názvu
Plánování workshopu, prosím, připojte se k nám, abychom zahájili náš workshop! Poslechněte si naše vedoucí pracovníky o prioritách a učení napříč skupinami pro nadcházející rok. Pozvánka na tuto událost již byla odeslána všem v [...]
Shrňte výše uvedené workshopy seskupené podle tématu:
Seznam workshopů:
Zahájení plánování workshopu
-Plánování workshopu zabalení
– Základní meetup
- Perspektivy řízené zákazníky
-Dopad a klíčové oblasti zaměření
-Osvědčené postupy
-Urychlení přijetí aplikace [...]
With Seznam workshopů:
Popis názvu
Plánování workshopu, prosím, připojte se k nám, abychom zahájili náš workshop! Poslechněte si naše vedoucí pracovníky o prioritách a učení napříč skupinami pro nadcházející rok. Pozvánka na tuto událost již byla odeslána všem v [...]
Moje důležitá témata: dotazování, vyhledávání, modely GPT
Shrňte výše uvedené workshopy seskupené podle mých důležitých témat:
1. Prompt Engineering:
- Nové tipy pro přípravu výzvy
- Umění prompt engineering
2. Hledání:
-Úvod do vektorového vyhledávání pomocí vkládání
3. Modely GPT:
- Úvod do GPT-4
- GPT-35-Turbo do hloubky.

Osvědčené postupy

  • Buďte specifická. Ponechávejte co nejmenší prostor interpretaci. Omezte provozní prostor.
  • Buďte popisní. Používejte analogii.
  • Poklikejte dolů. Někdy se může stát, že se budete muset do modelu opakovat. Udílejte pokyny před a po primárním obsahu, používejte instrukce a nápovědy atd.
  • Záleží na pořadí. Pořadí, ve kterém prezentujete informace modelu, může mít vliv na výstup. Bez ohledu na to, jestli před obsah vložíte pokyny ("sumarizovat následující...") nebo za ("sumarizovat výše uvedené...") může být rozdíl ve výstupu. Dokonce i na pořadí několika příkladů může záležet. To se označuje jako odchylka aktuálnosti.
  • Dejte modelu "out". Někdy může být užitečné dát modelu alternativní cestu, pokud nemůže dokončit přiřazený úkol. Když třeba položíte otázku na část textu, můžete zahrnout něco jako "odpovědět s textem nenalezena", pokud odpověď není k dispozici. To může modelu pomoct vyhnout se generování falešných odpovědí.

Prostorová efektivita

I když se velikost vstupu s každou novou generací modelů GPT zvětšuje, budou i nadále existovat scénáře, které poskytují více dat, než model dokáže zpracovat. Modely GPT rozdělují slova na tokeny. I když běžná slova s více slabiky jsou často jedním tokenem, méně běžná slova se přerušují slabiky. Tokeny můžou být někdy čítače intuitivní, jak je znázorněno v příkladu níže, který ukazuje hranice tokenů pro různé formáty kalendářních dat. V tomto případě je pravopis celého měsíce efektivnější než plně číselné datum. Aktuální rozsah podpory tokenů pochází z 2 000 tokenů s dřívějšími modely GPT-3 až na 32 768 tokenů s 32k verzí nejnovějšího modelu GPT-4.

Snímek obrazovky s řetězcem textu se zvýrazněnými barvami, které označují hranice tokenu

Vzhledem k tomuto omezenému prostoru je důležité ho co nejefektivněji používat.

  • Tabulky – jak je znázorněno v příkladech v předchozí části, modely GPT dokážou snadno pochopit tabulková formátovaná data. Může to být efektivní způsob, jak zahrnout data místo před každým polem s názvem (například json).
  • Prázdné znaky – po sobě jdoucí prázdné znaky jsou považovány za samostatné tokeny, což může být snadný způsob, jak ztrácet místo. Mezery před slovem se na druhou stranu obvykle považují za součást stejného tokenu jako slovo. Pečlivě sledujte použití prázdných znaků a nepoužívejte interpunkci, když mezera sama udělá.

Další kroky

Další informace o Azure OpenAI.