Megosztás a következőn keresztül:


Finomhangolás és függvényhívás

A csevegést befejező API támogatási függvény hívását használó modellek. Sajnos a csevegés befejező hívásaiban definiált függvények nem mindig a várt módon működnek. A modell finomhangolása függvényhívási példákkal javíthatja a modell kimenetét a következő funkciók engedélyezésével:

  • Hasonló formátumú válaszokat kaphat akkor is, ha a teljes függvénydefiníció nincs jelen. (Lehetővé teszi, hogy pénzt takarítson meg a parancssori jogkivonatokon.)
  • Pontosabb és konzisztensebb kimenetek.

Fontos

Az functions API verziójának kiadásával 2023-12-01-preview a paraméterek és function_call a paraméterek elavultak. A finomhangolási API-nak azonban jelenleg az örökölt paramétereket kell használnia.

Betanítási fájl létrehozása

Példákat hívó függvények betanítási fájljának létrehozásakor az alábbihoz hasonló függvénydefiníciót kell elvégeznie:

{
    "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"]
        }
    }]
}

Az alábbi módon fejezze ki az információkat egyetlen sorként a .jsonl betanítási fájlban:

{"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"]}}]}

Az összes finomhangoló betanításhoz hasonlóan a példafájlhoz is legalább 10 példa szükséges.

Költségoptimalizálás

Az OpenAI azt javasolja, hogy ha kevesebb parancssori jogkivonat használatára próbál optimalizálni, a modell finomhangolása után a teljes függvénydefiníciókon kísérletezzen:

  • Hiányzik a függvény és a paraméter leírása: távolítsa el a leírásmezőt a függvényből és a paraméterekből.
  • Paraméterek kihagyása: Távolítsa el a teljes tulajdonságmezőt a paraméterobjektumból.
  • A függvény teljes kihagyása: távolítsa el a teljes függvényobjektumot a függvénytömbből.

Minőség optimalizálása

Másik lehetőségként, ha javítani szeretné a függvényhívás kimenetének minőségét, javasoljuk, hogy a betanítási adatkészletben és az azt követő csevegés-befejezési hívásokban található függvénydefiníciók azonosak maradjanak.

Modellválaszok testreszabása függvénykimenetekre

A függvényhívási példákon alapuló finomhangolás a modell függvénykimenetekre adott válaszának javítására is használható. Ennek érdekében példákat is használhat függvényválasz-üzenetekből és asszisztensi válaszüzenetekből, amelyekben a függvényválaszt az asszisztens értelmezi és kontextusba helyezi.

{
    "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
}

Az előző példához hasonlóan ez a példa is mesterségesen ki van bontva az olvashatóság érdekében. A betanítási fájl tényleges bejegyzése .jsonl egyetlen sorból áll:

{"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": []}

Következő lépések

  • Az Azure OpenAI finomhangolási oktatóanyagában megismerheti a finomhangolási képességeket.
  • A modell regionális rendelkezésre állásának finomhangolásának áttekintése