Jemné ladění a volání funkcí
Modely, které používají rozhraní API pro dokončování chatu, podporují volání funkcí. Funkce definované ve voláních pro dokončování chatu bohužel ne vždy fungují podle očekávání. Vyladění modelu pomocí příkladů volání funkcí může vylepšit výstup modelu tím, že vám umožní:
- Získejte podobně formátované odpovědi, i když není k dispozici definice úplné funkce. (Umožňuje vám ušetřit peníze na tokeny výzvy.)
- Získejte přesnější a konzistentnější výstupy.
Důležité
Parametry functions
jsou function_call
zastaralé s vydáním 2023-12-01-preview
verze rozhraní API. Rozhraní API pro vyladění v současné době ale vyžaduje použití starších parametrů.
Vytvoření trénovacího souboru
Při vytváření trénovacího souboru příkladů volání funkcí byste použili definici funkce takto:
{
"messages": [
{"role": "user", "content": "What is the weather in San Francisco?"},
{"role": "assistant", "function_call": {"name": "get_current_weather", "arguments": "{\"location\": \"San Francisco, USA\", \"format\": \"celsius\"}"}
],
"functions": [{
"name": "get_current_weather",
"description": "Get the current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and country, eg. San Francisco, USA"},
"format": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location", "format"]
}
}]
}
A vyjádřete .jsonl
informace jako jeden řádek v trénovacím souboru následujícím způsobem:
{"messages": [{"role": "user", "content": "What is the weather in San Francisco?"}, {"role": "assistant", "function_call": {"name": "get_current_weather", "arguments": "{\"location\": \"San Francisco, USA\", \"format\": \"celsius\"}"}}], "functions": [{"name": "get_current_weather", "description": "Get the current weather", "parameters": {"type": "object", "properties": {"location": {"type": "string", "description": "The city and country, eg. San Francisco, USA"}, "format": {"type": "string", "enum": ["celsius", "fahrenheit"]}}, "required": ["location", "format"]}}]}
Stejně jako u všech vyladění trénování ukázkového souboru vyžaduje alespoň 10 příkladů.
Optimalizace nákladů
OpenAI doporučuje, abyste v případě, že se pokoušíte optimalizovat tak, aby po vyladění modelu v úplných definicích funkcí bylo možné experimentovat s menším počtem tokenů výzvy:
- Vynechat popisy funkcí a parametrů: Odeberte pole popisu z funkce a parametrů.
- Vynechat parametry: Odeberte z objektu parametrů celé pole vlastností.
- Vynechání zcela funkce: Odeberte celý objekt funkce z pole funkcí.
Optimalizace pro kvalitu
Pokud se také pokoušíte zlepšit kvalitu výstupu volání funkce, doporučuje se, aby definice funkcí, které jsou přítomné v jemně vyladěné trénovací datové sadě a následná volání dokončení chatu, zůstala stejná.
Přizpůsobení odpovědí modelu na výstupy funkcí
Vyladění na základě příkladů volání funkcí lze také použít ke zlepšení odezvy modelu na výstupy funkcí. Abyste toho dosáhli, zahrnete příklady skládající se ze zpráv odpovědí funkce a zpráv odpovědí asistenta, kde je odpověď funkce interpretována a vložena do kontextu pomocníkem.
{
"messages": [
{"role": "user", "content": "What is the weather in San Francisco?"},
{"role": "assistant", "function_call": {"name": "get_current_weather", "arguments": "{\"location\": \"San Francisco, USA\", \"format\": \"celcius\"}"}}
{"role": "function", "name": "get_current_weather", "content": "21.0"},
{"role": "assistant", "content": "It is 21 degrees celsius in San Francisco, CA"}
],
"functions": [...] // same as before
}
Stejně jako u příkladu je tento příklad uměle rozšířen pro čitelnost. Skutečná položka v trénovacím .jsonl
souboru by byla jeden řádek:
{"messages": [{"role": "user", "content": "What is the weather in San Francisco?"}, {"role": "assistant", "function_call": {"name": "get_current_weather", "arguments": "{\"location\": \"San Francisco, USA\", \"format\": \"celcius\"}"}}, {"role": "function", "name": "get_current_weather", "content": "21.0"}, {"role": "assistant", "content": "It is 21 degrees celsius in San Francisco, CA"}], "functions": []}
Další kroky
- Prozkoumejte možnosti jemného ladění v kurzu vyladění Azure OpenAI.
- Kontrola regionální dostupnosti modelu vyladění
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro