Penyempurnaan dan pemanggilan fungsi
Model yang menggunakan panggilan fungsi dukungan API penyelesaian obrolan. Sayangnya, fungsi yang ditentukan dalam panggilan penyelesaian obrolan Anda tidak selalu berfungsi seperti yang diharapkan. Menyempurnakan model Anda dengan contoh panggilan fungsi dapat meningkatkan output model dengan memungkinkan Anda untuk:
- Dapatkan respons yang diformat serupa bahkan ketika definisi fungsi lengkap tidak ada. (Memungkinkan Anda untuk berpotensi menghemat uang pada token perintah.)
- Dapatkan output yang lebih akurat dan konsisten.
Penting
Parameter functions
dan function_call
telah ditolak dengan rilis 2023-12-01-preview
versi API. Namun, API penyempurnaan saat ini memerlukan penggunaan parameter warisan.
Membuat file pelatihan
Saat membuat file pelatihan contoh panggilan fungsi, Anda akan mengambil definisi fungsi seperti ini:
{
"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"]
}
}]
}
Dan ekspreskan informasi sebagai satu baris dalam file pelatihan Anda .jsonl
seperti di bawah ini:
{"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"]}}]}
Seperti halnya semua pelatihan penyempurnaan file contoh Anda memerlukan setidaknya 10 contoh.
Pengoptimalan biaya
OpenAI merekomendasikan bahwa jika Anda mencoba mengoptimalkan untuk menggunakan lebih sedikit token prompt pasca menyempurnakan model Anda pada definisi fungsi penuh yang dapat Anda eksperimen dengan:
- Hilangkan deskripsi fungsi dan parameter: hapus bidang deskripsi dari fungsi dan parameter.
- Hilangkan parameter: hapus seluruh bidang properti dari objek parameter.
- Hilangkan fungsi sepenuhnya: hapus seluruh objek fungsi dari array fungsi.
Optimalkan untuk kualitas
Atau, jika Anda mencoba meningkatkan kualitas output panggilan fungsi, disarankan agar definisi fungsi yang ada dalam himpunan data pelatihan yang menyempurnakan dan panggilan penyelesaian obrolan berikutnya tetap identik.
Menyesuaikan respons model ke output fungsi
Penyempurnaan berdasarkan contoh panggilan fungsi juga dapat digunakan untuk meningkatkan respons model terhadap output fungsi. Untuk mencapai hal ini, Anda menyertakan contoh yang terdiri dari pesan respons fungsi dan pesan respons asisten di mana respons fungsi ditafsirkan dan dimasukkan ke dalam konteks oleh asisten.
{
"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
}
Seperti contoh sebelumnya, contoh ini diperluas secara buatan untuk keterbacaan. Entri aktual dalam .jsonl
file pelatihan akan menjadi satu baris:
{"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": []}
Langkah berikutnya
- Skenario penyempurnaan pemanggilan fungsi.
- Jelajahi kemampuan penyempurnaan dalam tutorial penyempurnaan Azure OpenAI.
- Tinjau ketersediaan regional model penyempurnaan.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk