Réglage précis et appel de fonction
Les modèles qui utilisent l’API de saisie semi-automatique de conversation prennent en charge l’appel de fonction. Malheureusement, les fonctions définies dans vos appels de saisie semi-automatique de conversation ne s’exécutent pas toujours comme prévu. L’optimisation de votre modèle avec des exemples d’appels de fonction peut améliorer la sortie du modèle en vous permettant ce qui suit :
- Obtenez des réponses formatées de la même façon même lorsque la définition complète de la fonction n’est pas présente. (Ce qui vous permet potentiellement d’économiser de l’argent sur les jetons d’invite.)
- Obtenez des sorties plus précises et cohérentes.
Construction d’un fichier d’apprentissage
Lors de la construction d’un fichier d’apprentissage d’exemples d’appels de fonction, vous devez prendre une définition de fonction comme suit :
{
"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"]
}
}]
}
Et exprimez les informations sous la forme d’une seule ligne dans votre fichier d’apprentissage .jsonl
comme indiqué ci-dessous :
{"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"]}}]}
Comme pour tout apprentissage d’optimisation, votre fichier d’exemples nécessite au moins 10 exemples.
Optimiser le coût
OpenAI recommande que si vous essayez d’optimiser en utilisant moins de jetons d’invite après l’optimisation de votre modèle sur les définitions de fonction complètes, vous pouvez faire l’expérience avec ce qui suit :
- Omettre les descriptions des fonctions et des paramètres : supprimez le champ de description de la fonction et des paramètres.
- Omettre les paramètres : supprimez l’intégralité du champ des propriétés de l’objet paramètres.
- Omettre entièrement la fonction : supprimez l’intégralité de l’objet de fonction du tableau de fonctions.
Optimiser pour la qualité
Sinon, si vous essayez d’améliorer la qualité de la sortie de l’appel de fonction, il est recommandé que les définitions de fonction présentes dans le jeu de données d’apprentissage du réglage précis et les appels de saisie semi-automatique de conversation suivants restent identiques.
Personnaliser les réponses de modèle aux sorties de fonction
Le réglage précis basé sur des exemples d’appels de fonction peut également être utilisé pour améliorer la réponse du modèle aux sorties de fonction. Pour ce faire, vous incluez des exemples composés de messages de réponse de fonction et de messages de réponse d’Assistant où la réponse de fonction est interprétée et placée dans le contexte par l’assistant.
{
"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
}
Comme avec l’exemple précédent, cet exemple est artificiellement développé à des fins de lisibilité. L’entrée réelle dans le fichier d’entraînement .jsonl
serait une seule ligne :
{"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": []}
Étapes suivantes
- Scénarios de réglage précis d’appel de fonction.
- Explorez les fonctionnalités de réglage précis dans le didacticiel sur le réglage précis avec Azure OpenAI.
- Passez en revue la disponibilité régionale du modèle de réglage précis.