Aracılığıyla paylaş


İnce ayar ve işlev çağrısı

Sohbet tamamlama API'sini kullanan modeller işlev çağrısını destekler. Ne yazık ki sohbet tamamlama çağrılarınızda tanımlanan işlevler her zaman beklendiği gibi çalışmaz. İşlev çağırma örnekleriyle modelinizde ince ayarlamalar yapmak, şunları gerçekleştirmenizi sağlayarak model çıkışını geliştirebilir:

  • Tam işlev tanımı mevcut olmasa bile benzer şekilde biçimlendirilmiş yanıtlar alın. (İstem belirteçlerinde tasarruf etmenizi sağlar.)
  • Daha doğru ve tutarlı çıkışlar elde edin.

Önemli

functions ve function_call parametreleri, API sürümünün yayımlanmasıyla 2023-12-01-preview birlikte kullanım dışı bırakılmıştır. Ancak, ince ayar API'sinin şu anda eski parametrelerin kullanılması gerekir.

Eğitim dosyası oluşturma

İşlev çağırma örneklerinden oluşan bir eğitim dosyası oluştururken aşağıdaki gibi bir işlev tanımı alırsınız:

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

Ayrıca, eğitim dosyanızda .jsonl bilgileri aşağıdaki gibi tek bir satır olarak ifade edin:

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

Tüm ince ayarlama eğitimlerinde olduğu gibi örnek dosyanız için en az 10 örnek gerekir.

Maliyet için iyileştirme

OpenAI, modelinizi tam işlev tanımlarında ince ayarlama sonrasında daha az istem belirteci kullanacak şekilde iyileştirmeye çalışıyorsanız denemeler yapmanızı önerir:

  • İşlev ve parametre açıklamalarını atla: açıklama alanını işlevden ve parametrelerden kaldırın.
  • Parametreleri atla: parameters nesnesinden özellikler alanının tamamını kaldırın.
  • İşlevi tamamen atla: İşlev nesnesinin tamamını işlev dizisinden kaldırın.

Kalite için iyileştirme

Alternatif olarak, işlev çağırma çıkışının kalitesini iyileştirmeye çalışıyorsanız, ince ayar eğitim veri kümesinde bulunan işlev tanımlarının ve sonraki sohbet tamamlama çağrılarının aynı kalması önerilir.

model yanıtlarını işlev çıkışlarına göre özelleştirme

modelin işlev çıkışlarına yanıtını geliştirmek için işlev çağırma örneklerine göre ince ayarlama da kullanılabilir. Bunu başarmak için, işlev yanıtının yardımcı tarafından yorumlandığı ve bağlama yerleştirildiği işlev yanıt iletilerinden ve yardımcı yanıt iletilerinden oluşan örnekler eklersiniz.

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

Önceki örnekte olduğu gibi, bu örnek okunabilirlik için yapay olarak genişletilmiştir. Eğitim dosyasındaki .jsonl gerçek giriş tek bir satır olacaktır:

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

Sonraki adımlar