Dostrajanie i wywoływanie funkcji
Modele korzystające z interfejsu API uzupełniania czatów obsługują wywoływanie funkcji. Niestety funkcje zdefiniowane w wywołaniach uzupełniania czatu nie zawsze działają zgodnie z oczekiwaniami. Dostrajanie modelu za pomocą przykładów wywołań funkcji może poprawić dane wyjściowe modelu, umożliwiając:
- Pobierz podobnie sformatowane odpowiedzi, nawet jeśli pełna definicja funkcji nie jest obecna. (Umożliwia potencjalnie oszczędność pieniędzy na tokenach monitów).
- Uzyskaj dokładniejsze i spójne dane wyjściowe.
Konstruowanie pliku szkoleniowego
Podczas tworzenia pliku szkoleniowego przykładów wywoływania funkcji należy podjąć definicję funkcji w następujący sposób:
{
"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"]
}
}]
}
I wyrazić informacje jako pojedynczy wiersz w .jsonl
pliku treningowym, jak pokazano poniżej:
{"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"]}}]}
Podobnie jak w przypadku wszystkich dostrajania trenowania przykładowy plik wymaga co najmniej 10 przykładów.
Optymalizowanie pod kątem kosztów
Interfejs OpenAI zaleca, aby jeśli próbujesz zoptymalizować użycie mniejszej liczby tokenów monitów po dostrojeniu modelu w pełnych definicjach funkcji, możesz eksperymentować z:
- Pomiń opisy funkcji i parametrów: usuń pole opisu z funkcji i parametrów.
- Pomiń parametry: usuń całe pole właściwości z obiektu parameters.
- Pomiń funkcję całkowicie: usuń cały obiekt funkcji z tablicy funkcji.
Optymalizowanie pod kątem jakości
Alternatywnie, jeśli próbujesz poprawić jakość danych wyjściowych wywoływania funkcji, zaleca się, aby definicje funkcji obecne w zestawie danych trenowania dostrajania, a kolejne wywołania uzupełniania czatu pozostają identyczne.
Dostosowywanie odpowiedzi modelu do danych wyjściowych funkcji
Dostrajanie na podstawie przykładów wywołań funkcji może również służyć do ulepszania odpowiedzi modelu na dane wyjściowe funkcji. W tym celu dołączono przykłady składające się z komunikatów odpowiedzi funkcji i komunikatów odpowiedzi asystenta, w których odpowiedź funkcji jest interpretowana i umieszczana w kontekście przez asystenta.
{
"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
}
Podobnie jak w przypadku przykładu wcześniej, ten przykład jest sztucznie rozszerzany w celu zapewnienia czytelności. Rzeczywisty wpis w pliku trenowania .jsonl
będzie pojedynczym wierszem:
{"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": []}
Następne kroki
- Funkcja wywołująca scenariusze dostrajania.
- Zapoznaj się z możliwościami dostosowywania w samouczku dostrajania usługi Azure OpenAI.
- Przejrzyj dostępność regionalną modelu dostrajania.