The update makes GPT-4 more competent at being an agent, since it’s now fine-tuned for function calling. It’s a bit surprising that base GPT-4 (prior to the update) was able to use tools, as it’s just trained for predicting internet text and following instructions. As such, it’s not that good at knowing when and how to use tools. The formal API parameters and JSON specification for function calling should make it more reliable for using it as an agent and could lead to considerably more interest in engineering agents. It should be easier to connect it with a variety of APIs for interacting with the internet, including complex specifications.
Anecdotally, the AutoGPT team is observing significant improvements in accuracy and reliability after switching from their current hacky approach to using the function-calling version of GPT-4.
I am curious how this fine-tuning for function calling was done, because it is user controllable. In the OpenAI API, if you pass none to function_call parameter, the model never calls a function. There seem to be one input bit and one output bit, for “you may want to call a function” and “I want to call a function”.
The update makes GPT-4 more competent at being an agent, since it’s now fine-tuned for function calling. It’s a bit surprising that base GPT-4 (prior to the update) was able to use tools, as it’s just trained for predicting internet text and following instructions. As such, it’s not that good at knowing when and how to use tools. The formal API parameters and JSON specification for function calling should make it more reliable for using it as an agent and could lead to considerably more interest in engineering agents. It should be easier to connect it with a variety of APIs for interacting with the internet, including complex specifications.
Anecdotally, the AutoGPT team is observing significant improvements in accuracy and reliability after switching from their current hacky approach to using the function-calling version of GPT-4.
I am curious how this fine-tuning for function calling was done, because it is user controllable. In the OpenAI API, if you pass
none
tofunction_call
parameter, the model never calls a function. There seem to be one input bit and one output bit, for “you may want to call a function” and “I want to call a function”.