Optimalizace výstupu modelu s využitím techniky prompt engineeringu

Dokončeno

Nejpřístupnější způsob optimalizace výkonu modelu je prostřednictvím rychlého inženýrství. Návrh inženýrství promptů je proces navrhování a zdokonalování podnětů za účelem zlepšení kvality, přesnosti a relevance odpovědí, které generuje jazykový model. Nevyžaduje žádnou další infrastrukturu ani trénovací data a můžete začít experimentovat okamžitě.

Pochopit komponenty výzvy

Při interakci s jazykovým modelem má kvalita otázky přímý vliv na kvalitu odpovědi. Dobře sestavená výzva pomáhá modelu pochopit, co potřebujete, a generovat užitečnější odpověď.

Výzvy k dokončení chatu obvykle zahrnují následující komponenty:

  • Systémová zpráva: Pokyny, které definují chování, roli a omezení modelu.
  • Zpráva uživatele: Otázka nebo vstup od uživatele.
  • Zpráva asistenta: Předchozí odpovědi modelu používané v rámci vícestupňových konverzací.
  • Příklady: Ukázkové páry vstupu a výstupu, které demonstrují očekávaný formát odpovědi.

Způsob strukturování a kombinování těchto komponent určuje, jak efektivně model reaguje.

Návrh efektivních systémových zpráv

Systémová zpráva je sada pokynů, které poskytnete modelu, aby vedly jeho odpovědi. Systémové zprávy se obvykle zobrazují jako první v konverzaci a fungují jako sada instrukcí nejvyšší úrovně. Používáte je k:

  • Definujte roli a hranice asistenta.
  • Nastavte styl tónu a komunikace.
  • Zadejte výstupní formáty, například JSON nebo odrážky.
  • Přidejte omezení bezpečnosti a kvality pro váš scénář.

Systémová zpráva může být jednoduchá jako:

You are a helpful AI assistant.

Nebo může obsahovat podrobná pravidla a požadavky na formátování. Například chatovací aplikace cestovní agentury může použít:

You are a friendly travel advisor for Margie's Travel.
Answer only questions related to travel, hotels, and trip planning.
Use a warm, conversational tone.
If you don't have enough information to answer, ask a clarifying question.
Format hotel recommendations as a bulleted list with the hotel name, location, and price range.

Důležité

Systémová zpráva ovlivňuje model, ale nezaručuje dodržování předpisů. Měli byste testovat a iterovat na systémových zprávách a vrstvit je dalšími omezeními rizik, jako je filtrování obsahu a hodnocení.

Při návrhu systémové zprávy postupujte podle tohoto kontrolního seznamu:

  1. Začněte s rolí asistenta: Uveďte roli a očekávaný výsledek typického požadavku.
  2. Definovat hranice: Vypsat témata, akce a typy obsahu, kterým by se měl asistent vyhnout.
  3. Zadejte výstupní formát: Pokud potřebujete určitý formát, nastavte ho jednoduše a udržujte ho konzistentní.
  4. Přidat zásadu "když si nejste jisti": Řekněte modelu, co to do, když je požadavek uživatele nejednoznačný, mimo rozsah nebo když model nemá informace.

Použití šablon výzev

Efektivní výzvy používají vzory, které modelu pomáhají vytvářet lepší odpovědi. Tady je několik běžných vzorů, které můžete použít:

Vzor osob

Řiďte modelu, aby převzal konkrétní perspektivu nebo roli. Například když se model žádá reagovat jako zkušený marketingový profesionál, produkuje jiné výsledky než bez použití jakékoliv persony.

Žádná osoba S osobou
Systémová zpráva Nic Jste zkušený marketingový profesionál, který píše pro technické zákazníky.
výzva uživatele Napište popis jedné věty produktu CRM. Napište popis jedné věty produktu CRM.
odpověď Produkt CRM je softwarový nástroj navržený ke správě interakcí společnosti se zákazníky. Využijte bezproblémové řízení vztahů se zákazníky s naším CRM, které je navržené tak, aby zjednodušily provoz a řídily růst prodeje robustními analýzami.

Formát vzoru šablony

Zadejte šablonu nebo strukturu ve výzvě k získání výstupu v určitém formátu. Pokud například potřebujete strukturovanou odpověď na hotel:

Format the result to show:
- Hotel name
- Location
- Star rating
- Price range per night

