Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Modelos que utilizan la API de finalizaciones de chat admiten llamadas a herramientas. Las funciones definidas en las llamadas de finalización del chat no siempre funcionan según lo previsto. Ajustar el modelo con ejemplos de llamadas de herramientas puede mejorar la salida del modelo:
| Beneficio | Descripción |
|---|---|
| Reducción de los tokens de solicitud | Obtenga respuestas con formato similar incluso cuando la definición de función completa no esté presente. |
| Mejora de la precisión | Obtenga salidas más precisas y coherentes. |
Nota
function_call y functions han quedado en desuso en favor de tools.
Use el tools parámetro en su lugar.
Llamada a herramientas (recomendado)
Construcción de un archivo de entrenamiento
Al construir un archivo de entrenamiento de ejemplos de llamadas a herramientas, tome una definición de función como esta:
{
"messages": [
{ "role": "user", "content": "What is the weather in San Francisco?" },
{
"role": "assistant",
"tool_calls": [
{
"id": "call_id",
"type": "function",
"function": {
"name": "get_current_weather",
"arguments": "{\"location\": \"San Francisco, USA\", \"format\": \"celsius\"}"
}
}
]
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and country/region, eg. San Francisco, USA"
},
"format": { "type": "string", "enum": ["celsius", "fahrenheit"] }
},
"required": ["location", "format"]
}
}
}
]
}
Y exprese la información como una sola línea dentro del .jsonl archivo de entrenamiento como se indica a continuación:
{"messages":[{"role":"user","content":"What is the weather in San Francisco?"},{"role":"assistant","tool_calls":[{"id":"call_id","type":"function","function":{"name":"get_current_weather","arguments":"{\"location\": \"San Francisco, USA\", \"format\": \"celsius\"}"}}]}],"tools":[{"type":"function","function":{"name":"get_current_weather","description":"Get the current weather","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The city and country/region, eg. San Francisco, USA"},"format":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location","format"]}}}]}
Al igual que con todo el entrenamiento de ajuste preciso, el archivo de ejemplo requiere al menos 10 ejemplos.
Optimización del costo
Para utilizar menos tokens de solicitud después del ajuste fino de las definiciones completas de funciones, pruebe las siguientes estrategias:
| Estrategia | Descripción |
|---|---|
| Omitir descripciones | Quite el description campo de la función y los parámetros. |
| Omitir parámetros | Quite todo el campo del objeto properties. |
| Omitir la función por completo | Quite todo el objeto de función de la matriz de funciones. |
Optimización para la calidad
Para mejorar la calidad del resultado de las llamadas a herramientas, mantenga las definiciones de función en su conjunto de datos de entrenamiento de ajuste fino y en las posteriores llamadas de finalización de chat idénticas.
Personalización de las respuestas del modelo a las salidas de función
También puede ajustar los ejemplos de llamadas a herramientas para mejorar la respuesta del modelo a las salidas de función. Incluya ejemplos que constan de mensajes de respuesta de función y mensajes de respuesta del asistente en los que la respuesta de la función se interpreta y coloca en contexto por el asistente.
{
"messages": [
{"role": "user", "content": "What is the weather in San Francisco?"},
{"role": "assistant", "tool_calls": [{"id": "call_id", "type": "function", "function": {"name": "get_current_weather", "arguments": "{\"location\": \"San Francisco, USA\", \"format\": \"celsius\"}"}}]}
{"role": "tool", "tool_call_id": "call_id", "content": "21.0"},
{"role": "assistant", "content": "It is 21 degrees celsius in San Francisco, CA"}
],
"tools": [] // same as before
}
Al igual que con el ejemplo anterior, este ejemplo se expande artificialmente para mejorar la legibilidad. La entrada real en el .jsonl archivo de entrenamiento sería una sola línea:
{"messages":[{"role":"user","content":"What is the weather in San Francisco?"},{"role":"assistant","tool_calls":[{"id":"call_id","type":"function","function":{"name":"get_current_weather","arguments":"{\"location\": \"San Francisco, USA\", \"format\": \"celsius\"}"}}]},{"role":"tool","tool_call_id":"call_id","content":"21.0"},{"role":"assistant","content":"It is 21 degrees celsius in San Francisco, CA"}],"tools":[]}
Construcción de un archivo de entrenamiento
Al construir un archivo de entrenamiento de ejemplos de llamadas de función, tome una definición de función como esta:
{
"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"]
}
}]
}
Y exprese la información como una sola línea dentro del .jsonl archivo de entrenamiento como se indica a continuación:
{"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/region, eg. San Francisco, USA"}, "format": {"type": "string", "enum": ["celsius", "fahrenheit"]}}, "required": ["location", "format"]}}]}
Al igual que con todo el entrenamiento de ajuste preciso, el archivo de ejemplo requiere al menos 10 ejemplos.
Optimización del costo
Para utilizar menos tokens de solicitud después del ajuste fino de las definiciones completas de funciones, pruebe las siguientes estrategias:
| Estrategia | Descripción |
|---|---|
| Omitir descripciones | Quite el description campo de la función y los parámetros. |
| Omitir parámetros | Quite todo el campo del objeto properties. |
| Omitir la función por completo | Quite todo el objeto de función de la matriz de funciones. |
Optimización para la calidad
Para mejorar la calidad del resultado de las llamadas de función, mantenga idénticas las definiciones de función en su conjunto de datos de entrenamiento de ajuste fino y en las llamadas posteriores de finalización del chat.
Personalización de las respuestas del modelo a las salidas de función
También puede ajustar los ejemplos de llamadas de función para mejorar la respuesta del modelo a las salidas de función. Incluya ejemplos que constan de mensajes de respuesta de función y mensajes de respuesta del asistente en los que la respuesta de la función se interpreta y coloca en contexto por el asistente.
{
"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\"}"}}
{"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
}
Al igual que con el ejemplo anterior, este ejemplo se expande artificialmente para mejorar la legibilidad. La entrada real en el .jsonl archivo de entrenamiento sería una sola línea:
{"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\"}"}}, {"role": "function", "name": "get_current_weather", "content": "21.0"}, {"role": "assistant", "content": "It is 21 degrees celsius in San Francisco, CA"}], "functions": []}
Pasos siguientes
- Escenarios de ajuste para llamadas de función
- Explore las capacidades de ajuste fino en el tutorial de ajuste fino de Azure OpenAI.
- Revise la disponibilidad regional del modelo de ajuste fino.