Точное настройка и вызов функций
Модели, использующие API завершения чата, поддерживают вызов функции. К сожалению, функции, определенные в вызовах завершения чата, не всегда выполняются должным образом. Более точной настройки модели с помощью примеров вызовов функций можно улучшить выходные данные модели, позволяя выполнять следующие действия.
- Получите аналогичные отформатированные ответы, даже если полное определение функции отсутствует. (Позволяя вам потенциально сэкономить деньги на маркерах запроса.)
- Получение более точных и согласованных выходных данных.
Создание обучающего файла
При создании обучающего файла вызовов функций вы будете принимать определение функции следующим образом:
{
"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"]
}
}]
}
И выразить информацию в виде одной строки в .jsonl
файле обучения, как показано ниже:
{"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"]}}]}
Как и в случае с всем обучением в примере файла, требуется не менее 10 примеров.
Оптимизация затрат
OpenAI рекомендует, чтобы при попытке оптимизировать использование меньшего количества маркеров запроса после точной настройки модели на полных определениях функций, с которыми можно поэкспериментировать:
- Опустить описания функций и параметров: удалите поле описания из функции и параметров.
- Опустить параметры: удалите все поля свойств из объекта параметров.
- Полностью опустить функцию: удалите весь объект функции из массива функций.
Оптимизация качества
Кроме того, если вы пытаетесь улучшить качество выходных данных вызова функции, рекомендуется, чтобы определения функций, присутствующих в наборе данных обучения точной настройки, и последующие вызовы завершения чата оставались идентичными.
Настройка ответов модели на выходные данные функций
Кроме того, для улучшения ответа модели на выходные данные функций можно использовать точное настройка на основе примеров вызовов функций. Для этого можно включить примеры, состоящие из сообщений ответа функции и ответных сообщений помощника, в которых ответ функции интерпретируется и помещается в контекст помощником.
{
"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
}
Как и в примере ранее, этот пример искусственно расширяется для удобства чтения. Фактическая запись в обучающий .jsonl
файл будет одной строкой:
{"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": []}
Следующие шаги
- Функции, вызывающие сценарии точной настройки.
- Изучите возможности тонкой настройки в руководстве по настройке Azure OpenAI.
- Ознакомьтесь с региональной доступностью модели точной настройки.