Optimalizace výzev jazykového modelu
Výzvy jsou konverzační pomůcky, které dáváte velkým jazykovým modelům (LLM), tvarování odpovědí na základě vašich dotazů nebo pokynů. Můžete například vyzvat LLM k převodu věty z angličtiny do francouzštiny nebo vygenerovat souhrn textu.
V předchozí lekci jste vytvořili výzvu jako vstupní řetězec:
string input = @"I'm a vegan in search of new recipes. I love spicy food!
Can you give me a list of breakfast recipes that are vegan friendly?";
Výzva zahrnuje vytvoření jasných kontextových podrobných pokynů pro vodítko modelu k vygenerování požadované odpovědi. Pokud chcete vytvořit efektivní výzvu, přesnost a srozumitelnost jsou klíčové. Možná budete muset experimentovat a upravit výzvy k přesnému výsledku.
Tipy pro vytváření výzev
Konkrétní vstupy poskytují konkrétní výstupy: LLM reagují na základě vstupu, který obdrží. Vytvoření jasných a konkrétních výzev je zásadní pro získání požadovaného výstupu.
Experimentování je klíčové: Možná budete muset iterovat a experimentovat s různými výzvami, abyste pochopili, jak model interpretuje a generuje odpovědi. Malé úpravy můžou vést k významným změnám výsledků.
Kontextové záležitosti: LLMs berou v úvahu kontext uvedený v příkazovém řádku. Měli byste zajistit, aby byl kontext dobře definovaný a relevantní pro získání přesných a koherentních odpovědí.
Zpracování nejednoznačnosti: Mějte na paměti, že LLM mohou mít potíže s nejednoznačnými dotazy. Zadejte kontext nebo strukturu, abyste se vyhnuli vágním nebo neočekávaným výsledkům.
Délka výzev: Zatímco LLMs může zpracovávat krátké i dlouhé výzvy, měli byste zvážit kompromis mezi stručností a srozumitelností. Experimentování s délkou výzvy vám pomůže najít optimální rovnováhu.
Vytvoření šablon výzvy
Sada SDK sémantického jádra podporuje jazyk šablon, který umožňuje používat výrazy a proměnné v výzev v přirozeném jazyce. To znamená, že můžete vytvořit výzvy, které se dají opakovaně použít s různými vstupními parametry. K vložení výrazů do výzev používá jazyk šablony složené závorky {{...}}
.
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Plugins.Core;
var builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
"your-deployment-name",
"your-endpoint",
"your-api-key",
"deployment-model");
builder.Plugins.AddFromType<ConversationSummaryPlugin>();
var kernel = builder.Build();
string history = @"In the heart of my bustling kitchen, I have embraced
the challenge of satisfying my family's diverse taste buds and
navigating their unique tastes. With a mix of picky eaters and
allergies, my culinary journey revolves around exploring a plethora
of vegetarian recipes.
One of my kids is a picky eater with an aversion to anything green,
while another has a peanut allergy that adds an extra layer of complexity
to meal planning. Armed with creativity and a passion for wholesome
cooking, I've embarked on a flavorful adventure, discovering plant-based
dishes that not only please the picky palates but are also heathy and
delicious.";
string prompt = @"This is some information about the user's background:
{{$history}}
Given this user's background, provide a list of relevant recipes.";
var result = await kernel.InvokePromptAsync(prompt,
new KernelArguments() {{ "history", history }});
Console.WriteLine(result);
V tomto příkladu history
se na proměnnou odkazuje na výzvu označenou $
symbolem. Po vyvolání history
výzvy se proměnná nahradí skutečnou hodnotou zadanou ve slovníku KernelArguments
. Díky tomu můžete vytvářet výzvy, které se dají dynamicky zaplnět různými vstupy.
Tady je příklad výstupu:
1. Lentil and vegetable soup - a hearty, filling soup that is perfect for a cold day. This recipe is vegetarian and can easily be adapted to accommodate allergies.
2. Cauliflower "steaks" - a delicious and healthy main course that is sure to satisfy even the pickiest of eaters. This recipe is vegetarian and can easily be made vegan.
3. Quinoa salad with roasted vegetables - a healthy and filling salad that is perfect for any occasion. This recipe is vegetarian and can easily be adapted to accommodate allergies.
4. Peanut-free pad Thai - a classic dish made without peanut sauce, perfect for those with peanut allergies. This recipe is vegetarian and can easily be made vegan.
5. Black bean and sweet potato enchiladas - a delicious and healthy twist on traditional enchiladas. This recipe is vegetarian and can easily be made vegan.
Vytváření opakovaně použitelných výzev je užitečné zejména v případě, že potřebujete provést stejnou úlohu s různými vstupy. V dalším cvičení si procvičíte vytváření vlastních opakovaně použitelných výzev pomocí semantické sady SDK jádra.