Tento model zajišťuje konzistentní a uspořádané odpovědi, které se v aplikaci snadno parsují.

Schéma myšlenkového procesu

Požádejte model, aby vysvětlil jeho odůvodnění krok za krokem. Tato technika, označovaná jako řetěz myšlení, snižuje pravděpodobnost nepřesných výsledků a usnadňuje ověření logiky modelu.

Například místo dotazu "Který hotel je nejvhodnější pro rodinu čtyř?", můžete zobrazit výzvu:

Which hotel is best for a family of four? Take a step-by-step approach: 
consider room size, amenities for children, location, and price.

Související technika spočívá v rozdělení úkolu do explicitních dílčích kroků před tím, než model odpoví, namísto toho, aby procházel vším najednou. Můžete například nejprve požádat model, aby extrahovali klíčové fakty z pasáže, a pak v následné výzvě ho požádejte, aby odpověděl na otázku založenou na těchto faktech. Rozložení práce tímto způsobem snižuje chyby u složitých úloh s více částmi.

Poznámka:

Řetězení úvah je technika pro modely bez schopnosti rozumového uvažování. Modely pro odvozování, jako jsou modely řady o-series, zpracovávají interně postupnou logiku.

Metoda učení s malým počtem příkladů

Zadejte jeden nebo více příkladů požadovaného vstupu a výstupu, které modelu pomůžou identifikovat požadovaný vzor. Tato technika se označuje jako učení s několika snímky (nebo jeden snímek pro jeden příklad). Pokud nejsou k dispozici žádné příklady, nazývá se zero-shot učení.

Pokud například chcete klasifikovat dotazy zákazníků:

Classify the following customer messages:

Message: "I need to change my flight to Rome"
Category: Booking change

Message: "What's the weather like in Bali in March?"
Category: Travel information

Message: "Can I get a refund for my cancelled tour?"
Category:

Model zjistí vzor klasifikace z příkladů a správně dokončí poslední položku.

Použití jasné syntaxe a oddělovačů

Když výzva obsahuje více oddílů, například pokyny, zdrojový text a příklady, použijte oddělovače, jako jsou ---nadpisy Markdownu nebo značky XML, abyste je oddělili. Jasné hranice pomáhají modelu rozlišovat instrukce od obsahu a snížit riziko chybné interpretace.

Návod

Modely můžou být náchylné k zkreslení nedávností, což znamená, že text na konci výzvy může mít větší vliv než text na začátku. Pokud model neodpovídá vašim pokynům konzistentně, zkuste na konci výzvy zopakovat klíčové instrukce.

Konfigurace parametrů modelu

Kromě textu výzev můžete upravit parametry modelu, které řídí, jak model generuje odpovědi:

  • Teplota: Řídí náhodnost výstupu. Vyšší hodnota (například 0,7) vytváří kreativní a pestřejší odpovědi, zatímco nižší hodnota (například 0,2) vytváří více zaměřené a deterministické odpovědi. Používejte nižší hodnoty pro faktické úkoly a vyšší hodnoty pro kreativní.
  • Top_p: Řídí také náhodnost, ale jiným způsobem. Omezuje model na podmnožinu nejpravděpodobnějších dalších tokenů. Například hodnota top_p 0,9 znamená, že model považuje pouze prvních 90% pravděpodobných tokenů.

Návod

Obecným doporučením je upravit teplotu nebo top_p, nikoli obě současně.

Ve scénáři cestovní agentury můžete při odpovídání na faktické otázky ohledně vybavení hotelu použít nízkou teplotu (0,2), ale při generování návrhů kreativních cestovních itinerářů vyšší teplotu (0,7).

Když je návrh instrukcí dostatečný

Výchozím bodem pro veškeré úsilí o optimalizaci modelu je správné navrhování úloh. Je efektivní, když potřebujete:

  • Řiďte tón, formát a chování modelu
  • Zadejte konkrétní pokyny pro úkol.
  • Rychle iterujte výsledky bez změn infrastruktury.
  • Mějte nízké náklady, protože není potřeba žádné další trénování ani storage dat.

Technologie výzvy ale má omezení. Pokud model nemá access k informacím, které potřebuje (jako je například katalog hotelů vaší společnosti), nebo pokud se konzistentně nepodaří zachovat konkrétní chování bez ohledu na podrobné pokyny, musíte zvážit další strategie.